diff --git a/constants/event_flags.asm b/constants/event_flags.asm index 121cae0..51c3dd0 100644 --- a/constants/event_flags.asm +++ b/constants/event_flags.asm @@ -532,7 +532,8 @@ const EVENT_BUENA_OFFERED_HER_PHONE_NUMBER const EVENT_MET_BUENA const EVENT_GOT_ODD_EGG - const_skip ; unused + const EVENT_SAW_SUICUNE_ON_ROUTE_14 + const EVENT_SAW_SUICUNE_IN_VERMILION_CITY const EVENT_GOT_GS_BALL_FROM_POKECOM_CENTER ; Unused: next 167 events diff --git a/data/maps/scenes.asm b/data/maps/scenes.asm index 0d888d0..3517d86 100644 --- a/data/maps/scenes.asm +++ b/data/maps/scenes.asm @@ -90,4 +90,6 @@ MapScenes:: scene_var BLUE_LAB, wBlueLabSceneID scene_var ROUTE_66_WHITE_CITY_GATE, wRoute66WhiteCityGateID scene_var SAFARI_ZONE_FUCHSIA_GATE_BETA, wFuchsiaSafariZoneGateID + scene_var VERMILION_CITY, wVermilionCityID + scene_var ROUTE_14, wVermilionCityID db -1 ; end diff --git a/data/player_names.asm b/data/player_names.asm index 39bff5d..7b162e8 100644 --- a/data/player_names.asm +++ b/data/player_names.asm @@ -10,10 +10,10 @@ ChrisNameMenuHeader: db 5 ; items db "NEW NAME@" MalePlayerNameArray: - db "ETHAN@" - db "GOLD@" - db "CHRIS@" - db "JIMMY@" + db "ETHAN@" ; games + db "GOLD@" ; manga + db "JIMMY@" ; legend of thunder + db "CHRIS@" ; vanilla db 2 ; title indent db " NAME @" ; title @@ -29,10 +29,10 @@ KrisNameMenuHeader: db 5 ; items db "NEW NAME@" FemalePlayerNameArray: - db "KRIS@" - db "MARINA@" - db "AMANDA@" - db "JODI@" + db "KRIS@" ; game + db "MARINA@" ; legend of thunder + db "CRYSTAL@" ; manga + db "CHRIS@" ; golden boys - plays with the male player version as well, showing it's a unisex name db 2 ; title indent db " NAME @" ; title diff --git a/engine/events/std_scripts.asm b/engine/events/std_scripts.asm index ba76a70..9348f8a 100644 --- a/engine/events/std_scripts.asm +++ b/engine/events/std_scripts.asm @@ -612,7 +612,7 @@ InitializeEventsScript: setevent EVENT_OLIVINE_PORT_PASSAGE_POKEFAN_M setevent EVENT_KURTS_HOUSE_KURT_2 setevent EVENT_KURTS_HOUSE_GRANDDAUGHTER_2 - setevent EVENT_RANG_CLEAR_BELL_1 + setevent EVENT_SAW_RAINBOW_WING_1 setevent EVENT_FLORIA_AT_FLOWER_SHOP setevent EVENT_FLORIA_AT_SUDOWOODO setevent EVENT_GOLDENROD_CITY_MOVE_TUTOR diff --git a/maps/CianwoodCity.asm b/maps/CianwoodCity.asm index 1463fe2..4245f15 100644 --- a/maps/CianwoodCity.asm +++ b/maps/CianwoodCity.asm @@ -48,7 +48,7 @@ CianwoodCitySuicuneAndEusine: disappear CIANWOODCITY_SUICUNE pause 10 setscene SCENE_CIANWOODCITY_NOOP - clearevent EVENT_SAW_SUICUNE_ON_ROUTE_42 + setevent EVENT_SAW_SUICUNE_AT_CIANWOOD_CITY setmapscene ROUTE_42, SCENE_ROUTE42_SUICUNE checkevent EVENT_FOUGHT_EUSINE iftrue .Done diff --git a/maps/DebugRoom.asm b/maps/DebugRoom.asm index 666c186..3501af2 100644 --- a/maps/DebugRoom.asm +++ b/maps/DebugRoom.asm @@ -123,6 +123,9 @@ DebugFlyScript: setevent EVENT_BEAT_ELITE_FOUR + setevent EVENT_SAW_SUICUNE_ON_ROUTE_42 ; for testing the suicune events + setmapscene VERMILION_CITY, SCENE_VERMILIONCITY_SUICUNE ; this ensures that the scene is correctly set too. + addcellnum PHONE_MOM readvar VAR_BADGES givepoke PIDGEOT, 70 diff --git a/maps/EcruteakGym.asm b/maps/EcruteakGym.asm index 2c2e71e..f15212c 100644 --- a/maps/EcruteakGym.asm +++ b/maps/EcruteakGym.asm @@ -42,8 +42,8 @@ EcruteakGymMortyScript: readvar VAR_BADGES scall EcruteakGymActivateRockets setmapscene ECRUTEAK_TIN_TOWER_ENTRANCE, SCENE_ECRUTEAKTINTOWERENTRANCE_NOOP - setevent EVENT_RANG_CLEAR_BELL_1 - setevent EVENT_RANG_CLEAR_BELL_2 + setevent EVENT_SAW_RAINBOW_WING_1 + setevent EVENT_SAW_RAINBOW_WING_2 .FightDone: checkevent EVENT_GOT_TM30_SHADOW_BALL iftrue .GotShadowBall diff --git a/maps/EcruteakTinTowerEntrance.asm b/maps/EcruteakTinTowerEntrance.asm index 59afd22..0bcabcd 100644 --- a/maps/EcruteakTinTowerEntrance.asm +++ b/maps/EcruteakTinTowerEntrance.asm @@ -92,7 +92,7 @@ EcruteakTinTowerEntranceSageScript: closetext end -.RainbowWing: +.GotRainbowWing: writetext EcruteakTinTowerEntranceSageText_SeesRainbowWing waitbutton closetext diff --git a/maps/Route14.asm b/maps/Route14.asm index 8fa43b4..0dafdd8 100644 --- a/maps/Route14.asm +++ b/maps/Route14.asm @@ -20,31 +20,68 @@ Route14Noop1Scene: Route14Noop2Scene: end -Route42SuicuneCallback: +Route14SuicuneCallback: checkevent EVENT_SAW_SUICUNE_IN_VERMILION_CITY iffalse .NoAppear - checkevent EVENT_SAW_SUICUNE_ON_ROUTE14 + checkevent EVENT_SAW_SUICUNE_ON_ROUTE_14 iffalse .NoAppear - appear ROUTE42_SUICUNE + appear ROUTE14_SUICUNE endcallback .NoAppear: - disappear ROUTE42_SUICUNE + disappear ROUTE14_SUICUNE + disappear ROUTE14_EUSINE ; just making sure, also skips using any events for this matter endcallback +; BUG: Movement is fucky, eusine is a little weird. I'm just incompetent. + +Route14EusineHandler: + moveobject ROUTE14_EUSINE, 12, 11 + ; fallthrough Route14SuicuneScript: + playmusic MUSIC_NONE showemote EMOTE_SHOCK, PLAYER, 15 + turnobject PLAYER, RIGHT pause 15 + cry SUICUNE playsound SFX_WARP_FROM applymovement ROUTE14_SUICUNE, Route14SuicuneMovement disappear ROUTE14_SUICUNE pause 10 + + appear ROUTE14_EUSINE + playmusic MUSIC_MYSTICALMAN_ENCOUNTER + applymovement ROUTE14_EUSINE, Route14EusineMovement1 + opentext + writetext Route14EusineSawSuicune + waitbutton + closetext + applymovement ROUTE14_EUSINE, Route14EusineMovement2 + setscene SCENE_ROUTE14_NOOP - clearevent EVENT_FOUGHT_SUICUNE + setevent EVENT_SAW_SUICUNE_ON_ROUTE_14 setmapscene ROUTE_25, SCENE_ROUTE25_FINAL_SUICUNE disappear ROUTE14_EUSINE + special RestartMapMusic end +Route14EusineMovement1: + big_step UP + big_step UP + big_step UP + big_step UP + step UP + step UP + step_end + +Route14EusineMovement2: + step UP + step UP + step UP + step UP + step UP + step_end + Route14SuicuneMovement: set_sliding fast_jump_step RIGHT @@ -204,10 +241,10 @@ Route14_MapEvents: def_warp_events def_coord_events - coord_event 11, 8, SCENE_ROUTE_14_SUICUNE, Route14SuicuneScript - coord_event 12, 8, SCENE_ROUTE_14_SUICUNE, Route14SuicuneScript - coord_event 13, 8, SCENE_ROUTE_14_SUICUNE, Route14SuicuneScript - coord_event 14, 8, SCENE_ROUTE_14_SUICUNE, Route14SuicuneScript + coord_event 11, 8, SCENE_ROUTE14_SUICUNE, Route14SuicuneScript + coord_event 12, 8, SCENE_ROUTE14_SUICUNE, Route14SuicuneScript + coord_event 13, 8, SCENE_ROUTE14_SUICUNE, Route14EusineHandler + coord_event 14, 8, SCENE_ROUTE14_SUICUNE, Route14SuicuneScript def_bg_events diff --git a/maps/Route25.asm b/maps/Route25.asm index a2c9ba3..f9b616b 100644 --- a/maps/Route25.asm +++ b/maps/Route25.asm @@ -28,10 +28,15 @@ Route25Noop1Scene: Route25Noop2Scene: end +; BUG: Movement is fucky, eusine is a little weird. I'm just incompetent. +; also it messes with the misty script + +; the way things are, the game expects you to have beaten misty. +; set to change with a new location and hilly area, set up in a way where you cannot mess things up Route25SuicuneCallback: checkevent EVENT_BEAT_MISTY iffalse .NoAppear - checkevent EVENT_SAW_SUICUNE_ON_ROUTE14 + checkevent EVENT_SAW_SUICUNE_ON_ROUTE_14 iffalse .NoAppear checkevent EVENT_FOUGHT_SUICUNE iffalse .Appear @@ -43,22 +48,27 @@ Route25SuicuneCallback: .NoAppear: disappear ROUTE25_SUICUNE + disappear ROUTE25_EUSINE ; just making sure, also skips using any events for this matter endcallback Route25SuicuneEventScript: showemote EMOTE_SHOCK, PLAYER, 15 pause 15 - applymovement PLAYER, Route25PlayerMovement + ;applymovement PLAYER, Route25PlayerMovement + + appear ROUTE25_EUSINE + playmusic MUSIC_MYSTICALMAN_ENCOUNTER applymovement ROUTE25_EUSINE, Route25EusineMovement1 - open_text + opentext writetext Route25EusineText1 waitbutton closetext applymovement ROUTE25_EUSINE, Route25EusineMovement2 - open_text + opentext writetext Route25EusineText2 waitbutton closetext + special RestartMapMusic end Route25EusineText1: @@ -107,7 +117,7 @@ Route25EusineText3: para "Farewell, !" - para "…" + para "…sob…" para "Farewell, SUICUNE!" @@ -123,7 +133,7 @@ Route25EusineMovement2: step RIGHT step_end -Route25EusineMovement3 +Route25EusineMovement3: big_step LEFT big_step LEFT big_step LEFT @@ -144,12 +154,12 @@ Route25Suicune: startbattle disappear ROUTE25_SUICUNE reloadmapafterbattle - open_text + opentext writetext Route25EusineText3 waitbutton closetext applymovement ROUTE25_EUSINE, Route25EusineMovement3 - disappear ROUTE_25_EUSINE + disappear ROUTE25_EUSINE end Route25MistyDate1Script: @@ -551,10 +561,6 @@ BillsHouseSignText: line "BILL'S HOUSE" done -UnusedBillsHouseSignText: ; unreferenced - text "BILL'S HOUSE" - done - Route25_MapEvents: db 0, 0 ; filler diff --git a/maps/Route36.asm b/maps/Route36.asm index 2191cee..c2a56dd 100644 --- a/maps/Route36.asm +++ b/maps/Route36.asm @@ -43,8 +43,8 @@ Route36SuicuneScript: turnobject PLAYER, DOWN pause 10 setscene SCENE_ROUTE36_NOOP - clearevent EVENT_SAW_SUICUNE_AT_CIANWOOD_CITY - setmapscene CIANWOOD_CITY, SCENE_CIANWOODCITY_SUICUNE_AND_EUSINE + setevent EVENT_SAW_SUICUNE_ON_ROUTE_36 + setmapscene ROUTE_42, SCENE_ROUTE42_SUICUNE end SudowoodoScript: diff --git a/maps/Route42.asm b/maps/Route42.asm index ebe2cac..7ea65ee 100644 --- a/maps/Route42.asm +++ b/maps/Route42.asm @@ -15,7 +15,7 @@ Route42_MapScripts: scene_script Route42Noop2Scene, SCENE_ROUTE42_SUICUNE def_callbacks - callback MAPCALLBACK_OBJECTS, RouteSuicuneCallback + callback MAPCALLBACK_OBJECTS, Route14SuicuneCallback Route42Noop1Scene: end @@ -24,9 +24,9 @@ Route42Noop2Scene: end Route42SuicuneCallback: - checkevent EVENT_SAW_SUICUNE_ON_ROUTE14 + checkevent EVENT_SAW_SUICUNE_ON_ROUTE_14 iffalse .NoAppear - checkevent EVENT_SAW_SUICUNE_ON_ROUTE42 + checkevent EVENT_SAW_SUICUNE_ON_ROUTE_42 iffalse .NoAppear appear ROUTE42_SUICUNE endcallback @@ -43,8 +43,8 @@ Route42SuicuneScript: disappear ROUTE42_SUICUNE pause 10 setscene SCENE_ROUTE42_NOOP - clearevent EVENT_SAW_SUICUNE_ON_ROUTE_36 - setmapscene ROUTE_36, SCENE_ROUTE36_SUICUNE + setevent EVENT_SAW_SUICUNE_ON_ROUTE_42 + setmapscene VERMILION_CITY, SCENE_ROUTE36_SUICUNE end TrainerFisherTully: diff --git a/maps/VermilionCity.asm b/maps/VermilionCity.asm index 326e7df..b59691f 100644 --- a/maps/VermilionCity.asm +++ b/maps/VermilionCity.asm @@ -32,29 +32,94 @@ VermilionCitySuicuneCallback: .NoAppear: disappear VERMILIONCITY_SUICUNE + disappear VERMILIONCITY_EUSINE ; just making sure, also skips using any events for this matter endcallback -VermilionCitySuicuneScript: +; BUG: Movement is fucky, eusine is a little weird. I'm just incompetent. + +; Two different startup scripts given the position. +; I am 99.9% sure there's a way to simply modify this by the player's position on the map, like in RBY. +; However, I can't seem to find any examples... + +; If you're smarter than me, you should know what to do. +VermilionCitySuicuneScriptStartupLeft: + playmusic MUSIC_NONE showemote EMOTE_SHOCK, PLAYER, 15 pause 15 + ; jank zone begins here. + applymovement PLAYER, VermilionCityPlayerToTheLeftMovement + sjump VermilionCitySuicuneScript + +VermilionCitySuicuneScriptStartupRight: + playmusic MUSIC_NONE + showemote EMOTE_SHOCK, PLAYER, 15 + pause 15 + ; jank zone ends here. + turnobject PLAYER, RIGHT ; basically if you can use the player's x/y position you should use this and the left movement in an if this then that statement. + ; fallthrough +VermilionCitySuicuneScript: playsound SFX_WARP_FROM - applymovement VERMILIONCITY_SUICUNE, VermilionCitySuicuneMovement + applymovement VERMILIONCITY_SUICUNE, VermilionCitySuicuneMovement1 + cry SUICUNE + applymovement VERMILIONCITY_SUICUNE, VermilionCitySuicuneMovement2 disappear VERMILIONCITY_SUICUNE pause 10 + + playmusic MUSIC_MYSTICALMAN_ENCOUNTER + appear VERMILIONCITY_EUSINE + applymovement VERMILIONCITY_EUSINE, VermilionCityEusineMovement1 + opentext + writetext VermilionCityEusineSawSuicune + waitbutton + closetext + turnobject PLAYER, UP + applymovement VERMILIONCITY_EUSINE, VermilionCityEusineMovement2 + setscene SCENE_VERMILIONCITY_NOOP - clearevent EVENT_SAW_SUICUNE_IN_VERMILION_CITY - setmapscene ROUTE_14, SCENE_ROUTE_14_SUICUNE + setevent EVENT_SAW_SUICUNE_IN_VERMILION_CITY + setmapscene ROUTE_14, SCENE_ROUTE14_SUICUNE disappear VERMILIONCITY_EUSINE + special RestartMapMusic end -VermilionCitySuicuneMovement: +VermilionCityPlayerToTheLeftMovement: + step RIGHT + step_end + +VermilionCityEusineMovement1: + big_step RIGHT + big_step RIGHT + big_step RIGHT + big_step UP + step UP + step_end + +VermilionCityEusineMovement2: + big_step UP + big_step UP + big_step UP + big_step UP + big_step UP + big_step UP + step_end + +VermilionCitySuicuneMovement1: set_sliding fast_jump_step RIGHT - fast_jump_step RIGHT - fast_jump_step RIGHT - fast_jump_step RIGHT - fast_jump_step RIGHT - fast_jump_step RIGHT + fast_jump_step DOWN + fast_jump_step UP + fast_jump_step LEFT + remove_sliding + step_end + +VermilionCitySuicuneMovement2: + set_sliding + fast_jump_step UP + fast_jump_step UP + fast_jump_step UP + fast_jump_step UP + fast_jump_step UP + fast_jump_step UP remove_sliding step_end @@ -348,8 +413,8 @@ VermilionCity_MapEvents: warp_event 34, 7, DIGLETTS_CAVE, 1 def_coord_events - coord_event 28, 18, SCENE_VERMILION_CITY_SUICUNE, VermilionCitySuicuneScript - coord_event 29, 28, SCENE_VERMILION_CITY_SUICUNE, VermilionCitySuicuneScript + coord_event 28, 21, SCENE_VERMILIONCITY_SUICUNE, VermilionCitySuicuneScriptStartupLeft + coord_event 29, 21, SCENE_VERMILIONCITY_SUICUNE, VermilionCitySuicuneScriptStartupRight def_bg_events bg_event 25, 3, BGEVENT_READ, VermilionCitySign @@ -368,5 +433,5 @@ VermilionCity_MapEvents: object_event 14, 16, SPRITE_SUPER_NERD, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_SCRIPT, 0, VermilionCitySuperNerdScript, -1 object_event 34, 8, SPRITE_BIG_SNORLAX, SPRITEMOVEDATA_BIGDOLLSYM, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, VermilionSnorlax, EVENT_VERMILION_CITY_SNORLAX object_event 31, 12, SPRITE_POKEFAN_M, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_SCRIPT, 0, VermilionGymBadgeGuy, -1 - object_event 28, 15, SPRITE_SUPER_NERD, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_SCRIPT, 0, ObjectEvent, EVENT_SAW_SUICUNE_IN_VERMILION_CITY - object_event 31, 19, SPRITE_SUICUNE, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_SCRIPT, 0, ObjectEvent, EVENT_SAW_SUICUNE_IN_VERMILION_CITY + object_event 25, 24, SPRITE_SUPER_NERD, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_SCRIPT, 0, ObjectEvent, EVENT_SAW_SUICUNE_IN_VERMILION_CITY + object_event 31, 21, SPRITE_SUICUNE, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_SCRIPT, 0, ObjectEvent, EVENT_SAW_SUICUNE_IN_VERMILION_CITY diff --git a/ram/wram.asm b/ram/wram.asm index 3543559..44e5f18 100644 --- a/ram/wram.asm +++ b/ram/wram.asm @@ -3111,7 +3111,9 @@ wSilentHillsSceneID:: db wBlueLabSceneID:: db wRoute66WhiteCityGateID:: db wFuchsiaSafariZoneGateID:: db - ds 44 +wVermilionCityID:: db +wRoute14ID:: db + ds 42 ; fight counts wJackFightCount:: db