diff options
-rw-r--r-- | constants/engine_flags.asm | 2 | ||||
-rw-r--r-- | constants/event_flags.asm | 20 | ||||
-rw-r--r-- | constants/map_constants.asm | 6 | ||||
-rwxr-xr-x | engine/engine_flags.asm | 2 | ||||
-rwxr-xr-x | engine/specials.asm | 4 | ||||
-rw-r--r-- | macros/scripts/events.asm | 10 | ||||
-rw-r--r-- | main.asm | 23 | ||||
-rw-r--r-- | maps/DayOfWeekSiblingsHouse.asm | 83 | ||||
-rw-r--r-- | maps/ElmsHouse.asm | 100 | ||||
-rw-r--r-- | maps/ElmsLab.asm | 1258 | ||||
-rw-r--r-- | maps/PlayersHouse1F.asm | 310 | ||||
-rw-r--r-- | maps/PlayersHouse2F.asm | 132 | ||||
-rw-r--r-- | maps/PlayersNeighborsHouse.asm | 97 | ||||
-rw-r--r-- | maps/Route26HealHouse.asm | 62 | ||||
-rw-r--r-- | maps/Route27SandstormHouse.asm | 108 | ||||
-rw-r--r-- | maps/Route29Route46Gate.asm | 52 |
16 files changed, 2235 insertions, 34 deletions
diff --git a/constants/engine_flags.asm b/constants/engine_flags.asm index 082ffd64..f4da580e 100644 --- a/constants/engine_flags.asm +++ b/constants/engine_flags.asm @@ -60,7 +60,7 @@ engine_flag_def ENGINE_UNLOCKED_UNOWNS_UNUSED_6, wUnlockedUnowns, 6 ; $30 engine_flag_def ENGINE_UNLOCKED_UNOWNS_UNUSED_7, wUnlockedUnowns, 7 - engine_flag_def ENGINE_FLYPOINT_KRISS_HOUSE, wVisitedSpawns, 0 ; your house + engine_flag_def ENGINE_FLYPOINT_PLAYERS_HOUSE, wVisitedSpawns, 0 ; your house engine_flag_def ENGINE_FLYPOINT_VIRIDIAN_POKECENTER, wVisitedSpawns, 1 ; viridian pokecenter engine_flag_def ENGINE_FLYPOINT_PALLET, wVisitedSpawns, 2 ; pallet engine_flag_def ENGINE_FLYPOINT_VIRIDIAN, wVisitedSpawns, 3 ; viridian diff --git a/constants/event_flags.asm b/constants/event_flags.asm index fbde1623..341298a4 100644 --- a/constants/event_flags.asm +++ b/constants/event_flags.asm @@ -728,7 +728,7 @@ const EVENT_DECO_GEODUDE_DOLL const EVENT_DECO_MACHOP_DOLL const EVENT_DECO_TENTACOOL_DOLL - const EVENT_KRISS_ROOM_POSTER + const EVENT_PLAYERS_ROOM_POSTER const EVENT_DECO_GOLD_TROPHY const EVENT_DECO_SILVER_TROPHY const EVENT_DECO_BIG_SNORLAX_DOLL @@ -818,8 +818,8 @@ const EVENT_GOT_WATER_STONE_FROM_BILLS_GRANDPA const EVENT_GOT_FIRE_STONE_FROM_BILLS_GRANDPA const EVENT_GOT_THUNDERSTONE_FROM_BILLS_GRANDPA -; More Crystal-specific events const EVENT_LISTENED_TO_INITIAL_RADIO +; More Crystal-specific events const EVENT_WALL_OPENED_IN_HO_OH_CHAMBER const EVENT_WALL_OPENED_IN_KABUTO_CHAMBER const EVENT_WALL_OPENED_IN_OMANYTE_CHAMBER @@ -1803,8 +1803,8 @@ const EVENT_RIVAL_SPROUT_TOWER const EVENT_RIVAL_BURNED_TOWER const EVENT_RIVAL_DRAGONS_DEN - const EVENT_KRISS_HOUSE_MOM_1 - const EVENT_KRISS_HOUSE_MOM_2 + const EVENT_PLAYERS_HOUSE_MOM_1 + const EVENT_PLAYERS_HOUSE_MOM_2 const EVENT_MR_POKEMONS_HOUSE_OAK const EVENT_VIOLET_CITY_EARL const EVENT_EARLS_ACADEMY_EARL @@ -1925,10 +1925,10 @@ const EVENT_KURTS_HOUSE_KURT_1 const EVENT_KURTS_HOUSE_KURT_2 const EVENT_SLOWPOKE_WELL_KURT ; 740 - const EVENT_KRISS_HOUSE_2F_CONSOLE - const EVENT_KRISS_HOUSE_2F_DOLL_1 - const EVENT_KRISS_HOUSE_2F_DOLL_2 - const EVENT_KRISS_HOUSE_2F_BIG_DOLL + const EVENT_PLAYERS_HOUSE_2F_CONSOLE + const EVENT_PLAYERS_HOUSE_2F_DOLL_1 + const EVENT_PLAYERS_HOUSE_2F_DOLL_2 + const EVENT_PLAYERS_HOUSE_2F_BIG_DOLL const EVENT_ROUTE_35_NATIONAL_PARK_GATE_OFFICER_CONTEST_DAY const EVENT_ROUTE_35_NATIONAL_PARK_GATE_OFFICER_NOT_CONTEST_DAY const EVENT_ROUTE_36_NATIONAL_PARK_GATE_OFFICER_CONTEST_DAY @@ -2008,8 +2008,8 @@ const EVENT_RUINS_OF_ALPH_OUTSIDE_TOURIST_YOUNGSTERS const EVENT_DRAGON_SHRINE_CLAIR ; 790 const EVENT_BATTLE_TOWER_BATTLE_ROOM_YOUNGSTER - const EVENT_KRISS_HOUSE_1F_NEIGHBOR - const EVENT_KRISS_NEIGHBORS_HOUSE_NEIGHBOR + const EVENT_PLAYERS_HOUSE_1F_NEIGHBOR + const EVENT_PLAYERS_NEIGHBORS_HOUSE_NEIGHBOR const EVENT_PICKED_UP_GOLD_BERRY_FROM_HO_OH_ITEM_ROOM const EVENT_PICKED_UP_MYSTERYBERRY_FROM_HO_OH_ITEM_ROOM const EVENT_PICKED_UP_REVIVAL_HERB_FROM_HO_OH_ITEM_ROOM diff --git a/constants/map_constants.asm b/constants/map_constants.asm index 1d74fd4c..bb2b5930 100644 --- a/constants/map_constants.asm +++ b/constants/map_constants.asm @@ -433,9 +433,9 @@ ENDM map_const ROUTE_29, 9, 30 ; 3 map_const NEW_BARK_TOWN, 9, 10 ; 4 map_const ELMS_LAB, 6, 5 ; 5 - map_const KRISS_HOUSE_1F, 4, 5 ; 6 - map_const KRISS_HOUSE_2F, 3, 4 ; 7 - map_const KRISS_NEIGHBORS_HOUSE, 4, 4 ; 8 + map_const PLAYERS_HOUSE_1F, 4, 5 ; 6 + map_const PLAYERS_HOUSE_2F, 3, 4 ; 7 + map_const PLAYERS_NEIGHBORS_HOUSE, 4, 4 ; 8 map_const ELMS_HOUSE, 4, 4 ; 9 map_const ROUTE_26_HEAL_SPEECH_HOUSE, 4, 4 ; 10 map_const ROUTE_26_DAY_OF_WEEK_SIBLINGS_HOUSE, 4, 4 ; 11 diff --git a/engine/engine_flags.asm b/engine/engine_flags.asm index 107133e2..897e55df 100755 --- a/engine/engine_flags.asm +++ b/engine/engine_flags.asm @@ -146,7 +146,7 @@ EngineFlags: engine_flag ENGINE_UNLOCKED_UNOWNS_UNUSED_6 engine_flag ENGINE_UNLOCKED_UNOWNS_UNUSED_7 - engine_flag ENGINE_FLYPOINT_KRISS_HOUSE + engine_flag ENGINE_FLYPOINT_PLAYERS_HOUSE engine_flag ENGINE_FLYPOINT_VIRIDIAN_POKECENTER engine_flag ENGINE_FLYPOINT_PALLET engine_flag ENGINE_FLYPOINT_VIRIDIAN diff --git a/engine/specials.asm b/engine/specials.asm index 100979ff..db0b8ddf 100755 --- a/engine/specials.asm +++ b/engine/specials.asm @@ -138,8 +138,8 @@ SpecialsPointers: add_special FadeOutMusic add_special Diploma add_special PrintDiploma - add_special Function90a1b - add_special Function90a54 + add_special InitialSetDSTFlag + add_special InitialClearDSTFlag add_special Function90a8d add_special SpecialNone diff --git a/macros/scripts/events.asm b/macros/scripts/events.asm index 6e2856d1..3a6578d7 100644 --- a/macros/scripts/events.asm +++ b/macros/scripts/events.asm @@ -800,12 +800,12 @@ playmusic: MACRO dw \1 ; music_pointer ENDM - enum encountermusic_command ; $80 + enum encountermusic_command ; $7f encountermusic: MACRO db encountermusic_command ENDM - enum musicfadeout_command ; $81 + enum musicfadeout_command ; $80 musicfadeout: MACRO db musicfadeout_command dw \1 ; music @@ -936,18 +936,18 @@ askforphonenumber: MACRO db \1 ; number ENDM - enum phonecall_command ; $98 + enum phonecall_command ; $97 phonecall: MACRO db phonecall_command dw \1 ; caller_name ENDM - enum hangup_command ; $99 + enum hangup_command ; $98 hangup: MACRO db hangup_command ENDM - enum describedecoration_command ; $9a + enum describedecoration_command ; $99 describedecoration: MACRO db describedecoration_command db \1 ; byte @@ -1243,9 +1243,9 @@ InitClock: dr $90641, $908dc SetDayOfWeek: dr $908dc, $90a1b -Function90a1b: +InitialSetDSTFlag: dr $90a1b, $90a54 -Function90a54: +InitialClearDSTFlag: dr $90a54, $90a8d Function90a8d: dr $90a8d, $90b0f @@ -1935,16 +1935,15 @@ SECTION "bank5f", ROMX, BANK[$5f] dr $17c000, $180000 SECTION "bank60", ROMX, BANK[$60] -;INCLUDE "maps/ElmsLab.asm" -;INCLUDE "maps/PlayersHouse1F.asm" -;INCLUDE "maps/PlayersHouse2F.asm" -;INCLUDE "maps/PlayersNeighborsHouse.asm" -;INCLUDE "maps/ElmsHouse.asm" -;INCLUDE "maps/Route26HealHouse.asm" -;INCLUDE "maps/DayOfWeekSiblingsHouse.asm" -;INCLUDE "maps/Route27SandstormHouse.asm" -;INCLUDE "maps/Route29Route46Gate.asm" - dr $180000, $184000 +INCLUDE "maps/ElmsLab.asm" +INCLUDE "maps/PlayersHouse1F.asm" +INCLUDE "maps/PlayersHouse2F.asm" +INCLUDE "maps/PlayersNeighborsHouse.asm" +INCLUDE "maps/ElmsHouse.asm" +INCLUDE "maps/Route26HealHouse.asm" +INCLUDE "maps/DayOfWeekSiblingsHouse.asm" +INCLUDE "maps/Route27SandstormHouse.asm" +INCLUDE "maps/Route29Route46Gate.asm" SECTION "bank61", ROMX, BANK[$61] INCLUDE "maps/FightingDojo.asm" diff --git a/maps/DayOfWeekSiblingsHouse.asm b/maps/DayOfWeekSiblingsHouse.asm new file mode 100644 index 00000000..73eca15d --- /dev/null +++ b/maps/DayOfWeekSiblingsHouse.asm @@ -0,0 +1,83 @@ + const_def 2 ; object constants + const DAYOFWEEKSIBLINGSHOUSE_POKEDEX + +DayOfWeekSiblingsHouse_MapScripts: + db 0 ; scene scripts + + db 0 ; callbacks + +DayOfWeekSiblingsHousePokedexScript: + opentext + writetext DayOfWeekSiblingsHousePokedexText1 + yesorno + iffalse .End + writetext DayOfWeekSiblingsHousePokedexText2 + yesorno + iffalse .End + writetext DayOfWeekSiblingsHousePokedexText3 + waitbutton +.End: + closetext + end + +DayOfWeekSiblingsHousePokedexText1: + text "There's something" + line "written here." + + para "Read it?" + done + +DayOfWeekSiblingsHousePokedexText2: + text "To my brothers and" + line "sisters:" + + para "We take pride in" + line "serving #MON" + cont "trainers." + + para "When trainers talk" + line "to you, give them" + cont "something useful." + + para "Love," + line "MONICA" + + para "Keep reading?" + done + +DayOfWeekSiblingsHousePokedexText3: + text "Monday, MONICA" + line "ROUTE 40" + + para "Tuesday, TUSCANY" + line "ROUTE 29" + + para "Wednesday, WESLEY" + line "LAKE OF RAGE" + + para "Thursday, ARTHUR" + line "ROUTE 36" + + para "Friday, FRIEDA" + line "ROUTE 32" + + para "Saturday, SANTOS" + line "BLACKTHORN CITY" + + para "Sunday, SUNNY" + line "ROUTE 37" + done + +DayOfWeekSiblingsHouse_MapEvents: + db 0, 0 ; filler + + db 2 ; warp events + warp_event 2, 7, ROUTE_26, 3 + warp_event 3, 7, ROUTE_26, 3 + + db 0 ; coord events + + db 0 ; bg events + + db 1 ; object events + object_event 3, 3, SPRITE_POKEDEX, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, DayOfWeekSiblingsHousePokedexScript, -1 diff --git a/maps/ElmsHouse.asm b/maps/ElmsHouse.asm new file mode 100644 index 00000000..49f06126 --- /dev/null +++ b/maps/ElmsHouse.asm @@ -0,0 +1,100 @@ + const_def 2 ; object constants + const ELMSHOUSE_ELMS_WIFE + const ELMSHOUSE_ELMS_SON + +ElmsHouse_MapScripts: + db 0 ; scene scripts + + db 0 ; callbacks + +ElmsWife: + jumptextfaceplayer ElmsWifeText + +ElmsSon: + jumptextfaceplayer ElmsSonText + +ElmsHousePC: + jumptext ElmsHousePCText + +ElmsHouseBookshelf: + jumpstd difficultbookshelf + +ElmsWifeText: + text "Hi, <PLAYER>! My" + line "husband's always" + + para "so busy--I hope" + line "he's OK." + + para "When he's caught" + line "up in his #MON" + + para "research, he even" + line "forgets to eat." + done + +ElmsSonText: + text "When I grow up," + line "I'm going to help" + cont "my Dad!" + + para "I'm going to be a" + line "great #MON" + cont "professor!" + done + +ElmsHouseLabFoodText: +; unused + text "There's some food" + line "here. It must be" + cont "for the LAB." + done + +ElmsHousePokemonFoodText: +; unused + text "There's some food" + line "here. This must be" + cont "for #MON." + done + +ElmsHousePCText: + text "#MON. Where do" + line "they come from? " + + para "Where are they" + line "going?" + + para "Why has no one" + line "ever witnessed a" + cont "#MON's birth?" + + para "I want to know! I" + line "will dedicate my" + + para "life to the study" + line "of #MON!" + + para "…" + + para "It's a part of" + line "PROF.ELM's re-" + cont "search papers." + done + +ElmsHouse_MapEvents: + db 0, 0 ; filler + + db 2 ; warp events + warp_event 2, 7, NEW_BARK_TOWN, 4 + warp_event 3, 7, NEW_BARK_TOWN, 4 + + db 0 ; coord events + + db 3 ; bg events + bg_event 0, 1, BGEVENT_READ, ElmsHousePC + bg_event 6, 1, BGEVENT_READ, ElmsHouseBookshelf + bg_event 7, 1, BGEVENT_READ, ElmsHouseBookshelf + + db 2 ; object events + object_event 1, 5, SPRITE_TEACHER, SPRITEMOVEDATA_WALK_UP_DOWN, 0, 1, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_SCRIPT, 0, ElmsWife, -1 + object_event 5, 4, SPRITE_BUG_CATCHER, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, ElmsSon, -1 diff --git a/maps/ElmsLab.asm b/maps/ElmsLab.asm new file mode 100644 index 00000000..a74212f4 --- /dev/null +++ b/maps/ElmsLab.asm @@ -0,0 +1,1258 @@ + const_def 2 ; object constants + const ELMSLAB_ELM + const ELMSLAB_ELMS_AIDE + const ELMSLAB_POKE_BALL1 + const ELMSLAB_POKE_BALL2 + const ELMSLAB_POKE_BALL3 + const ELMSLAB_OFFICER + +ElmsLab_MapScripts: + db 6 ; scene scripts + scene_script .MeetElm ; SCENE_DEFAULT + scene_script .DummyScene1 ; SCENE_ELMSLAB_CANT_LEAVE + scene_script .DummyScene2 ; SCENE_ELMSLAB_NOTHING + scene_script .DummyScene3 ; SCENE_ELMSLAB_MEET_OFFICER + scene_script .DummyScene4 ; SCENE_ELMSLAB_UNUSED + scene_script .DummyScene5 ; SCENE_ELMSLAB_AIDE_GIVES_POTION + + db 0 ; callbacks + +.MeetElm: + priorityjump .WalkUpToElm + end + +.DummyScene1: + end + +.DummyScene2: + end + +.DummyScene3: + end + +.DummyScene4: + end + +.DummyScene5: + end + +.WalkUpToElm: + applymovement PLAYER, ElmsLab_WalkUpToElmMovement + turnobject ELMSLAB_ELM, LEFT + opentext + writetext ElmText_Intro + waitbutton + closetext + setscene SCENE_ELMSLAB_CANT_LEAVE + end + +ProfElmScript: + faceplayer + opentext + checkevent EVENT_GOT_SS_TICKET_FROM_ELM + iftrue ElmCheckMasterBall + checkevent EVENT_BEAT_ELITE_FOUR + iftrue ElmGiveTicketScript +ElmCheckMasterBall: + checkevent EVENT_GOT_MASTER_BALL_FROM_ELM + iftrue ElmCheckEverstone + checkflag ENGINE_RISINGBADGE + iftrue ElmGiveMasterBallScript +ElmCheckEverstone: + checkevent EVENT_GOT_EVERSTONE_FROM_ELM + iftrue ElmScript_CallYou + checkevent EVENT_SHOWED_TOGEPI_TO_ELM + iftrue ElmGiveEverstoneScript + checkevent EVENT_TOLD_ELM_ABOUT_TOGEPI_OVER_THE_PHONE + iffalse ElmCheckTogepiEgg + writebyte TOGEPI + special FindPartyMonThatSpeciesYourTrainerID + iftrue ShowElmTogepiScript + writebyte TOGETIC + special FindPartyMonThatSpeciesYourTrainerID + iftrue ShowElmTogepiScript + writetext ElmThoughtEggHatchedText + waitbutton + closetext + end + +ElmEggHatchedScript: + writebyte TOGEPI + special FindPartyMonThatSpeciesYourTrainerID + iftrue ShowElmTogepiScript + writebyte TOGETIC + special FindPartyMonThatSpeciesYourTrainerID + iftrue ShowElmTogepiScript + jump ElmCheckGotEggAgain + +ElmCheckTogepiEgg: + checkevent EVENT_GOT_TOGEPI_EGG_FROM_ELMS_AIDE + iffalse ElmCheckGotEggAgain + checkevent EVENT_TOGEPI_HATCHED + iftrue ElmEggHatchedScript +ElmCheckGotEggAgain: + checkevent EVENT_GOT_TOGEPI_EGG_FROM_ELMS_AIDE ; why are we checking it again? + iftrue ElmWaitingEggHatchScript + checkflag ENGINE_ZEPHYRBADGE + iftrue ElmAideHasEggScript + checkevent EVENT_GAVE_MYSTERY_EGG_TO_ELM + iftrue ElmStudyingEggScript + checkevent EVENT_GOT_MYSTERY_EGG_FROM_MR_POKEMON + iftrue ElmAfterTheftScript + checkevent EVENT_GOT_A_POKEMON_FROM_ELM + iftrue ElmDescribesMrPokemonScript + writetext ElmText_LetYourMonBattleIt + waitbutton + closetext + end + +LabTryToLeaveScript: + turnobject ELMSLAB_ELM, DOWN + opentext + writetext LabWhereGoingText + waitbutton + closetext + applymovement PLAYER, ElmsLab_CantLeaveMovement + end + +CyndaquilPokeBallScript: + checkevent EVENT_GOT_A_POKEMON_FROM_ELM + iftrue LookAtElmPokeBallScript + turnobject ELMSLAB_ELM, DOWN + refreshscreen + pokepic CYNDAQUIL + cry CYNDAQUIL + waitbutton + closepokepic + opentext + writetext TakeCyndaquilText + yesorno + iffalse DidntChooseStarterScript + disappear ELMSLAB_POKE_BALL1 + setevent EVENT_GOT_CYNDAQUIL_FROM_ELM + writetext ChoseStarterText + buttonsound + waitsfx + pokenamemem CYNDAQUIL, MEM_BUFFER_0 + writetext ReceivedStarterText + playsound SFX_CAUGHT_MON + waitsfx + buttonsound + givepoke CYNDAQUIL, 5, BERRY + closetext + checkcode VAR_FACING + ifequal RIGHT, ElmDirectionsScript + applymovement PLAYER, AfterCyndaquilMovement + jump ElmDirectionsScript + +TotodilePokeBallScript: + checkevent EVENT_GOT_A_POKEMON_FROM_ELM + iftrue LookAtElmPokeBallScript + turnobject ELMSLAB_ELM, DOWN + refreshscreen + pokepic TOTODILE + cry TOTODILE + waitbutton + closepokepic + opentext + writetext TakeTotodileText + yesorno + iffalse DidntChooseStarterScript + disappear ELMSLAB_POKE_BALL2 + setevent EVENT_GOT_TOTODILE_FROM_ELM + writetext ChoseStarterText + buttonsound + waitsfx + pokenamemem TOTODILE, MEM_BUFFER_0 + writetext ReceivedStarterText + playsound SFX_CAUGHT_MON + waitsfx + buttonsound + givepoke TOTODILE, 5, BERRY + closetext + applymovement PLAYER, AfterTotodileMovement + jump ElmDirectionsScript + +ChikoritaPokeBallScript: + checkevent EVENT_GOT_A_POKEMON_FROM_ELM + iftrue LookAtElmPokeBallScript + turnobject ELMSLAB_ELM, DOWN + refreshscreen + pokepic CHIKORITA + cry CHIKORITA + waitbutton + closepokepic + opentext + writetext TakeChikoritaText + yesorno + iffalse DidntChooseStarterScript + disappear ELMSLAB_POKE_BALL3 + setevent EVENT_GOT_CHIKORITA_FROM_ELM + writetext ChoseStarterText + buttonsound + waitsfx + pokenamemem CHIKORITA, MEM_BUFFER_0 + writetext ReceivedStarterText + playsound SFX_CAUGHT_MON + waitsfx + buttonsound + givepoke CHIKORITA, 5, BERRY + closetext + applymovement PLAYER, AfterChikoritaMovement + jump ElmDirectionsScript + +DidntChooseStarterScript: + writetext DidntChooseStarterText + waitbutton + closetext + end + +ElmDirectionsScript: + turnobject PLAYER, UP + opentext + writetext ElmDirectionsText1 + waitbutton + closetext + turnobject ELMSLAB_ELM, LEFT + opentext + writetext ElmDirectionsText2 + waitbutton + closetext + turnobject ELMSLAB_ELM, DOWN + opentext + writetext ElmDirectionsText3 + buttonsound + waitsfx + addcellnum PHONE_ELM + writetext GotElmsNumberText + playsound SFX_REGISTER_PHONE_NUMBER + waitsfx + waitbutton + closetext + setevent EVENT_GOT_A_POKEMON_FROM_ELM + setevent EVENT_RIVAL_CHERRYGROVE_CITY + setscene SCENE_ELMSLAB_AIDE_GIVES_POTION + setmapscene NEW_BARK_TOWN, SCENE_FINISHED + end + +ElmDescribesMrPokemonScript: + writetext ElmDescribesMrPokemonText + waitbutton + closetext + end + +LookAtElmPokeBallScript: + opentext + writetext ElmPokeBallText + waitbutton + closetext + end + +ElmsLabHealingMachine: + opentext + checkevent EVENT_GOT_A_POKEMON_FROM_ELM + iftrue .CanHeal + writetext ElmsLabHealingMachineText1 + waitbutton + closetext + end + +.CanHeal: + writetext ElmsLabHealingMachineText2 + yesorno + iftrue ElmsLabHealingMachine_HealParty + closetext + end + +ElmsLabHealingMachine_HealParty: + special HealParty + playmusic MUSIC_NONE + writebyte HEALMACHINE_ELMS_LAB + special HealMachineAnim + pause 30 + special RestartMapMusic + closetext + end + +ElmAfterTheftDoneScript: + waitbutton + closetext + end + +ElmAfterTheftScript: + writetext ElmAfterTheftText1 + checkitem MYSTERY_EGG + iffalse ElmAfterTheftDoneScript + buttonsound + writetext ElmAfterTheftText2 + waitbutton + takeitem MYSTERY_EGG + scall ElmJumpBackScript1 + writetext ElmAfterTheftText3 + waitbutton + scall ElmJumpBackScript2 + writetext ElmAfterTheftText4 + buttonsound + writetext ElmAfterTheftText5 + buttonsound + setevent EVENT_GAVE_MYSTERY_EGG_TO_ELM + setmapscene ROUTE_29, SCENE_ROUTE29_CATCH_TUTORIAL + clearevent EVENT_ROUTE_30_YOUNGSTER_JOEY + setevent EVENT_ROUTE_30_BATTLE + writetext ElmAfterTheftText6 + waitbutton + closetext + setscene SCENE_ELMSLAB_AIDE_GIVES_POKE_BALLS + end + +ElmStudyingEggScript: + writetext ElmStudyingEggText + waitbutton + closetext + end + +ElmAideHasEggScript: + writetext ElmAideHasEggText + waitbutton + closetext + end + +ElmWaitingEggHatchScript: + writetext ElmWaitingEggHatchText + waitbutton + closetext + end + +ShowElmTogepiScript: + writetext ShowElmTogepiText1 + waitbutton + closetext + showemote EMOTE_SHOCK, ELMSLAB_ELM, 15 + setevent EVENT_SHOWED_TOGEPI_TO_ELM + opentext + writetext ShowElmTogepiText2 + buttonsound + writetext ShowElmTogepiText3 + buttonsound +ElmGiveEverstoneScript: + writetext ElmGiveEverstoneText1 + buttonsound + verbosegiveitem EVERSTONE + iffalse ElmScript_NoRoomForEverstone + writetext ElmGiveEverstoneText2 + waitbutton + closetext + setevent EVENT_GOT_EVERSTONE_FROM_ELM + end + +ElmScript_CallYou: + writetext ElmText_CallYou + waitbutton +ElmScript_NoRoomForEverstone: + closetext + end + +ElmGiveMasterBallScript: + writetext ElmGiveMasterBallText1 + buttonsound + verbosegiveitem MASTER_BALL + iffalse .notdone + setevent EVENT_GOT_MASTER_BALL_FROM_ELM + writetext ElmGiveMasterBallText2 + waitbutton +.notdone + closetext + end + +ElmGiveTicketScript: + writetext ElmGiveTicketText1 + buttonsound + verbosegiveitem S_S_TICKET + setevent EVENT_GOT_SS_TICKET_FROM_ELM + writetext ElmGiveTicketText2 + waitbutton + closetext + end + +ElmJumpBackScript1: + closetext + checkcode VAR_FACING + ifequal DOWN, ElmJumpDownScript + ifequal UP, ElmJumpUpScript + ifequal LEFT, ElmJumpLeftScript + ifequal RIGHT, ElmJumpRightScript + end + +ElmJumpBackScript2: + closetext + checkcode VAR_FACING + ifequal DOWN, ElmJumpUpScript + ifequal UP, ElmJumpDownScript + ifequal LEFT, ElmJumpRightScript + ifequal RIGHT, ElmJumpLeftScript + end + +ElmJumpUpScript: + applymovement ELMSLAB_ELM, ElmJumpUpMovement + opentext + end + +ElmJumpDownScript: + applymovement ELMSLAB_ELM, ElmJumpDownMovement + opentext + end + +ElmJumpLeftScript: + applymovement ELMSLAB_ELM, ElmJumpLeftMovement + opentext + end + +ElmJumpRightScript: + applymovement ELMSLAB_ELM, ElmJumpRightMovement + opentext + end + +AideScript_WalkPotion1: + applymovement ELMSLAB_ELMS_AIDE, AideWalksRight1 + turnobject PLAYER, DOWN + scall AideScript_GivePotion + applymovement ELMSLAB_ELMS_AIDE, AideWalksLeft1 + end + +AideScript_WalkPotion2: + applymovement ELMSLAB_ELMS_AIDE, AideWalksRight2 + turnobject PLAYER, DOWN + scall AideScript_GivePotion + applymovement ELMSLAB_ELMS_AIDE, AideWalksLeft2 + end + +AideScript_GivePotion: + opentext + writetext AideText_GiveYouPotion + buttonsound + verbosegiveitem POTION + writetext AideText_AlwaysBusy + waitbutton + closetext + setscene SCENE_ELMSLAB_NOTHING + end + +AideScript_WalkBalls1: + applymovement ELMSLAB_ELMS_AIDE, AideWalksRight1 + turnobject PLAYER, DOWN + scall AideScript_GiveYouBalls + applymovement ELMSLAB_ELMS_AIDE, AideWalksLeft1 + end + +AideScript_WalkBalls2: + applymovement ELMSLAB_ELMS_AIDE, AideWalksRight2 + turnobject PLAYER, DOWN + scall AideScript_GiveYouBalls + applymovement ELMSLAB_ELMS_AIDE, AideWalksLeft2 + end + +AideScript_GiveYouBalls: + opentext + writetext AideText_GiveYouBalls + buttonsound + itemtotext POKE_BALL, MEM_BUFFER_1 + scall AideScript_ReceiveTheBalls + giveitem POKE_BALL, 5 + writetext AideText_ExplainBalls + buttonsound + itemnotify + closetext + setscene SCENE_ELMSLAB_NOTHING + end + +AideScript_ReceiveTheBalls: + jumpstd receiveitem + end + +ElmsAideScript: + faceplayer + opentext + checkevent EVENT_GOT_TOGEPI_EGG_FROM_ELMS_AIDE + iftrue AideScript_AfterTheft + checkevent EVENT_GAVE_MYSTERY_EGG_TO_ELM + iftrue AideScript_ExplainBalls + checkevent EVENT_GOT_MYSTERY_EGG_FROM_MR_POKEMON + iftrue AideScript_TheftTestimony + writetext AideText_AlwaysBusy + waitbutton + closetext + end + +AideScript_TheftTestimony: + writetext AideText_TheftTestimony + waitbutton + closetext + end + +AideScript_ExplainBalls: + writetext AideText_ExplainBalls + waitbutton + closetext + end + +AideScript_AfterTheft: + writetext AideText_AfterTheft + waitbutton + closetext + end + +MeetCopScript2: + applymovement PLAYER, MeetCopScript2_StepLeft + +MeetCopScript: + applymovement PLAYER, MeetCopScript_WalkUp +CopScript: + turnobject ELMSLAB_OFFICER, LEFT + opentext + writetext ElmsLabOfficerText1 + buttonsound + special NameRival + writetext ElmsLabOfficerText2 + waitbutton + closetext + applymovement ELMSLAB_OFFICER, OfficerLeavesMovement + disappear ELMSLAB_OFFICER + setscene SCENE_ELMSLAB_NOTHING + end + +ElmsLabWindow: + opentext + checkflag ENGINE_FLYPOINT_VIOLET + iftrue .Normal + checkevent EVENT_ELM_CALLED_ABOUT_STOLEN_POKEMON + iftrue .BreakIn + jump .Normal + +.BreakIn: + writetext ElmsLabWindowText2 + waitbutton + closetext + end + +.Normal: + writetext ElmsLabWindowText1 + waitbutton + closetext + end + +ElmsLabTravelTip1: + jumptext ElmsLabTravelTip1Text + +ElmsLabTravelTip2: + jumptext ElmsLabTravelTip2Text + +ElmsLabTravelTip3: + jumptext ElmsLabTravelTip3Text + +ElmsLabTravelTip4: + jumptext ElmsLabTravelTip4Text + +ElmsLabTrashcan: + jumptext ElmsLabTrashcanText + +ElmsLabTrashcan2: +; unused + jumpstd trashcan + +ElmsLabBookshelf: + jumpstd difficultbookshelf + +ElmsLab_WalkUpToElmMovement: + step UP + step UP + step UP + step UP + step UP + step UP + step UP + step UP + step UP + turn_head RIGHT + step_end + +ElmsLab_CantLeaveMovement: + step UP + step_end + +MeetCopScript2_StepLeft: + step LEFT + step_end + +MeetCopScript_WalkUp: + step UP + step UP + turn_head RIGHT + step_end + +OfficerLeavesMovement: + step DOWN + step DOWN + step DOWN + step DOWN + step DOWN + step_end + +AideWalksRight1: + step RIGHT + step RIGHT + turn_head UP + step_end + +AideWalksRight2: + step RIGHT + step RIGHT + step RIGHT + turn_head UP + step_end + +AideWalksLeft1: + step LEFT + step LEFT + turn_head DOWN + step_end + +AideWalksLeft2: + step LEFT + step LEFT + step LEFT + turn_head DOWN + step_end + +ElmJumpUpMovement: + fix_facing + big_step UP + remove_fixed_facing + step_end + +ElmJumpDownMovement: + fix_facing + big_step DOWN + remove_fixed_facing + step_end + +ElmJumpLeftMovement: + fix_facing + big_step LEFT + remove_fixed_facing + step_end + +ElmJumpRightMovement: + fix_facing + big_step RIGHT + remove_fixed_facing + step_end + +AfterCyndaquilMovement: + step LEFT + step UP + step_end + +AfterTotodileMovement: + step LEFT + step LEFT + step UP + step_end + +AfterChikoritaMovement: + step LEFT + step LEFT + step LEFT + step UP + step_end + +ElmText_Intro: + text "ELM: <PLAYER>!" + line "There you are!" + + para "I needed to ask" + line "you a favor." + + para "I have an acquain-" + line "tance called MR." + cont "#MON." + + para "He keeps finding" + line "weird things and" + + para "raving about his" + line "discoveries." + + para "Anyway, I just got" + line "an e-mail from him" + + para "saying that this" + line "time it's real." + + para "It is intriguing," + line "but we're busy" + + para "with our #MON" + line "research." + + para "Could you look" + line "into it for us?" + + para "I'll give you a" + line "#MON for a" + cont "partner." + + para "They're all rare" + line "#MON that we" + cont "just found." + + para "Go on. Pick one!" + done + +ElmText_LetYourMonBattleIt: + text "If a wild #MON" + line "appears, let your" + cont "#MON battle it!" + done + +LabWhereGoingText: + text "ELM: Wait! Where" + line "are you going?" + done + +TakeCyndaquilText: + text "ELM: You'll take" + line "CYNDAQUIL, the" + cont "fire #MON?" + done + +TakeTotodileText: + text "ELM: Do you want" + line "TOTODILE, the" + cont "water #MON?" + done + +TakeChikoritaText: + text "ELM: So, you like" + line "CHIKORITA, the" + cont "grass #MON?" + done + +DidntChooseStarterText: + text "ELM: Think it over" + line "carefully." + + para "Your partner is" + line "important." + done + +ChoseStarterText: + text "ELM: I think" + line "that's a great" + cont "#MON too!" + done + +ReceivedStarterText: + text "<PLAYER> received" + line "@" + text_from_ram wStringBuffer3 + text "!" + done + +ElmDirectionsText1: + text "MR.#MON lives" + line "near CHERRYGROVE," + cont "the next city." + + para "It's almost a" + line "direct route to" + cont "there." + done + +ElmDirectionsText2: + text "If your #MON is" + line "hurt, you should" + + para "heal it with this" + line "machine." + done + +ElmDirectionsText3: + text "Oh, here's my" + line "phone number." + + para "Call me if some-" + line "thing comes up." + done + +GotElmsNumberText: + text "<PLAYER> got ELM's" + line "phone number." + done + +ElmDescribesMrPokemonText: + text "MR.#MON goes" + line "everywhere and" + cont "finds rarities." + + para "Too bad they're" + line "just rare and" + cont "not very useful…" + + para "<PLAYER>, I'm" + line "counting on you!" + done + +ElmPokeBallText: + text "It contains a" + line "#MON caught by" + cont "PROF.ELM." + done + +ElmsLabHealingMachineText1: + text "I wonder what this" + line "does?" + done + +ElmsLabHealingMachineText2: + text "Heal #MON?" + done + +ElmAfterTheftText1: + text "ELM: <PLAYER>, this" + line "is terrible…" + + para "Oh, yes, what was" + line "MR.#MON's big" + cont "discovery?" + done + +ElmAfterTheftText2: + text "<PLAYER> handed" + line "the MYSTERY EGG to" + cont "PROF.ELM." + done + +ElmAfterTheftText3: + text "ELM: This?" + done + +ElmAfterTheftText4: + text "But… Is it a" + line "#MON EGG?" + + para "If it is, it is a" + line "great discovery!" + done + +ElmAfterTheftText5: + text "ELM: What?!?" + + para "PROF.OAK gave you" + line "a #DEX?" + + para "<PLAYER>, is that" + line "true? Th-that's" + cont "incredible!" + + para "He is superb at" + line "seeing the poten-" + cont "tial of people as" + cont "trainers." + + para "Wow, <PLAYER>. You" + line "may have what it" + + para "takes to become" + line "the CHAMPION." + + para "You seem to be" + line "getting on great" + cont "with #MON too." + + para "You should take" + line "the #MON GYM" + cont "challenge." + + para "The closest GYM" + line "would be the one" + cont "in VIOLET CITY." + done + +ElmAfterTheftText6: + text "…<PLAYER>. The" + line "road to the" + + para "championship will" + line "be a long one." + + para "Before you leave," + line "make sure that you" + cont "talk to your mom." + done + +ElmStudyingEggText: + text "ELM: Don't give" + line "up! I'll call if" + + para "I learn anything" + line "about that EGG!" + done + +ElmAideHasEggText: + text "ELM: <PLAYER>?" + line "Didn't you meet my" + cont "assistant?" + + para "He should have met" + line "you with the EGG" + + para "at VIOLET CITY's" + line "#MON CENTER." + + para "You must have just" + line "missed him. Try to" + cont "catch him there." + done + +ElmWaitingEggHatchText: + text "ELM: Hey, has that" + line "EGG changed any?" + done + +ElmThoughtEggHatchedText: + text "<PLAYER>? I thought" + line "the EGG hatched." + + para "Where is the" + line "#MON?" + done + +ShowElmTogepiText1: + text "ELM: <PLAYER>, you" + line "look great!" + done + +ShowElmTogepiText2: + text "What?" + line "That #MON!?!" + done + +ShowElmTogepiText3: + text "The EGG hatched!" + line "So, #MON are" + cont "born from EGGS…" + + para "No, perhaps not" + line "all #MON are." + + para "Wow, there's still" + line "a lot of research" + cont "to be done." + done + +ElmGiveEverstoneText1: + text "Thanks, <PLAYER>!" + line "You're helping" + + para "unravel #MON" + line "mysteries for us!" + + para "I want you to have" + line "this as a token of" + cont "our appreciation." + done + +ElmGiveEverstoneText2: + text "That's an" + line "EVERSTONE." + + para "Some species of" + line "#MON evolve" + + para "when they grow to" + line "certain levels." + + para "A #MON holding" + line "the EVERSTONE" + cont "won't evolve." + + para "Give it to a #-" + line "MON you don't want" + cont "to evolve." + done + +ElmText_CallYou: + text "ELM: <PLAYER>, I'll" + line "call you if any-" + cont "thing comes up." + done + +AideText_AfterTheft: + text "…sigh… That" + line "stolen #MON." + + para "I wonder how it's" + line "doing." + + para "They say a #MON" + line "raised by a bad" + + para "person turns bad" + line "itself." + done + +ElmGiveMasterBallText1: + text "ELM: Hi, <PLAYER>!" + line "Thanks to you, my" + + para "research is going" + line "great!" + + para "Take this as a" + line "token of my" + cont "appreciation." + done + +ElmGiveMasterBallText2: + text "The MASTER BALL is" + line "the best!" + + para "It's the ultimate" + line "BALL! It'll catch" + + para "any #MON with-" + line "out fail." + + para "It's given only to" + line "recognized #MON" + cont "researchers." + + para "I think you can" + line "make better use of" + + para "it than I can," + line "<PLAYER>!" + done + +ElmGiveTicketText1: + text "ELM: <PLAYER>!" + line "There you are!" + + para "I called because I" + line "have something for" + cont "you." + + para "See? It's an" + line "S.S.TICKET." + + para "Now you can catch" + line "#MON in KANTO." + done + +ElmGiveTicketText2: + text "The ship departs" + line "from OLIVINE CITY." + + para "But you knew that" + line "already, <PLAYER>." + + para "After all, you've" + line "traveled all over" + cont "with your #MON." + + para "Give my regards to" + line "PROF.OAK in KANTO!" + done + +ElmsLabSignpostText_Egg: + text "It's the #MON" + line "EGG being studied" + cont "by PROF.ELM." + done + +AideText_GiveYouPotion: + text "<PLAYER>, I want" + line "you to have this" + cont "for your errand." + done + +AideText_AlwaysBusy: + text "There are only two" + line "of us, so we're" + cont "always busy." + done + +AideText_TheftTestimony: + text "There was a loud" + line "noise outside…" + + para "When we went to" + line "look, someone" + cont "stole a #MON." + + para "It's unbelievable" + line "that anyone would" + cont "do that!" + + para "…sigh… That" + line "stolen #MON." + + para "I wonder how it's" + line "doing." + + para "They say a #MON" + line "raised by a bad" + + para "person turns bad" + line "itself." + done + +AideText_GiveYouBalls: + text "<PLAYER>!" + + para "Use these on your" + line "#DEX quest!" + done + +AideText_ExplainBalls: + text "To add to your" + line "#DEX, you have" + cont "to catch #MON." + + para "Throw # BALLS" + line "at wild #MON" + cont "to get them." + done + +ElmsLabOfficerText1: + text "I heard a #MON" + line "was stolen here…" + + para "I was just getting" + line "some information" + cont "from PROF.ELM." + + para "Apparently, it was" + line "a young male with" + cont "long, red hair…" + + para "What?" + + para "You battled a" + line "trainer like that?" + + para "Did you happen to" + line "get his name?" + done + +ElmsLabOfficerText2: + text "OK! So <RIVAL>" + line "was his name." + + para "Thanks for helping" + line "my investigation!" + done + +ElmsLabWindowText1: + text "The window's open." + + para "A pleasant breeze" + line "is blowing in." + done + +ElmsLabWindowText2: + text "He broke in" + line "through here!" + done + +ElmsLabTravelTip1Text: + text "<PLAYER> opened a" + line "book." + + para "Travel Tip 1:" + + para "Press START to" + line "open the MENU." + done + +ElmsLabTravelTip2Text: + text "<PLAYER> opened a" + line "book." + + para "Travel Tip 2:" + + para "Record your trip" + line "with SAVE!" + done + +ElmsLabTravelTip3Text: + text "<PLAYER> opened a" + line "book." + + para "Travel Tip 3:" + + para "Open your PACK and" + line "press SELECT to" + cont "move items." + done + +ElmsLabTravelTip4Text: + text "<PLAYER> opened a" + line "book." + + para "Travel Tip 4:" + + para "Check your #MON" + line "moves. Press the" + + para "A Button to switch" + line "moves." + done + +ElmsLabTrashcanText: + text "The wrapper from" + line "the snack PROF.ELM" + cont "ate is in there…" + done + +ElmsLab_MapEvents: + db 0, 0 ; filler + + db 2 ; warp events + warp_event 4, 11, NEW_BARK_TOWN, 1 + warp_event 5, 11, NEW_BARK_TOWN, 1 + + db 8 ; coord events + coord_event 4, 6, SCENE_ELMSLAB_CANT_LEAVE, LabTryToLeaveScript + coord_event 5, 6, SCENE_ELMSLAB_CANT_LEAVE, LabTryToLeaveScript + coord_event 4, 5, SCENE_ELMSLAB_MEET_OFFICER, MeetCopScript + coord_event 5, 5, SCENE_ELMSLAB_MEET_OFFICER, MeetCopScript2 + coord_event 4, 8, SCENE_ELMSLAB_AIDE_GIVES_POTION, AideScript_WalkPotion1 + coord_event 5, 8, SCENE_ELMSLAB_AIDE_GIVES_POTION, AideScript_WalkPotion2 + coord_event 4, 8, SCENE_ELMSLAB_AIDE_GIVES_POKE_BALLS, AideScript_WalkBalls1 + coord_event 5, 8, SCENE_ELMSLAB_AIDE_GIVES_POKE_BALLS, AideScript_WalkBalls2 + + db 15 ; bg events + bg_event 2, 1, BGEVENT_READ, ElmsLabHealingMachine + bg_event 6, 1, BGEVENT_READ, ElmsLabBookshelf + bg_event 7, 1, BGEVENT_READ, ElmsLabBookshelf + bg_event 8, 1, BGEVENT_READ, ElmsLabBookshelf + bg_event 9, 1, BGEVENT_READ, ElmsLabBookshelf + bg_event 0, 7, BGEVENT_READ, ElmsLabTravelTip1 + bg_event 1, 7, BGEVENT_READ, ElmsLabTravelTip2 + bg_event 2, 7, BGEVENT_READ, ElmsLabTravelTip3 + bg_event 3, 7, BGEVENT_READ, ElmsLabTravelTip4 + bg_event 6, 7, BGEVENT_READ, ElmsLabBookshelf + bg_event 7, 7, BGEVENT_READ, ElmsLabBookshelf + bg_event 8, 7, BGEVENT_READ, ElmsLabBookshelf + bg_event 9, 7, BGEVENT_READ, ElmsLabBookshelf + bg_event 9, 3, BGEVENT_READ, ElmsLabTrashcan + bg_event 5, 0, BGEVENT_READ, ElmsLabWindow + + db 6 ; object events + object_event 5, 2, SPRITE_ELM, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, ProfElmScript, -1 + object_event 2, 9, SPRITE_SCIENTIST, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_SCRIPT, 0, ElmsAideScript, EVENT_ELMS_AIDE_IN_LAB + object_event 6, 3, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, CyndaquilPokeBallScript, EVENT_CYNDAQUIL_POKEBALL_IN_ELMS_LAB + object_event 7, 3, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, TotodilePokeBallScript, EVENT_TOTODILE_POKEBALL_IN_ELMS_LAB + object_event 8, 3, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, ChikoritaPokeBallScript, EVENT_CHIKORITA_POKEBALL_IN_ELMS_LAB + object_event 5, 3, SPRITE_OFFICER, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_SCRIPT, 0, CopScript, EVENT_COP_IN_ELMS_LAB diff --git a/maps/PlayersHouse1F.asm b/maps/PlayersHouse1F.asm new file mode 100644 index 00000000..91e0cc54 --- /dev/null +++ b/maps/PlayersHouse1F.asm @@ -0,0 +1,310 @@ + const_def 2 ; object constants + const PLAYERSHOUSE1F_MOM1 + const PLAYERSHOUSE1F_MOM2 + const PLAYERSHOUSE1F_MOM3 + const PLAYERSHOUSE1F_MOM4 + +PlayersHouse1F_MapScripts: + db 2 ; scene scripts + scene_script .DummyScene0 ; SCENE_DEFAULT + scene_script .DummyScene1 ; SCENE_FINISHED + + db 0 ; callbacks + +.DummyScene0: + priorityjump MeetMomScript + end + +.DummyScene1: + end + +MeetMomScript: + applymovement PLAYER, PlayersHouseDownstairsMovement + playmusic MUSIC_MOM + turnobject PLAYERSHOUSE1F_MOM1, UP + showemote EMOTE_SHOCK, PLAYERSHOUSE1F_MOM1, 15 + applymovement PLAYERSHOUSE1F_MOM1, MomWalksToPlayerMovement + opentext + writetext ElmsLookingForYouText + buttonsound + stringtotext GearName, MEM_BUFFER_1 + scall PlayersHouse1FReceiveItemStd + setflag ENGINE_POKEGEAR + setflag ENGINE_PHONE_CARD + addcellnum PHONE_MOM + setscene SCENE_FINISHED + setevent EVENT_PLAYERS_HOUSE_MOM_1 + clearevent EVENT_PLAYERS_HOUSE_MOM_2 + writetext MomGivesPokegearText + buttonsound + special SetDayOfWeek +.SetDayOfWeek: + writetext IsItDSTText + yesorno + iffalse .WrongDay + special InitialSetDSTFlag + yesorno + iffalse .SetDayOfWeek + jump .DayOfWeekDone + +.WrongDay: + special InitialClearDSTFlag + yesorno + iffalse .SetDayOfWeek +.DayOfWeekDone: + writetext ComeHomeForDSTText + yesorno + iffalse .ExplainPhone + jump .KnowPhone + +.KnowPhone: + writetext KnowTheInstructionsText + buttonsound + jump .FinishPhone + +.ExplainPhone: + writetext DontKnowTheInstructionsText + buttonsound + jump .FinishPhone + +.FinishPhone: + writetext InstructionsNextText + waitbutton + closetext + applymovement PLAYERSHOUSE1F_MOM1, MomTurnsBackMovement + special RestartMapMusic + end + +GearName: + db "#GEAR@" + +PlayersHouse1FReceiveItemStd: + jumpstd receiveitem + end + +MomScript: + faceplayer + opentext + checkevent EVENT_FIRST_TIME_BANKING_WITH_MOM + iftrue .FirstTimeBanking + checkevent EVENT_TALKED_TO_MOM_AFTER_MYSTERY_EGG_QUEST + iftrue .BankOfMom + checkevent EVENT_GAVE_MYSTERY_EGG_TO_ELM + iftrue .GaveMysteryEgg + checkevent EVENT_GOT_A_POKEMON_FROM_ELM + iftrue .GotAPokemon + writetext HurryUpElmIsWaitingText + waitbutton + closetext + end + +.GotAPokemon: + writetext SoWhatWasProfElmsErrandText + waitbutton + closetext + end + +.FirstTimeBanking: + writetext ImBehindYouText + waitbutton + closetext + end + +.GaveMysteryEgg: + setevent EVENT_FIRST_TIME_BANKING_WITH_MOM +.BankOfMom: + setevent EVENT_TALKED_TO_MOM_AFTER_MYSTERY_EGG_QUEST + special BankOfMom + waitbutton + closetext + end + +TVScript: + jumptext TVText + +StoveScript: + jumptext StoveText + +SinkScript: + jumptext SinkText + +FridgeScript: + jumptext FridgeText + +PlayersHouseDownstairsMovement: + step DOWN + step_end + +MomWalksToPlayerMovement: + slow_step RIGHT + slow_step RIGHT + slow_step UP + step_end + +MomTurnsBackMovement: + slow_step DOWN + slow_step LEFT + slow_step LEFT + step_end + +ElmsLookingForYouText: + text "Oh, <PLAYER>…! Our" + line "neighbor, PROF." + + para "ELM, was looking" + line "for you." + + para "He said he wanted" + line "you to do some-" + cont "thing for him." + + para "Oh! I almost for-" + line "got! Your #MON" + + para "GEAR is back from" + line "the repair shop." + + para "Here you go!" + done + +MomGivesPokegearText: + text "#MON GEAR, or" + line "just #GEAR." + + para "It's essential if" + line "you want to be a" + cont "good trainer." + + para "Oh, the day of the" + line "week isn't set." + + para "You mustn't forget" + line "that!" + done + +IsItDSTText: + text "Is it Daylight" + line "Saving Time now?" + done + +ComeHomeForDSTText: + text "Come home to" + line "adjust your clock" + + para "for Daylight" + line "Saving Time." + + para "By the way, do you" + line "know how to use" + cont "the PHONE?" + done + +KnowTheInstructionsText: + text "Don't you just" + line "turn the #GEAR" + + para "on and select the" + line "PHONE icon?" + done + +DontKnowTheInstructionsText: + text "I'll read the" + line "instructions." + + para "Turn the #GEAR" + line "on and select the" + cont "PHONE icon." + done + +InstructionsNextText: + text "Phone numbers are" + line "stored in memory." + + para "Just choose a name" + line "you want to call." + + para "Gee, isn't that" + line "convenient?" + done + +HurryUpElmIsWaitingText: + text "PROF.ELM is wait-" + line "ing for you." + + para "Hurry up, baby!" + done + +SoWhatWasProfElmsErrandText: + text "So, what was PROF." + line "ELM's errand?" + + para "…" + + para "That does sound" + line "challenging." + + para "But, you should be" + line "proud that people" + cont "rely on you." + done + +ImBehindYouText: + text "<PLAYER>, do it!" + + para "I'm behind you all" + line "the way!" + done + +StoveText: + text "Mom's specialty!" + + para "CINNABAR VOLCANO" + line "BURGER!" + done + +SinkText: + text "The sink is spot-" + line "less. Mom likes it" + cont "clean." + done + +FridgeText: + text "Let's see what's" + line "in the fridge…" + + para "FRESH WATER and" + line "tasty LEMONADE!" + done + +TVText: + text "There's a movie on" + line "TV: Stars dot the" + + para "sky as two boys" + line "ride on a train…" + + para "I'd better get" + line "rolling too!" + done + +PlayersHouse1F_MapEvents: + db 0, 0 ; filler + + db 3 ; warp events + warp_event 6, 7, NEW_BARK_TOWN, 2 + warp_event 7, 7, NEW_BARK_TOWN, 2 + warp_event 9, 0, PLAYERS_HOUSE_2F, 1 + + db 0 ; coord events + + db 4 ; bg events + bg_event 0, 1, BGEVENT_READ, StoveScript + bg_event 1, 1, BGEVENT_READ, SinkScript + bg_event 2, 1, BGEVENT_READ, FridgeScript + bg_event 4, 1, BGEVENT_READ, TVScript + + db 4 ; object events + object_event 7, 3, SPRITE_MOM, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, MomScript, EVENT_PLAYERS_HOUSE_MOM_1 + object_event 2, 2, SPRITE_MOM, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, MORN, 0, OBJECTTYPE_SCRIPT, 0, MomScript, EVENT_PLAYERS_HOUSE_MOM_2 + object_event 7, 3, SPRITE_MOM, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, DAY, 0, OBJECTTYPE_SCRIPT, 0, MomScript, EVENT_PLAYERS_HOUSE_MOM_2 + object_event 0, 2, SPRITE_MOM, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, NITE, 0, OBJECTTYPE_SCRIPT, 0, MomScript, EVENT_PLAYERS_HOUSE_MOM_2 diff --git a/maps/PlayersHouse2F.asm b/maps/PlayersHouse2F.asm new file mode 100644 index 00000000..711b9594 --- /dev/null +++ b/maps/PlayersHouse2F.asm @@ -0,0 +1,132 @@ + const_def 2 ; object constants + const PLAYERSHOUSE2F_CONSOLE + const PLAYERSHOUSE2F_DOLL_1 + const PLAYERSHOUSE2F_DOLL_2 + const PLAYERSHOUSE2F_BIG_DOLL + +PlayersHouse2F_MapScripts: + db 0 ; scene scripts + + db 2 ; callbacks + callback MAPCALLBACK_NEWMAP, .InitializeRoom + callback MAPCALLBACK_TILES, .SetSpawn + +; unused +.Null: + end + +.InitializeRoom: + special ToggleDecorationsVisibility + setevent EVENT_TEMPORARY_UNTIL_MAP_RELOAD_8 + checkevent EVENT_INITIALIZED_EVENTS + iftrue .SkipInitialization + jumpstd initializeevents + return + +.SkipInitialization: + return + +.SetSpawn: + special ToggleMaptileDecorations + return + +PlayersHouseRadioScript: + checkevent EVENT_GOT_A_POKEMON_FROM_ELM + iftrue .NormalRadio + checkevent EVENT_LISTENED_TO_INITIAL_RADIO + iftrue .AbbreviatedRadio + playmusic MUSIC_POKEMON_TALK + opentext + writetext PlayersRadioText1 + pause 45 + writetext PlayersRadioText2 + pause 45 + writetext PlayersRadioText3 + pause 45 + musicfadeout MUSIC_NEW_BARK_TOWN, 16 + writetext PlayersRadioText4 + pause 45 + closetext + setevent EVENT_LISTENED_TO_INITIAL_RADIO + end + +.NormalRadio: + jumpstd radio1 + +.AbbreviatedRadio: + opentext + writetext PlayersRadioText4 + pause 45 + closetext + end +PlayersHouseBookshelfScript: + jumpstd picturebookshelf + +PlayersHousePCScript: + opentext + special PlayersHousePC + iftrue .Warp + closetext + end +.Warp: + warp NONE, 0, 0 + end + +PlayersHousePosterScript: + conditional_event EVENT_PLAYERS_ROOM_POSTER, .Script + +.Script: + describedecoration DECODESC_POSTER + +Doll1Script: + describedecoration DECODESC_LEFT_DOLL + +Doll2Script: + describedecoration DECODESC_RIGHT_DOLL + +BigDollScript: + describedecoration DECODESC_BIG_DOLL + +GameConsoleScript: + describedecoration DECODESC_CONSOLE + + +PlayersRadioText1: + text "PROF.OAK'S #MON" + line "TALK! Please tune" + cont "in next time!" + done + +PlayersRadioText2: + text "#MON CHANNEL!" + done + +PlayersRadioText3: + text "This is DJ MARY," + line "your co-host!" + done + +PlayersRadioText4: + text "#MON!" + line "#MON CHANNEL…" + done + +PlayersHouse2F_MapEvents: + db 0, 0 ; filler + + db 1 ; warp events + warp_event 7, 0, PLAYERS_HOUSE_1F, 3 + + db 0 ; coord events + + db 4 ; bg events + bg_event 2, 1, BGEVENT_UP, PlayersHousePCScript + bg_event 3, 1, BGEVENT_READ, PlayersHouseRadioScript + bg_event 5, 1, BGEVENT_READ, PlayersHouseBookshelfScript + bg_event 6, 0, BGEVENT_IFSET, PlayersHousePosterScript + + db 4 ; object events + object_event 4, 2, SPRITE_CONSOLE, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, GameConsoleScript, EVENT_PLAYERS_HOUSE_2F_CONSOLE + object_event 4, 4, SPRITE_DOLL_1, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, Doll1Script, EVENT_PLAYERS_HOUSE_2F_DOLL_1 + object_event 5, 4, SPRITE_DOLL_2, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, Doll2Script, EVENT_PLAYERS_HOUSE_2F_DOLL_2 + object_event 0, 1, SPRITE_BIG_DOLL, SPRITEMOVEDATA_BIGDOLL, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, BigDollScript, EVENT_PLAYERS_HOUSE_2F_BIG_DOLL diff --git a/maps/PlayersNeighborsHouse.asm b/maps/PlayersNeighborsHouse.asm new file mode 100644 index 00000000..e587dc32 --- /dev/null +++ b/maps/PlayersNeighborsHouse.asm @@ -0,0 +1,97 @@ + const_def 2 ; object constants + const PLAYERSNEIGHBORSHOUSE_COOLTRAINER_F + +PlayersNeighborsHouse_MapScripts: + db 0 ; scene scripts + + db 0 ; callbacks + +PlayersNeighborsDaughterScript: + jumptextfaceplayer PlayersNeighborsDaughterText + +PlayersNeighborsHouseBookshelfScript: + jumpstd magazinebookshelf + +PlayersNeighborsHouseRadioScript: + checkevent EVENT_GOT_A_POKEMON_FROM_ELM + iftrue .NormalRadio + checkevent EVENT_LISTENED_TO_INITIAL_RADIO + iftrue .AbbreviatedRadio + playmusic MUSIC_POKEMON_TALK + opentext + writetext PlayerNeighborRadioText1 + pause 45 + writetext PlayerNeighborRadioText2 + pause 45 + writetext PlayerNeighborRadioText3 + pause 45 + musicfadeout MUSIC_NEW_BARK_TOWN, 16 + writetext PlayerNeighborRadioText4 + pause 45 + closetext + setevent EVENT_LISTENED_TO_INITIAL_RADIO + end +.NormalRadio: + jumpstd radio1 +.AbbreviatedRadio: + opentext + writetext PlayerNeighborRadioText4 + pause 45 + closetext + end + +PlayersNeighborsDaughterText: + text "PIKACHU is an" + line "evolved #MON." + + para "I was amazed by" + line "PROF.ELM's find-" + cont "ings." + + para "He's so famous for" + line "his research on" + cont "#MON evolution." + + para "…sigh…" + + para "I wish I could be" + line "a researcher like" + cont "him…" + done + +PlayerNeighborRadioText1: + text "PROF.OAK'S #MON" + line "TALK! Please tune" + cont "in next time!" + done + +PlayerNeighborRadioText2: + text "#MON CHANNEL!" + done + +PlayerNeighborRadioText3: + text "This is DJ MARY," + line "your co-host!" + done + +PlayerNeighborRadioText4: + text "#MON!" + line "#MON CHANNEL…" + done + +PlayersNeighborsHouse_MapEvents: + db 0, 0 ; filler + + db 2 ; warp events + warp_event 2, 7, NEW_BARK_TOWN, 3 + warp_event 3, 7, NEW_BARK_TOWN, 3 + + db 0 ; coord events + + db 3 ; bg events + bg_event 0, 1, BGEVENT_READ, PlayersNeighborsHouseBookshelfScript + bg_event 1, 1, BGEVENT_READ, PlayersNeighborsHouseBookshelfScript + bg_event 7, 1, BGEVENT_READ, PlayersNeighborsHouseRadioScript + + db 1 ; object events + object_event 2, 3, SPRITE_COOLTRAINER_F, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_SCRIPT, 0, PlayersNeighborsDaughterScript, -1 diff --git a/maps/Route26HealHouse.asm b/maps/Route26HealHouse.asm new file mode 100644 index 00000000..d7dc3ae0 --- /dev/null +++ b/maps/Route26HealHouse.asm @@ -0,0 +1,62 @@ + const_def 2 ; object constants + const ROUTE26HEALHOUSE_TEACHER + +Route26HealHouse_MapScripts: + db 0 ; scene scripts + + db 0 ; callbacks + +Route26HealHouseTeacherScript: + faceplayer + opentext + writetext Route26HealHouseRestAWhileText + waitbutton + closetext + special FadeBlackQuickly + special ReloadSpritesNoPalettes + playmusic MUSIC_HEAL + special HealParty + pause 60 + special FadeInQuickly + special RestartMapMusic + opentext + writetext Route26HealHouseKeepAtItText + waitbutton + closetext + end + +Route26HealHouseBookshelf: + jumpstd picturebookshelf + +Route26HealHouseRestAWhileText: + text "Your #MON look" + line "a little tired." + + para "You should rest" + line "them a while." + done + +Route26HealHouseKeepAtItText: + text "There!" + + para "Your #MON are" + line "looking good!" + + para "Keep at it!" + done + +Route26HealHouse_MapEvents: + db 0, 0 ; filler + + db 2 ; warp events + warp_event 2, 7, ROUTE_26, 2 + warp_event 3, 7, ROUTE_26, 2 + + db 0 ; coord events + + db 2 ; bg events + bg_event 0, 1, BGEVENT_READ, Route26HealHouseBookshelf + bg_event 1, 1, BGEVENT_READ, Route26HealHouseBookshelf + + db 1 ; object events + object_event 2, 3, SPRITE_TEACHER, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_SCRIPT, 0, Route26HealHouseTeacherScript, -1 diff --git a/maps/Route27SandstormHouse.asm b/maps/Route27SandstormHouse.asm new file mode 100644 index 00000000..886e7aa2 --- /dev/null +++ b/maps/Route27SandstormHouse.asm @@ -0,0 +1,108 @@ + const_def 2 ; object constants + const ROUTE27SANDSTORMHOUSE_GRANNY + +Route27SandstormHouse_MapScripts: + db 0 ; scene scripts + + db 0 ; callbacks + +SandstormHouseWoman: + faceplayer + opentext + checkevent EVENT_GOT_TM37_SANDSTORM + iftrue .AlreadyGotItem + special GetFirstPokemonHappiness + writetext SandstormHouseWomanText1 + buttonsound + ifgreater 150 - 1, .Loyal + jump .Disloyal + +.Loyal: + writetext SandstormHouseWomanLoyalText + buttonsound + verbosegiveitem TM_SANDSTORM + iffalse .Done + setevent EVENT_GOT_TM37_SANDSTORM +.AlreadyGotItem: + writetext SandstormHouseSandstormDescription + waitbutton +.Done: + closetext + end + +.Disloyal: + writetext SandstormHouseWomanDisloyalText + waitbutton + closetext + end + +SandstormHouseBookshelf: + jumpstd magazinebookshelf + +SandstormHouseWomanText1: + text "Where are you off" + line "to with #MON?" + + para "#MON LEAGUE?" + + para "Are your #MON" + line "loyal enough for" + cont "you to win?" + + para "Let me see…" + done + +SandstormHouseWomanLoyalText: + text "Ah! Your #MON" + line "trusts you very" + cont "much." + + para "It's nice to see a" + line "good trainer." + + para "Here. A gift for" + line "your journey." + done + +SandstormHouseSandstormDescription: + text "TM37 happens to be" + line "SANDSTORM." + + para "It's a move that" + line "inflicts damage on" + cont "both battlers." + + para "It's for advanced" + line "trainers only." + + para "Use it if you" + line "dare. Good luck!" + done + +SandstormHouseWomanDisloyalText: + text "If it doesn't come" + line "to trust you some" + + para "more, it could be" + line "tough going." + + para "Trust is the tie" + line "that binds #MON" + cont "and trainers." + done + +Route27SandstormHouse_MapEvents: + db 0, 0 ; filler + + db 2 ; warp events + warp_event 2, 7, ROUTE_27, 1 + warp_event 3, 7, ROUTE_27, 1 + + db 0 ; coord events + + db 2 ; bg events + bg_event 0, 1, BGEVENT_READ, SandstormHouseBookshelf + bg_event 1, 1, BGEVENT_READ, SandstormHouseBookshelf + + db 1 ; object events + object_event 2, 4, SPRITE_GRANNY, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, SandstormHouseWoman, -1 diff --git a/maps/Route29Route46Gate.asm b/maps/Route29Route46Gate.asm new file mode 100644 index 00000000..f575df1c --- /dev/null +++ b/maps/Route29Route46Gate.asm @@ -0,0 +1,52 @@ + const_def 2 ; object constants + const ROUTE29ROUTE46GATE_OFFICER + const ROUTE29ROUTE46GATE_YOUNGSTER + +Route29Route46Gate_MapScripts: + db 0 ; scene scripts + + db 0 ; callbacks + +Route29Route46GateOfficerScript: + jumptextfaceplayer Route29Route46GateOfficerText + +Route29Route46GateYoungsterScript: + jumptextfaceplayer Route29Route46GateYoungsterText + +Route29Route46GateOfficerText: + text "You can't climb" + line "ledges." + + para "But you can jump" + line "down from them to" + cont "take a shortcut." + done + +Route29Route46GateYoungsterText: + text "Different kinds of" + line "#MON appear" + cont "past here." + + para "If you want to" + line "catch them all," + + para "you have to look" + line "everywhere." + done + +Route29Route46Gate_MapEvents: + db 0, 0 ; filler + + db 4 ; warp events + warp_event 4, 0, ROUTE_46, 1 + warp_event 5, 0, ROUTE_46, 2 + warp_event 4, 7, ROUTE_29, 1 + warp_event 5, 7, ROUTE_29, 1 + + db 0 ; coord events + + db 0 ; bg events + + db 2 ; object events + object_event 0, 4, SPRITE_OFFICER, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_SCRIPT, 0, Route29Route46GateOfficerScript, -1 + object_event 6, 4, SPRITE_YOUNGSTER, SPRITEMOVEDATA_WALK_UP_DOWN, 0, 1, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_SCRIPT, 0, Route29Route46GateYoungsterScript, -1 |