From 0668db0ef0545bae35b7a58f765f06a431362129 Mon Sep 17 00:00:00 2001 From: Llinos Evans <36418502+PlagueVonKarma@users.noreply.github.com> Date: Thu, 18 May 2023 16:08:42 +0100 Subject: [PATCH] Mt Moon Square House This adds the Mt Moon Square House, faithfully recreated from GSC. I haven't yet sorted out the important details regarding the Crater Guard and such, though. Making the map involved making a new desk tile and making house tile $36 be considered a counter tile. Hopefully there aren't any adverse consequences but I've never seen anything of that nature. I noticed there are a ton of Clefairy text bits, so I refactored it to be a single line farcalled from `text_7.asm`. This also involved an interesting thing with the Pokemon Fan Club where the Pikachu fan has a Clefairy, so I fixed that too. I figured that adding the dance was a little difficult right now, so we have Clefairys walking around instead. I haven't figured out a good place to add the ladders yet (since there should be two entrances) but we'll figure that out eventually. It's plausible that we just make the Crater the southern warp, but I like how out-of-the-way the current one is. Oh, and I fixed the Crater warps. Overall, functional, but not finished. --- constants/map_constants.asm | 3 ++- data/maps/headers/MtMoonSquareHouse.asm | 2 ++ data/maps/hide_show_data.asm | 1 + data/maps/map_header_banks.asm | 1 + data/maps/map_header_pointers.asm | 1 + data/maps/objects/MtMoonB1F.asm | 2 +- data/maps/objects/MtMoonB2F.asm | 4 ++-- data/maps/objects/MtMoonCrater.asm | 4 ++-- data/maps/objects/MtMoonSquare.asm | 14 ++++++++------ data/maps/objects/MtMoonSquareHouse.asm | 14 ++++++++++++++ data/maps/objects/PokemonFanClub.asm | 2 +- data/maps/songs.asm | 1 + data/text/text_7.asm | 7 ++++++- data/tilesets/tileset_headers.asm | 2 +- data/wild/grass_water.asm | 1 + gfx/blocksets/house.bst | Bin 560 -> 576 bytes maps.asm | 6 ++++++ maps/MtMoonSquare.blk | 8 ++++---- maps/MtMoonSquareHouse.blk | 1 + scripts/CeladonMansion1F.asm | 2 +- scripts/CitrineMart.asm | 3 +-- scripts/CopycatsHouse1F.asm | 2 +- scripts/MtMoonSquare.asm | 10 +++++++++- scripts/MtMoonSquareHouse.asm | 16 ++++++++++++++++ text/CitrineMart.asm | 4 ---- 25 files changed, 83 insertions(+), 28 deletions(-) create mode 100644 data/maps/headers/MtMoonSquareHouse.asm create mode 100644 data/maps/objects/MtMoonSquareHouse.asm create mode 100644 maps/MtMoonSquareHouse.blk create mode 100644 scripts/MtMoonSquareHouse.asm diff --git a/constants/map_constants.asm b/constants/map_constants.asm index f6fb00d7..8ea4c871 100644 --- a/constants/map_constants.asm +++ b/constants/map_constants.asm @@ -270,7 +270,8 @@ DEF FIRST_INDOOR_MAP EQU const_value map_const ROCK_TUNNEL_B1F, 20, 18 ; $F8 - Switched with CINNABAR_VOLCANO_FLOORS map_const GIOVANNIS_ROOM, 11, 14 ; $F9 map_const BATTLE_TENT, 5, 10 ; $FA - map_const MT_MOON_SQUARE, 15, 9 ; $FB + map_const MT_MOON_SQUARE, 13, 7 ; $FB + map_const MT_MOON_SQUARE_HOUSE, 4, 4 ; $FC DEF NUM_MAPS EQU const_value ; Indoor maps, such as houses, use this as the Map ID in their exit warps diff --git a/data/maps/headers/MtMoonSquareHouse.asm b/data/maps/headers/MtMoonSquareHouse.asm new file mode 100644 index 00000000..02e6e4fa --- /dev/null +++ b/data/maps/headers/MtMoonSquareHouse.asm @@ -0,0 +1,2 @@ + map_header MtMoonSquareHouse, MT_MOON_SQUARE_HOUSE, HOUSE, 0 + end_map_header \ No newline at end of file diff --git a/data/maps/hide_show_data.asm b/data/maps/hide_show_data.asm index d1ed6c57..1ca07271 100644 --- a/data/maps/hide_show_data.asm +++ b/data/maps/hide_show_data.asm @@ -255,6 +255,7 @@ MapHSPointers: dw GiovannisRoomHS dw NoHS ; Battle Tent dw NoHS ; Mt Moon Square + DW NoHS ; Mt Moon Square House assert_table_length NUM_MAPS dw -1 ; end diff --git a/data/maps/map_header_banks.asm b/data/maps/map_header_banks.asm index 932f9d7b..fc0b3627 100644 --- a/data/maps/map_header_banks.asm +++ b/data/maps/map_header_banks.asm @@ -253,4 +253,5 @@ MapHeaderBanks:: db BANK(GiovannisRoom_h) db BANK(BattleTent_h) db BANK(MtMoonSquare_h) + db BANK(MtMoonSquareHouse_h) assert_table_length NUM_MAPS diff --git a/data/maps/map_header_pointers.asm b/data/maps/map_header_pointers.asm index 2891b67c..4114c578 100644 --- a/data/maps/map_header_pointers.asm +++ b/data/maps/map_header_pointers.asm @@ -253,4 +253,5 @@ MapHeaderPointers:: dw GiovannisRoom_h dw BattleTent_h dw MtMoonSquare_h + dw MtMoonSquareHouse_h assert_table_length NUM_MAPS diff --git a/data/maps/objects/MtMoonB1F.asm b/data/maps/objects/MtMoonB1F.asm index 495fb5ab..a8f0d7aa 100644 --- a/data/maps/objects/MtMoonB1F.asm +++ b/data/maps/objects/MtMoonB1F.asm @@ -11,7 +11,7 @@ MtMoonB1F_Object: warp_event 23, 3, MT_MOON_B2F, 4 warp_event 27, 3, LAST_MAP, 3 warp_event 1, 27, MT_MOON_B2F, 5 - warp_event 1, 23, MT_MOON_CRATER, 1 + warp_event 1, 23, MT_MOON_SQUARE, 1 def_bg_events diff --git a/data/maps/objects/MtMoonB2F.asm b/data/maps/objects/MtMoonB2F.asm index 32e0109e..3f2f4a48 100644 --- a/data/maps/objects/MtMoonB2F.asm +++ b/data/maps/objects/MtMoonB2F.asm @@ -6,7 +6,7 @@ MtMoonB2F_Object: warp_event 21, 17, MT_MOON_B1F, 5 warp_event 15, 27, MT_MOON_B1F, 6 warp_event 5, 7, MT_MOON_B1F, 7 - warp_event 29, 7, MT_MOON_SQUARE, 1 + warp_event 29, 7, MT_MOON_B1F, 9 def_bg_events @@ -20,6 +20,6 @@ MtMoonB2F_Object: object_event 12, 6, SPRITE_FOSSIL, STAY, NONE, 7 ; person object_event 13, 6, SPRITE_FOSSIL, STAY, NONE, 8 ; person object_event 25, 21, SPRITE_POKE_BALL, STAY, NONE, 9, HP_UP - object_event 33, 9, SPRITE_POKE_BALL, STAY, NONE, 10, WING_FOSSIL + object_event 29, 5, SPRITE_POKE_BALL, STAY, NONE, 10, WING_FOSSIL def_warps_to MT_MOON_B2F diff --git a/data/maps/objects/MtMoonCrater.asm b/data/maps/objects/MtMoonCrater.asm index 032f9876..cc574777 100644 --- a/data/maps/objects/MtMoonCrater.asm +++ b/data/maps/objects/MtMoonCrater.asm @@ -2,8 +2,8 @@ MtMoonCrater_Object: db $03 ; border block def_warp_events - warp_event 23, 49, MT_MOON_B1F, 10 - warp_event 22, 49, MT_MOON_B1F, 10 + warp_event 23, 49, MT_MOON_SQUARE, 3 + warp_event 22, 49, MT_MOON_SQUARE, 3 def_bg_events diff --git a/data/maps/objects/MtMoonSquare.asm b/data/maps/objects/MtMoonSquare.asm index 67f44d99..eed83a4d 100644 --- a/data/maps/objects/MtMoonSquare.asm +++ b/data/maps/objects/MtMoonSquare.asm @@ -2,15 +2,17 @@ MtMoonSquare_Object: db $2C ; border block def_warp_events - warp_event 18, 5, MT_MOON_1F, 8 - warp_event 22, 11, MT_MOON_1F, 8 - warp_event 24, 3, MT_MOON_CRATER, 1 - ;warp_event 13, 7, MT_MOON_SQUARE_HOUSE, 1 + warp_event 16, 3, MT_MOON_1F, 10 + warp_event 20, 9, MT_MOON_1F, 10 + warp_event 22, 1, MT_MOON_CRATER, 1 + warp_event 11, 5, MT_MOON_SQUARE_HOUSE, 2 def_bg_events - bg_event 17, 7, 1 ; Sign + bg_event 15, 5, 2 ; Sign def_object_events - object_event 8, 8, SPRITE_CLEFAIRY, STAY, DOWN, 1 ; person + object_event 7, 5, SPRITE_FAIRY, WALK, ANY_DIR, 1 ; person + object_event 5, 4, SPRITE_FAIRY, WALK, ANY_DIR, 1 ; person + object_event 4, 6, SPRITE_FAIRY, WALK, ANY_DIR, 1 ; person def_warps_to MT_MOON_SQUARE \ No newline at end of file diff --git a/data/maps/objects/MtMoonSquareHouse.asm b/data/maps/objects/MtMoonSquareHouse.asm new file mode 100644 index 00000000..cd429056 --- /dev/null +++ b/data/maps/objects/MtMoonSquareHouse.asm @@ -0,0 +1,14 @@ +MtMoonSquareHouse_Object: + db $a ; border block + + def_warp_events + warp_event 4, 7, MT_MOON_SQUARE, 4 + warp_event 5, 7, MT_MOON_SQUARE, 4 + + def_bg_events + + def_object_events + object_event 5, 3, SPRITE_BRUNETTE_GIRL, WALK, UP_DOWN, 1 ; person + object_event 0, 2, SPRITE_GRAMPS, STAY, RIGHT, 2 ; person + + def_warps_to MT_MOON_SQUARE_HOUSE \ No newline at end of file diff --git a/data/maps/objects/PokemonFanClub.asm b/data/maps/objects/PokemonFanClub.asm index c7d815f2..24ad4aa5 100644 --- a/data/maps/objects/PokemonFanClub.asm +++ b/data/maps/objects/PokemonFanClub.asm @@ -12,7 +12,7 @@ PokemonFanClub_Object: def_object_events object_event 6, 3, SPRITE_FISHER, STAY, LEFT, 1 ; person object_event 1, 3, SPRITE_GIRL, STAY, RIGHT, 2 ; person - object_event 6, 4, SPRITE_FAIRY, STAY, LEFT, 3 ; person + object_event 6, 4, SPRITE_PIKACHU, STAY, LEFT, 3 ; person object_event 1, 4, SPRITE_SEEL, STAY, RIGHT, 4 ; person object_event 3, 1, SPRITE_GENTLEMAN, STAY, DOWN, 5 ; person object_event 5, 1, SPRITE_LINK_RECEPTIONIST, STAY, DOWN, 6 ; person diff --git a/data/maps/songs.asm b/data/maps/songs.asm index a8287228..feac0378 100644 --- a/data/maps/songs.asm +++ b/data/maps/songs.asm @@ -252,4 +252,5 @@ MapSongBanks:: db MUSIC_DUNGEON1, 0 ; GIOVANNIS_ROOM db MUSIC_GYM, 0 ; BATTLE_TENT db MUSIC_VICTORY4, 0 ; MT_MOON_SQUARE + db MUSIC_VICTORY4, 0 ; MT_MOON_SQUARE_HOUSE assert_table_length NUM_MAPS diff --git a/data/text/text_7.asm b/data/text/text_7.asm index 6374546a..7fd26249 100644 --- a/data/text/text_7.asm +++ b/data/text/text_7.asm @@ -323,4 +323,9 @@ _WannaTrade5Text:: _NoTrade5Text:: text "Ok, maybe next" line "time then." - done \ No newline at end of file + done + +_ClefairyText:: + text "CLEFAIRY: Pi" + line "pippippi!@" + text_end diff --git a/data/tilesets/tileset_headers.asm b/data/tilesets/tileset_headers.asm index 7e2ac92a..5148921c 100644 --- a/data/tilesets/tileset_headers.asm +++ b/data/tilesets/tileset_headers.asm @@ -17,7 +17,7 @@ Tilesets: tileset Dojo, $3A, -1, -1, -1, TILEANIM_WATER_FLOWER tileset Pokecenter, $18,$19,$1E, -1, TILEANIM_NONE tileset Gym, $3A, -1, -1, -1, TILEANIM_WATER_FLOWER - tileset House, -1, -1, -1, -1, TILEANIM_NONE + tileset House, $36, -1, -1, -1, TILEANIM_NONE tileset ForestGate, $17,$32, -1, -1, TILEANIM_NONE tileset Museum, $17,$32, -1, -1, TILEANIM_NONE tileset Underground, -1, -1, -1, -1, TILEANIM_NONE diff --git a/data/wild/grass_water.asm b/data/wild/grass_water.asm index 3858a810..86d28ba7 100644 --- a/data/wild/grass_water.asm +++ b/data/wild/grass_water.asm @@ -252,6 +252,7 @@ WildDataPointers: dw NothingWildMons dw NothingWildMons ; battle tent dw NothingWildMons ; mt moon square + dw NothingWildMons assert_table_length NUM_MAPS dw -1 ; end diff --git a/gfx/blocksets/house.bst b/gfx/blocksets/house.bst index 0599cde6dc38659271106c0c337f99e8212a0d07..565a06b3abb231af47b4ce66ad3522032241bc02 100644 GIT binary patch delta 24 dcmdnMa)4!n0h0g|vzn%mu$d(zBM94A0{}s?1U&!% delta 7 OcmX@WvVmoT0TTcVQ36{4 diff --git a/maps.asm b/maps.asm index e7fd50e0..817f6763 100644 --- a/maps.asm +++ b/maps.asm @@ -1381,3 +1381,9 @@ INCLUDE "data/maps/headers/MtMoonSquare.asm" INCLUDE "data/maps/objects/MtMoonSquare.asm" INCLUDE "scripts/MtMoonSquare.asm" MtMoonSquare_Blocks: INCBIN "maps/MtMoonSquare.blk" + +INCLUDE "data/maps/headers/MtMoonSquareHouse.asm" +INCLUDE "data/maps/objects/MtMoonSquareHouse.asm" +INCLUDE "scripts/MtMoonSquareHouse.asm" +MtMoonSquareHouse_Blocks: INCBIN "maps/MtMoonSquareHouse.blk" + diff --git a/maps/MtMoonSquare.blk b/maps/MtMoonSquare.blk index b1500e9f..c4c776b4 100644 --- a/maps/MtMoonSquare.blk +++ b/maps/MtMoonSquare.blk @@ -1,6 +1,6 @@ ->?????????????;(+WWWW*,,,,+*)()bQQc$WWW%n()()NttM ++WWWW*,,,,+*)bQQc$WWW%n()NttM -tn()()NttM111 ->??,)()P +tn()NttM111 +>??,)P -O/$W*)()11111111111()(,???????????,)$WWWWWWWWWWWWW% \ No newline at end of file +O/$W*)11111111111(,???????????, \ No newline at end of file diff --git a/maps/MtMoonSquareHouse.blk b/maps/MtMoonSquareHouse.blk new file mode 100644 index 00000000..eadf695e --- /dev/null +++ b/maps/MtMoonSquareHouse.blk @@ -0,0 +1 @@ +#  \ No newline at end of file diff --git a/scripts/CeladonMansion1F.asm b/scripts/CeladonMansion1F.asm index fa901ff9..5609da70 100644 --- a/scripts/CeladonMansion1F.asm +++ b/scripts/CeladonMansion1F.asm @@ -23,7 +23,7 @@ CeladonMansion1Text2: text_end CeladonMansion1Text3: - text_far _CeladonMansion1Text3 + text_far _ClefairyText text_asm ld a, CLEFAIRY jp CeladonMansion1_PlayCryScript diff --git a/scripts/CitrineMart.asm b/scripts/CitrineMart.asm index 2029e8ff..45a45573 100644 --- a/scripts/CitrineMart.asm +++ b/scripts/CitrineMart.asm @@ -20,13 +20,12 @@ CitrineMartText3: jp TextScriptEnd CitrineMartText4: - text_far _CitrineMartText4 + text_far _ClefairyText text_asm ld a, CLEFAIRY call PlayCry call WaitForSoundToFinish jp TextScriptEnd -; I do want to make a "steroid" item that fixes DVs. CitrineCashierText:: script_mart ULTRA_BALL, FULL_RESTORE, MAX_REPEL, MAX_REVIVE, ESCAPE_ROPE, HP_UP, PROTEIN, IRON, CARBOS, CALCIUM \ No newline at end of file diff --git a/scripts/CopycatsHouse1F.asm b/scripts/CopycatsHouse1F.asm index fc5ff3cf..684670f3 100644 --- a/scripts/CopycatsHouse1F.asm +++ b/scripts/CopycatsHouse1F.asm @@ -15,7 +15,7 @@ CopycatsHouse1FText2: text_end CopycatsHouse1FText3: - text_far _CopycatsHouse1FText3 + text_far _NurseChanseyText text_asm ld a, CHANSEY call PlayCry diff --git a/scripts/MtMoonSquare.asm b/scripts/MtMoonSquare.asm index 977ea358..0072d646 100644 --- a/scripts/MtMoonSquare.asm +++ b/scripts/MtMoonSquare.asm @@ -2,8 +2,16 @@ MtMoonSquare_Script: jp EnableAutoTextBoxDrawing MtMoonSquare_TextPointers: + dw MtMoonSquareClefairy dw MtMoonSquareSign - + +MtMoonSquareClefairy: + text_far _ClefairyText + text_asm + ld a, CLEFAIRY + call PlayCry + jp TextScriptEnd + MtMoonSquareSign: text "MT MOON SQUARE" line "Please don't" diff --git a/scripts/MtMoonSquareHouse.asm b/scripts/MtMoonSquareHouse.asm new file mode 100644 index 00000000..7f4fcd84 --- /dev/null +++ b/scripts/MtMoonSquareHouse.asm @@ -0,0 +1,16 @@ +MtMoonSquareHouse_Script: + jp EnableAutoTextBoxDrawing + +MtMoonSquareHouse_TextPointers: + dw MtMoonSquareHouseGirl + dw MtMoonSquareHouseMart + +MtMoonSquareHouseGirl: + text "When the sun goes" + line "down, CLEFAIRY" + cont "come out to play." + done + +MtMoonSquareHouseMart:: + script_mart FRESH_WATER, SODA_POP, LEMONADE, REPEL, POKE_DOLL + diff --git a/text/CitrineMart.asm b/text/CitrineMart.asm index f318527c..103b315b 100644 --- a/text/CitrineMart.asm +++ b/text/CitrineMart.asm @@ -9,7 +9,3 @@ _CitrineMartText2:: _CitrineMartText3:: text "PERSIAN: Nyaaa!" done - -_CitrineMartText4:: - text "CLEFAIRY: Pipii!" - done