From 91d47bef0e9085d9e855dd0c69068d9db8cae399 Mon Sep 17 00:00:00 2001 From: Llinos Evans <36418502+PlagueVonKarma@users.noreply.github.com> Date: Tue, 18 Apr 2023 17:30:57 +0100 Subject: [PATCH] Celeste Hill & tileset This adds the baseline stuff for Celeste Hill. The map, the tileset, and so on. No events or warps are currently available. --- constants/map_constants.asm | 4 ++-- constants/tileset_constants.asm | 1 + data/maps/headers/CelesteHill.asm | 2 ++ data/maps/map_header_banks.asm | 2 +- data/maps/map_header_pointers.asm | 2 +- data/maps/names.asm | 1 + data/maps/objects/CelesteHill.asm | 11 +++++++++++ data/maps/town_map_entries.asm | 2 +- data/tilesets/bike_riding_tilesets.asm | 1 + data/tilesets/collision_tile_ids.asm | 2 ++ data/tilesets/tileset_headers.asm | 1 + data/tilesets/warp_tile_ids.asm | 4 ++++ data/tilesets/water_tilesets.asm | 1 + engine/battle/wild_encounters.asm | 6 ++++++ gfx/blocksets/celeste.bst | Bin 0 -> 2192 bytes gfx/tilesets.asm | 3 +++ gfx/tilesets/celeste.png | Bin 0 -> 3084 bytes maps.asm | 5 +++++ maps/CelesteHill.blk | 1 + scan_includes.exe.stackdump | 17 +++++++++-------- scripts/CelesteHill.asm | 6 ++++++ 21 files changed, 59 insertions(+), 13 deletions(-) create mode 100644 data/maps/headers/CelesteHill.asm create mode 100644 data/maps/objects/CelesteHill.asm create mode 100644 gfx/blocksets/celeste.bst create mode 100644 gfx/tilesets/celeste.png create mode 100644 maps/CelesteHill.blk create mode 100644 scripts/CelesteHill.asm diff --git a/constants/map_constants.asm b/constants/map_constants.asm index fb367739..a9b69d33 100644 --- a/constants/map_constants.asm +++ b/constants/map_constants.asm @@ -28,8 +28,8 @@ ENDM mapconst INDIGO_PLATEAU, 9, 10 ; $09 mapconst SAFFRON_CITY, 18, 20 ; $0A mapconst CITRINE_CITY, 18, 20 ; $0B -DEF NUM_CITY_MAPS EQU const_value ; eorsunica: move this line under Celadon Uni Outside to include it in the Fly Map mapconst CELADON_UNIVERSITY_OUTSIDE, 20, 21 ; $0C +DEF NUM_CITY_MAPS EQU const_value DEF FIRST_ROUTE_MAP EQU const_value mapconst ROUTE_1, 18, 10 ; $0D mapconst ROUTE_2, 36, 10 ; $0E @@ -95,7 +95,7 @@ DEF FIRST_INDOOR_MAP EQU const_value mapconst DAYCARE, 4, 4 ; $49 mapconst ROUTE_6_GATE, 3, 4 ; $4A mapconst UNDERGROUND_PATH_ROUTE_6, 4, 4 ; $4B - mapconst UNDERGROUND_PATH_ROUTE_6_COPY, 4, 4 ; $4C - Unused + mapconst CELESTE_HILL, 4, 4 ; $4C - Was copy of above & unused mapconst ROUTE_7_GATE, 4, 3 ; $4D mapconst UNDERGROUND_PATH_ROUTE_7, 4, 4 ; $4E mapconst UNDERGROUND_PATH_ROUTE_7_COPY, 4, 4 ; $4F - Unused diff --git a/constants/tileset_constants.asm b/constants/tileset_constants.asm index 1b3db736..82f8deaa 100644 --- a/constants/tileset_constants.asm +++ b/constants/tileset_constants.asm @@ -27,4 +27,5 @@ const PLATEAU ; 23 const PREGYM ; 24 const CITRINE ; 25 + const CELESTE ; 26 DEF NUM_TILESETS EQU const_value diff --git a/data/maps/headers/CelesteHill.asm b/data/maps/headers/CelesteHill.asm new file mode 100644 index 00000000..3e545b8d --- /dev/null +++ b/data/maps/headers/CelesteHill.asm @@ -0,0 +1,2 @@ + map_header CelesteHill, CELESTE_HILL, CELESTE, 0 + end_map_header \ No newline at end of file diff --git a/data/maps/map_header_banks.asm b/data/maps/map_header_banks.asm index 4f398916..4177ef0b 100644 --- a/data/maps/map_header_banks.asm +++ b/data/maps/map_header_banks.asm @@ -77,7 +77,7 @@ MapHeaderBanks:: db BANK(Daycare_h) db BANK(Route6Gate_h) db BANK(UndergroundPathRoute6_h) - db BANK(UndergroundPathRoute6_h) ; UNDERGROUND_PATH_ROUTE_6_COPY + db BANK(CelesteHill_h) ; was db BANK(UndergroundPathRoute6_h), UNDERGROUND_PATH_ROUTE_6_COPY db BANK(Route7Gate_h) db BANK(UndergroundPathRoute7_h) db BANK(UndergroundPathRoute7Copy_h) diff --git a/data/maps/map_header_pointers.asm b/data/maps/map_header_pointers.asm index 3dc1ecbb..b001b15f 100644 --- a/data/maps/map_header_pointers.asm +++ b/data/maps/map_header_pointers.asm @@ -77,7 +77,7 @@ MapHeaderPointers:: dw Daycare_h dw Route6Gate_h dw UndergroundPathRoute6_h - dw UndergroundPathRoute6_h ; UNDERGROUND_PATH_ROUTE_6_COPY + dw CelesteHill_h ; was dw UndergroundPathRoute6_h, UNDERGROUND_PATH_ROUTE_6_COPY dw Route7Gate_h dw UndergroundPathRoute7_h dw UndergroundPathRoute7Copy_h diff --git a/data/maps/names.asm b/data/maps/names.asm index 49d8d2be..18a94271 100644 --- a/data/maps/names.asm +++ b/data/maps/names.asm @@ -56,3 +56,4 @@ CeruleanCaveName: db "CERULEAN CAVE@" PowerPlantName: db "POWER PLANT@" FarawayIslandName: db "FARAWAY ISLAND@" UnderwaterTunnelName: db "UNDERWATER TUNNEL@" +CelesteHillName: db "CELESTE HILL@" diff --git a/data/maps/objects/CelesteHill.asm b/data/maps/objects/CelesteHill.asm new file mode 100644 index 00000000..fd129076 --- /dev/null +++ b/data/maps/objects/CelesteHill.asm @@ -0,0 +1,11 @@ +CelesteHill_Object: + db $0 ; border block + + def_warp_events + warp_event 4, 11, 0, REDS_HOUSE_2F + + def_bg_events + + def_object_events + + def_warps_to CELESTE_HILL \ No newline at end of file diff --git a/data/maps/town_map_entries.asm b/data/maps/town_map_entries.asm index 2093ce74..7e17f867 100644 --- a/data/maps/town_map_entries.asm +++ b/data/maps/town_map_entries.asm @@ -67,7 +67,6 @@ InternalMapEntries: internal_map MT_MOON_POKECENTER, 5, 2, Route4Name internal_map VIRIDIAN_PRE_GYM, 10, 2, ViridianCityName internal_map DAYCARE, 10, 4, Route5Name - internal_map UNDERGROUND_PATH_ROUTE_6_COPY, 10, 6, Route6Name internal_map UNDERGROUND_PATH_ROUTE_7_COPY, 9, 5, Route7Name internal_map UNDERGROUND_PATH_ROUTE_8, 11, 5, Route8Name internal_map ROCK_TUNNEL_1F, 14, 3, RockTunnelName @@ -126,4 +125,5 @@ InternalMapEntries: internal_map UNDERWATER_TUNNEL, 14, 1, UnderwaterTunnelName internal_map CELADON_UNIVERSITY_POKECENTER, 7, 4, CeladonCityName internal_map AGATHAS_ROOM, 0, 2, PokemonLeagueName + internal_map CELESTE_HILL, 9, 9, CelesteHillName db -1 ; end diff --git a/data/tilesets/bike_riding_tilesets.asm b/data/tilesets/bike_riding_tilesets.asm index 55e1292d..75697847 100644 --- a/data/tilesets/bike_riding_tilesets.asm +++ b/data/tilesets/bike_riding_tilesets.asm @@ -5,4 +5,5 @@ BikeRidingTilesets:: db SHIP_PORT db CAVERN db CITRINE + db CELESTE db -1 ; end diff --git a/data/tilesets/collision_tile_ids.asm b/data/tilesets/collision_tile_ids.asm index 799f0840..24237f0b 100644 --- a/data/tilesets/collision_tile_ids.asm +++ b/data/tilesets/collision_tile_ids.asm @@ -75,3 +75,5 @@ PreGym_Coll:: Citrine_Coll:: coll_tiles $2C, $31, $3F, $55, $0E, $2F, $23, $20, $10, $03, $1C, $1B, $0B, $0C, $21 +Celeste_Coll:: + coll_tiles $1e, $20, $2e, $30, $34, $37, $39, $3a, $40, $51, $52, $5a, $5c, $5e, $5f, $09, $08, $18, $19 \ No newline at end of file diff --git a/data/tilesets/tileset_headers.asm b/data/tilesets/tileset_headers.asm index 712ae8e5..ea8e5aad 100644 --- a/data/tilesets/tileset_headers.asm +++ b/data/tilesets/tileset_headers.asm @@ -35,4 +35,5 @@ Tilesets: tileset Plateau, -1, -1, -1, $45, TILEANIM_WATER tileset PreGym, $3A, $3B, -1, -1, TILEANIM_NONE tileset Citrine, -1, -1, -1, $3F, TILEANIM_WATER_FLOWER + tileset Celeste, -1, -1, -1, $19, TILEANIM_WATER_FLOWER assert_table_length NUM_TILESETS diff --git a/data/tilesets/warp_tile_ids.asm b/data/tilesets/warp_tile_ids.asm index 37c19958..f3290d50 100644 --- a/data/tilesets/warp_tile_ids.asm +++ b/data/tilesets/warp_tile_ids.asm @@ -26,6 +26,7 @@ WarpTileIDPointers: dw .PlateauWarpTileIDs dw .PreGymWarpTileIDs dw .CitrineWarpTileIDs + dw .CelesteWarpTileIDs assert_table_length NUM_TILESETS MACRO warp_tiles @@ -98,6 +99,9 @@ ENDM .CitrineWarpTileIDs: warp_tiles $1B, $1C +.CelesteWarpTileIDs: + warp_tiles $5A, $5C, $3A, $30, $50, $51 ; Like Forest but a bit better + .ShipPortWarpTileIDs: .ClubWarpTileIDs: warp_tiles ; end diff --git a/data/tilesets/water_tilesets.asm b/data/tilesets/water_tilesets.asm index d73ff27f..6bf891c1 100644 --- a/data/tilesets/water_tilesets.asm +++ b/data/tilesets/water_tilesets.asm @@ -10,4 +10,5 @@ WaterTilesets: db FACILITY db PLATEAU db CITRINE + db CELESTE db -1 ; end diff --git a/engine/battle/wild_encounters.asm b/engine/battle/wild_encounters.asm index 77e1736f..913a0ff8 100644 --- a/engine/battle/wild_encounters.asm +++ b/engine/battle/wild_encounters.asm @@ -38,6 +38,12 @@ TryDoWildEncounter: ld a, [wGrassRate] jr z, .CanEncounter + cp CELESTE + ld a, $19 ; So the Celeste grass works. + cp c + ld a, [wGrassRate] + jr z, .CanEncounter + ld a, $14 ; in all tilesets with a water tile, this is its id cp c ld a, [wWaterRate] diff --git a/gfx/blocksets/celeste.bst b/gfx/blocksets/celeste.bst new file mode 100644 index 0000000000000000000000000000000000000000..4dd7d758564e264539b5315e28f4e7b92b66f1b0 GIT binary patch literal 2192 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 aU;hJ?j?oUPS|elt0000