diff --git a/constants/landmark_constants.asm b/constants/landmark_constants.asm index 0461029..b3d7eca 100644 --- a/constants/landmark_constants.asm +++ b/constants/landmark_constants.asm @@ -134,6 +134,7 @@ DEF NIHON_LANDMARK EQU const_value const LANDMARK_OLD_CITY const LANDMARK_BLUE_FOREST const LANDMARK_ROUTE_66 + const LANDMARK_WHITE_CITY DEF NUM_LANDMARKS EQU const_value ; used in CaughtData diff --git a/constants/map_constants.asm b/constants/map_constants.asm index cbf1e88..a630d33 100644 --- a/constants/map_constants.asm +++ b/constants/map_constants.asm @@ -643,11 +643,14 @@ ENDM map_const OLD_CITY_EARLS_HOUSE, 4, 4 ; 5 map_const OLD_CITY_FAMILY_HOUSE, 4, 4 ; 6 map_const SEPIA_SCHOOL, 4, 8 ; 7 - endgroup - newgroup BLUE_FOREST ; 36 + newgroup BLUE_FOREST ; 37 map_const BLUE_FOREST, 20, 18 ; 1 endgroup -DEF NUM_MAP_GROUPS EQU const_value ; 36 + newgroup WHITE_CITY ; 38 + map_const WHITE_CITY, 30, 27 ; 1 + endgroup + +DEF NUM_MAP_GROUPS EQU const_value ; 38 diff --git a/constants/scgb_constants.asm b/constants/scgb_constants.asm index 1eb2eb4..6ffdad3 100644 --- a/constants/scgb_constants.asm +++ b/constants/scgb_constants.asm @@ -82,6 +82,7 @@ DEF SCGB_DEFAULT EQU $ff const PREDEFPAL_SILENT_HILLS const PREDEFPAL_OLD_CITY const PREDEFPAL_BLUE_FOREST + const PREDEFPAL_WHITE_CITY const PREDEFPAL_NITE const PREDEFPAL_BLACKOUT const PREDEFPAL_DIPLOMA ; RB_MEWMON diff --git a/constants/tileset_constants.asm b/constants/tileset_constants.asm index 3cd9834..2e28f97 100644 --- a/constants/tileset_constants.asm +++ b/constants/tileset_constants.asm @@ -50,6 +50,7 @@ const TILESET_BLUE_LAB ; 30 const TILESET_NIHON_GATE ; 31 const TILESET_NIHON_MART ; 32 + const TILESET_NIHON_WHITECITY ; 33 DEF NUM_TILESETS EQU const_value - 1 ; wTileset struct size diff --git a/data/maps/attributes.asm b/data/maps/attributes.asm index 20fb9ac..7fafd3d 100644 --- a/data/maps/attributes.asm +++ b/data/maps/attributes.asm @@ -835,5 +835,7 @@ ENDM map_attributes BlueForest, BLUE_FOREST, $00, 0 ; this is on its own for now. add connections later. + map_attributes WhiteCity, WHITE_CITY, $01, 0 ; this is on its own for now. add connections later. + map_attributes SinjohRuinsExterior, SINJOH_RUINS_EXTERIOR, $00, 0 map_attributes SinjohRuinsInterior, SINJOH_RUINS_EXTERIOR, $00, 0 diff --git a/data/maps/blocks.asm b/data/maps/blocks.asm index 6a122c7..a5aed96 100644 --- a/data/maps/blocks.asm +++ b/data/maps/blocks.asm @@ -1235,3 +1235,8 @@ HoneyGrandmasHouse_Blocks: SepiaSchool_Blocks: INCBIN "maps/SepiaSchool.ablk" + +SECTION "Map Blocks 4", ROMX + +WhiteCity_Blocks: + INCBIN "maps/WhiteCity.ablk" diff --git a/data/maps/landmarks.asm b/data/maps/landmarks.asm index 0abd915..3b1730f 100644 --- a/data/maps/landmarks.asm +++ b/data/maps/landmarks.asm @@ -138,6 +138,7 @@ Landmarks: landmark 76, 100, OldCityName landmark 140, 60, BlueForestName landmark 108, 108, Route66Name + landmark 124, 108, WhiteCityName assert_table_length NUM_LANDMARKS NewBarkTownName: db "NEW BARK¯TOWN@" @@ -252,3 +253,4 @@ QuietCaveName: db "QUIET¯CAVE@" OldCityName: db "SEPIA¯CITY@" ; High Tech will be called "Vogue City" BlueForestName: db "BLUE¯FOREST@" +WhiteCityName: db "WHITE¯CITY@" diff --git a/data/maps/maps.asm b/data/maps/maps.asm index 58bf60e..801567b 100644 --- a/data/maps/maps.asm +++ b/data/maps/maps.asm @@ -54,6 +54,7 @@ MapGroupPointers:: dw MapGroup_SilentHills ; 35 dw MapGroup_OldCity ; 36 dw MapGroup_BlueForest ; 37 + dw MapGroup_WhiteCity ; 38 assert_table_length NUM_MAP_GROUPS MapGroup_Olivine: @@ -708,3 +709,9 @@ MapGroup_BlueForest: table_width MAP_LENGTH, MapGroup_BlueForest map BlueForest, TILESET_NIHON_SNOWY, TOWN, LANDMARK_BLUE_FOREST, MUSIC_SINJOH_RUINS, TRUE, PALETTE_AUTO, FISHGROUP_SHORE assert_table_length NUM_BLUE_FOREST_MAPS + +MapGroup_WhiteCity: + table_width MAP_LENGTH, MapGroup_WhiteCity + map WhiteCity, TILESET_NIHON_WHITECITY, TOWN, LANDMARK_WHITE_CITY, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_AUTO, FISHGROUP_SHORE + assert_table_length NUM_WHITE_CITY_MAPS + \ No newline at end of file diff --git a/data/maps/outdoor_sprites.asm b/data/maps/outdoor_sprites.asm index f583188..084a643 100644 --- a/data/maps/outdoor_sprites.asm +++ b/data/maps/outdoor_sprites.asm @@ -41,6 +41,7 @@ OutdoorSprites: dw SilentHillsGroupSprites dw OldCityGroupSprites dw BlueForestGroupSprites + dw WhiteCityGroupSprites assert_table_length NUM_MAP_GROUPS ; Since these areas aren't done yet, their outdoor sprites will just use Pallet's. @@ -329,6 +330,7 @@ IndigoGroupSprites: db SPRITE_BOULDER BlueForestGroupSprites: ; Will have its own thing eventually +WhiteCityGroupSprites: ; Ditto NewBarkGroupSprites: db SPRITE_SUICUNE db SPRITE_SILVER_TROPHY diff --git a/data/maps/roofs.asm b/data/maps/roofs.asm index 36d8cef..f3850db 100644 --- a/data/maps/roofs.asm +++ b/data/maps/roofs.asm @@ -49,6 +49,7 @@ MapGroupRoofs: db ROOF_NEW_BARK ; 35 (Silent Hills) db ROOF_VIOLET ; 36 (Old City) db ROOF_NEW_BARK ; 37 (Blue Forest) + db ROOF_NEW_BARK ; 38 (White City) assert_table_length NUM_MAP_GROUPS + 1 Roofs: diff --git a/data/maps/scripts.asm b/data/maps/scripts.asm index 71b9e19..b5c4860 100644 --- a/data/maps/scripts.asm +++ b/data/maps/scripts.asm @@ -585,6 +585,8 @@ INCLUDE "maps/HoneyGrandmasHouse.asm" INCLUDE "maps/OldCityEarlsHouse.asm" INCLUDE "maps/OldCityFamilyHouse.asm" INCLUDE "maps/SepiaSchool.asm" +INCLUDE "maps/WhiteCity.asm" + SECTION "Map Scripts 30", ROMX ; spillover INCLUDE "maps/TanobyRuins.asm" @@ -605,4 +607,4 @@ INCLUDE "maps/CelesteHillCave.asm" INCLUDE "maps/ThreeIslandPort.asm" INCLUDE "maps/AlteringCave.asm" INCLUDE "maps/SinjohRuinsExterior.asm" -INCLUDE "maps/SinjohRuinsInterior.asm" +INCLUDE "maps/SinjohRuinsInterior.asm" \ No newline at end of file diff --git a/data/maps/sgb_roof_pal_inds.asm b/data/maps/sgb_roof_pal_inds.asm index c5eb84c..95f4c13 100644 --- a/data/maps/sgb_roof_pal_inds.asm +++ b/data/maps/sgb_roof_pal_inds.asm @@ -41,4 +41,5 @@ MapGroupRoofSGBPalInds: db PREDEFPAL_SILENT_HILLS db PREDEFPAL_OLD_CITY db PREDEFPAL_BLUE_FOREST + db PREDEFPAL_WHITE_CITY assert_table_length NUM_MAP_GROUPS + 1 diff --git a/data/tilesets.asm b/data/tilesets.asm index d736aa6..7da8f48 100644 --- a/data/tilesets.asm +++ b/data/tilesets.asm @@ -62,4 +62,5 @@ Tilesets:: tileset TilesetBlueLab tileset TilesetNihonGate tileset TilesetNihonMart + tileset TilesetNihonWhiteCity assert_table_length NUM_TILESETS + 1 diff --git a/data/tilesets/nihon01_attributes.bin b/data/tilesets/nihon01_attributes.bin index f6c977e..54fde47 100644 Binary files a/data/tilesets/nihon01_attributes.bin and b/data/tilesets/nihon01_attributes.bin differ diff --git a/data/tilesets/nihon_whitecity_attributes.bin b/data/tilesets/nihon_whitecity_attributes.bin new file mode 100644 index 0000000..c48a242 Binary files /dev/null and b/data/tilesets/nihon_whitecity_attributes.bin differ diff --git a/data/tilesets/nihon_whitecity_collision.asm b/data/tilesets/nihon_whitecity_collision.asm new file mode 100644 index 0000000..0e7a175 --- /dev/null +++ b/data/tilesets/nihon_whitecity_collision.asm @@ -0,0 +1,112 @@ + tilecoll WALL, WALL, WALL, WALL ; 00 + tilecoll WALL, WALL, WALL, WALL ; 01 + tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 02 + tilecoll WATER, WATER, WATER, WATER ; 03 + tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 04 + tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 05 + tilecoll WATER, WATER, WATER, WATER ; 06 + tilecoll WATER, WATER, WATER, WATER ; 07 + tilecoll WATER, WATER, WATER, WATER ; 08 + tilecoll WATER, WATER, WATER, WATER ; 09 + tilecoll WATER, WATER, WATER, WATER ; 0a + tilecoll WATER, WATER, WATER, WATER ; 0b + tilecoll WALL, WALL, WALL, WALL ; 0c + tilecoll WALL, WALL, WALL, WALL ; 0d + tilecoll WALL, WALL, WALL, WALL ; 0e + tilecoll WALL, WALL, DOOR, WALL ; 0f + tilecoll WATER, WATER, WATER, WATER ; 10 + tilecoll WATER, WATER, WATER, WATER ; 11 + tilecoll WATER, WATER, WATER, WATER ; 12 + tilecoll WATER, WATER, WATER, WATER ; 13 + tilecoll WATER, WATER, WATER, WATER ; 14 + tilecoll WATER, WATER, WATER, WATER ; 15 + tilecoll FLOOR, WALL, FLOOR, FLOOR ; 16 + tilecoll WALL, WALL, WALL, WALL ; 17 + tilecoll WALL, WALL, WALL, WALL ; 18 + tilecoll WALL, WALL, WALL, WALL ; 19 + tilecoll WALL, WALL, WALL, WALL ; 1a + tilecoll WALL, WALL, DOOR, WALL ; 1b + tilecoll WALL, WALL, WALL, WALL ; 1c + tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 1d + tilecoll WALL, WALL, WALL, WALL ; 1e + tilecoll WALL, FLOOR, FLOOR, FLOOR ; 1f + tilecoll WALL, WALL, WALL, WALL ; 20 + tilecoll WALL, WALL, WALL, WALL ; 21 + tilecoll WALL, WALL, WALL, WALL ; 22 + tilecoll WALL, WALL, DOOR, DOOR ; 23 + tilecoll WALL, WALL, WALL, WALL ; 24 + tilecoll WALL, WALL, WALL, WALL ; 25 + tilecoll WALL, WALL, WALL, WALL ; 26 + tilecoll WALL, WALL, DOOR, WALL ; 27 + tilecoll WALL, WALL, WALL, WALL ; 28 + tilecoll WALL, WALL, WALL, WALL ; 29 + tilecoll WALL, WALL, WALL, WALL ; 2a + tilecoll WALL, WALL, WALL, WALL ; 2b + tilecoll WALL, WALL, WALL, WALL ; 2c + tilecoll WALL, WALL, WALL, WALL ; 2d + tilecoll WALL, WALL, WALL, WALL ; 2e + tilecoll WALL, WALL, WALL, WALL ; 2f + tilecoll WALL, WALL, WALL, WALL ; 30 + tilecoll WALL, WALL, WALL, WALL ; 31 + tilecoll WALL, WALL, WALL, WALL ; 32 + tilecoll WALL, WALL, DOOR, WALL ; 33 + tilecoll WALL, WALL, WALL, WALL ; 34 + tilecoll WALL, WALL, WALL, WALL ; 35 + tilecoll WALL, WALL, WALL, WALL ; 36 + tilecoll WALL, WALL, DOOR, DOOR ; 37 + tilecoll WALL, WALL, WALL, WALL ; 38 + tilecoll WALL, WALL, WALL, WALL ; 39 + tilecoll WALL, WALL, WALL, WALL ; 3a + tilecoll WALL, WALL, WALL, WALL ; 3b + tilecoll WALL, FLOOR, FLOOR, FLOOR ; 3c + tilecoll WALL, WALL, WALL, WALL ; 3d + tilecoll WALL, WALL, WALL, WALL ; 3e + tilecoll WALL, WALL, WALL, WALL ; 3f + tilecoll WALL, WALL, WALL, WALL ; 40 + tilecoll WALL, WALL, WALL, WALL ; 41 + tilecoll WALL, WALL, WALL, WALL ; 42 + tilecoll WALL, WALL, WATER, WATER ; 43 + tilecoll WALL, WALL, WALL, WALL ; 44 + tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 45 + tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 46 + tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 47 + tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 48 + tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 49 + tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 4a + tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 4b + tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 4c + tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 4d + tilecoll WALL, WALL, WALL, WALL ; 4e + tilecoll WALL, WALL, WALL, WALL ; 4f + tilecoll WALL, WALL, WALL, WALL ; 50 + tilecoll WALL, WALL, WALL, WALL ; 51 + tilecoll WALL, WALL, DOOR, WALL ; 52 + tilecoll WALL, WALL, WALL, WALL ; 53 + tilecoll WALL, WALL, WALL, WALL ; 54 + tilecoll WALL, WALL, WALL, WALL ; 55 + tilecoll WALL, WALL, WALL, WALL ; 56 + tilecoll WALL, WALL, WALL, WALL ; 57 + tilecoll WALL, WALL, WALL, WALL ; 58 + tilecoll WALL, WALL, WALL, WALL ; 59 + tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 5a + tilecoll WALL, FLOOR, WALL, WALL ; 5b + tilecoll FLOOR, FLOOR, WALL, WALL ; 5c + tilecoll FLOOR, WALL, WALL, WALL ; 5d + tilecoll FLOOR, FLOOR, WALL, WALL ; 5e + tilecoll WATER, WATER, WALL, WALL ; 5f + tilecoll WATER, WATER, WALL, WALL ; 60 + tilecoll WALL, WALL, WATER, WATER ; 61 + tilecoll WALL, WALL, WATER, WATER ; 62 + tilecoll WATER, WATER, WALL, WALL ; 63 + tilecoll WATER, WATER, WALL, WALL ; 64 + tilecoll WALL, FLOOR, WALL, FLOOR ; 65 + tilecoll WALL, WALL, WALL, WALL ; 66 + tilecoll WALL, WALL, WALL, WALL ; 67 + tilecoll WALL, WATER, WALL, WATER ; 68 + tilecoll TALL_GRASS, TALL_GRASS, TALL_GRASS, TALL_GRASS ; 69 + tilecoll WALL, WALL, WALL, WALL ; 6a + tilecoll WALL, WALL, WALL, WALL ; 6b + tilecoll WALL, WALL, WALL, WALL ; 6c + tilecoll WALL, WALL, WALL, WALL ; 6d + tilecoll WALL, WALL, WALL, WALL ; 6e + tilecoll WALL, WALL, WALL, WALL ; 6f diff --git a/data/tilesets/nihon_whitecity_metatiles.bin b/data/tilesets/nihon_whitecity_metatiles.bin new file mode 100644 index 0000000..ab222f8 Binary files /dev/null and b/data/tilesets/nihon_whitecity_metatiles.bin differ diff --git a/engine/tilesets/tileset_anims.asm b/engine/tilesets/tileset_anims.asm index 3b2e37c..91be320 100644 --- a/engine/tilesets/tileset_anims.asm +++ b/engine/tilesets/tileset_anims.asm @@ -243,6 +243,7 @@ TilesetNihonHighTechAnim: TilesetNihonOldAnim: TilesetNihonSouthAnim: TilesetNihonWestAnim: +TilesetNihonWhiteCityAnim: dw vTiles2 tile $14, AnimateWaterTile dw NULL, WaitTileAnimation dw NULL, WaitTileAnimation diff --git a/gfx/pokegear/nihon.bin b/gfx/pokegear/nihon.bin index 04ef749..56a6406 100644 Binary files a/gfx/pokegear/nihon.bin and b/gfx/pokegear/nihon.bin differ diff --git a/gfx/sgb/predef.pal b/gfx/sgb/predef.pal index fdc09cb..47d028c 100644 --- a/gfx/sgb/predef.pal +++ b/gfx/sgb/predef.pal @@ -34,6 +34,7 @@ RGB 31,31,31, 12,28,22, 15,20,31, 00,00,00 ; PREDEFPAL_SILENT_HILLS RGB 31,31,31, 25,20,16, 15,20,31, 00,00,00 ; PREDEFPAL_OLD_CITY (31,31,31, 21,14,09, 15,20,20, 00,00,00 for SW colors) RGB 31,31,31, 22,19,31, 15,20,31, 00,00,00 ; PREDEFPAL_BLUE_FOREST (31,31,31, 18,14,31, 15,20,20, 00,00,00 for SW colors) + RGB 31,31,31, 27,28,31, 17,20,31, 00,00,00 ; PREDEFPAL_WHITE_CITY RGB 31,31,31, 12,28,22, 15,20,20, 00,00,00 ; PREDEFPAL_NITE RGB 31,31,31, 07,07,07, 02,03,03, 00,00,00 ; PREDEFPAL_BLACKOUT RGB 31,31,31, 30,22,17, 16,14,19, 00,00,00 ; PREDEFPAL_DIPLOMA diff --git a/gfx/tilesets.asm b/gfx/tilesets.asm index 2974c8d..efa76b0 100644 --- a/gfx/tilesets.asm +++ b/gfx/tilesets.asm @@ -623,4 +623,18 @@ TilesetNihonMartMeta:: INCBIN "data/tilesets/nihonmart_metatiles.bin" TilesetNihonMartColl:: -INCLUDE "data/tilesets/nihonmart_collision.asm" \ No newline at end of file +INCLUDE "data/tilesets/nihonmart_collision.asm" + +SECTION "Tileset Data 15", ROMX + +TilesetNihonWhiteCityAttr:: +INCBIN "data/tilesets/nihon_whitecity_attributes.bin" + +TilesetNihonWhiteCityGFX:: +INCBIN "gfx/tilesets/nihon_whitecity.2bpp.lz" + +TilesetNihonWhiteCityMeta:: +INCBIN "data/tilesets/nihon_whitecity_metatiles.bin" + +TilesetNihonWhiteCityColl:: +INCLUDE "data/tilesets/nihon_whitecity_collision.asm" \ No newline at end of file diff --git a/gfx/tilesets/nihon_whitecity.png b/gfx/tilesets/nihon_whitecity.png new file mode 100644 index 0000000..30a9d01 Binary files /dev/null and b/gfx/tilesets/nihon_whitecity.png differ diff --git a/gfx/tilesets/roofs.pal b/gfx/tilesets/roofs.pal index 673345e..497843a 100644 --- a/gfx/tilesets/roofs.pal +++ b/gfx/tilesets/roofs.pal @@ -142,3 +142,7 @@ ; group 29 (Blue Forest) RGB 24,22,31, 18,14,31 ; morn/day RGB 12,10,24, 08,03,23 ; nite + +; group 30 (White City) + RGB 27,28,31, 24,24,26 ; morn/day + RGB 13,12,24, 11,09,22 ; nite diff --git a/maps/Route66.asm b/maps/Route66.asm index 4ee2f56..0881fbc 100644 --- a/maps/Route66.asm +++ b/maps/Route66.asm @@ -123,7 +123,7 @@ Route66_MapEvents: db 0, 0 ; filler def_warp_events - warp_event 57, 9, DEBUG_ROOM, 1 ; Unsure, probably the other route. + warp_event 57, 9, WHITE_CITY, 1 ; Placeholder until route gate is set up def_coord_events diff --git a/maps/WhiteCity.ablk b/maps/WhiteCity.ablk new file mode 100644 index 0000000..7a483af --- /dev/null +++ b/maps/WhiteCity.ablk @@ -0,0 +1,36 @@ + +8>9 +UYAN@W8>9B+h +UPR/'DVAN@ e89+ +T[\\\]V +/'D`_89/3B +bPOXZZSQbCa +A@EEI+  +PORQ +/3+HEE+ + HEMFG + + EFBGG +  GG +  +  G + G +  + LL +=>? + + :7; + 89  + /3 +  < +   !!!" +  $%#%& < +  + ,-. +012  + 456   + )'& +  +< + `________cccd^^^^^`____ + + \ No newline at end of file diff --git a/maps/WhiteCity.asm b/maps/WhiteCity.asm new file mode 100644 index 0000000..90d1687 --- /dev/null +++ b/maps/WhiteCity.asm @@ -0,0 +1,18 @@ + object_const_def + +WhiteCity_MapScripts: + def_scene_scripts + + def_callbacks + +WhiteCity_MapEvents: + db 0, 0 ; filler + + def_warp_events + warp_event 6, 27, ROUTE_66, 1 + + def_coord_events + + def_bg_events + + def_object_events \ No newline at end of file