From aa3de1dbe241d2a3122047a5cfd7f3567e9b767f Mon Sep 17 00:00:00 2001 From: Llinos Evans <36418502+PlagueVonKarma@users.noreply.github.com> Date: Sat, 4 Nov 2023 09:29:49 +0000 Subject: [PATCH] Fully dynamic Pokecentres This adds the Kanto Pokemon Centre maps, which combined with the Nihon versions, means every region has its own layout. This should make for some very immersive gameplay, no? --- constants/map_constants.asm | 1 + data/maps/attributes.asm | 1 + data/maps/blocks.asm | 27 +- data/maps/maps.asm | 1 + data/maps/scripts.asm | 1 + data/tilesets/pokecenter_attributes.bin | Bin 1648 -> 1712 bytes data/tilesets/pokecenter_collision.asm | 6 +- data/tilesets/pokecenter_metatiles.bin | Bin 1648 -> 1712 bytes maps/CeruleanPokecenter1F.asm | 2 +- maps/CinnabarPokecenter1F.asm | 2 +- maps/FuchsiaPokecenter1F.asm | 2 +- maps/KantoPokecenter1F.ablk | 1 + maps/KantoPokecenter2F.ablk | 1 + maps/KantoPokecenter2F.asm | 1050 +++++++++++++++++++++++ maps/LavenderPokecenter1F.asm | 2 +- maps/PewterPokecenter1F.asm | 2 +- maps/Route10Pokecenter1F.asm | 2 +- maps/SaffronPokecenter1F.asm | 2 +- maps/VermilionPokecenter1F.asm | 2 +- maps/ViridianPokecenter1F.asm | 2 +- 20 files changed, 1087 insertions(+), 20 deletions(-) create mode 100644 maps/KantoPokecenter1F.ablk create mode 100644 maps/KantoPokecenter2F.ablk create mode 100644 maps/KantoPokecenter2F.asm diff --git a/constants/map_constants.asm b/constants/map_constants.asm index f720c49..a8a6ef0 100644 --- a/constants/map_constants.asm +++ b/constants/map_constants.asm @@ -398,6 +398,7 @@ ENDM map_const MOBILE_TRADE_ROOM, 5, 4 ; 5 map_const MOBILE_BATTLE_ROOM, 5, 4 ; 6 map_const NIHON_POKECENTER_2F, 8, 4 ; 7 + map_const KANTO_POKECENTER_2F, 8, 4 ; 7 endgroup newgroup CELADON ; 21 diff --git a/data/maps/attributes.asm b/data/maps/attributes.asm index ab2336e..adaca0d 100644 --- a/data/maps/attributes.asm +++ b/data/maps/attributes.asm @@ -635,6 +635,7 @@ ENDM map_attributes MobileTradeRoom, MOBILE_TRADE_ROOM, $00, 0 map_attributes MobileBattleRoom, MOBILE_BATTLE_ROOM, $00, 0 map_attributes NihonPokecenter2F, NIHON_POKECENTER_2F, $00, 0 + map_attributes KantoPokecenter2F, KANTO_POKECENTER_2F, $00, 0 map_attributes CeladonDeptStore1F, CELADON_DEPT_STORE_1F, $00, 0 map_attributes CeladonDeptStore2F, CELADON_DEPT_STORE_2F, $00, 0 map_attributes CeladonDeptStore3F, CELADON_DEPT_STORE_3F, $00, 0 diff --git a/data/maps/blocks.asm b/data/maps/blocks.asm index 90d0525..16fa97e 100644 --- a/data/maps/blocks.asm +++ b/data/maps/blocks.asm @@ -348,22 +348,12 @@ OlivinePokecenter1F_Blocks: MahoganyPokecenter1F_Blocks: EcruteakPokecenter1F_Blocks: BlackthornPokecenter1F_Blocks: -CinnabarPokecenter1F_Blocks: -CeruleanPokecenter1F_Blocks: -Route10Pokecenter1F_Blocks: AzaleaPokecenter1F_Blocks: VioletPokecenter1F_Blocks: Route32Pokecenter1F_Blocks: GoldenrodPokecenter1F_Blocks: -VermilionPokecenter1F_Blocks: -PewterPokecenter1F_Blocks: -FuchsiaPokecenter1F_Blocks: -LavenderPokecenter1F_Blocks: SilverCavePokecenter1F_Blocks: -CeladonPokecenter1F_Blocks: CianwoodPokecenter1F_Blocks: -ViridianPokecenter1F_Blocks: -SaffronPokecenter1F_Blocks: CherrygrovePokecenter1F_Blocks: LakeOfRagePokecenter1F_Blocks: INCBIN "maps/Pokecenter1F.ablk" @@ -1102,3 +1092,20 @@ SilentHillsPokecenter1F_Blocks: NihonPokecenter2F_Blocks: INCBIN "maps/NihonPokecenter2F.ablk" + +; This restores the Kanto Pokemon Centre blockset. +; Factoring the above, this means each region has its own version. Further immersion get! +ViridianPokecenter1F_Blocks: +PewterPokecenter1F_Blocks: +CeruleanPokecenter1F_Blocks: +VermilionPokecenter1F_Blocks: +CeladonPokecenter1F_Blocks: +FuchsiaPokecenter1F_Blocks: +Route10Pokecenter1F_Blocks: +LavenderPokecenter1F_Blocks: +SaffronPokecenter1F_Blocks: +CinnabarPokecenter1F_Blocks: + INCBIN "maps/KantoPokecenter1F.ablk" + +KantoPokecenter2F_Blocks: + INCBIN "maps/KantoPokecenter2F.ablk" diff --git a/data/maps/maps.asm b/data/maps/maps.asm index 720c66b..c6c6902 100644 --- a/data/maps/maps.asm +++ b/data/maps/maps.asm @@ -430,6 +430,7 @@ MapGroup_CableClub: map MobileTradeRoom, TILESET_MANSION, INDOOR, LANDMARK_SPECIAL, MUSIC_CHERRYGROVE_CITY, TRUE, PALETTE_DAY, FISHGROUP_SHORE map MobileBattleRoom, TILESET_MANSION, INDOOR, LANDMARK_SPECIAL, MUSIC_CHERRYGROVE_CITY, TRUE, PALETTE_DAY, FISHGROUP_SHORE map NihonPokecenter2F, TILESET_POKECENTER, INDOOR, LANDMARK_SPECIAL, MUSIC_POKEMON_CENTER, FALSE, PALETTE_DAY, FISHGROUP_SHORE + map KantoPokecenter2F, TILESET_POKECENTER, INDOOR, LANDMARK_SPECIAL, MUSIC_POKEMON_CENTER, FALSE, PALETTE_DAY, FISHGROUP_SHORE assert_table_length NUM_CABLE_CLUB_MAPS MapGroup_Celadon: diff --git a/data/maps/scripts.asm b/data/maps/scripts.asm index 128e5f6..5427253 100644 --- a/data/maps/scripts.asm +++ b/data/maps/scripts.asm @@ -509,3 +509,4 @@ SECTION "Map Scripts 26", ROMX INCLUDE "maps/SilentHillsPokecenter1F.asm" INCLUDE "maps/NihonPokecenter2F.asm" +INCLUDE "maps/KantoPokecenter2F.asm" diff --git a/data/tilesets/pokecenter_attributes.bin b/data/tilesets/pokecenter_attributes.bin index fcda6cd7bbfcfa1520efde6226cf6c7d3581b8a5..898d923b653047cf1a676c1a90210e439cb3833a 100644 GIT binary patch delta 87 zcmeysvw?R*BAY)40|yW>FmSN2a4@j2FhBu_1;RW$3>-W>96$h62L$MRW+-4_U}gqk E06!=MlmGw# delta 23 ScmdnM`+;XeA{##gDgXdF-2&hM diff --git a/data/tilesets/pokecenter_collision.asm b/data/tilesets/pokecenter_collision.asm index 92db25b..cac29f3 100644 --- a/data/tilesets/pokecenter_collision.asm +++ b/data/tilesets/pokecenter_collision.asm @@ -100,4 +100,8 @@ tilecoll WALL, WALL, FLOOR, WALL ; 63 tilecoll WALL, DOOR, FLOOR, FLOOR ; 64 tilecoll FLOOR, FLOOR, LADDER, FLOOR ; 65 - tilecoll FLOOR, FLOOR, LADDER, FLOOR ; 66 + tilecoll FLOOR, FLOOR, FLOOR, WALL ; 66 + tilecoll FLOOR, FLOOR, WALL, FLOOR ; 67 + tilecoll WALL, FLOOR, FLOOR, FLOOR ; 68 + tilecoll WALL, FLOOR, FLOOR, FLOOR ; 69 + tilecoll WALL, WALL, FLOOR, WALL ; 6a diff --git a/data/tilesets/pokecenter_metatiles.bin b/data/tilesets/pokecenter_metatiles.bin index f360246e5e2a04f3c983b631df8a3cac2a6f45ea..7f7f0ad85ac8ef3106972f06e0a11a20ab1614d3 100644 GIT binary patch delta 88 zcmeysvw?R*0$YHWwwJb5v{kg1wuh%xbVQ_=x0iQRbX2s5r8UO%2y8_?< diff --git a/maps/CeruleanPokecenter1F.asm b/maps/CeruleanPokecenter1F.asm index 885cdc6..4226ac2 100644 --- a/maps/CeruleanPokecenter1F.asm +++ b/maps/CeruleanPokecenter1F.asm @@ -66,7 +66,7 @@ CeruleanPokecenter1F_MapEvents: def_warp_events warp_event 3, 7, CERULEAN_CITY, 4 warp_event 4, 7, CERULEAN_CITY, 4 - warp_event 0, 7, POKECENTER_2F, 1 + warp_event 0, 7, KANTO_POKECENTER_2F, 1 def_coord_events diff --git a/maps/CinnabarPokecenter1F.asm b/maps/CinnabarPokecenter1F.asm index beabb1c..f434e68 100644 --- a/maps/CinnabarPokecenter1F.asm +++ b/maps/CinnabarPokecenter1F.asm @@ -38,7 +38,7 @@ CinnabarPokecenter1F_MapEvents: def_warp_events warp_event 3, 7, CINNABAR_ISLAND, 1 warp_event 4, 7, CINNABAR_ISLAND, 1 - warp_event 0, 7, POKECENTER_2F, 1 + warp_event 0, 7, KANTO_POKECENTER_2F, 1 def_coord_events diff --git a/maps/FuchsiaPokecenter1F.asm b/maps/FuchsiaPokecenter1F.asm index 9f37272..038a1bd 100644 --- a/maps/FuchsiaPokecenter1F.asm +++ b/maps/FuchsiaPokecenter1F.asm @@ -92,7 +92,7 @@ FuchsiaPokecenter1F_MapEvents: def_warp_events warp_event 3, 7, FUCHSIA_CITY, 5 warp_event 4, 7, FUCHSIA_CITY, 5 - warp_event 0, 7, POKECENTER_2F, 1 + warp_event 0, 7, KANTO_POKECENTER_2F, 1 def_coord_events diff --git a/maps/KantoPokecenter1F.ablk b/maps/KantoPokecenter1F.ablk new file mode 100644 index 0000000..f90579b --- /dev/null +++ b/maps/KantoPokecenter1F.ablk @@ -0,0 +1 @@ +HENGF#####fgKIJfg \ No newline at end of file diff --git a/maps/KantoPokecenter2F.ablk b/maps/KantoPokecenter2F.ablk new file mode 100644 index 0000000..a6fe3be --- /dev/null +++ b/maps/KantoPokecenter2F.ablk @@ -0,0 +1 @@ +A&?&?@ijh<>=########B##CDCD# \ No newline at end of file diff --git a/maps/KantoPokecenter2F.asm b/maps/KantoPokecenter2F.asm new file mode 100644 index 0000000..1df6f70 --- /dev/null +++ b/maps/KantoPokecenter2F.asm @@ -0,0 +1,1050 @@ + object_const_def + const KANTOPOKECENTER2F_TRADE_RECEPTIONIST + const KANTOPOKECENTER2F_BATTLE_RECEPTIONIST + const KANTOPOKECENTER2F_TIME_CAPSULE_RECEPTIONIST + const KANTOPOKECENTER2F_OFFICER + +KantoPokecenter2F_MapScripts: + def_scene_scripts + scene_script KantoPokecenter2FCheckMysteryGiftScene, SCENE_KANTOPOKECENTER2F_CHECK_MYSTERY_GIFT + scene_script KantoPokecenter2FLeaveTradeCenterScene, SCENE_KANTOPOKECENTER2F_LEAVE_TRADE_CENTER + scene_script KantoPokecenter2FLeaveColosseumScene, SCENE_KANTOPOKECENTER2F_LEAVE_COLOSSEUM + scene_script KantoPokecenter2FLeaveTimeCapsuleScene, SCENE_KANTOPOKECENTER2F_LEAVE_TIME_CAPSULE + scene_script KantoPokecenter2FLeaveMobileTradeRoomScene, SCENE_KANTOPOKECENTER2F_LEAVE_MOBILE_TRADE_ROOM + scene_script KantoPokecenter2FLeaveMobileBattleRoomScene, SCENE_KANTOPOKECENTER2F_LEAVE_MOBILE_BATTLE_ROOM + + def_callbacks + +KantoPokecenter2FCheckMysteryGiftScene: + special CheckMysteryGift + ifequal $0, .done + clearevent EVENT_MYSTERY_GIFT_DELIVERY_GUY + checkevent EVENT_TEMPORARY_UNTIL_MAP_RELOAD_2 + iftrue .done + sdefer KantoPokecenter2F_AppearMysteryGiftDeliveryGuy +.done + end + +KantoPokecenter2FLeaveTradeCenterScene: + sdefer KantoScript_LeftCableTradeCenter + end + +KantoPokecenter2FLeaveColosseumScene: + sdefer KantoScript_LeftCableColosseum + end + +KantoPokecenter2FLeaveTimeCapsuleScene: + sdefer KantoScript_LeftTimeCapsule + end + +KantoPokecenter2FLeaveMobileTradeRoomScene: + sdefer KantoScript_LeftMobileTradeRoom + end + +KantoPokecenter2FLeaveMobileBattleRoomScene: + sdefer KantoScript_LeftMobileBattleRoom + end + +KantoPokecenter2F_AppearMysteryGiftDeliveryGuy: + appear KANTOPOKECENTER2F_OFFICER + setevent EVENT_TEMPORARY_UNTIL_MAP_RELOAD_2 + end + +KantoScript_TradeCenterClosed: + faceplayer + opentext + writetext KantoText_TradeRoomClosed + waitbutton + closetext + end + +KantoScript_BattleRoomClosed: + faceplayer + opentext + writetext KantoText_BattleRoomClosed + waitbutton + closetext + end + +LinkReceptionistKantoScript_Trade: + checkevent EVENT_GAVE_MYSTERY_EGG_TO_ELM + iffalse KantoScript_TradeCenterClosed + opentext + writetext KantoText_TradeReceptionistIntro + yesorno + iffalse .Cancel + special Mobile_DummyReturnFalse ; always returns false + iffalse .NoMobile + writetext KantoText_TradeReceptionistMobile + special AskMobileOrCable + iffalse .Cancel + ifequal $1, .Mobile +.NoMobile: + special SetBitsForLinkTradeRequest + writetext KantoText_PleaseWait + special WaitForLinkedFriend + iffalse .FriendNotReady + writetext KantoText_MustSaveGame + yesorno + iffalse .DidNotSave + special TryQuickSave + iffalse .DidNotSave + writetext KantoText_PleaseWait + special CheckLinkTimeout_Receptionist + iffalse .LinkTimedOut + readmem wOtherPlayerLinkMode + iffalse .LinkedToFirstGen + special CheckBothSelectedSameRoom + iffalse .IncompatibleRooms + writetext KantoText_PleaseComeIn + waitbutton + closetext + scall KantoPokecenter2F_CheckGender + warpcheck + end + +.FriendNotReady: + special WaitForOtherPlayerToExit + writetext KantoYourFriendIsNotReadyText + closetext + end + +.LinkedToFirstGen: + special FailedLinkToPast + writetext KantoText_CantLinkToThePast + special CloseLink + closetext + end + +.IncompatibleRooms: + writetext KantoText_IncompatibleRooms + special CloseLink + closetext + end + +.LinkTimedOut: + writetext KantoText_LinkTimedOut + sjump .AbortLink + +.DidNotSave: + writetext KantoText_PleaseComeAgain +.AbortLink: + special WaitForOtherPlayerToExit +.Cancel: + closetext + end + +.Mobile: + scall .Mobile_TrySave + iftrue .Mobile_Abort + scall KantoBattleTradeMobile_WalkIn + warpcheck + end + +.Mobile_Abort: + end + +.Mobile_TrySave: + writetext KantoText_MustSaveGame + yesorno + iffalse .Mobile_DidNotSave + special TryQuickSave + iffalse .Mobile_DidNotSave + special Function1011f1 + writetext KantoText_PleaseComeIn + waitbutton + closetext + setval FALSE + end + +.Mobile_DidNotSave: + writetext KantoText_PleaseComeAgain + closetext + setval TRUE + end + +KantoBattleTradeMobile_WalkIn: + applymovementlasttalked KantoPokecenter2FMobileMobileMovementData_ReceptionistWalksUpAndLeft_LookDown + applymovement PLAYER, KantoPokecenter2FMobileMovementData_PlayerWalksIntoMobileBattleRoom + end + +LinkReceptionistKantoScript_Battle: + checkevent EVENT_GAVE_MYSTERY_EGG_TO_ELM + iffalse KantoScript_BattleRoomClosed + opentext + writetext KantoText_BattleReceptionistIntro + yesorno + iffalse .Cancel + special Mobile_DummyReturnFalse ; always returns false + iffalse .NoMobile + writetext KantoText_BattleReceptionistMobile + special AskMobileOrCable + iffalse .Cancel + ifequal $1, .Mobile +.NoMobile: + special SetBitsForBattleRequest + writetext KantoText_PleaseWait + special WaitForLinkedFriend + iffalse .FriendNotReady + writetext KantoText_MustSaveGame + yesorno + iffalse .DidNotSave + special TryQuickSave + iffalse .DidNotSave + writetext KantoText_PleaseWait + special CheckLinkTimeout_Receptionist + iffalse .LinkTimedOut + readmem wOtherPlayerLinkMode + iffalse .LinkedToFirstGen + special CheckBothSelectedSameRoom + iffalse .IncompatibleRooms + writetext KantoText_PleaseComeIn + waitbutton + closetext + scall KantoPokecenter2F_CheckGender + warpcheck + end + +.FriendNotReady: + special WaitForOtherPlayerToExit + writetext KantoYourFriendIsNotReadyText + closetext + end + +.LinkedToFirstGen: + special FailedLinkToPast + writetext KantoText_CantLinkToThePast + special CloseLink + closetext + end + +.IncompatibleRooms: + writetext KantoText_IncompatibleRooms + special CloseLink + closetext + end + +.LinkTimedOut: + writetext KantoText_LinkTimedOut + sjump .AbortLink + +.DidNotSave: + writetext KantoText_PleaseComeAgain +.AbortLink: + special WaitForOtherPlayerToExit +.Cancel: + closetext + end + +.Mobile: + scall .SelectThreeMons + iffalse .Mobile_Abort + scall .Mobile_TrySave + iftrue .Mobile_Abort + scall KantoBattleTradeMobile_WalkIn + warpcheck + end + +.Mobile_Abort: + end + +.Mobile_TrySave: + writetext KantoText_MustSaveGame + yesorno + iffalse .Mobile_DidNotSave + special Function103780 + iffalse .Mobile_DidNotSave + special Function1011f1 + writetext KantoText_PleaseComeIn + waitbutton + closetext + setval FALSE + end + +.Mobile_DidNotSave: + writetext KantoText_PleaseComeAgain + closetext + setval TRUE + end + +.SelectThreeMons: + special Mobile_SelectThreeMons + iffalse .Mobile_DidNotSelect + ifequal $1, .Mobile_OK + ifequal $2, .Mobile_OK + ifequal $3, .Mobile_InvalidParty + sjump .Mobile_DidNotSelect + +.Mobile_InvalidParty: + writetext KantoText_BrokeStadiumRules + waitbutton +.Mobile_DidNotSelect: + closetext + setval FALSE + end + +.Mobile_OK: + setval TRUE + end + +KantoScript_TimeCapsuleClosed: + faceplayer + opentext + writetext KantoText_TimeCapsuleClosed + waitbutton + closetext + end + +LinkReceptionistKantoScript_TimeCapsule: + checkevent EVENT_MET_BILL + iftrue KantoScript_TimeCapsuleClosed + checkflag ENGINE_TIME_CAPSULE + iftrue KantoScript_TimeCapsuleClosed + special SetBitsForTimeCapsuleRequest + faceplayer + opentext + writetext KantoText_TimeCapsuleReceptionistIntro + yesorno + iffalse .Cancel + special CheckTimeCapsuleCompatibility + ifequal $1, .MonTooNew + ifequal $2, .MonMoveTooNew + ifequal $3, .MonHasMail + writetext KantoText_PleaseWait + special WaitForLinkedFriend + iffalse .FriendNotReady + writetext KantoText_MustSaveGame + yesorno + iffalse .DidNotSave + special TryQuickSave + iffalse .DidNotSave + writetext KantoText_PleaseWait + special CheckLinkTimeout_Receptionist + iffalse .LinkTimedOut + readmem wOtherPlayerLinkMode + iffalse .OK + special CheckBothSelectedSameRoom + writetext KantoText_IncompatibleRooms + special CloseLink + closetext + end + +.OK: + special EnterTimeCapsule + writetext KantoText_PleaseComeIn + waitbutton + closetext + scall TimeCapsuleKantoScript_CheckPlayerGender + warpcheck + end + +.FriendNotReady: + special WaitForOtherPlayerToExit + writetext KantoYourFriendIsNotReadyText + closetext + end + +.LinkTimedOut: + writetext KantoText_LinkTimedOut + sjump .Cancel + +.DidNotSave: + writetext KantoText_PleaseComeAgain +.Cancel: + special WaitForOtherPlayerToExit + closetext + end + +.MonTooNew: + writetext KantoText_RejectNewMon + closetext + end + +.MonMoveTooNew: + writetext KantoText_RejectMonWithNewMove + closetext + end + +.MonHasMail: + writetext KantoText_RejectMonWithMail + closetext + end + +KantoScript_LeftCableTradeCenter: + special WaitForOtherPlayerToExit + scall KantoScript_WalkOutOfLinkTradeRoom + setscene SCENE_KANTOPOKECENTER2F_CHECK_MYSTERY_GIFT + setmapscene TRADE_CENTER, SCENE_TRADECENTER_INITIALIZE + end + +KantoScript_LeftMobileTradeRoom: + special Function101220 + scall KantoScript_WalkOutOfMobileTradeRoom + setscene SCENE_KANTOPOKECENTER2F_CHECK_MYSTERY_GIFT + setmapscene MOBILE_TRADE_ROOM, SCENE_MOBILETRADEROOM_INITIALIZE + end + +KantoScript_WalkOutOfMobileTradeRoom: + applymovement KANTOPOKECENTER2F_TRADE_RECEPTIONIST, KantoPokecenter2FMobileMovementData_ReceptionistWalksUpAndLeft + applymovement PLAYER, KantoPokecenter2FMovementData_PlayerWalksOutOfMobileRoom + applymovement KANTOPOKECENTER2F_TRADE_RECEPTIONIST, KantoPokecenter2FMobileMovementData_ReceptionistWalksRightAndDown + end + +KantoScript_LeftCableColosseum: + special WaitForOtherPlayerToExit + scall KantoScript_WalkOutOfLinkBattleRoom + setscene SCENE_KANTOPOKECENTER2F_CHECK_MYSTERY_GIFT + setmapscene COLOSSEUM, SCENE_COLOSSEUM_INITIALIZE + end + +KantoScript_LeftMobileBattleRoom: + special Function101220 + scall KantoScript_WalkOutOfMobileBattleRoom + setscene SCENE_KANTOPOKECENTER2F_CHECK_MYSTERY_GIFT + setmapscene MOBILE_BATTLE_ROOM, SCENE_MOBILEBATTLEROOM_INITIALIZE + end + +KantoScript_WalkOutOfMobileBattleRoom: + applymovement KANTOPOKECENTER2F_BATTLE_RECEPTIONIST, KantoPokecenter2FMobileMovementData_ReceptionistWalksUpAndLeft + applymovement PLAYER, KantoPokecenter2FMovementData_PlayerWalksOutOfMobileRoom + applymovement KANTOPOKECENTER2F_BATTLE_RECEPTIONIST, KantoPokecenter2FMobileMovementData_ReceptionistWalksRightAndDown + end + +KantoPokecenter2F_CheckGender: + readvar VAR_PLAYERGENDER + ifnotequal MALE, .Female + applymovementlasttalked KantoPokecenter2FMovementData_ReceptionistWalksUpAndLeft_LookRight + applymovement PLAYER, KantoPokecenter2FMovementData_PlayerTakesThreeStepsUp + end + +.Female: + applymovementlasttalked KantoPokecenter2FMovementData_ReceptionistWalksUpAndLeft_LookRight_2 + applymovement PLAYER, KantoPokecenter2FMovementData_PlayerTakesTwoStepsUp + opentext + writetext KantoText_OhPleaseWait + waitbutton + closetext + applymovementlasttalked KantoPokecenter2FMovementData_ReceptionistLooksRight + turnobject PLAYER, LEFT + opentext + writetext KantoText_ChangeTheLook + waitbutton + closetext + playsound SFX_TINGLE + applymovement PLAYER, KantoPokecenter2FMovementData_PlayerSpinsClockwiseEndsFacingRight + setval (PAL_NPC_RED << 4) + special SetPlayerPalette + applymovement PLAYER, KantoPokecenter2FMovementData_PlayerSpinsClockwiseEndsFacingLeft + setflag ENGINE_KRIS_IN_CABLE_CLUB + special UpdatePlayerSprite + opentext + writetext KantoText_LikeTheLook + waitbutton + closetext + showemote EMOTE_SHOCK, PLAYER, 15 + applymovement PLAYER, KantoPokecenter2FMovementData_PlayerTakesOneStepUp + end + +KantoScript_WalkOutOfLinkTradeRoom: + checkflag ENGINE_KRIS_IN_CABLE_CLUB + iftrue .Female + applymovement KANTOPOKECENTER2F_TRADE_RECEPTIONIST, KantoPokecenter2FMovementData_ReceptionistStepsRightLooksDown_3 + applymovement PLAYER, KantoPokecenter2FMovementData_PlayerTakesThreeStepsDown + applymovement KANTOPOKECENTER2F_TRADE_RECEPTIONIST, KantoPokecenter2FMovementData_ReceptionistStepsRightAndDown + end + +.Female: + applymovement KANTOPOKECENTER2F_TRADE_RECEPTIONIST, KantoPokecenter2FMovementData_ReceptionistStepsRightLooksDown_3 + applymovement PLAYER, KantoPokecenter2FMovementData_PlayerTakesOneStepDown_2 + clearflag ENGINE_KRIS_IN_CABLE_CLUB + playsound SFX_TINGLE + applymovement PLAYER, KantoPokecenter2FMovementData_PlayerSpinsClockwiseEndsFacingRight + scall KantoScript_RestorePlayerColor + applymovement PLAYER, KantoPokecenter2FMovementData_PlayerSpinsClockwiseEndsFacingLeft + special UpdatePlayerSprite + applymovement PLAYER, KantoPokecenter2FMovementData_PlayerTakesTwoStepsDown_2 + applymovement KANTOPOKECENTER2F_TRADE_RECEPTIONIST, KantoPokecenter2FMovementData_ReceptionistStepsRightAndDown + end + +KantoScript_WalkOutOfLinkBattleRoom: + checkflag ENGINE_KRIS_IN_CABLE_CLUB + iftrue .Female + applymovement KANTOPOKECENTER2F_BATTLE_RECEPTIONIST, KantoPokecenter2FMovementData_ReceptionistStepsRightLooksDown_3 + applymovement PLAYER, KantoPokecenter2FMovementData_PlayerTakesThreeStepsDown + applymovement KANTOPOKECENTER2F_BATTLE_RECEPTIONIST, KantoPokecenter2FMovementData_ReceptionistStepsRightAndDown + end + +.Female: + applymovement KANTOPOKECENTER2F_BATTLE_RECEPTIONIST, KantoPokecenter2FMovementData_ReceptionistStepsRightLooksDown_3 + applymovement PLAYER, KantoPokecenter2FMovementData_PlayerTakesOneStepDown_2 + clearflag ENGINE_KRIS_IN_CABLE_CLUB + playsound SFX_TINGLE + applymovement PLAYER, KantoPokecenter2FMovementData_PlayerSpinsClockwiseEndsFacingRight + scall KantoScript_RestorePlayerColor + applymovement PLAYER, KantoPokecenter2FMovementData_PlayerSpinsClockwiseEndsFacingLeft + special UpdatePlayerSprite + applymovement PLAYER, KantoPokecenter2FMovementData_PlayerTakesTwoStepsDown_2 + applymovement KANTOPOKECENTER2F_BATTLE_RECEPTIONIST, KantoPokecenter2FMovementData_ReceptionistStepsRightAndDown + end + +TimeCapsuleKantoScript_CheckPlayerGender: + readvar VAR_PLAYERGENDER + ifnotequal MALE, .Female + readvar VAR_FACING + ifequal LEFT, .MaleFacingLeft + ifequal RIGHT, .MaleFacingRight + applymovementlasttalked KantoPokecenter2FMovementData_ReceptionistStepsLeftLooksDown + applymovement PLAYER, KantoPokecenter2FMovementData_PlayerTakesTwoStepsUp_2 + end + +.MaleFacingLeft: + applymovementlasttalked KantoPokecenter2FMovementData_ReceptionistStepsLeftLooksDown + applymovement PLAYER, KantoPokecenter2FMovementData_PlayerWalksLeftAndUp + end + +.MaleFacingRight: + applymovementlasttalked KantoPokecenter2FMovementData_ReceptionistStepsRightLooksDown + applymovement PLAYER, KantoPokecenter2FMovementData_PlayerWalksRightAndUp + end + +.Female: + readvar VAR_FACING + ifequal RIGHT, .FemaleFacingRight + ifequal LEFT, .FemaleFacingLeft + applymovementlasttalked KantoPokecenter2FMovementData_ReceptionistStepsLeftLooksRight_2 + applymovement PLAYER, KantoPokecenter2FMovementData_PlayerTakesOneStepUp_2 + sjump .FemaleContinue + +.FemaleFacingRight: + applymovementlasttalked KantoPokecenter2FMovementData_ReceptionistStepsRightLooksLeft_2 + applymovement PLAYER, KantoPokecenter2FMovementData_PlayerTakesOneStepRight + sjump .FemaleContinue + +.FemaleFacingLeft: + applymovementlasttalked KantoPokecenter2FMovementData_ReceptionistStepsLeftLooksRight_2 + applymovement PLAYER, KantoPokecenter2FMovementData_PlayerTakesOneStepLeft +.FemaleContinue: + opentext + writetext KantoText_OhPleaseWait + waitbutton + closetext + readvar VAR_FACING + ifnotequal UP, .FemaleChangeApperance + turnobject PLAYER, LEFT +.FemaleChangeApperance: + opentext + writetext KantoText_ChangeTheLook + waitbutton + closetext + playsound SFX_TINGLE + applymovement PLAYER, KantoPokecenter2FMovementData_PlayerSpinsClockwiseEndsFacingRight + setval (PAL_NPC_RED << 4) + special SetPlayerPalette + applymovement PLAYER, KantoPokecenter2FMovementData_PlayerSpinsClockwiseEndsFacingDown + faceobject PLAYER, KANTOPOKECENTER2F_TIME_CAPSULE_RECEPTIONIST + setflag ENGINE_KRIS_IN_CABLE_CLUB + special UpdatePlayerSprite + opentext + writetext KantoText_LikeTheLook + waitbutton + closetext + showemote EMOTE_SHOCK, PLAYER, 15 + applymovement PLAYER, KantoPokecenter2FMovementData_PlayerTakesOneStepUp_2 + end + +KantoScript_LeftTimeCapsule: + special WaitForOtherPlayerToExit + checkflag ENGINE_KRIS_IN_CABLE_CLUB + iftrue .Female + applymovement KANTOPOKECENTER2F_TIME_CAPSULE_RECEPTIONIST, KantoPokecenter2FMovementData_ReceptionistStepsLeftLooksRight + applymovement PLAYER, KantoPokecenter2FMovementData_PlayerTakesTwoStepsDown + applymovement KANTOPOKECENTER2F_TIME_CAPSULE_RECEPTIONIST, KantoPokecenter2FMovementData_ReceptionistStepsRightLooksDown_2 + sjump .Done + +.Female: + applymovement KANTOPOKECENTER2F_TIME_CAPSULE_RECEPTIONIST, KantoPokecenter2FMovementData_ReceptionistStepsLeftLooksRight + applymovement PLAYER, KantoPokecenter2FMovementData_PlayerTakesOneStepDown + clearflag ENGINE_KRIS_IN_CABLE_CLUB + playsound SFX_TINGLE + applymovement PLAYER, KantoPokecenter2FMovementData_PlayerSpinsClockwiseEndsFacingRight + scall KantoScript_RestorePlayerColor + applymovement PLAYER, KantoPokecenter2FMovementData_PlayerSpinsClockwiseEndsFacingLeft + special UpdatePlayerSprite + applymovement PLAYER, KantoPokecenter2FMovementData_PlayerTakesOneStepDown + applymovement KANTOPOKECENTER2F_TIME_CAPSULE_RECEPTIONIST, KantoPokecenter2FMovementData_ReceptionistStepsRightLooksDown_2 +.Done: + setscene SCENE_KANTOPOKECENTER2F_CHECK_MYSTERY_GIFT + setmapscene TIME_CAPSULE, SCENE_TIMECAPSULE_INITIALIZE + end + +KantoScript_RestorePlayerColor: + readvar VAR_PLAYERGENDER + ifequal FEMALE, .Blue + setval (PAL_NPC_PURPLE << 4) + special SetPlayerPalette + end +.Blue + setval (PAL_NPC_BLUE << 4) + special SetPlayerPalette + end + +KantoPokecenter2FLinkRecordSign: + refreshscreen + special DisplayLinkRecord + closetext + end + +KantoPokecenter2FOfficerScript: + faceplayer + opentext + checkevent EVENT_MYSTERY_GIFT_DELIVERY_GUY + iftrue .AlreadyGotGift + writetext KantoText_MysteryGiftDeliveryGuy_Intro + yesorno + iffalse .RefusedGift + writetext KantoText_MysteryGiftDeliveryGuy_HereYouGo + promptbutton + waitsfx + special GetMysteryGiftItem + iffalse .BagIsFull + itemnotify + setevent EVENT_MYSTERY_GIFT_DELIVERY_GUY +.AlreadyGotGift: + writetext KantoText_MysteryGiftDeliveryGuy_Outro + waitbutton + closetext + end + +.BagIsFull: + writetext KantoText_MysteryGiftDeliveryGuy_NoRoom + waitbutton + closetext + end + +.RefusedGift: + writetext KantoText_MysteryGiftDeliveryGuy_SaidNo + waitbutton + closetext + end + +KantoPokecenter2FMovementData_ReceptionistWalksUpAndLeft_LookRight: + slow_step UP + slow_step LEFT + turn_head RIGHT + step_end + +KantoPokecenter2FMobileMobileMovementData_ReceptionistWalksUpAndLeft_LookDown: + slow_step UP + slow_step LEFT + turn_head DOWN + step_end + +KantoPokecenter2FMovementData_ReceptionistStepsLeftLooksDown: + slow_step LEFT + turn_head DOWN + step_end + +KantoPokecenter2FMovementData_ReceptionistStepsRightLooksDown: + slow_step RIGHT + turn_head DOWN + step_end + +KantoPokecenter2FMovementData_ReceptionistWalksUpAndLeft_LookRight_2: + slow_step UP + slow_step LEFT + turn_head RIGHT + step_end + +KantoPokecenter2FMovementData_ReceptionistLooksRight: + turn_head RIGHT + step_end + +KantoPokecenter2FMovementData_PlayerTakesThreeStepsUp: + step UP + step UP + step UP + step_end + +KantoPokecenter2FMovementData_PlayerTakesTwoStepsUp: + step UP + step UP + step_end + +KantoPokecenter2FMovementData_PlayerTakesOneStepUp: + step UP + step_end + +KantoPokecenter2FMobileMovementData_PlayerWalksIntoMobileBattleRoom: + step UP + step UP + step RIGHT + step UP + step_end + +KantoPokecenter2FMovementData_PlayerTakesTwoStepsUp_2: + step UP + step UP + step_end + +KantoPokecenter2FMovementData_PlayerWalksLeftAndUp: + step LEFT + step UP + step_end + +KantoPokecenter2FMovementData_PlayerWalksRightAndUp: + step RIGHT + step UP + step_end + +KantoPokecenter2FMovementData_PlayerTakesThreeStepsDown: + step DOWN + step DOWN + step DOWN + step_end + +KantoPokecenter2FMovementData_PlayerTakesTwoStepsDown: + step DOWN + step DOWN + step_end + +KantoPokecenter2FMovementData_PlayerTakesOneStepDown: + step DOWN + step_end + +KantoPokecenter2FMovementData_ReceptionistStepsRightAndDown: + slow_step RIGHT + slow_step DOWN + step_end + +KantoPokecenter2FMovementData_ReceptionistStepsRightLooksDown_2: + slow_step RIGHT + turn_head DOWN + step_end + +KantoPokecenter2FMovementData_ReceptionistStepsRightLooksDown_3: + slow_step UP + slow_step LEFT + turn_head RIGHT + step_end + +KantoPokecenter2FMovementData_ReceptionistStepsLeftLooksRight: + slow_step LEFT + turn_head RIGHT + step_end + +KantoPokecenter2FMobileMovementData_ReceptionistWalksUpAndLeft: + slow_step UP + slow_step LEFT + turn_head RIGHT + step_end + +KantoPokecenter2FMovementData_PlayerWalksOutOfMobileRoom: + step DOWN + step LEFT + step DOWN + step DOWN + step_end + +KantoPokecenter2FMobileMovementData_ReceptionistWalksRightAndDown: + slow_step RIGHT + slow_step DOWN + step_end + +KantoPokecenter2FMovementData_PlayerSpinsClockwiseEndsFacingRight: + turn_head DOWN + turn_head LEFT + turn_head UP + turn_head RIGHT + step_end + +KantoPokecenter2FMovementData_PlayerSpinsClockwiseEndsFacingLeft: + turn_head DOWN + turn_head LEFT + turn_head UP + turn_head RIGHT + turn_head LEFT + step_end + +KantoPokecenter2FMovementData_PlayerSpinsClockwiseEndsFacingDown: + turn_head DOWN + turn_head LEFT + turn_head UP + turn_head RIGHT + turn_head DOWN + step_end + +KantoPokecenter2FMovementData_PlayerTakesOneStepDown_2: + step DOWN + step_end + +KantoPokecenter2FMovementData_PlayerTakesTwoStepsDown_2: + step DOWN + step DOWN + step_end + +KantoPokecenter2FMovementData_PlayerTakesOneStepUp_2: + step UP + step_end + +KantoPokecenter2FMovementData_PlayerTakesOneStepRight: + step RIGHT + step_end + +KantoPokecenter2FMovementData_PlayerTakesOneStepLeft: + step LEFT + step_end + +KantoPokecenter2FMovementData_ReceptionistStepsLeftLooksRight_2: + slow_step LEFT + turn_head RIGHT + step_end + +KantoPokecenter2FMovementData_ReceptionistStepsRightLooksLeft_2: + slow_step RIGHT + turn_head LEFT + step_end + +KantoText_BattleReceptionistMobile: + text "Would you like to" + line "battle over a GAME" + + para "LINK cable or by" + line "mobile phone?" + done + +KantoText_TradeReceptionistMobile: + text "Would you like to" + line "trade over a GAME" + + para "LINK cable or by" + line "mobile phone?" + done + +KantoText_ThisWayToMobileRoom: ; unreferenced + text "This way to the" + line "MOBILE ROOM." + done + +KantoText_BattleReceptionistIntro: + text "Welcome to CABLE" + line "CLUB COLOSSEUM." + + para "You may battle a" + line "friend here." + + para "Would you like to" + line "battle?" + done + +KantoText_TradeReceptionistIntro: + text "Welcome to CABLE" + line "TRADE CENTER." + + para "You may trade your" + line "#MON here with" + cont "a friend." + + para "Would you like to" + line "trade?" + done + +KantoText_TimeCapsuleReceptionistIntro: + text "Welcome to CABLE" + line "CLUB TIME CAPSULE." + + para "You can travel to" + line "the past and trade" + cont "your #MON." + + para "Would you like to" + line "trade across time?" + done + +KantoYourFriendIsNotReadyText: + text "Your friend is not" + line "ready." + prompt + +KantoText_MustSaveGame: + text "Before opening the" + line "link, you must" + cont "save your game." + done + +KantoText_PleaseWait: + text "Please wait." + done + +KantoText_LinkTimedOut: + text "The link has been" + line "closed because of" + cont "inactivity." + + para "Please contact" + line "your friend and" + cont "come again." + prompt + +KantoText_PleaseComeAgain: + text "Please come again." + prompt + +KantoText_PleaseComeInDuplicate: ; unreferenced + text "Please come in." + prompt + +KantoText_TemporaryStagingInLinkRoom: ; unreferenced + text "We'll put you in" + line "the link room for" + cont "the time being." + done + +KantoText_CantLinkToThePast: + text "You can't link to" + line "the past here." + prompt + +KantoText_IncompatibleRooms: + text "Incompatible rooms" + line "were chosen." + prompt + +KantoText_PleaseComeIn: + text "Please come in." + done + +KantoText_PleaseEnter: ; unreferenced + text "Please enter." + prompt + +KantoText_RejectNewMon: + text "Sorry--@" + text_ram wStringBuffer1 + text_start + line "can't be taken." + prompt + +KantoText_RejectMonWithNewMove: + text "You can't take the" + line "@" + text_ram wStringBuffer1 + text " with a" + cont "@" + text_ram wStringBuffer2 + text "." + prompt + +KantoText_RejectMonWithMail: + text "You can't take the" + line "@" + text_ram wStringBuffer1 + text " that" + cont "has MAIL with you." + prompt + +KantoText_TimeCapsuleClosed: + text "I'm sorry--the" + line "TIME CAPSULE is" + cont "being adjusted." + done + +KantoText_TradeRoomClosed: + text "I'm sorry--the" + line "TRADE MACHINE is" + cont "being adjusted." + done + +KantoText_BattleRoomClosed: + text "I'm sorry--the" + line "BATTLE MACHINE is" + cont "being adjusted." + done + +KantoText_MysteryGiftDeliveryGuy_Intro: + text "Hello! You're" + line ", right?" + + para "I have some-" + line "thing for you." + done + +KantoText_MysteryGiftDeliveryGuy_HereYouGo: + text "Here you go!" + done + +KantoText_MysteryGiftDeliveryGuy_Outro: + text "We hope to serve" + line "you again." + done + +KantoText_MysteryGiftDeliveryGuy_NoRoom: + text "Oh, you have no" + line "space for this." + + para "Stop in at any" + line "#MON CENTER" + + para "across the country" + line "to pick it up." + done + +KantoText_MysteryGiftDeliveryGuy_SaidNo: + text "No? That's very" + line "strange…" + done + +KantoText_OhPleaseWait: + text "Oh, please wait." + done + +KantoText_ChangeTheLook: + text "We need to change" + line "the look here…" + done + +KantoText_LikeTheLook: + text "How does this" + line "style look to you?" + done + +KantoText_BrokeStadiumRules: + text "Excuse me!" + + para "For STADIUM rules," + line "please bring six" + + para "different #MON," + line "excluding EGGS." + + para "The six #MON" + line "must be different." + + para "Also, they must" + line "not be holding" + cont "identical items." + + para "Please come back" + line "when you're ready." + done + +KantoPokecenter2F_MapEvents: + db 0, 0 ; filler + + def_warp_events + warp_event 0, 7, POKECENTER_2F, -1 + warp_event 5, 0, TRADE_CENTER, 1 + warp_event 9, 0, COLOSSEUM, 1 + warp_event 13, 2, TIME_CAPSULE, 1 + warp_event 6, 0, MOBILE_TRADE_ROOM, 1 + warp_event 10, 0, MOBILE_BATTLE_ROOM, 1 + + def_coord_events + + def_bg_events + bg_event 7, 3, BGEVENT_READ, KantoPokecenter2FLinkRecordSign + + def_object_events + object_event 5, 2, SPRITE_LINK_RECEPTIONIST, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_SCRIPT, 0, LinkReceptionistKantoScript_Trade, -1 + object_event 9, 2, SPRITE_LINK_RECEPTIONIST, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_SCRIPT, 0, LinkReceptionistKantoScript_Battle, -1 + object_event 13, 3, SPRITE_LINK_RECEPTIONIST, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_SCRIPT, 0, LinkReceptionistKantoScript_TimeCapsule, -1 + object_event 1, 1, SPRITE_OFFICER, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, KantoPokecenter2FOfficerScript, EVENT_MYSTERY_GIFT_DELIVERY_GUY diff --git a/maps/LavenderPokecenter1F.asm b/maps/LavenderPokecenter1F.asm index f112e9a..be600e0 100644 --- a/maps/LavenderPokecenter1F.asm +++ b/maps/LavenderPokecenter1F.asm @@ -84,7 +84,7 @@ LavenderPokecenter1F_MapEvents: def_warp_events warp_event 3, 7, LAVENDER_TOWN, 1 warp_event 4, 7, LAVENDER_TOWN, 1 - warp_event 0, 7, POKECENTER_2F, 1 + warp_event 0, 7, KANTO_POKECENTER_2F, 1 def_coord_events diff --git a/maps/PewterPokecenter1F.asm b/maps/PewterPokecenter1F.asm index 236e41d..56f178e 100644 --- a/maps/PewterPokecenter1F.asm +++ b/maps/PewterPokecenter1F.asm @@ -71,7 +71,7 @@ PewterPokecenter1F_MapEvents: def_warp_events warp_event 3, 7, PEWTER_CITY, 4 warp_event 4, 7, PEWTER_CITY, 4 - warp_event 0, 7, POKECENTER_2F, 1 + warp_event 0, 7, KANTO_POKECENTER_2F, 1 def_coord_events diff --git a/maps/Route10Pokecenter1F.asm b/maps/Route10Pokecenter1F.asm index 8a26805..94069aa 100644 --- a/maps/Route10Pokecenter1F.asm +++ b/maps/Route10Pokecenter1F.asm @@ -84,7 +84,7 @@ Route10Pokecenter1F_MapEvents: def_warp_events warp_event 3, 7, ROUTE_10_NORTH, 1 warp_event 4, 7, ROUTE_10_NORTH, 1 - warp_event 0, 7, POKECENTER_2F, 1 + warp_event 0, 7, KANTO_POKECENTER_2F, 1 def_coord_events diff --git a/maps/SaffronPokecenter1F.asm b/maps/SaffronPokecenter1F.asm index a7d483d..c38dcfe 100644 --- a/maps/SaffronPokecenter1F.asm +++ b/maps/SaffronPokecenter1F.asm @@ -115,7 +115,7 @@ SaffronPokecenter1F_MapEvents: def_warp_events warp_event 3, 7, SAFFRON_CITY, 4 warp_event 4, 7, SAFFRON_CITY, 4 - warp_event 0, 7, POKECENTER_2F, 1 + warp_event 0, 7, KANTO_POKECENTER_2F, 1 def_coord_events diff --git a/maps/VermilionPokecenter1F.asm b/maps/VermilionPokecenter1F.asm index 41533c2..16605f7 100644 --- a/maps/VermilionPokecenter1F.asm +++ b/maps/VermilionPokecenter1F.asm @@ -80,7 +80,7 @@ VermilionPokecenter1F_MapEvents: def_warp_events warp_event 3, 7, VERMILION_CITY, 2 warp_event 4, 7, VERMILION_CITY, 2 - warp_event 0, 7, POKECENTER_2F, 1 + warp_event 0, 7, KANTO_POKECENTER_2F, 1 def_coord_events diff --git a/maps/ViridianPokecenter1F.asm b/maps/ViridianPokecenter1F.asm index fcd32fc..8590fe8 100644 --- a/maps/ViridianPokecenter1F.asm +++ b/maps/ViridianPokecenter1F.asm @@ -75,7 +75,7 @@ ViridianPokecenter1F_MapEvents: def_warp_events warp_event 3, 7, VIRIDIAN_CITY, 5 warp_event 4, 7, VIRIDIAN_CITY, 5 - warp_event 0, 7, POKECENTER_2F, 1 + warp_event 0, 7, KANTO_POKECENTER_2F, 1 def_coord_events