From 1f12170998513b4de942229f34925dbf385f3797 Mon Sep 17 00:00:00 2001 From: SoupPotato Date: Sat, 3 Aug 2024 14:30:17 +0100 Subject: [PATCH] Added Silver Cave Cliff Side maps and Tilesets --- constants/event_flags.asm | 8 +- constants/map_constants.asm | 6 +- constants/tileset_constants.asm | 1 + data/maps/attributes.asm | 2 + data/maps/blocks.asm | 6 ++ data/maps/maps.asm | 4 +- data/maps/scripts.asm | 2 + data/tilesets.asm | 1 + data/tilesets/cave_collision.asm | 2 + data/tilesets/cave_metatiles.bin | 2 +- data/tilesets/cliff_side_collision.asm | 130 +++++++++++++++++++++++ data/tilesets/cliff_side_metatiles.bin | Bin 0 -> 2080 bytes data/tilesets/dark_cave_collision.asm | 1 + data/tilesets/dark_cave_metatiles.bin | 2 +- data/wild/challenge_mode/johto_grass.asm | 56 ++++++++++ data/wild/johto_grass.asm | 56 ++++++++++ engine/tilesets/tileset_anims.asm | 1 + engine/tilesets/tileset_palettes.asm | 8 ++ gfx/tileset_palette_maps.asm | 3 + gfx/tilesets.asm | 14 ++- gfx/tilesets/bg_tiles.pal | 16 +-- gfx/tilesets/bg_tiles_special_pals.pal | 71 +++++++++++-- gfx/tilesets/cave.png | Bin 1287 -> 1342 bytes gfx/tilesets/cave_palette_map.asm | 25 ++--- gfx/tilesets/cliff_side.png | Bin 0 -> 1190 bytes gfx/tilesets/cliff_side_palette_map.asm | 12 +++ gfx/tilesets/dark_cave.png | Bin 941 -> 983 bytes gfx/tilesets/dark_cave_palette_map.asm | 19 +--- maps/SilverCaveCliffSide1F.asm | 30 ++++++ maps/SilverCaveCliffSide1F.blk | 1 + maps/SilverCaveCliffSide2F.asm | 31 ++++++ maps/SilverCaveCliffSide2F.blk | 2 + maps/SilverCaveRoom1.asm | 16 +-- maps/SilverCaveRoom1.blk | 5 +- maps/SilverCaveRoom2.asm | 18 ++-- maps/SilverCaveRoom2.blk | 2 +- maps/SilverCaveRoom3.asm | 2 +- 37 files changed, 478 insertions(+), 77 deletions(-) create mode 100644 data/tilesets/cliff_side_collision.asm create mode 100644 data/tilesets/cliff_side_metatiles.bin create mode 100644 gfx/tilesets/cliff_side.png create mode 100644 gfx/tilesets/cliff_side_palette_map.asm create mode 100644 maps/SilverCaveCliffSide1F.asm create mode 100644 maps/SilverCaveCliffSide1F.blk create mode 100644 maps/SilverCaveCliffSide2F.asm create mode 100644 maps/SilverCaveCliffSide2F.blk diff --git a/constants/event_flags.asm b/constants/event_flags.asm index 03c576f5d..66ca05dda 100644 --- a/constants/event_flags.asm +++ b/constants/event_flags.asm @@ -1710,7 +1710,11 @@ const EVENT_RADIO_TOWER_5F_ULTRA_BALL const EVENT_DARK_CAVE_VIOLET_ENTRANCE_DIRE_HIT const EVENT_BATTLE_TOWER_OPEN_CIVILIANS -; Unused: next 48 events + const EVENT_SILVER_CAVE_CLIFF_SIDE_1F_GUARD_SPEC + const EVENT_SILVER_CAVE_CLIFF_SIDE_1F_CARBOS + const EVENT_SILVER_CAVE_CLIFF_SIDE_2F_HYPER_POTION + const EVENT_SILVER_CAVE_CLIFF_SIDE_2F_RARE_CANDY +; Unused: next 44 events - const_next 2048 + const_next 2044 DEF NUM_EVENTS EQU const_value ; 800 diff --git a/constants/map_constants.asm b/constants/map_constants.asm index 7dc038ea5..184a7a4b9 100644 --- a/constants/map_constants.asm +++ b/constants/map_constants.asm @@ -135,8 +135,8 @@ ENDM map_const WHIRL_ISLAND_B1F, 20, 18 ; 71 map_const WHIRL_ISLAND_B2F, 10, 18 ; 72 map_const WHIRL_ISLAND_LUGIA_CHAMBER, 10, 9 ; 73 - map_const SILVER_CAVE_ROOM_1, 10, 18 ; 74 - map_const SILVER_CAVE_ROOM_2, 15, 19 ; 75 + map_const SILVER_CAVE_ROOM_1, 10, 23 ; 74 + map_const SILVER_CAVE_ROOM_2, 15, 20 ; 75 map_const SILVER_CAVE_ROOM_3, 10, 18 ; 76 map_const SILVER_CAVE_ITEM_ROOMS, 10, 17 ; 77 map_const DARK_CAVE_VIOLET_ENTRANCE, 20, 18 ; 78 @@ -538,6 +538,8 @@ ENDM newgroup SAFARI_ZONE ; 28 map_const SAFARI_ZONE_AREA_3, 21, 17 ; 1 + map_const SILVER_CAVE_CLIFF_SIDE_1F, 15, 20 ; 2 + map_const SILVER_CAVE_CLIFF_SIDE_2F, 17, 18 ; 3 endgroup DEF NUM_MAP_GROUPS EQU const_value ; 26 diff --git a/constants/tileset_constants.asm b/constants/tileset_constants.asm index 2b4f9769d..7f732f626 100644 --- a/constants/tileset_constants.asm +++ b/constants/tileset_constants.asm @@ -36,6 +36,7 @@ const TILESET_KABUTO_WORD_ROOM ; 22 const TILESET_OMANYTE_WORD_ROOM ; 23 const TILESET_AERODACTYL_WORD_ROOM ; 24 + const TILESET_CLIFF_SIDE ; 25 DEF NUM_TILESETS EQU const_value - 1 ; wTileset struct size diff --git a/data/maps/attributes.asm b/data/maps/attributes.asm index fbb29d819..6f3714a17 100644 --- a/data/maps/attributes.asm +++ b/data/maps/attributes.asm @@ -738,3 +738,5 @@ ENDM map_attributes SafariRestHouseArea2, SAFARI_REST_HOUSE_AREA_2, $00, 0 map_attributes SafariRestHouseArea3, SAFARI_REST_HOUSE_AREA_3, $00, 0 map_attributes SafariRestHouseArea4, SAFARI_REST_HOUSE_AREA_4, $00, 0 + map_attributes SilverCaveCliffSide1F, SILVER_CAVE_CLIFF_SIDE_1F, $48, 0 + map_attributes SilverCaveCliffSide2F, SILVER_CAVE_CLIFF_SIDE_2F, $0c, 0 diff --git a/data/maps/blocks.asm b/data/maps/blocks.asm index 86f68c833..5d6f02d5c 100644 --- a/data/maps/blocks.asm +++ b/data/maps/blocks.asm @@ -996,4 +996,10 @@ SafariRestHouseArea4_Blocks: SafariZoneEntrance_Blocks: INCBIN "maps/SafariZoneEntrance.blk" + +SilverCaveCliffSide1F_Blocks: + INCBIN "maps/SilverCaveCliffSide1F.blk" + +SilverCaveCliffSide2F_Blocks: + INCBIN "maps/SilverCaveCliffSide2F.blk" ENDSECTION diff --git a/data/maps/maps.asm b/data/maps/maps.asm index 6ec7197d3..7890f5f86 100644 --- a/data/maps/maps.asm +++ b/data/maps/maps.asm @@ -150,7 +150,7 @@ MapGroup_Dungeons: map WhirlIslandB1F, TILESET_DARK_CAVE, CAVE, LANDMARK_WHIRL_ISLANDS, MUSIC_UNION_CAVE, TRUE, PALETTE_NITE | IN_DARKNESS, FISHGROUP_WHIRL_ISLANDS map WhirlIslandB2F, TILESET_DARK_CAVE, CAVE, LANDMARK_WHIRL_ISLANDS, MUSIC_UNION_CAVE, TRUE, PALETTE_NITE | IN_DARKNESS, FISHGROUP_WHIRL_ISLANDS map WhirlIslandLugiaChamber, TILESET_DARK_CAVE, CAVE, LANDMARK_WHIRL_ISLANDS, MUSIC_UNION_CAVE, TRUE, PALETTE_NITE | IN_DARKNESS, FISHGROUP_WHIRL_ISLANDS - map SilverCaveRoom1, TILESET_DARK_CAVE, CAVE, LANDMARK_SILVER_CAVE, MUSIC_LIGHTHOUSE, TRUE, PALETTE_NITE | IN_DARKNESS, FISHGROUP_LAKE + map SilverCaveRoom1, TILESET_DARK_CAVE, CAVE, LANDMARK_SILVER_CAVE, MUSIC_LIGHTHOUSE, TRUE, PALETTE_NITE, FISHGROUP_LAKE map SilverCaveRoom2, TILESET_CAVE, CAVE, LANDMARK_SILVER_CAVE, MUSIC_LIGHTHOUSE, TRUE, PALETTE_NITE, FISHGROUP_LAKE map SilverCaveRoom3, TILESET_CAVE, CAVE, LANDMARK_SILVER_CAVE, MUSIC_LIGHTHOUSE, TRUE, PALETTE_DAY, FISHGROUP_LAKE map SilverCaveItemRooms, TILESET_CAVE, CAVE, LANDMARK_SILVER_CAVE, MUSIC_LIGHTHOUSE, TRUE, PALETTE_NITE, FISHGROUP_LAKE @@ -578,4 +578,6 @@ MapGroup_SafariZoneGate: MapGroup_SafariZone: table_width MAP_LENGTH, MapGroup_SafariZone map SafariZoneArea3, TILESET_PARK, ROUTE, LANDMARK_SAFARI_ZONE, MUSIC_EVOLUTION, FALSE, PALETTE_AUTO, FISHGROUP_POND + map SilverCaveCliffSide1F, TILESET_CLIFF_SIDE, ROUTE, LANDMARK_SILVER_CAVE, MUSIC_LIGHTHOUSE, TRUE, PALETTE_AUTO, FISHGROUP_POND + map SilverCaveCliffSide2F, TILESET_CLIFF_SIDE, ROUTE, LANDMARK_SILVER_CAVE, MUSIC_LIGHTHOUSE, TRUE, PALETTE_AUTO, FISHGROUP_POND assert_table_length NUM_SAFARI_ZONE_MAPS diff --git a/data/maps/scripts.asm b/data/maps/scripts.asm index d0954560f..e3c83d889 100644 --- a/data/maps/scripts.asm +++ b/data/maps/scripts.asm @@ -520,5 +520,7 @@ INCLUDE "maps/SafariRestHouseArea2.asm" INCLUDE "maps/SafariRestHouseArea3.asm" INCLUDE "maps/SafariRestHouseArea4.asm" INCLUDE "maps/Route39.asm" +INCLUDE "maps/SilverCaveCliffSide1F.asm" +INCLUDE "maps/SilverCaveCliffSide2F.asm" ENDSECTION diff --git a/data/tilesets.asm b/data/tilesets.asm index fd1992886..2ec060499 100644 --- a/data/tilesets.asm +++ b/data/tilesets.asm @@ -50,4 +50,5 @@ Tilesets:: tileset TilesetKabutoWordRoom tileset TilesetOmanyteWordRoom tileset TilesetAerodactylWordRoom + tileset TilesetCliffSide assert_table_length NUM_TILESETS + 1 diff --git a/data/tilesets/cave_collision.asm b/data/tilesets/cave_collision.asm index caf875969..fcb224984 100644 --- a/data/tilesets/cave_collision.asm +++ b/data/tilesets/cave_collision.asm @@ -95,3 +95,5 @@ tilecoll WALL, FLOOR, WALL, FLOOR ; 5e tilecoll UP_WALL, UP_WALL, FLOOR, WARP_CARPET_DOWN ; 5f tilecoll WATER, WATER, WALL, FLOOR ; 60 + tilecoll WALL, WALL, WALL, CAVE ; 61 + tilecoll WALL, WALL, WALL, WALL ; 62 diff --git a/data/tilesets/cave_metatiles.bin b/data/tilesets/cave_metatiles.bin index f817d5f02..2f4ee68f0 100644 --- a/data/tilesets/cave_metatiles.bin +++ b/data/tilesets/cave_metatiles.bin @@ -7,4 +7,4 @@ &P PP&   & -PPPP%&&%&&&%&&&%&&&&&'&&&'&&&'&&&'$$$%&&&$$$&&&'IJYZKL[\IJ YZKL [\%&&&&&&&%&@@%&@@%&@@%&@@@@&'@@&'@@&'@@&'%@@%&@@@@'@@&'%67%&67$$$$  \ No newline at end of file +PPPP%&&%&&&%&&&%&&&&&'&&&'&&&'&&&'$$$%&&&$$$&&&'IJYZKL[\IJ YZKL [\%&&&&&&&%&@@%&@@%&@@%&@@@@&'@@&'@@&'@@&'%@@%&@@@@'@@&'%67%&67$$$$ &&&&&&&&&&&&&&&&&&&&&&&&&&&& \ No newline at end of file diff --git a/data/tilesets/cliff_side_collision.asm b/data/tilesets/cliff_side_collision.asm new file mode 100644 index 000000000..79a281db2 --- /dev/null +++ b/data/tilesets/cliff_side_collision.asm @@ -0,0 +1,130 @@ + tilecoll WALL, WALL, WALL, WALL ; 00 + tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 01 + tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 02 + tilecoll TALL_GRASS, TALL_GRASS, TALL_GRASS, TALL_GRASS ; 03 + tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 04 + tilecoll WALL, WALL, WALL, WALL ; 05 + tilecoll WALL, WALL, WALL, WALL ; 06 + tilecoll WALL, WALL, WALL, WALL ; 07 + tilecoll WALL, WALL, WALL, WALL ; 08 + tilecoll WALL, WALL, WALL, WALL ; 09 + tilecoll WALL, WALL, WALL, CAVE ; 0a + tilecoll WALL, WALL, WALL, WALL ; 0b + tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 0c + tilecoll WALL, WALL, WALL, WALL ; 0d + tilecoll WALL, UP_WALL, WALL, FLOOR ; 0e + tilecoll UP_WALL, WALL, FLOOR, WALL ; 0f + tilecoll WALL, FLOOR, WALL, FLOOR ; 10 + tilecoll FLOOR, WALL, FLOOR, WALL ; 11 + tilecoll WALL, FLOOR, WALL, WALL ; 12 + tilecoll FLOOR, WALL, WALL, WALL ; 13 + tilecoll UP_WALL, UP_WALL, FLOOR, FLOOR ; 14 + tilecoll UP_WALL, UP_WALL, FLOOR, FLOOR ; 15 + tilecoll WALL, UP_WALL, WALL, FLOOR ; 16 + tilecoll UP_WALL, WALL, FLOOR, WALL ; 17 + tilecoll WALL, FLOOR, WALL, FLOOR ; 18 + tilecoll FLOOR, WALL, FLOOR, WALL ; 19 + tilecoll WALL, FLOOR, WALL, WALL ; 1a + tilecoll FLOOR, WALL, WALL, WALL ; 1b + tilecoll UP_WALL, UP_WALL, FLOOR, FLOOR ; 1c + tilecoll WALL, WALL, WALL, WALL ; 1d + tilecoll WALL, UP_WALL, WALL, FLOOR ; 1e + tilecoll UP_WALL, WALL, FLOOR, WALL ; 1f + tilecoll WALL, FLOOR, WALL, FLOOR ; 20 + tilecoll FLOOR, WALL, FLOOR, WALL ; 21 + tilecoll WALL, FLOOR, WALL, WALL ; 22 + tilecoll FLOOR, WALL, WALL, WALL ; 23 + tilecoll WALL, WALL, WALL, WALL ; 24 + tilecoll WALL, WALL, WALL, WALL ; 25 + tilecoll WALL, WALL, WALL, WALL ; 26 + tilecoll FLOOR, FLOOR, WALL, WALL ; 27 + tilecoll WALL, FLOOR, WALL, FLOOR ; 28 + tilecoll WALL, FLOOR, WALL, FLOOR ; 29 + tilecoll WALL, WALL, FLOOR, FLOOR ; 2a + tilecoll WALL, FLOOR, FLOOR, FLOOR ; 2b + tilecoll WALL, FLOOR, WALL, FLOOR ; 2c + tilecoll WALL, FLOOR, WALL, FLOOR ; 2d + tilecoll WALL, WALL, FLOOR, FLOOR ; 2e + tilecoll WALL, FLOOR, FLOOR, FLOOR ; 2f + tilecoll FLOOR, FLOOR, WALL, WALL ; 30 + tilecoll UP_WALL, UP_WALL, WALL, FLOOR ; 31 + tilecoll UP_WALL, UP_WALL, FLOOR, FLOOR ; 32 + tilecoll UP_WALL, WALL, FLOOR, FLOOR ; 33 + tilecoll WALL, UP_WALL, FLOOR, FLOOR ; 34 + tilecoll UP_WALL, UP_WALL, TALL_GRASS, TALL_GRASS ; 35 + tilecoll WALL, TALL_GRASS, WALL, TALL_GRASS ; 36 + tilecoll UP_WALL, WALL, TALL_GRASS, WALL ; 37 + tilecoll TALL_GRASS, WALL, TALL_GRASS, WALL ; 38 + tilecoll WALL, TALL_GRASS, WALL, TALL_GRASS ; 39 + tilecoll FLOOR, FLOOR, WALL, WALL ; 3a + tilecoll WALL, WALL, WALL, WALL ; 3b + tilecoll WALL, WALL, WALL, WALL ; 3c + tilecoll WALL, CAVE, FLOOR, FLOOR ; 3d + tilecoll FLOOR, FLOOR, FLOOR, WALL ; 3e + tilecoll FLOOR, FLOOR, TALL_GRASS, TALL_GRASS ; 3f + tilecoll TALL_GRASS, TALL_GRASS, FLOOR, FLOOR ; 40 + tilecoll TALL_GRASS, TALL_GRASS, WALL, WALL ; 41 + tilecoll UP_WALL, UP_WALL, FLOOR, WALL ; 42 + tilecoll FLOOR, WALL, FLOOR, FLOOR ; 43 + tilecoll WALL, WALL, WALL, WALL ; 44 + tilecoll WALL, WALL, WALL, WALL ; 45 + tilecoll WALL, WALL, TALL_GRASS, TALL_GRASS ; 46 + tilecoll FLOOR, HOP_RIGHT, FLOOR, WALL ; 47 + tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 48 + tilecoll HOP_RIGHT, WALL, HOP_RIGHT, WALL ; 49 + tilecoll WALL, FLOOR, WALL, FLOOR ; 4a + tilecoll FLOOR, FLOOR, WALL, FLOOR ; 4b + tilecoll WALL, FLOOR, FLOOR, FLOOR ; 4c + tilecoll WALL, WALL, WALL, WALL ; 4d + tilecoll WALL, WALL, WALL, WALL ; 4e + tilecoll UP_WALL, UP_WALL, FLOOR, FLOOR ; 4f + tilecoll TALL_GRASS, WALL, TALL_GRASS, WALL ; 50 + tilecoll TALL_GRASS, WALL, TALL_GRASS, WALL ; 51 + tilecoll WALL, TALL_GRASS, WALL, TALL_GRASS ; 52 + tilecoll WALL, WALL, WALL, WALL ; 53 + tilecoll WALL, WALL, FLOOR, FLOOR ; 54 + tilecoll WALL, FLOOR, WALL, FLOOR ; 55 + tilecoll FLOOR, WALL, FLOOR, WALL ; 56 + tilecoll WALL, WALL, WALL, WALL ; 57 + tilecoll WALL, WALL, WALL, WALL ; 58 + tilecoll WALL, TALL_GRASS, WALL, TALL_GRASS ; 59 + tilecoll TALL_GRASS, WALL, TALL_GRASS, WALL ; 5a + tilecoll WALL, UP_WALL, FLOOR, WARP_CARPET_DOWN ; 5b + tilecoll WALL, WALL, WALL, CAVE ; 5c + tilecoll WALL, WALL, WALL, WALL ; 5d + tilecoll WALL, WALL, WALL, WALL ; 5e + tilecoll WALL, WALL, WALL, WALL ; 5f + tilecoll FLOOR, WALL, FLOOR, WALL ; 60 + tilecoll FLOOR, WALL, FLOOR, WALL ; 61 + tilecoll WALL, WALL, WALL, FLOOR ; 62 + tilecoll WALL, FLOOR, WALL, FLOOR ; 63 + tilecoll FLOOR, WALL, FLOOR, FLOOR ; 64 + tilecoll WALL, UP_WALL, WALL, FLOOR ; 65 + tilecoll UP_WALL, UP_WALL, FLOOR, FLOOR ; 66 + tilecoll WALL, WALL, WALL, WALL ; 67 + tilecoll FLOOR, UP_WALL, FLOOR, FLOOR ; 68 + tilecoll WALL, WALL, WALL, CAVE ; 69 + tilecoll FLOOR, WALL, TALL_GRASS, TALL_GRASS ; 6a + tilecoll WALL, WALL, WALL, WALL ; 6b + tilecoll WALL, FLOOR, WALL, FLOOR ; 6c + tilecoll WALL, WALL, WALL, WALL ; 6d + tilecoll WALL, FLOOR, WALL, FLOOR ; 6e + tilecoll WALL, FLOOR, WALL, FLOOR ; 6f + tilecoll FLOOR, WALL, FLOOR, FLOOR ; 70 + tilecoll WALL, WALL, FLOOR, FLOOR ; 71 + tilecoll WALL, HOP_RIGHT, WALL, HOP_RIGHT ; 72 + tilecoll WALL, FLOOR, WALL, FLOOR ; 73 + tilecoll WALL, FLOOR, WALL, FLOOR ; 74 + tilecoll WALL, FLOOR, WALL, FLOOR ; 75 + tilecoll FLOOR, WALL, FLOOR, WALL ; 76 + tilecoll HOP_RIGHT, WALL, HOP_RIGHT, WALL ; 77 + tilecoll FLOOR, WALL, FLOOR, WALL ; 78 + tilecoll FLOOR, WALL, FLOOR, WALL ; 79 + tilecoll WALL, WALL, WALL, WALL ; 7a + tilecoll WALL, WALL, WALL, WALL ; 7b + tilecoll TALL_GRASS, WALL, TALL_GRASS, WALL ; 7c + tilecoll WALL, TALL_GRASS, WALL, TALL_GRASS ; 7d + tilecoll WALL, WALL, WALL, FLOOR ; 7e + tilecoll FLOOR, WALL, WALL, WALL ; 7f + tilecoll WALL, TALL_GRASS, WALL, TALL_GRASS ; 80 + tilecoll TALL_GRASS, FLOOR, TALL_GRASS, FLOOR ; 81 diff --git a/data/tilesets/cliff_side_metatiles.bin b/data/tilesets/cliff_side_metatiles.bin new file mode 100644 index 0000000000000000000000000000000000000000..ee2e4852bdbc8b25fd527f1d772127375c9c92cd GIT binary patch literal 2080 zcmZWq%W~T=3=A2vb~}lk$0WMsotgF^Q%Ww$L4x!FrR+|7m;V1R3Yc1nVraulEC~Vx zLHgum*}f&sCe0-6IDBeP`Frecwwvw4WB3$hQ8sPU?hoP95B-qucCM;x68Y_YcXobu z9?!qKzq^m;`>Fl><^9K}_W==>R$B2_12GQ0W`{XDt43k>HM`~?A`$RF@Idet2g_d% zoAyNnxR5nQjhkE}mjulQ7=PKk2xk8*F3)q#l%j{T- zd9dp^Yrcafc8DmTs~Mf_Ea zxm~Yh9(35_nz-5+ax4@C`JWk#1YByyU|qRKa({@LmS}$n(ho~b@*M65>}I^Wj^jpr zK+J=l=0hvk1H-+;y!4)f2V!0L!Fp5SjvXH7x>S5hBXUnMqk%jq=i&X^dn{PDX#uN$U+af%x2sK0c98tcP(wzCRe}cWipgJ=G9$K@erge0cgN_9GVDTd h?#aH2a<0x$sd2rA{>3HH(=%2@JYduJ$rx*6`43+AF8BZd literal 0 HcmV?d00001 diff --git a/data/tilesets/dark_cave_collision.asm b/data/tilesets/dark_cave_collision.asm index fe7a3627e..1c5402038 100644 --- a/data/tilesets/dark_cave_collision.asm +++ b/data/tilesets/dark_cave_collision.asm @@ -127,3 +127,4 @@ tilecoll WALL, WALL, WALL, WALL ; 7e tilecoll WATER, WATER, WALL, WALL ; 7f tilecoll WALL, HOP_DOWN, WALL, WALL ; 80 + tilecoll FLOOR, FLOOR, WALL, CAVE ; 81 diff --git a/data/tilesets/dark_cave_metatiles.bin b/data/tilesets/dark_cave_metatiles.bin index 7a583c3f0..552412784 100644 --- a/data/tilesets/dark_cave_metatiles.bin +++ b/data/tilesets/dark_cave_metatiles.bin @@ -18,4 +18,4 @@ & 67'67&'&  %67%&67&   & -@@@@%&&'%&&'%&&'@@@@@@@@%&&'%&&'@@@@@@@@@@@@%&&'AAAAAAAA  && \ No newline at end of file +@@@@%&&'%&&'%&&'@@@@@@@@%&&'%&&'@@@@@@@@@@@@%&&'AAAAAAAA  &&&&NO&&^_ \ No newline at end of file diff --git a/data/wild/challenge_mode/johto_grass.asm b/data/wild/challenge_mode/johto_grass.asm index 8597fd92e..b800be22c 100644 --- a/data/wild/challenge_mode/johto_grass.asm +++ b/data/wild/challenge_mode/johto_grass.asm @@ -1878,4 +1878,60 @@ JohtoGrassWildMonsChallenge: db 55, SNEASEL end_grass_wildmons + def_grass_wildmons SILVER_CAVE_CLIFF_SIDE_1F + db 10 percent, 10 percent, 10 percent ; encounter rates: morn/day/nite + ; morn + db 56, GOLBAT + db 57, GOLDUCK + db 57, DONPHAN + db 57, URSARING + db 57, PARASECT + db 40, LARVITAR + db 45, LARVITAR + ; day + db 56, GOLBAT + db 57, GOLDUCK + db 57, DONPHAN + db 57, URSARING + db 57, PARASECT + db 40, LARVITAR + db 45, LARVITAR + ; nite + db 56, GOLBAT + db 57, GOLDUCK + db 57, DONPHAN + db 57, URSARING + db 57, PARASECT + db 40, LARVITAR + db 45, LARVITAR + end_grass_wildmons + + def_grass_wildmons SILVER_CAVE_CLIFF_SIDE_2F + db 10 percent, 10 percent, 10 percent ; encounter rates: morn/day/nite + ; morn + db 58, GOLBAT + db 58, GOLDUCK + db 57, SNEASEL + db 57, URSARING + db 58, DONPHAN + db 40, LARVITAR + db 45, LARVITAR + ; day + db 58, GOLBAT + db 58, GOLDUCK + db 57, SNEASEL + db 57, URSARING + db 58, DONPHAN + db 40, LARVITAR + db 45, LARVITAR + ; nite + db 58, GOLBAT + db 58, MISDREAVUS + db 57, SNEASEL + db 57, PARASECT + db 58, GOLDUCK + db 40, LARVITAR + db 45, LARVITAR + end_grass_wildmons + db -1 ; end diff --git a/data/wild/johto_grass.asm b/data/wild/johto_grass.asm index de120f0ec..4d8a07fff 100644 --- a/data/wild/johto_grass.asm +++ b/data/wild/johto_grass.asm @@ -1878,4 +1878,60 @@ JohtoGrassWildMons: db 52, SNEASEL end_grass_wildmons + def_grass_wildmons SILVER_CAVE_CLIFF_SIDE_1F + db 10 percent, 10 percent, 10 percent ; encounter rates: morn/day/nite + ; morn + db 53, GOLBAT + db 54, GOLDUCK + db 54, DONPHAN + db 54, URSARING + db 55, PARASECT + db 40, LARVITAR + db 45, LARVITAR + ; day + db 53, GOLBAT + db 54, GOLDUCK + db 54, DONPHAN + db 54, URSARING + db 55, PARASECT + db 40, LARVITAR + db 45, LARVITAR + ; nite + db 53, GOLBAT + db 54, GOLDUCK + db 54, DONPHAN + db 54, URSARING + db 55, PARASECT + db 40, LARVITAR + db 45, LARVITAR + end_grass_wildmons + + def_grass_wildmons SILVER_CAVE_CLIFF_SIDE_2F + db 10 percent, 10 percent, 10 percent ; encounter rates: morn/day/nite + ; morn + db 55, GOLBAT + db 55, GOLDUCK + db 54, SNEASEL + db 54, URSARING + db 55, DONPHAN + db 40, LARVITAR + db 45, LARVITAR + ; day + db 55, GOLBAT + db 55, GOLDUCK + db 54, SNEASEL + db 54, URSARING + db 55, DONPHAN + db 40, LARVITAR + db 45, LARVITAR + ; nite + db 55, GOLBAT + db 55, MISDREAVUS + db 54, SNEASEL + db 54, PARASECT + db 55, GOLDUCK + db 40, LARVITAR + db 45, LARVITAR + end_grass_wildmons + db -1 ; end diff --git a/engine/tilesets/tileset_anims.asm b/engine/tilesets/tileset_anims.asm index 7d4c66cdf..9392879b2 100644 --- a/engine/tilesets/tileset_anims.asm +++ b/engine/tilesets/tileset_anims.asm @@ -38,6 +38,7 @@ _AnimateTileset:: Tileset0Anim: TilesetJohtoModernAnim: TilesetKantoAnim: +TilesetCliffSideAnim: dw vTiles2 tile $14, AnimateWaterTile dw NULL, WaitTileAnimation dw vTiles2 tile $64, AnimateFountainTile diff --git a/engine/tilesets/tileset_palettes.asm b/engine/tilesets/tileset_palettes.asm index 240560883..a07c08365 100644 --- a/engine/tilesets/tileset_palettes.asm +++ b/engine/tilesets/tileset_palettes.asm @@ -117,6 +117,7 @@ MapSpecificPalettes: _use_palette_routine_for_map KOGAS_ROOM, .KogasRoomBGPalettes _use_palette_routine_for_map WILLS_ROOM, .WillsRoomBGPalettes _use_palette_routine_for_map VIRIDIAN_GYM, .ViridianGymBGPalettes + _use_palette_routine_for_map SILVER_CAVE_CLIFF_SIDE_2F, .CliffSideBGPalettes db -1 ; terminator .LavaOverRedCoalOverBrownBGPalette: @@ -136,6 +137,13 @@ MapSpecificPalettes: ld bc, 8 palettes call AddNTimes jp .next_TimeOfDay +.CliffSideBGPalettes: + ld hl, CliffSidePals + ld a, [wTimeOfDayPal] + maskbits NUM_DAYTIMES + ld bc, 8 palettes + call AddNTimes + jp .next_TimeOfDay .SundriedBGPalettes: ld hl, SundriedPals ld a, [wTimeOfDayPal] diff --git a/gfx/tileset_palette_maps.asm b/gfx/tileset_palette_maps.asm index d958b1a78..c808b675e 100644 --- a/gfx/tileset_palette_maps.asm +++ b/gfx/tileset_palette_maps.asm @@ -110,6 +110,9 @@ INCLUDE "gfx/tilesets/battle_tower_inside_palette_map.asm" TilesetBattleTowerOutsidePalMap: INCLUDE "gfx/tilesets/battle_tower_outside_palette_map.asm" +TilesetCliffSidePalMap: +INCLUDE "gfx/tilesets/cliff_side_palette_map.asm" + MapGroupPalettes: ; unreferenced ; entries correspond to MAPGROUP_* constants rept NUM_MAP_GROUPS diff --git a/gfx/tilesets.asm b/gfx/tilesets.asm index 66c6586d5..e5fb4c2ed 100644 --- a/gfx/tilesets.asm +++ b/gfx/tilesets.asm @@ -271,7 +271,6 @@ INCBIN "data/tilesets/ruins_of_alph_metatiles.bin" TilesetRuinsOfAlphColl:: INCLUDE "data/tilesets/ruins_of_alph_collision.asm" - SECTION "Tileset Data 8", ROMX TilesetHoOhWordRoomMeta:: @@ -337,3 +336,16 @@ INCBIN "gfx/tilesets/forest.2bpp.lz" TilesetForestMeta:: INCBIN "data/tilesets/forest_metatiles.bin" + + +SECTION "Tileset Data 10", ROMX + + +TilesetCliffSideGFX:: +INCBIN "gfx/tilesets/cliff_side.2bpp.lz" + +TilesetCliffSideMeta:: +INCBIN "data/tilesets/cliff_side_metatiles.bin" + +TilesetCliffSideColl:: +INCLUDE "data/tilesets/cliff_side_collision.asm" \ No newline at end of file diff --git a/gfx/tilesets/bg_tiles.pal b/gfx/tilesets/bg_tiles.pal index 56bd58c01..325e6d014 100644 --- a/gfx/tilesets/bg_tiles.pal +++ b/gfx/tilesets/bg_tiles.pal @@ -1,11 +1,11 @@ ; morn - RGB 28,31,16, 21,21,21, 13,13,13, 07,07,07 ; gray - RGB 28,31,16, 31,19,24, 30,10,06, 07,07,07 ; red - RGB 22,31,10, 12,25,01, 05,14,00, 07,07,07 ; green - RGB 31,31,31, 08,12,31, 01,04,31, 07,07,07 ; water - RGB 28,31,16, 31,31,07, 31,16,01, 07,07,07 ; yellow - RGB 28,31,16, 24,18,07, 20,15,03, 07,07,07 ; brown - RGB 28,31,16, 15,31,31, 05,17,31, 07,07,07 ; roof + RGB 28,31,16, 21,21,21, 13,13,13, 06,07,08 ; gray + RGB 28,31,16, 31,19,24, 30,10,06, 06,07,08 ; red + RGB 22,30,17, 12,25,08, 05,14,00, 06,07,08 ; green + RGB 31,31,31, 08,12,31, 01,04,31, 06,07,08 ; water + RGB 28,31,16, 31,31,07, 31,16,01, 06,07,08 ; yellow + RGB 28,31,16, 24,18,07, 20,15,03, 06,07,08 ; brown + RGB 28,31,16, 15,31,31, 05,17,31, 06,07,08 ; roof RGB 31,31,16, 31,31,16, 14,09,00, 00,00,00 ; text ; day @@ -49,7 +49,7 @@ RGB 31,31,16, 31,31,16, 14,09,00, 00,00,00 ; text ; overworld water - RGB 23,23,31, 18,19,31, 13,12,31, 07,07,07 ; morn + RGB 18,21,31, 11,16,29, 08,12,26, 06,07,08 ; morn RGB 23,23,31, 18,19,31, 13,12,31, 07,07,07 ; day RGB 15,13,27, 10,09,20, 04,03,18, 00,00,00 ; nite RGB 29,21,14, 22,14,23, 11,09,23, 06,05,05 ; eve diff --git a/gfx/tilesets/bg_tiles_special_pals.pal b/gfx/tilesets/bg_tiles_special_pals.pal index f722e9dc3..cb49b7fdc 100644 --- a/gfx/tilesets/bg_tiles_special_pals.pal +++ b/gfx/tilesets/bg_tiles_special_pals.pal @@ -142,13 +142,13 @@ SwampPals: SundriedPals: ; morn - RGB 26,31,31, 16,22,30, 07,12,31, 07,07,07 ; gray - RGB 25,20,00, 12,25,01, 05,14,00, 07,07,07 ; red - RGB 28,31,10, 12,25,01, 05,14,00, 07,07,07 ; green - RGB 31,31,31, 08,12,31, 01,04,31, 07,07,07 ; water - RGB 28,31,16, 31,31,07, 31,16,01, 07,07,07 ; yellow - RGB 28,31,16, 25,20,00, 21,11,00, 07,07,07 ; brown - RGB 28,31,16, 15,31,31, 05,17,31, 07,07,07 ; roof + RGB 26,31,31, 16,22,30, 07,12,31, 06,07,08 ; gray + RGB 25,20,00, 04,25,01, 00,14,07, 06,07,08 ; red + RGB 26,31,10, 04,25,01, 00,14,07, 06,07,08 ; green + RGB 26,29,31, 14,14,29, 09,06,28, 06,07,08 ; water + RGB 28,31,16, 31,31,07, 31,16,01, 06,07,08 ; yellow + RGB 28,31,16, 25,20,00, 21,11,00, 06,07,08 ; brown + RGB 28,31,16, 15,31,31, 05,17,31, 06,07,08 ; roof RGB 31,31,16, 31,31,16, 14,09,00, 00,00,00 ; text ; day @@ -197,6 +197,63 @@ SundriedPals: RGB 15,13,27, 10,09,20, 04,03,18, 00,00,00 ; nite RGB 29,21,14, 22,14,23, 11,09,23, 06,05,05 ; eve +CliffSidePals: +; morn + RGB 29,31,26, 20,27,31, 18,16,24, 10,13,15 ; gray + RGB 28,31,16, 31,19,24, 30,10,06, 06,07,08 ; red + RGB 29,31,26, 20,27,31, 18,16,24, 10,13,15 ; green + RGB 31,31,31, 08,12,31, 01,04,31, 06,07,08 ; water + RGB 28,31,16, 31,31,07, 31,16,01, 06,07,08 ; yellow + RGB 29,31,26, 18,23,24, 13,16,20, 10,13,15 ; brown + RGB 28,31,16, 15,31,31, 05,17,31, 06,07,08 ; roof + RGB 31,31,16, 31,31,16, 14,09,00, 00,00,00 ; text + +; day + RGB 26,29,29, 20,26,29, 18,16,23, 10,13,15 ; gray + RGB 27,31,27, 31,19,24, 30,10,06, 07,07,07 ; red + RGB 26,29,29, 20,26,29, 18,16,23, 10,13,15 ; green + RGB 31,31,31, 08,12,31, 01,04,31, 07,07,07 ; water + RGB 27,31,27, 31,31,07, 31,16,01, 07,07,07 ; yellow + RGB 26,29,29, 17,22,25, 13,16,20, 10,13,15 ; brown + RGB 27,31,27, 15,31,31, 05,17,31, 07,07,07 ; roof + RGB 31,31,16, 31,31,16, 14,09,00, 00,00,00 ; text + +; nite + RGB 15,14,22, 10,11,19, 08,05,11, 02,03,05 ; gray + RGB 15,14,24, 14,07,17, 13,00,08, 00,00,00 ; red + RGB 15,14,22, 10,11,19, 08,05,11, 02,03,05 ; green + RGB 15,14,24, 05,05,17, 03,03,10, 00,00,00 ; water + RGB 30,30,11, 16,14,18, 16,14,10, 00,00,00 ; yellow + RGB 15,14,22, 09,10,15, 04,05,08, 02,03,05 ; brown + RGB 15,14,24, 13,12,23, 11,09,20, 00,00,00 ; roof + RGB 31,31,16, 31,31,16, 14,09,00, 00,00,00 ; text + +; eve + RGB 26,20,19, 20,18,19, 18,11,15, 10,09,10 ; gray + RGB 29,21,14, 25,14,18, 24,08,07, 06,05,05 ; red + RGB 26,20,19, 20,18,19, 18,11,15, 10,09,10 ; green + RGB 29,21,14, 07,09,23, 01,03,23, 06,05,05 ; water + RGB 31,31,07, 27,21,10, 25,12,01, 06,05,05 ; yellow + RGB 26,20,19, 17,15,16, 13,11,13, 10,09,10 ; brown + RGB 29,21,14, 13,23,23, 04,13,23, 06,05,05 ; roof + RGB 31,31,16, 31,31,16, 14,09,00, 00,00,00 ; text + +; indoor + RGB 30,28,26, 19,19,19, 13,13,13, 07,07,07 ; gray + RGB 30,28,26, 31,19,24, 30,10,06, 07,07,07 ; red + RGB 18,24,09, 15,20,01, 09,13,00, 07,07,07 ; green + RGB 30,28,26, 15,16,31, 09,09,31, 07,07,07 ; water + RGB 30,28,26, 31,31,07, 31,16,01, 07,07,07 ; yellow + RGB 26,24,17, 21,17,07, 16,13,03, 07,07,07 ; brown + RGB 30,28,26, 17,19,31, 14,16,31, 07,07,07 ; roof + RGB 31,31,16, 31,31,16, 14,09,00, 00,00,00 ; text + +; overworld water + RGB 18,21,31, 11,16,29, 08,12,26, 06,07,08 ; morn + RGB 23,23,31, 18,19,31, 13,12,31, 07,07,07 ; day + RGB 15,13,27, 10,09,20, 04,03,18, 00,00,00 ; nite + RGB 29,21,14, 22,14,23, 11,09,23, 06,05,05 ; eve + BlackThornGymPals: RGB 19,17,24, 16,14,19, 13,08,12, 07,03,03 ; gray RGB 19,17,24, 18,08,17, 18,00,08, 07,03,03 ; pokeball statue diff --git a/gfx/tilesets/cave.png b/gfx/tilesets/cave.png index dc1132c1ab877f45258f5e0adfb829014689ac2e..a7d2fe4400f43c6f3ed75f01ab65e6c48bf38191 100644 GIT binary patch delta 1336 zcmV-81;_e_3cd=E7k^L!00000zS}yP000FANkl@4>Oyo`?b$gkZ17T-__&?qYt!4`{eRAPzMgYaAY^b1(LrBb zQb#&{9~>JvD(OK34JfZUuNesGofYWly@R?QOJ}>H~v8-w0E)Z|lZGaakK>Hc^q+$DAaosJhv&B0+S=BY(75})r z2|&(3BE!JJBD-&GyM=-)R?ZZ?Fk8#j03C$%Bx>-Y!uKl%xNMdI97T?TA9;K!31B{-r1RxVG$0( z(NAU88-P3X2*0McW4r37U)K+7e8<&@hMjGqM1O{%4xK6<&}GIWJDrYg&25)MeJB>{ zix4_4$*fnQr9<%mcPM_xxaz>Z+&kRc0iDwq&|~&PW`JZIkUC8zvIuuOyOsOpo(bLl z`xClwHe?Gg7tLJ*mtsO0RZOS}c58V_z19=@#Tg6T!zG%M(U%HGuR*JAi*($!B`qHD znt!DZN#ogo5yb+=$Yy@?Tw;ngRi=tYCZgwIjh_(Dgkj7#Vepr5C8Hyz(ICid$0anR zy>oYGb7|%0Lc_|L(C{jn;mL1hbKe3d(@ANh(OraC<-UNyMdMIDm;Yp>bo3_3`viTH2h;dZRR^H>R;hJz^QmvT|jstbbf>CuEM*&~i4a#J;GSH7ZeLJ7lF#(x9#T zlhr^^NuC%s=H(eSS!;9302aaS`S|C{GwgY1 zhpo&MTLcI02*PqekFsS6*tHK}IoO(UX6q_|GYcU2&5cBnYZ01Bf>#VH-dnQF;B*pj z{&-Civ{ygKTC&Wk$_1b|YLcL)Mt?3}vdrr{{sDe=CC(pv!Yu*QmEW&lo?(+I_WTkM zu+BF!(55$X$qXAaqqdz0buWNPYqAd^y)h%1L4RoFwLXMSF9JD90J>X_B{Ss9Yx3zM zQnmodQ^x<`zXjNTgp}ZvSyGV_xJ|K~l;ABwuBHSZ5i*q$R1@;xX&{;sWHCN7pi?|d u3A+A8kfYRYf%#0m9 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