diff --git a/constants/landmark_constants.asm b/constants/landmark_constants.asm index fbecf43..52e6d1d 100644 --- a/constants/landmark_constants.asm +++ b/constants/landmark_constants.asm @@ -49,6 +49,7 @@ const LANDMARK_BLACKTHORN_CITY ; 29 const LANDMARK_DRAGONS_DEN ; 2a const LANDMARK_ROUTE_45 ; 2b + const LANDMARK_HAUNTED_HOUSE const LANDMARK_DARK_CAVE ; 2c const LANDMARK_ROUTE_46 ; 2d const LANDMARK_SILVER_CAVE ; 2e diff --git a/constants/map_constants.asm b/constants/map_constants.asm index ca22b71..323748d 100644 --- a/constants/map_constants.asm +++ b/constants/map_constants.asm @@ -396,6 +396,9 @@ ENDM map_const LAVENDER_CRYPT_SET_2, 12, 10 ; 17 map_const LAVENDER_CRYPT_SET_3, 12, 10 ; 18 map_const LAVENDER_CRYPT_DOKUROARS_ROOM, 7, 8 ; 19 + map_const HAUNTED_HOUSE_FOYER, 6, 5 ; 20 - it's here so we can use the purple palette. As far as I know, this doesn't cause any gameplay issues. + map_const HAUNTED_HOUSE_1F, 18, 10 ; 21 + map_const HAUNTED_HOUSE_2F, 11, 4 ; 22 endgroup newgroup SILVER ; 19 diff --git a/data/maps/attributes.asm b/data/maps/attributes.asm index beb7998..b2fed0b 100644 --- a/data/maps/attributes.asm +++ b/data/maps/attributes.asm @@ -736,6 +736,9 @@ ENDM map_attributes SeafoamIslandsB2F, SEAFOAM_ISLANDS_B2F, $00, 0 ; Bank 1 map_attributes SeafoamIslandsB3F, SEAFOAM_ISLANDS_B3F, $00, 0 ; Bank 1 map_attributes SeafoamIslandsB4F, SEAFOAM_ISLANDS_B4F, $00, 0 ; Bank 1 + map_attributes HauntedHouseFoyer, HAUNTED_HOUSE_FOYER, $00, 0 + map_attributes HauntedHouse1F, HAUNTED_HOUSE_1F, $00, 0 + map_attributes HauntedHouse2F, HAUNTED_HOUSE_2F, $00, 0 ; Citrine City Maps map_attributes CitrineCity, CITRINE_CITY, $00, 0 ; Bank 2 diff --git a/data/maps/blocks.asm b/data/maps/blocks.asm index 71966e7..b61201c 100644 --- a/data/maps/blocks.asm +++ b/data/maps/blocks.asm @@ -1282,4 +1282,13 @@ CapeBrink_Blocks: SummerBeachHouse_Blocks: INCBIN "maps/SummerBeachHouse.ablk" + +HauntedHouseFoyer_Blocks: + INCBIN "maps/HauntedHouseFoyer.ablk" + +HauntedHouse1F_Blocks: + INCBIN "maps/HauntedHouse1F.ablk" + +HauntedHouse2F_Blocks: + INCBIN "maps/HauntedHouse2F.ablk" diff --git a/data/maps/landmarks.asm b/data/maps/landmarks.asm index 71f3c69..e61efd1 100644 --- a/data/maps/landmarks.asm +++ b/data/maps/landmarks.asm @@ -55,6 +55,7 @@ Landmarks: landmark 132, 44, BlackthornCityName landmark 132, 36, DragonsDenName landmark 132, 64, Route45Name + landmark 124, 68, HauntedHouseName landmark 112, 72, DarkCaveName landmark 124, 88, Route46Name landmark 148, 68, SilverCaveName diff --git a/data/maps/maps.asm b/data/maps/maps.asm index b8379e1..81fe8d2 100644 --- a/data/maps/maps.asm +++ b/data/maps/maps.asm @@ -436,6 +436,9 @@ MapGroup_Lavender: map LavenderCryptSet2, TILESET_LAVENDER_CRYPT, CAVE, LANDMARK_LAVENDER_TOWN, MUSIC_LAVENDER_TOWN, TRUE, PALETTE_NITE, FISHGROUP_NONE map LavenderCryptSet3, TILESET_LAVENDER_CRYPT, CAVE, LANDMARK_LAVENDER_TOWN, MUSIC_LAVENDER_TOWN, TRUE, PALETTE_NITE, FISHGROUP_NONE map LavenderCryptDokuroarsRoom, TILESET_LAVENDER_CRYPT, CAVE, LANDMARK_LAVENDER_TOWN, MUSIC_LAVENDER_TOWN, TRUE, PALETTE_NITE, FISHGROUP_NONE + map HauntedHouseFoyer, TILESET_LAVENDER_CRYPT, CAVE, LANDMARK_HAUNTED_HOUSE, MUSIC_LAVENDER_TOWN, TRUE, PALETTE_NITE, FISHGROUP_NONE + map HauntedHouse1F, TILESET_LAVENDER_CRYPT, CAVE, LANDMARK_HAUNTED_HOUSE, MUSIC_LAVENDER_TOWN, TRUE, PALETTE_NITE, FISHGROUP_NONE + map HauntedHouse2F, TILESET_LAVENDER_CRYPT, CAVE, LANDMARK_HAUNTED_HOUSE, MUSIC_LAVENDER_TOWN, TRUE, PALETTE_NITE, FISHGROUP_NONE assert_table_length NUM_LAVENDER_MAPS MapGroup_Silver: diff --git a/data/maps/scripts.asm b/data/maps/scripts.asm index 8afae0d..f516e83 100644 --- a/data/maps/scripts.asm +++ b/data/maps/scripts.asm @@ -603,6 +603,9 @@ INCLUDE "maps/LavenderCryptDokuroarsRoom.asm" INCLUDE "maps/Route50.asm" INCLUDE "maps/JackysHouse.asm" INCLUDE "maps/SummerBeachHouse.asm" +INCLUDE "maps/HauntedHouseFoyer.asm" +INCLUDE "maps/HauntedHouse1F.asm" +INCLUDE "maps/HauntedHouse2F.asm" SECTION "Map Scripts 31", ROMX ; spillover INCLUDE "maps/TanobyRuins.asm" diff --git a/data/text/std_text.asm b/data/text/std_text.asm index ed2c27b..e1bc78a 100644 --- a/data/text/std_text.asm +++ b/data/text/std_text.asm @@ -260,10 +260,9 @@ TeamRocketOathText: done IncenseBurnerText: - text "What is this?" + text "What is this? Ah!" - para "Oh, it's an" - line "incense burner!" + para "It's a butsudan!" ; restored detail, see RG JP script, etc. done MerchandiseShelfText: @@ -498,3 +497,18 @@ RegisteredNumber2Text: text_ram wStringBuffer3 text "'s number." done + +OldMagazinesText: + text "It's full of old" + line "magazines…" + done + +OldBooksText: + text "Stuffed full of" + line "old #MON books!" + + para "The techniques" + line "described…" ; This is softly alluding to the trainers with whips and how Pokemon swiftly steered away with this after RG. Tamers should keep this sort of thing going, as should Rockets. + + para "Never mind!" + done diff --git a/data/tilesets/lavendercrypt_attributes.bin b/data/tilesets/lavendercrypt_attributes.bin index 8343072..97c8743 100644 Binary files a/data/tilesets/lavendercrypt_attributes.bin and b/data/tilesets/lavendercrypt_attributes.bin differ diff --git a/data/tilesets/lavendercrypt_collision.asm b/data/tilesets/lavendercrypt_collision.asm index ead6812..35002aa 100644 --- a/data/tilesets/lavendercrypt_collision.asm +++ b/data/tilesets/lavendercrypt_collision.asm @@ -15,7 +15,7 @@ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 0e tilecoll FLOOR, WALL, FLOOR, WALL ; 0f tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 10 - tilecoll WALL, WALL, DOOR, DOOR ; 11 + tilecoll WALL, WALL, WALL, DOOR ; 11 tilecoll WALL, WALL, WALL, WALL ; 12 tilecoll WALL, WALL, WALL, WALL ; 13 tilecoll WALL, WALL, WALL, FLOOR ; 14 @@ -109,10 +109,10 @@ tilecoll WALL, WALL, WALL, WALL ; 6c tilecoll WALL, WALL, WALL, WALL ; 6d tilecoll WALL, WALL, WALL, WALL ; 6e - tilecoll FLOOR, FLOOR, WALL, FLOOR ; 6f - tilecoll FLOOR, FLOOR, FLOOR, WALL ; 70 - tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 71 - tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 72 + tilecoll WALL, WALL, WALL, WALL ; 6f + tilecoll WALL, WALL, WALL, WALL ; 70 + tilecoll FLOOR, FLOOR, FLOOR, WARP_CARPET_DOWN ; 71 + tilecoll FLOOR, FLOOR, WARP_CARPET_DOWN, FLOOR ; 72 tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 73 tilecoll WALL, WALL, WALL, DOOR ; 74 tilecoll WALL, WALL, WALL, WALL ; 75 @@ -126,3 +126,34 @@ tilecoll WALL, DOOR, WALL, FLOOR ; 7d tilecoll DOOR, WALL, FLOOR, WALL ; 7e tilecoll FLOOR, WALL, FLOOR, WALL ; 7f + tilecoll WALL, WALL, FLOOR, FLOOR ; 80 + tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 81 + tilecoll WALL, WALL, FLOOR, FLOOR ; 82 + tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 83 + tilecoll FLOOR, FLOOR, WALL, WALL ; 84 + tilecoll FLOOR, WALL, FLOOR, FLOOR ; 85 + tilecoll WALL, WALL, WALL, WALL ; 86 + tilecoll INCENSE_BURNER, WALL, FLOOR, FLOOR ; 87 + tilecoll WALL, WALL, FLOOR, FLOOR ; 88 + tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 89 + tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 8a + tilecoll WALL, WALL, WALL, DOOR ; 8b + tilecoll WALL, WALL, WALL, DOOR ; 8c + tilecoll WALL, WALL, FLOOR, FLOOR ; 8d + tilecoll WALL, FLOOR, WALL, FLOOR ; 8e + tilecoll WALL, WALL, FLOOR, FLOOR ; 8f + tilecoll WALL, WALL, WALL, WALL ; 90 + tilecoll WALL, WALL, DOOR, WALL ; 91 + tilecoll WALL, WALL, DOOR, WALL ; 92 + tilecoll WALL, FLOOR, FLOOR, FLOOR ; 93 + tilecoll WALL, FLOOR, WALL, FLOOR ; 94 + tilecoll FLOOR, WALL, FLOOR, FLOOR ; 95 + tilecoll FLOOR, FLOOR, WALL, FLOOR ; 96 + tilecoll FLOOR, FLOOR, FLOOR, WALL ; 97 + tilecoll WALL, WALL, WALL, WALL ; 98 + tilecoll WALL, WALL, WALL, WALL ; 99 + tilecoll WALL, WALL, WALL, WALL ; 9a + tilecoll WALL, WALL, WALL, WALL ; 9b + tilecoll WALL, WALL, FLOOR, FLOOR ; 9c + tilecoll WALL, FLOOR, FLOOR, FLOOR ; 9d + tilecoll WALL, WALL, FLOOR, FLOOR ; 9e diff --git a/data/tilesets/lavendercrypt_metatiles.bin b/data/tilesets/lavendercrypt_metatiles.bin index f1d58c6..02a0364 100644 Binary files a/data/tilesets/lavendercrypt_metatiles.bin and b/data/tilesets/lavendercrypt_metatiles.bin differ diff --git a/data/tilesets/tower_collision.asm b/data/tilesets/tower_collision.asm index 8c0c6fa..4125584 100644 --- a/data/tilesets/tower_collision.asm +++ b/data/tilesets/tower_collision.asm @@ -81,8 +81,8 @@ tilecoll FLOOR, FLOOR, WALL, WALL ; 50 tilecoll FLOOR, FLOOR, WALL, FLOOR ; 51 tilecoll WALL, FLOOR, FLOOR, FLOOR ; 52 - tilecoll WALL, WALL, FLOOR, FLOOR ; 53 - tilecoll WALL, WALL, FLOOR, FLOOR ; 54 + tilecoll INCENSE_BURNER, WALL, FLOOR, FLOOR ; 53 + tilecoll WALL, INCENSE_BURNER, FLOOR, FLOOR ; 54 tilecoll WALL, WALL, FLOOR, FLOOR ; 55 tilecoll WALL, WALL, FLOOR, FLOOR ; 56 tilecoll WALL, WALL, FLOOR, FLOOR ; 57 diff --git a/data/wild/johto_grass.asm b/data/wild/johto_grass.asm index 1adbd58..bfece1e 100644 --- a/data/wild/johto_grass.asm +++ b/data/wild/johto_grass.asm @@ -1808,5 +1808,89 @@ JohtoGrassWildMons: dbw 23, NOCTOWL dbw 25, MURKROW end_grass_wildmons - + + def_grass_wildmons HAUNTED_HOUSE_FOYER + db 2 percent, 2 percent, 2 percent ; encounter rates: morn/day/nite + ; morn + dbw 36, MISDREAVUS + dbw 37, MISDREAVUS + dbw 36, GASTLY + dbw 35, VULPIX + dbw 37, WISPIRIT + dbw 37, HAUNTER + dbw 38, HAUNTER + ; day + dbw 36, MISDREAVUS + dbw 37, MISDREAVUS + dbw 36, GASTLY + dbw 35, VULPIX + dbw 37, WISPIRIT + dbw 37, HAUNTER + dbw 38, HAUNTER + ; nite + dbw 36, MISDREAVUS + dbw 35, MISDREAVUS + dbw 36, GASTLY + dbw 37, BELLEDAM + dbw 37, WISPIRIT + dbw 38, HAUNTER + dbw 40, GENGAR + end_grass_wildmons + + def_grass_wildmons HAUNTED_HOUSE_1F + db 2 percent, 2 percent, 2 percent ; encounter rates: morn/day/nite + ; morn + dbw 36, MISDREAVUS + dbw 37, MISDREAVUS + dbw 36, GASTLY + dbw 35, VULPIX + dbw 37, WISPIRIT + dbw 37, HAUNTER + dbw 38, HAUNTER + ; day + dbw 36, MISDREAVUS + dbw 37, MISDREAVUS + dbw 36, GASTLY + dbw 35, VULPIX + dbw 37, WISPIRIT + dbw 37, HAUNTER + dbw 38, HAUNTER + ; nite + dbw 36, MISDREAVUS + dbw 35, MISDREAVUS + dbw 36, GASTLY + dbw 37, BELLEDAM + dbw 37, WISPIRIT + dbw 38, HAUNTER + dbw 40, GENGAR + end_grass_wildmons + + def_grass_wildmons HAUNTED_HOUSE_2F + db 2 percent, 2 percent, 2 percent ; encounter rates: morn/day/nite + ; morn + dbw 36, MISDREAVUS + dbw 37, MISDREAVUS + dbw 36, GASTLY + dbw 35, VULPIX + dbw 37, WISPIRIT + dbw 37, HAUNTER + dbw 38, HAUNTER + ; day + dbw 36, MISDREAVUS + dbw 37, MISDREAVUS + dbw 36, GASTLY + dbw 35, VULPIX + dbw 37, WISPIRIT + dbw 37, HAUNTER + dbw 38, HAUNTER + ; nite + dbw 36, MISDREAVUS + dbw 35, MISDREAVUS + dbw 36, GASTLY + dbw 37, BELLEDAM + dbw 37, WISPIRIT + dbw 38, HAUNTER + dbw 40, GENGAR + end_grass_wildmons + db -1 ; end diff --git a/engine/events/std_scripts.asm b/engine/events/std_scripts.asm index 44ea815..ba76a70 100644 --- a/engine/events/std_scripts.asm +++ b/engine/events/std_scripts.asm @@ -65,6 +65,8 @@ StdScripts:: add_stdscript GenericStoveScript add_stdscript GenericFridgeScript add_stdscript Nintendo64Script + add_stdscript OldMagazinesScript ; Used for the Haunted House, keeping here for potential other uses. + add_stdscript OldBooksScript PokecenterNurseScript: ; EVENT_WELCOMED_TO_POKECOM_CENTER is never set @@ -175,6 +177,12 @@ PokecenterNurseScript: specialphonecall SPECIALCALL_POKERUS end +OldMagazinesScript: + farjumptext OldMagazinesText + +OldBooksScript: + farjumptext OldBooksText + DifficultBookshelfScript: farjumptext DifficultBookshelfText diff --git a/engine/overworld/wildmons.asm b/engine/overworld/wildmons.asm index 16840fb..2f3db89 100644 --- a/engine/overworld/wildmons.asm +++ b/engine/overworld/wildmons.asm @@ -44,8 +44,8 @@ FindNest: jr z, .sevii ; these areas are small enough to that we shouldn't need two separate tables for these regions. cp SEVII_REGION_1 jr z, .sevii - and a - jr nz, .kanto + cp KANTO_REGION + jr z, .kanto decoord 0, 0 ld hl, JohtoGrassWildMons call .FindGrass @@ -448,24 +448,6 @@ _GrassWildmonLookup: call _SwarmWildmonCheck ret c ld hl, JohtoGrassWildMons - -; Old Nihon Check from 2023. -; it's painfully broken and bad, don't use it unless you have brighter ideas for the below - ; Nihon Check - ; Basically, conditionally load Nihon or Kanto into de, depending on region check. - ; IsInJohto returns 1 if Kanto, 2 if Nihon. - ; This way, when _JohtoWildmonCheck loads, it'll have Nihon's spliced in if you're there. - ; This is INCREDIBLY suboptimal. Consider revising. - ; As of 3rd Nov '23, this works correctly for Johto and Kanto, but Nihon routes will return nothing. -; call IsInJohto ; Run IsInJohto -; cp 1 ; If we're in Kanto... -; jr z, .skip ; Skip the splicing. -; ld de, NihonGrassWildMons ; No? Splice in Nihon. -; jr .skip2 ; Now skip loading Kanto. -;.skip ; If you skip here, you're in Kanto. -; ld de, KantoGrassWildMons ; So take this as normal. -; ; fallthrough -;.skip2 ; If you skip here, you're in Nihon or Johto. ld de, NihonGrassWildMons ld a, [wMapGroup] @@ -474,20 +456,20 @@ _GrassWildmonLookup: ld c, a call GetWorldMapLocation cp NIHON_LANDMARK - jr nc, .johto + jr nc, .foundRegion ; account for sevii ld de, SeviiGrassWildMons cp SEVII_LANDMARK_2 ; I am 90% sure this check is unnecessary when in tandem with landmark 1. - jr nc, .johto + jr nc, .foundRegion cp SEVII_LANDMARK_1 - jr nc, .johto + jr nc, .foundRegion ld de, KantoGrassWildMons -.johto +.foundRegion call _JohtoWildmonCheck ; So run this check. More commentary there. ld bc, GRASS_WILDDATA_LENGTH - jr _NormalWildmonOK + jp _NormalWildmonOK _WaterWildmonLookup: ld hl, SwarmWaterWildMons @@ -504,17 +486,17 @@ _WaterWildmonLookup: ld c, a call GetWorldMapLocation cp NIHON_LANDMARK - jr nc, .johto + jr nc, .foundRegion ; account for sevii ld de, SeviiWaterWildMons cp SEVII_LANDMARK_2 - jr nc, .johto + jr nc, .foundRegion cp SEVII_LANDMARK_1 - jr nc, .johto + jr nc, .foundRegion - ld de, KantoWaterWildMons -.johto + ld de, KantoWaterWildMons ; if all else fails, you are here. +.foundRegion call _JohtoWildmonCheck ld bc, WATER_WILDDATA_LENGTH @@ -527,9 +509,13 @@ _WaterWildmonLookup: ; We've already decided what de is before between Kanto and Nihon. ; Nothing fancy, but don't worry about it. _JohtoWildmonCheck: - call IsInJohto ; Check if we're in Johto or not. - and a ; Are we? - ret z ; If zero, skip. This means you're in Johto, so you take what's in hl. + ld a, [wMapGroup] + ld b, a + ld a, [wMapNumber] + ld c, a + call GetWorldMapLocation + cp KANTO_LANDMARK -1 + ret c ; If under Kanto Landmarks, you're in Johto. The added regions made the old function break for some reason? ld h, d ; If you're not, though, you take what's in d... ld l, e ; and e. diff --git a/gfx/pokegear/johto.bin b/gfx/pokegear/johto.bin index faa5efe..4895185 100644 Binary files a/gfx/pokegear/johto.bin and b/gfx/pokegear/johto.bin differ diff --git a/gfx/tilesets/lavendercrypt.png b/gfx/tilesets/lavendercrypt.png index c184f1c..fece09d 100644 Binary files a/gfx/tilesets/lavendercrypt.png and b/gfx/tilesets/lavendercrypt.png differ diff --git a/maps/DebugRoom.asm b/maps/DebugRoom.asm index a38ea29..ff0db73 100644 --- a/maps/DebugRoom.asm +++ b/maps/DebugRoom.asm @@ -403,7 +403,7 @@ DebugRoom_MapEvents: warp_event 5, 35, LAVENDER_TOWN, 1 ; southwest warp warp_event 19, 34, SAFARI_ZONE_FUCHSIA_GATE_BETA, 3 ; southern warp warp_event 33, 33, TWO_ISLAND, 1 ; southeast warp - warp_event 5, 3, AZALEA_TOWN, 1 + warp_event 5, 3, HAUNTED_HOUSE_FOYER, 1 warp_event 34, 11, WINNERS_PATH, 3 def_coord_events diff --git a/maps/HauntedHouse1F.ablk b/maps/HauntedHouse1F.ablk new file mode 100644 index 0000000..a3082b2 Binary files /dev/null and b/maps/HauntedHouse1F.ablk differ diff --git a/maps/HauntedHouse1F.asm b/maps/HauntedHouse1F.asm new file mode 100644 index 0000000..f54c7cb --- /dev/null +++ b/maps/HauntedHouse1F.asm @@ -0,0 +1,77 @@ +; Old Chateau-inspired 1 Corridor multi-room map. + + object_const_def + +HauntedHouse1F_MapScripts: + def_scene_scripts + + def_callbacks + +HauntedHouse1FGrandPianoScript: ; flashbang sm64 players + jumptext HauntedHouse1FGrandPianoText + +HauntedHouse1FGrandPianoText: + text "It's a grand piano!" + line "So big!" + done + +HauntedHouse1FGrandPianoRoomBookScript: ; flashbang sm64 players + jumptext HauntedHouse1FGrandPianoRoomBookText + +HauntedHouse1FGrandPianoRoomBookText: + text "It's a book filled" + line "with music sheets." + + para "There's lots of" + line "angry scrawls in" + cont "the margin…" ; Like many Asians, Jessie hated being forced to learn the piano. + done + +; A cool gimmick (and forced Corpse Party reference) is the use of loose boards to get over gaps. +; This is how you access Miyamoto's room. +HauntedHouseLooseBoardPromptText: + text "The floor has been" + line "smashed open!" + + para "There has to be" + line "a way to cross…" + done + +HauntedHousePlaceTheBoardText: + text "Place the LOOSE" + line "BOARD?" + done + +HauntedHouse1F_MapEvents: + db 0, 0 ; filler + + def_warp_events + warp_event 14, 15, HAUNTED_HOUSE_1F, 5 ; far right + warp_event 11, 15, HAUNTED_HOUSE_1F, 7 ; right + warp_event 8, 15, HAUNTED_HOUSE_1F, 9 ; left + warp_event 5, 15, HAUNTED_HOUSE_1F, 11 ; far left + + warp_event 31, 19, HAUNTED_HOUSE_1F, 1 ; bottom 1 + warp_event 32, 19, HAUNTED_HOUSE_1F, 1 ; bottom 2 + + warp_event 31, 7, HAUNTED_HOUSE_1F, 2 ; top right 1 + warp_event 32, 7, HAUNTED_HOUSE_1F, 2 ; top right 2 + + warp_event 17, 7, HAUNTED_HOUSE_1F, 3 ; top second from left 1 + warp_event 18, 7, HAUNTED_HOUSE_1F, 3 ; top second from left 2 + + warp_event 3, 7, HAUNTED_HOUSE_1F, 4 ; top-right 1 + warp_event 4, 7, HAUNTED_HOUSE_1F, 4 ; top-right 2 + + warp_event 9, 19, HAUNTED_HOUSE_FOYER, 3 + warp_event 10, 19, HAUNTED_HOUSE_FOYER, 4 + + def_coord_events + + def_bg_events + bg_event 31, 3, BGEVENT_READ, HauntedHouse1FGrandPianoScript + bg_event 30, 3, BGEVENT_READ, HauntedHouse1FGrandPianoScript + bg_event 33, 2, BGEVENT_READ, HauntedHouse1FGrandPianoRoomBookScript + bg_event 32, 2, BGEVENT_READ, HauntedHouse1FGrandPianoRoomBookScript + + def_object_events diff --git a/maps/HauntedHouse2F.ablk b/maps/HauntedHouse2F.ablk new file mode 100644 index 0000000..fa86270 Binary files /dev/null and b/maps/HauntedHouse2F.ablk differ diff --git a/maps/HauntedHouse2F.asm b/maps/HauntedHouse2F.asm new file mode 100644 index 0000000..5c3db10 --- /dev/null +++ b/maps/HauntedHouse2F.asm @@ -0,0 +1,261 @@ +; Jessie and Miyamoto's rooms. +; This ports over a lot of stuff from the first movie's radio drama. +; Given Jessie is canon - KEP was a Yellow hack, it makes sense to include. +; It also gives this mansion far more purpose. + +; Translation source: http://www.rigelatin.net/copycat/saga/origin/dramaep1.php + + object_const_def + +HauntedHouse2F_MapScripts: + def_scene_scripts + + def_callbacks + +; At some point this'll be a boss but I'm a bit tired. +; The idea is you defeat it and it gives you something to progress. +HauntedHouse2FGengarDoll: + jumptext HauntedHouse2FGengarDollText + +HauntedHouse2FGengarDollText: + text "It's a GENGAR DOLL!" + + para "It stares daggers" + line "into your eyes…" + + para "Too scary!" + done + +HauntedHouse2FTVScript: ; this will false trigger the rotom fan + jumptext HauntedHouse2FTVText ; in actuality, I consider this to be miyamoto's leisure time! + +HauntedHouse2FTVText: + text "It's a dusty old" + line "TV." + done + +HauntedHouse2FBed1Script: + jumptext HauntedHouse2FBed1Text + +HauntedHouse2FBed1Text: + text "This bed hasn't" + line "been slept in" + cont "for a long time." + done + +HauntedHouse2FBed2Script: + jumptext HauntedHouse2FBed2Text + +HauntedHouse2FBed2Text: + text "This bed hasn't" + line "been slept in" + cont "for a long time." + + para "Under the matt-" + line "ress…" + + para "Ew! Bed bugs!" ; One bed will note this. + done + +; Miyamoto's diary. +; This will prelude her failed mission to capture Mew, referenced in KEP. +; After Miyamoto disappeared, Jessie went into a foster home. + +; I conclude that Jessie lived a rich life initially, as in Holiday Hi-Jynx, she is shown to live in a very privileged household. This presumably took place before Miyamoto disappeared, as she is later shown to live a poverty-stricken life. + +; I initially considered Madame Boss, but in KEP, Giovanni had the files. + +; Smart, right? + +HauntedHouseMiyamotoDiary: + opentext + writetext HauntedHouse2FBookPromptText + waitbutton + yesorno + iffalse .end + writetext HauntedHouse2FBookRead1Text + waitbutton + writetext HauntedHouse2FBookKeepGoingText + waitbutton + yesorno + iffalse .end + writetext HauntedHouse2FBookRead2Text + waitbutton + writetext HauntedHouse2FBookKeepGoingText + waitbutton + yesorno + iffalse .end + writetext HauntedHouse2FBookRead3Text + waitbutton + ; fallthrough +.end + closetext + end + +HauntedHouse2FBookPromptText: + text "It's a diary." + line "Read it?" + done + +HauntedHouse2FBookKeepGoingText: + text "Keep reading?" + done + +HauntedHouse2FBookRead1Text: + text "5th Mar 1977" + line "I've finally got" + cont "permission to" + cont "capture MEW." + + para "It lives in a far" + line "off land. I mana-" + cont "ged to record a" + cont "tape and show the" + cont "boss." + + para "She only cares" + line "about money, but" + cont "I just want to" + cont "pay for my girl…" + done + +HauntedHouse2FBookRead2Text: + text "18th Aug 1977" + line "I caught a glimpse" + cont "of MEW! It was at" + cont "a famous harbour." + + para "I just barely mis-" + line "sed it! I had the" + cont "gas and all!" ; Gassing it seems like a good way to show brutality. + + para "Ugh!" + + para "The boss is right." + line "She always said" ; Raise some eyebrows. + cont "I'm too kind." + done + +HauntedHouse2FBookRead3Text: + text "20th Dec 1977" + line "This #MON is" + cont "harder to catch" + cont "than anticipated." + + para "Were my previous" + line "encounters a mere" + cont "fluke?" + + para "But! I came across" + line "some useful info…" + + para "It seems to like" + line "MT. SILVER." ; Miyamoto is said to have gone to the Andes. We'll change this to Mt. Silver. It also indirectly references that one creepypasta. + + para "…" + + para "I'll make sure" + line "everyone knows." + cont "My daughter is" + cont "in safe hands." + + para "…" + + para "The rest of the" + line "pages are blank." + done + +; Miyamoto recorded a tape for Madame Boss. +; This puts it in ad lib. +HauntedHouseMiyamotoRadio: + opentext + writetext HauntedHouseMiyamotoRadioPromptText + waitbutton + yesorno + iffalse .end + writetext HauntedHouseMiyamotoRadioText + waitbutton + cry EEVEE + waitsfx + cry MANKEY + waitsfx + cry BUTTERFREE + waitsfx + writetext HauntedHouseMiyamotoRadioTextCries + waitbutton + cry MEW + waitsfx + writetext HauntedHouseMiyamotoRadioTextWhatWasThat + waitbutton +.end + closetext + end + +HauntedHouseMiyamotoRadioPromptText: + text "It's an old radio." + + para "…there's a tape" + line "inside! Listen?" + done + +HauntedHouseMiyamotoRadioText: + text "Crackle… crackle…" + + para "This is MIYAMOTO" + line "speaking!" + + para "We have embarked" + line "on FARAWAY ISLAND!" ; It's originally the South American jungle, but this was later made Faraway Island in Emerald. We'll make it this to prompt the player to look. This also makes Mr. Fuji's sign much more haunting. + + para "Here, we will find" + line "and record the" + cont "phantom #MON," + cont "MEW!" + + para "…" + + para "Country music is" + line "playing…" ; Music native to Guyana + + para "…" + done + +HauntedHouseMiyamotoRadioTextCries: + text "Now there's some" + line "cries…" + done + +HauntedHouseMiyamotoRadioTextMyuu: + text "Myuu!" + done + +HauntedHouseMiyamotoRadioTextWhatWasThat: + text "Wait, what was" + line "that?!" + + para "It cuts off there…" + done + +HauntedHouse2F_MapEvents: + db 0, 0 ; filler + + def_warp_events + warp_event 4, 7, HAUNTED_HOUSE_FOYER, 5 + warp_event 3, 7, HAUNTED_HOUSE_FOYER, 5 + warp_event 18, 7, HAUNTED_HOUSE_FOYER, 6 + warp_event 17, 7, HAUNTED_HOUSE_FOYER, 6 + + def_coord_events + + def_bg_events + bg_event 4, 2, BGEVENT_READ, HauntedHouseMiyamotoDiary + bg_event 5, 2, BGEVENT_READ, HauntedHouseMiyamotoDiary ; need 2 as it covers to spaces. lots of things here do, it's a bit inefficient. + bg_event 3, 2, BGEVENT_READ, HauntedHouseMiyamotoRadio + bg_event 2, 2, BGEVENT_READ, HauntedHouse2FTVScript + bg_event 0, 5, BGEVENT_READ, HauntedHouse2FBed1Script + bg_event 0, 4, BGEVENT_READ, HauntedHouse2FBed1Script + bg_event 14, 5, BGEVENT_READ, HauntedHouse2FBed2Script + bg_event 14, 4, BGEVENT_READ, HauntedHouse2FBed2Script + + def_object_events + object_event 20, 4, SPRITE_OWGENGAR, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_EMOTE, OBJECTTYPE_SCRIPT, 2, HauntedHouse2FGengarDoll, -1 diff --git a/maps/HauntedHouseFoyer.ablk b/maps/HauntedHouseFoyer.ablk new file mode 100644 index 0000000..24c2032 Binary files /dev/null and b/maps/HauntedHouseFoyer.ablk differ diff --git a/maps/HauntedHouseFoyer.asm b/maps/HauntedHouseFoyer.asm new file mode 100644 index 0000000..9f53e2a --- /dev/null +++ b/maps/HauntedHouseFoyer.asm @@ -0,0 +1,58 @@ +; This is based on the unused Haunted House landmark from GSC's source code. +; Nothing is known about it except for the dummied-out name. +; Given the time frame, my idea is it may have been derived from the PC-98 Corpse Party game, which is time-appropriate and was very popular with game junkies. +; Given Game Freak ran game magazines and was basically run by nerds, I imagine they'd have heard of and/or played it. The Game Boy can easily replicate much of the graphics. +; It's not just Heavenly Host, though! It's very different! But expect some cool features a la it. Like, say...the loose boards! + +; A lot of inspiration is also taken from the Old Chateau, given GSC has a deep connection with DP. + + object_const_def + +HauntedHouseFoyer_MapScripts: + def_scene_scripts + + def_callbacks + +HauntedHouseFoyerTornPosterScript: + jumptext HauntedHouseFoyerTornPosterText + +HauntedHouseFoyerTornPosterText: + text "Comment to be" + line "written." + done + +HauntedHouseFoyerIntactPosterScript: + jumptext HauntedHouseFoyerIntactPosterText + +HauntedHouseFoyerIntactPosterText: + text "Comment to be" + line "written." + done + +HauntedHouseFoyerOldBooks: + jumpstd OldBooksScript + +HauntedHouseFoyerOldMagazines: + jumpstd OldMagazinesScript + +HauntedHouseFoyer_MapEvents: + db 0, 0 ; filler + + def_warp_events + warp_event 5, 9, ROUTE_45, 1 + warp_event 6, 9, ROUTE_45, 2 + warp_event 5, 4, HAUNTED_HOUSE_1F, 13 + warp_event 6, 4, HAUNTED_HOUSE_1F, 14 + warp_event 3, 1, HAUNTED_HOUSE_2F, 2 + warp_event 8, 1, HAUNTED_HOUSE_2F, 4 + + def_coord_events + + def_bg_events + bg_event 4, 1, BGEVENT_READ, HauntedHouseFoyerTornPosterScript + bg_event 7, 1, BGEVENT_READ, HauntedHouseFoyerIntactPosterScript + bg_event 11, 4, BGEVENT_READ, HauntedHouseFoyerOldBooks + bg_event 0, 4, BGEVENT_READ, HauntedHouseFoyerOldBooks + bg_event 1, 4, BGEVENT_READ, HauntedHouseFoyerOldMagazines + + def_object_events diff --git a/maps/PokemonPagoda5F.asm b/maps/PokemonPagoda5F.asm index 7255d6f..59ed425 100644 --- a/maps/PokemonPagoda5F.asm +++ b/maps/PokemonPagoda5F.asm @@ -11,9 +11,6 @@ PokemonPagoda5FStatue: PokemonPagoda5FSign: jumptext PokemonPagoda5FSignText -PokemonPagoda5FButsudan: - jumptext PokemonPagoda5FButsudanText - PokemonPagoda5FStatueText: text "It's a statue of" line "ABRA." @@ -33,10 +30,6 @@ PokemonPagoda5FSignText: ; 女娲补天 cont "disaster." done -PokemonPagoda5FButsudanText: - text "It's a butsudan!" - done - ElderRoenScript: faceplayer opentext @@ -61,7 +54,6 @@ PokemonPagoda5F_MapEvents: def_bg_events bg_event 4, 1, BGEVENT_READ, PokemonPagoda5FSign bg_event 2, 0, BGEVENT_READ, PokemonPagoda5FStatue - bg_event 3, 0, BGEVENT_READ, PokemonPagoda5FButsudan def_object_events object_event 2, 3, SPRITE_SAGE, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BROWN, OBJECTTYPE_SCRIPT, 0, ElderRoenScript, -1