From 6e621d80a10f015e00ae017342cfb71284f51503 Mon Sep 17 00:00:00 2001 From: Ariel A <24759293+aarant@users.noreply.github.com> Date: Fri, 15 Apr 2022 22:38:56 -0400 Subject: [PATCH] Added day/night palette swapping. Updated lighting for lava, Petalburg, Slateport, Dewford, Verdanturf, Oldale, Mossdeep, Lilycove, Fallarbor. Improved lantern appearance & added neon signs on PokeCenter & Mart. Optimized gamma shift code. Removed obselete CacheLightMetatiles. --- common_syms/overworld.txt | 1 + data/maps/DewfordTown/map.json | 13 ++ data/maps/EverGrandeCity/map.json | 16 +- data/maps/LilycoveCity/map.json | 13 ++ data/maps/MauvilleCity/map.json | 26 +++ data/maps/MossdeepCity/map.json | 26 +++ data/maps/PacifidlogTown/map.json | 17 +- data/maps/PetalburgCity/map.json | 26 +++ data/maps/RustboroCity/map.json | 221 ++++++++++++++++++ data/maps/SlateportCity/map.json | 26 +++ data/maps/VerdanturfTown/map.json | 26 +++ data/tilesets/headers.inc | 30 +-- .../primary/general/metatile_attributes.bin | Bin 1024 -> 1024 bytes data/tilesets/primary/general/metatiles.bin | Bin 8192 -> 8192 bytes data/tilesets/primary/general/palettes/04.pal | 12 +- data/tilesets/primary/general/palettes/13.pal | 32 +-- data/tilesets/primary/general/tiles.png | Bin 7622 -> 7658 bytes .../secondary/dewford/metatile_attributes.bin | Bin 758 -> 758 bytes data/tilesets/secondary/dewford/metatiles.bin | Bin 6064 -> 6064 bytes .../secondary/dewford/palettes/12.pal | 26 +-- data/tilesets/secondary/dewford/tiles.png | Bin 12295 -> 3818 bytes .../secondary/fallarbor/palettes/00.pal | 26 +-- .../secondary/lavaridge/metatiles.bin | Bin 7056 -> 7056 bytes .../secondary/lavaridge/palettes/06.pal | 32 +-- data/tilesets/secondary/lavaridge/tiles.png | Bin 4087 -> 4087 bytes .../lilycove/metatile_attributes.bin | Bin 702 -> 702 bytes .../tilesets/secondary/lilycove/metatiles.bin | Bin 5616 -> 5616 bytes .../secondary/lilycove/palettes/15.pal | 30 +-- data/tilesets/secondary/lilycove/tiles.png | Bin 3674 -> 3728 bytes .../tilesets/secondary/mauville/metatiles.bin | Bin 8160 -> 8192 bytes data/tilesets/secondary/mauville/tiles.png | Bin 6069 -> 6079 bytes .../tilesets/secondary/mossdeep/metatiles.bin | Bin 7264 -> 7264 bytes .../secondary/mossdeep/palettes/01.pal | 24 +- .../secondary/mossdeep/palettes/02.pal | 32 +-- .../secondary/mossdeep/palettes/09.pal | 26 +-- data/tilesets/secondary/mossdeep/tiles.png | Bin 4115 -> 4129 bytes .../secondary/pacifidlog/palettes/02.pal | 32 +-- .../secondary/petalburg/palettes/02.pal | 32 +-- .../secondary/petalburg/palettes/09.pal | 32 +-- .../tilesets/secondary/rustboro/metatiles.bin | Bin 5600 -> 5616 bytes data/tilesets/secondary/rustboro/tiles.png | Bin 12786 -> 4057 bytes .../slateport/metatile_attributes.bin | Bin 812 -> 812 bytes .../secondary/slateport/metatiles.bin | Bin 6496 -> 6496 bytes .../secondary/slateport/palettes/12.pal | 10 +- .../secondary/slateport/palettes/15.pal | 30 +-- data/tilesets/secondary/slateport/tiles.png | Bin 6558 -> 6587 bytes .../secondary/sootopolis/palettes/15.pal | 30 +-- gflib/sprite.c | 22 ++ gflib/sprite.h | 2 + graphics/object_events/palettes/light.pal | 30 +-- graphics/object_events/palettes/light2.pal | 19 ++ .../object_events/palettes/neon_light.pal | 19 ++ graphics/object_events/pics/misc/light.png | Bin 3064 -> 6205 bytes .../object_events/pics/misc/mart_light.png | Bin 0 -> 5395 bytes .../pics/misc/poke_center_light.png | Bin 0 -> 5378 bytes include/constants/event_objects.h | 1 + include/field_weather.h | 1 + include/fieldmap.h | 1 - include/global.fieldmap.h | 3 +- include/overworld.h | 4 + include/palette.h | 1 + src/data/field_effects/field_effect_objects.h | 36 ++- .../object_events/object_event_graphics.h | 4 + .../object_event_graphics_info.h | 2 + .../object_event_graphics_info_pointers.h | 4 +- .../object_events/object_event_pic_tables.h | 2 + src/event_object_movement.c | 196 ++++++++++------ src/field_weather.c | 29 ++- src/fieldmap.c | 21 -- src/overworld.c | 61 +++-- src/palette.c | 25 ++ src/trainer_see.c | 2 +- 72 files changed, 972 insertions(+), 360 deletions(-) create mode 100644 graphics/object_events/palettes/light2.pal create mode 100644 graphics/object_events/palettes/neon_light.pal create mode 100644 graphics/object_events/pics/misc/mart_light.png create mode 100644 graphics/object_events/pics/misc/poke_center_light.png diff --git a/common_syms/overworld.txt b/common_syms/overworld.txt index cc92cee1e2..9aff4e77a1 100644 --- a/common_syms/overworld.txt +++ b/common_syms/overworld.txt @@ -8,3 +8,4 @@ gLocalLinkPlayerId gFieldLinkPlayerCount gTimeOfDay currentTimeBlend +gTimeUpdateCounter diff --git a/data/maps/DewfordTown/map.json b/data/maps/DewfordTown/map.json index 8beb5add70..c59e668444 100644 --- a/data/maps/DewfordTown/map.json +++ b/data/maps/DewfordTown/map.json @@ -89,6 +89,19 @@ "trainer_sight_or_berry_tree_id": "0", "script": "DewfordTown_EventScript_TrendyPhraseBoy", "flag": "0" + }, + { + "graphics_id": "OBJ_EVENT_GFX_LIGHT_SPRITE", + "x": 4, + "y": 10, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_NONE", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "1", + "script": "NULL", + "flag": "0" } ], "warp_events": [ diff --git a/data/maps/EverGrandeCity/map.json b/data/maps/EverGrandeCity/map.json index 9db9c8febb..311cf4c2c4 100644 --- a/data/maps/EverGrandeCity/map.json +++ b/data/maps/EverGrandeCity/map.json @@ -19,7 +19,21 @@ "map": "MAP_ROUTE128" } ], - "object_events": [], + "object_events": [ + { + "graphics_id": "OBJ_EVENT_GFX_LIGHT_SPRITE", + "x": 29, + "y": 48, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_NONE", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "1", + "script": "NULL", + "flag": "0" + } + ], "warp_events": [ { "x": 18, diff --git a/data/maps/LilycoveCity/map.json b/data/maps/LilycoveCity/map.json index a13904ca9a..d4a2b6ee47 100644 --- a/data/maps/LilycoveCity/map.json +++ b/data/maps/LilycoveCity/map.json @@ -310,6 +310,19 @@ "trainer_sight_or_berry_tree_id": "0", "script": "LilycoveCity_EventScript_FatMan", "flag": "0" + }, + { + "graphics_id": "OBJ_EVENT_GFX_LIGHT_SPRITE", + "x": 26, + "y": 14, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_NONE", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "1", + "script": "NULL", + "flag": "0" } ], "warp_events": [ diff --git a/data/maps/MauvilleCity/map.json b/data/maps/MauvilleCity/map.json index cf3d5f8a1c..bd7426404f 100644 --- a/data/maps/MauvilleCity/map.json +++ b/data/maps/MauvilleCity/map.json @@ -177,6 +177,32 @@ "trainer_sight_or_berry_tree_id": "0", "script": "0x0", "flag": "FLAG_HIDE_MAUVILLE_CITY_SCOTT" + }, + { + "graphics_id": "OBJ_EVENT_GFX_LIGHT_SPRITE", + "x": 24, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_NONE", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "1", + "script": "NULL", + "flag": "0" + }, + { + "graphics_id": "OBJ_EVENT_GFX_LIGHT_SPRITE", + "x": 25, + "y": 14, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_NONE", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "2", + "script": "NULL", + "flag": "0" } ], "warp_events": [ diff --git a/data/maps/MossdeepCity/map.json b/data/maps/MossdeepCity/map.json index ff8ae1b616..309a22f424 100644 --- a/data/maps/MossdeepCity/map.json +++ b/data/maps/MossdeepCity/map.json @@ -250,6 +250,32 @@ "trainer_sight_or_berry_tree_id": "0", "script": "MossdeepCity_EventScript_BlackBelt", "flag": "0" + }, + { + "graphics_id": "OBJ_EVENT_GFX_LIGHT_SPRITE", + "x": 30, + "y": 16, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_NONE", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "1", + "script": "NULL", + "flag": "0" + }, + { + "graphics_id": "OBJ_EVENT_GFX_LIGHT_SPRITE", + "x": 39, + "y": 18, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_NONE", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "2", + "script": "NULL", + "flag": "0" } ], "warp_events": [ diff --git a/data/maps/PacifidlogTown/map.json b/data/maps/PacifidlogTown/map.json index 51fc772a92..ec1bb1b226 100644 --- a/data/maps/PacifidlogTown/map.json +++ b/data/maps/PacifidlogTown/map.json @@ -63,6 +63,19 @@ "trainer_sight_or_berry_tree_id": "0", "script": "PacifidlogTown_EventScript_NinjaBoy", "flag": "0" + }, + { + "graphics_id": "OBJ_EVENT_GFX_LIGHT_SPRITE", + "x": 10, + "y": 15, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_NONE", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "1", + "script": "NULL", + "flag": "0" } ], "warp_events": [ @@ -109,7 +122,9 @@ "dest_warp_id": 0 } ], - "coord_events": [], + "coord_events": [ + + ], "bg_events": [ { "type": "sign", diff --git a/data/maps/PetalburgCity/map.json b/data/maps/PetalburgCity/map.json index d9587cdbb9..c36d36fafb 100644 --- a/data/maps/PetalburgCity/map.json +++ b/data/maps/PetalburgCity/map.json @@ -141,6 +141,32 @@ "trainer_sight_or_berry_tree_id": "0", "script": "0x0", "flag": "FLAG_HIDE_PETALBURG_CITY_SCOTT" + }, + { + "graphics_id": "OBJ_EVENT_GFX_LIGHT_SPRITE", + "x": 22, + "y": 16, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_NONE", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "1", + "script": "NULL", + "flag": "0" + }, + { + "graphics_id": "OBJ_EVENT_GFX_LIGHT_SPRITE", + "x": 27, + "y": 12, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_NONE", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "2", + "script": "NULL", + "flag": "0" } ], "warp_events": [ diff --git a/data/maps/RustboroCity/map.json b/data/maps/RustboroCity/map.json index 445bc51899..979d61e0b6 100644 --- a/data/maps/RustboroCity/map.json +++ b/data/maps/RustboroCity/map.json @@ -237,6 +237,227 @@ "trainer_sight_or_berry_tree_id": "0", "script": "RustboroCity_EventScript_Boy1", "flag": "0" + }, + { + "graphics_id": "OBJ_EVENT_GFX_LIGHT_SPRITE", + "x": 19, + "y": 37, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_NONE", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "NULL", + "flag": "0" + }, + { + "graphics_id": "OBJ_EVENT_GFX_LIGHT_SPRITE", + "x": 22, + "y": 37, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_NONE", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "NULL", + "flag": "0" + }, + { + "graphics_id": "OBJ_EVENT_GFX_LIGHT_SPRITE", + "x": 19, + "y": 30, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_NONE", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "NULL", + "flag": "0" + }, + { + "graphics_id": "OBJ_EVENT_GFX_LIGHT_SPRITE", + "x": 22, + "y": 30, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_NONE", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "NULL", + "flag": "0" + }, + { + "graphics_id": "OBJ_EVENT_GFX_LIGHT_SPRITE", + "x": 19, + "y": 23, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_NONE", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "NULL", + "flag": "0" + }, + { + "graphics_id": "OBJ_EVENT_GFX_LIGHT_SPRITE", + "x": 22, + "y": 23, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_NONE", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "NULL", + "flag": "0" + }, + { + "graphics_id": "OBJ_EVENT_GFX_LIGHT_SPRITE", + "x": 22, + "y": 44, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_NONE", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "NULL", + "flag": "0" + }, + { + "graphics_id": "OBJ_EVENT_GFX_LIGHT_SPRITE", + "x": 19, + "y": 44, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_NONE", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "NULL", + "flag": "0" + }, + { + "graphics_id": "OBJ_EVENT_GFX_LIGHT_SPRITE", + "x": 29, + "y": 48, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_NONE", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "NULL", + "flag": "0" + }, + { + "graphics_id": "OBJ_EVENT_GFX_LIGHT_SPRITE", + "x": 14, + "y": 19, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_NONE", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "NULL", + "flag": "0" + }, + { + "graphics_id": "OBJ_EVENT_GFX_LIGHT_SPRITE", + "x": 15, + "y": 17, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_NONE", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "NULL", + "flag": "0" + }, + { + "graphics_id": "OBJ_EVENT_GFX_LIGHT_SPRITE", + "x": 9, + "y": 19, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_NONE", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "NULL", + "flag": "0" + }, + { + "graphics_id": "OBJ_EVENT_GFX_LIGHT_SPRITE", + "x": 8, + "y": 17, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_NONE", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "NULL", + "flag": "0" + }, + { + "graphics_id": "OBJ_EVENT_GFX_LIGHT_SPRITE", + "x": 19, + "y": 15, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_NONE", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "NULL", + "flag": "0" + }, + { + "graphics_id": "OBJ_EVENT_GFX_LIGHT_SPRITE", + "x": 22, + "y": 15, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_NONE", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "NULL", + "flag": "0" + }, + { + "graphics_id": "OBJ_EVENT_GFX_LIGHT_SPRITE", + "x": 14, + "y": 54, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_NONE", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "NULL", + "flag": "0" + }, + { + "graphics_id": "OBJ_EVENT_GFX_LIGHT_SPRITE", + "x": 17, + "y": 54, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_NONE", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "NULL", + "flag": "0" } ], "warp_events": [ diff --git a/data/maps/SlateportCity/map.json b/data/maps/SlateportCity/map.json index 6ffed4b454..9141e5ab69 100644 --- a/data/maps/SlateportCity/map.json +++ b/data/maps/SlateportCity/map.json @@ -484,6 +484,32 @@ "trainer_sight_or_berry_tree_id": "0", "script": "0x0", "flag": "FLAG_HIDE_SLATEPORT_CITY_SCOTT" + }, + { + "graphics_id": "OBJ_EVENT_GFX_LIGHT_SPRITE", + "x": 21, + "y": 19, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_NONE", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "1", + "script": "NULL", + "flag": "0" + }, + { + "graphics_id": "OBJ_EVENT_GFX_LIGHT_SPRITE", + "x": 15, + "y": 26, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_NONE", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "2", + "script": "NULL", + "flag": "0" } ], "warp_events": [ diff --git a/data/maps/VerdanturfTown/map.json b/data/maps/VerdanturfTown/map.json index 94d140c05e..df419ce905 100644 --- a/data/maps/VerdanturfTown/map.json +++ b/data/maps/VerdanturfTown/map.json @@ -76,6 +76,32 @@ "trainer_sight_or_berry_tree_id": "0", "script": "VerdanturfTown_EventScript_Camper", "flag": "0" + }, + { + "graphics_id": "OBJ_EVENT_GFX_LIGHT_SPRITE", + "x": 18, + "y": 3, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_NONE", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "1", + "script": "NULL", + "flag": "0" + }, + { + "graphics_id": "OBJ_EVENT_GFX_LIGHT_SPRITE", + "x": 14, + "y": 3, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_NONE", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "2", + "script": "NULL", + "flag": "0" } ], "warp_events": [ diff --git a/data/tilesets/headers.inc b/data/tilesets/headers.inc index 3f1945af4b..8a1e8f444b 100644 --- a/data/tilesets/headers.inc +++ b/data/tilesets/headers.inc @@ -1,8 +1,8 @@ .align 2 gTileset_General:: - .byte TRUE @ is compressed + .byte 0x41 @ is compressed, swapPalettes 4 .byte FALSE @ is secondary tileset - .2byte 0 @ padding + .2byte 0x10 @ lightPalettes 4 .4byte gTilesetTiles_General .4byte gTilesetPalettes_General .4byte gMetatiles_General @@ -11,9 +11,9 @@ gTileset_General:: .align 2 gTileset_Petalburg:: - .byte TRUE @ is compressed + .byte 0x21 @ is compressed, swapPalettes 9 .byte TRUE @ is secondary tileset - .2byte 3 @ lightPalettes 6,7 + .2byte 0x00B @ lightPalettes 6,7,9, custom 9 .4byte gTilesetTiles_Petalburg .4byte gTilesetPalettes_Petalburg .4byte gMetatiles_Petalburg @@ -35,7 +35,7 @@ gTileset_Rustboro:: gTileset_Dewford:: .byte TRUE @ is compressed .byte TRUE @ is secondary tileset - .2byte 64 @ lightPalettes 12 + .2byte 0 @ padding .4byte gTilesetTiles_Dewford .4byte gTilesetPalettes_Dewford .4byte gMetatiles_Dewford @@ -44,9 +44,9 @@ gTileset_Dewford:: .align 2 gTileset_Slateport:: - .byte TRUE @ is compressed + .byte 5 @ is compressed, swapPalettes 6 .byte TRUE @ is secondary tileset - .2byte 0x41 @ lightPalettes 6,12 + .2byte 0x1 @ lightPalettes 6 .4byte gTilesetTiles_Slateport .4byte gTilesetPalettes_Slateport .4byte gMetatiles_Slateport @@ -68,7 +68,7 @@ gTileset_Mauville:: gTileset_Lavaridge:: .byte TRUE @ is compressed .byte TRUE @ is secondary tileset - .2byte 0 @ padding + .2byte 0x0101 @ lightPalettes 6, customLights 6 .4byte gTilesetTiles_Lavaridge .4byte gTilesetPalettes_Lavaridge .4byte gMetatiles_Lavaridge @@ -77,7 +77,7 @@ gTileset_Lavaridge:: .align 2 gTileset_Fallarbor:: - .byte TRUE @ is compressed + .byte 9 @ is compressed, swapPalettes 7 .byte TRUE @ is secondary tileset .2byte 2 @ lightPalettes 7 .4byte gTilesetTiles_Fallarbor @@ -99,7 +99,7 @@ gTileset_Fortree:: .align 2 gTileset_Lilycove:: - .byte TRUE @ is compressed + .byte 5 @ is compressed, swapPalettes 6 .byte TRUE @ is secondary tileset .2byte 0x01 @ lightPalettes 6 .4byte gTilesetTiles_Lilycove @@ -107,12 +107,13 @@ gTileset_Lilycove:: .4byte gMetatiles_Lilycove .4byte gMetatileAttributes_Lilycove .4byte InitTilesetAnim_Lilycove + .2byte 0 .align 2 gTileset_Mossdeep:: - .byte TRUE @ is compressed + .byte 0x11 @ is compressed, swapPalettes 8 .byte TRUE @ is secondary tileset - .2byte 0 @ lightPalettes 8,9 + .2byte 0x4 @ lightPalettes 8 .4byte gTilesetTiles_Mossdeep .4byte gTilesetPalettes_Mossdeep .4byte gMetatiles_Mossdeep @@ -129,10 +130,11 @@ gTileset_EverGrande:: .4byte gMetatiles_EverGrande .4byte gMetatileAttributes_EverGrande .4byte InitTilesetAnim_EverGrande + .2byte 0 .align 2 gTileset_Pacifidlog:: - .byte TRUE @ is compressed + .byte 0x21 @ is compressed, swapPalettes 9 .byte TRUE @ is secondary tileset .2byte 8 @ lightPalettes 9 .4byte gTilesetTiles_Pacifidlog @@ -143,7 +145,7 @@ gTileset_Pacifidlog:: .align 2 gTileset_Sootopolis:: - .byte TRUE @ is compressed + .byte 5 @ is compressed, swapPalettes 6 .byte TRUE @ is secondary tileset .2byte 0x101 @ lightPalettes 6, customLights 6 .4byte gTilesetTiles_Sootopolis diff --git a/data/tilesets/primary/general/metatile_attributes.bin b/data/tilesets/primary/general/metatile_attributes.bin index d9cd29016d792fb568494dbf2f820100081a14f8..552dafb603a737f14fa19094994e2dfb92163764 100644 GIT binary patch delta 56 ocmZqRXyBM2t}DR6z{G$6i~@`d%m^+615h3c1TqCSy6j;F0Cb=PSpWb4 delta 56 ncmZqRXyBM2uFJr{zy!oFz{tSJzzpMnXaP7!Ad_LE%N}L`Z!iQY diff --git a/data/tilesets/primary/general/metatiles.bin b/data/tilesets/primary/general/metatiles.bin index af899bcc5efa4bdd3ab1f418b371a866441207c9..813543f580749b6863bb474c80764044624545a6 100644 GIT binary patch delta 111 zcmZp0XmFUYhh@3La+iq*Dp_Fh6|<%P6x_@S6Mmy=1mA0{~x$BLV;b delta 111 zcmZp0XmFUYhlPQGfo0->3NSs{hVc%F!LV6|>6xSlvjVdMlR|Ugw7}-Tus|jt55%7i fbK0veuN&RLonQhDfrW6@% diff --git a/data/tilesets/primary/general/palettes/04.pal b/data/tilesets/primary/general/palettes/04.pal index 11ebd16a64..57d4faa34d 100644 --- a/data/tilesets/primary/general/palettes/04.pal +++ b/data/tilesets/primary/general/palettes/04.pal @@ -1,12 +1,12 @@ JASC-PAL 0100 16 -24 41 82 -248 0 248 +232 0 128 +216 224 232 222 230 238 -255 0 255 -255 0 255 -255 0 255 +184 200 224 +152 176 216 +112 184 240 156 164 189 80 104 208 65 90 189 @@ -16,4 +16,4 @@ JASC-PAL 139 164 222 106 131 213 82 106 213 -248 0 248 +96 168 232 diff --git a/data/tilesets/primary/general/palettes/13.pal b/data/tilesets/primary/general/palettes/13.pal index 4b0812f094..73fec5261a 100644 --- a/data/tilesets/primary/general/palettes/13.pal +++ b/data/tilesets/primary/general/palettes/13.pal @@ -1,19 +1,19 @@ JASC-PAL 0100 16 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 +232 0 128 +232 228 216 +222 230 238 +224 214 184 +216 200 152 +244 226 171 +156 164 189 +80 104 208 +65 90 189 +57 82 156 +41 65 139 +172 197 230 +139 164 222 +106 131 213 +82 106 213 +221 205 143 diff --git a/data/tilesets/primary/general/tiles.png b/data/tilesets/primary/general/tiles.png index 17426ab80e8fe2434bc9ecefbc8e063fd4e6d09a..b22b3f1fcbf3dc7f0fd63f893ee07326fd965f1f 100644 GIT binary patch literal 7658 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 Y2juoiOYAb5z5oCK07*qoM6N<$f{x@yJpcdz literal 7622 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 diff --git a/data/tilesets/secondary/dewford/metatile_attributes.bin b/data/tilesets/secondary/dewford/metatile_attributes.bin index 67ee25d405026191260b7a7cfc078b007db4af1d..158238664fe74c5543b5e0374f4996b1eb3c441c 100644 GIT binary patch delta 28 dcmeyy`i*sht)Kt{1A_n%fdzd?V)Q%3Hf_Fh6|<%P6x_@+kxr>L|cIBVe*@+n9W2097!ft delta 117 zcmdm>zd?V)Q%3GX$;TKVfMxOr#zO8xsmF?gii3bcER%DXj(JD~N(6EQHU~}v;xHf! i!k-T0hYO|&BKU2A>45=oemhV;K(qx({pKoWGZ6qYsUj-? diff --git a/data/tilesets/secondary/dewford/palettes/12.pal b/data/tilesets/secondary/dewford/palettes/12.pal index cf04ad17c0..4b0812f094 100644 --- a/data/tilesets/secondary/dewford/palettes/12.pal +++ b/data/tilesets/secondary/dewford/palettes/12.pal @@ -1,19 +1,19 @@ JASC-PAL 0100 16 -0 224 0 -0 0 0 -222 230 238 -189 205 230 -156 180 222 -131 131 139 -98 98 123 -65 74 106 -152 176 216 -115 189 246 -98 172 238 0 0 0 0 0 0 -213 180 106 -205 156 82 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 0 0 0 diff --git a/data/tilesets/secondary/dewford/tiles.png b/data/tilesets/secondary/dewford/tiles.png index 522864a973349519bbe3f1e52a202d929fe7d71c..2af1303c274bf1662d41d0b37c8b49772697f4c1 100644 GIT binary patch delta 3804 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 diff --git a/data/tilesets/secondary/fallarbor/palettes/00.pal b/data/tilesets/secondary/fallarbor/palettes/00.pal index ede0c60a19..87f9999aef 100644 --- a/data/tilesets/secondary/fallarbor/palettes/00.pal +++ b/data/tilesets/secondary/fallarbor/palettes/00.pal @@ -1,19 +1,19 @@ JASC-PAL 0100 16 -115 197 164 -255 255 255 -222 230 238 -189 205 230 -156 180 222 +0 192 0 +222 230 164 +180 197 115 +148 156 82 +123 131 65 131 131 139 98 98 123 65 74 106 -189 189 131 -115 189 246 -98 172 238 -115 189 246 -98 164 222 -82 139 197 -74 115 172 -115 197 164 +88 168 168 +221 205 143 +244 226 171 +255 205 82 +230 156 49 +222 123 32 +156 98 41 +128 192 216 diff --git a/data/tilesets/secondary/lavaridge/metatiles.bin b/data/tilesets/secondary/lavaridge/metatiles.bin index fd0314ed78ce4aad760ba39a6e6522e5f27bfdd9..c9bc71442ad26a06aab12352b676b63098f74c93 100644 GIT binary patch delta 15 XcmbPWKEZs$4^F1#j+=jRP7?$GHQWY= delta 15 XcmbPWKEZs$4^AcqhRwe?rwIZ8FU19) diff --git a/data/tilesets/secondary/lavaridge/palettes/06.pal b/data/tilesets/secondary/lavaridge/palettes/06.pal index 00e1478a73..a858e623d1 100644 --- a/data/tilesets/secondary/lavaridge/palettes/06.pal +++ b/data/tilesets/secondary/lavaridge/palettes/06.pal @@ -1,19 +1,19 @@ JASC-PAL 0100 16 -0 0 0 -65 74 106 -197 205 0 -230 238 238 -255 255 255 -255 115 65 -230 115 65 -180 98 90 -164 82 82 -205 49 0 -148 49 0 -246 24 24 -246 148 0 -148 164 65 -106 123 139 -222 222 0 +0 192 24 +64 72 104 +192 200 0 +224 232 232 +248 248 248 +248 112 64 +224 112 64 +176 96 88 +160 80 80 +200 48 0 +144 48 0 +240 24 24 +240 144 0 +144 160 64 +104 120 136 +224 40 0 diff --git a/data/tilesets/secondary/lavaridge/tiles.png b/data/tilesets/secondary/lavaridge/tiles.png index 2f6898a0f7ca21efb0dfc0c1d608d8bae6931a27..03c832c37a14b993e7096921d0f27f8647945916 100644 GIT binary patch delta 30 kcmew^|6P7UDpSRrjp+^i0w#wmdKI;Vst0J-l9+yDRo delta 30 kcmew^|6P7UDpN+|#`Fe$fosPnZ(;xfPgg&ebxsLQ0K`@cm;e9( diff --git a/data/tilesets/secondary/lilycove/metatile_attributes.bin b/data/tilesets/secondary/lilycove/metatile_attributes.bin index 0f4e01b923280efa5742e9a869e9d172da7fb119..f31cc9a047db711eaaa07a556400e4425abe0ad0 100644 GIT binary patch delta 35 icmdnTx{q~(H>02c0|NsHg8-O4IfijIqrl`JjK=_MNe03I delta 26 icmdnTx{q~(H{-;QB9r48XH3>-WSe}Ok!vzL({=!cBMCVG diff --git a/data/tilesets/secondary/lilycove/metatiles.bin b/data/tilesets/secondary/lilycove/metatiles.bin index 15b22292776bcba749ccf955107603eb5fec08fa..f82bdff5c618f60de442abefd7d77737975195dc 100644 GIT binary patch delta 171 zcmeyM{Xu&}3>VXDr^#_#QcQ20CRcIA0jbTmxH_05)P{qb>vzU{+9b0}ABu<%xtk`2?jpc?U5oL<4ackeB8(`5oUWl~AWJr&OmjCy-_a qAn*zD36c;J2kM7dpys6JHu(;J8`M5upnb7$`+ycWZLSh1V+8=6J1Q9f delta 171 zcmeyM{Xu&}3>Omv!{j(FDG*h~6$hj?-{R_El3-w9Qeal_2~rn|35p2<@jy^RXmSdgfHZ?>pCF$g2_bPI5F2EI chLF0@@ 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 delta 3668 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 b8!#B01mc?pEe72NvkYb%oHSuDxe3GoKrbzT delta 100 zcmZp0cwoO_iv*9aQmm43l5vtlkVDwy0}=&1u}Z#R7!VW?HrYlpOTrf{?-=9|1X2r< hHcm200;=98nIZuZa106v3JeN{D+mbNY$dgf6#xJq9c%yq diff --git a/data/tilesets/secondary/mauville/tiles.png b/data/tilesets/secondary/mauville/tiles.png index 20da7198e89bf0890f4ec48261c9372907c2c4c6..09bab365772533a3970d7f4a44cb72d806e02b38 100644 GIT binary patch literal 6079 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 diff --git a/data/tilesets/secondary/mossdeep/metatiles.bin b/data/tilesets/secondary/mossdeep/metatiles.bin index 5fc527d0ff3080888be2712495687578893e0d5b..1fe4faf9c560e696faa866bee59490b27545cb12 100644 GIT binary patch delta 42 zcmV+_0M-BCIN&(2lnD&86SNbtld+Sxlem+Upb2mc!xO|410Vt*$CJpDvm6RU5}^MP A!TZLU;AFhZO2G$~m>9+BPUrSV?o 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 Qe>XokW^PNXJ;I3nKPyfrPXGV_ literal 4115 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 Ca4E_F diff --git a/data/tilesets/secondary/pacifidlog/palettes/02.pal b/data/tilesets/secondary/pacifidlog/palettes/02.pal index 4c41030f66..9ea109ce00 100644 --- a/data/tilesets/secondary/pacifidlog/palettes/02.pal +++ b/data/tilesets/secondary/pacifidlog/palettes/02.pal @@ -1,19 +1,19 @@ JASC-PAL 0100 16 -24 41 82 -180 255 131 -131 197 98 -57 139 49 -57 82 0 -222 148 115 -106 90 90 -164 98 90 -65 57 49 -255 197 148 -222 106 98 -205 65 82 -164 213 197 -115 197 164 -65 180 131 -24 164 106 +0 0 128 +222 230 164 +180 189 123 +156 164 98 +131 139 74 +90 98 41 +98 98 123 +65 74 106 +32 32 82 +238 230 164 +238 197 98 +205 156 57 +164 123 24 +131 82 49 +131 131 139 +244 226 171 diff --git a/data/tilesets/secondary/petalburg/palettes/02.pal b/data/tilesets/secondary/petalburg/palettes/02.pal index 4c41030f66..4897614451 100644 --- a/data/tilesets/secondary/petalburg/palettes/02.pal +++ b/data/tilesets/secondary/petalburg/palettes/02.pal @@ -1,19 +1,19 @@ JASC-PAL 0100 16 -24 41 82 -180 255 131 -131 197 98 -57 139 49 -57 82 0 -222 148 115 -106 90 90 -164 98 90 -65 57 49 -255 197 148 -222 106 98 -205 65 82 -164 213 197 -115 197 164 -65 180 131 -24 164 106 +0 192 0 +232 224 200 +208 200 144 +200 176 120 +168 136 120 +128 128 136 +96 96 120 +64 72 104 +40 48 88 +244 226 171 +221 205 143 +248 224 176 +248 184 168 +240 160 128 +200 136 104 +248 192 32 diff --git a/data/tilesets/secondary/petalburg/palettes/09.pal b/data/tilesets/secondary/petalburg/palettes/09.pal index c4a6e250af..1a6a5c7713 100644 --- a/data/tilesets/secondary/petalburg/palettes/09.pal +++ b/data/tilesets/secondary/petalburg/palettes/09.pal @@ -1,19 +1,19 @@ JASC-PAL 0100 16 -24 41 82 -238 230 205 -213 205 148 -205 180 123 -172 139 123 -131 131 139 -98 98 123 -65 74 106 -41 49 90 -156 205 246 -98 156 238 -255 230 180 -255 189 172 -246 164 131 -205 139 106 -115 197 164 +0 192 0 +232 224 200 +208 200 144 +200 176 120 +168 136 120 +128 128 136 +96 96 120 +64 72 104 +40 48 88 +152 200 240 +120 152 232 +248 224 176 +248 184 168 +240 160 128 +200 136 104 +248 192 32 diff --git a/data/tilesets/secondary/rustboro/metatiles.bin b/data/tilesets/secondary/rustboro/metatiles.bin index 63ecf0306eed55fba51975805e7469fdd82f728a..649b09fac9aa91854c7410881856a96aee8e5aca 100644 GIT binary patch delta 177 zcmaE${Xu&}8!Ok0WD6lnA+NTX&66jvnn=w^_H42Q3e0Q<(aZ`nlJ^T(3Rwa9lkc%A z$uTgjNM-;6ueO!VQEib;o=qp3BAaeB?J(MD#K16Fj!i-(vT3K$E+7Y{l!0L-(5y%x zglGlvH%GCpV3U{@_^9bYQ*+=l$L7GW!0CYxnn3*Jj+>=;k8ubvDKG;elfpd1`G)HZ H*Bb%=xS>1? delta 160 zcmeyM{Xly|8!OkzCJP}32Cudm$&)9rnn;~&@@!%Nf*HvS43=*EATag^q770{*0?5D7w8LnpQDoC(IW`HE{Q^6Ub{R1+L^j<7N`n-y v0Gbuq1mc5uApYhkwiRp=51Jk|J!onUoEF#|7#8>t$OiGJ2X2<)J;nh5UMxSF diff --git a/data/tilesets/secondary/rustboro/tiles.png b/data/tilesets/secondary/rustboro/tiles.png index 3c71f263bbc5270db2f12d5b74d3c5c35d19e7e0..1cf8473a20fa80111fa74681b1f66eebe1b5ef79 100644 GIT binary patch delta 4004 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 Eg77eZ)&Kwi diff --git a/data/tilesets/secondary/slateport/metatile_attributes.bin b/data/tilesets/secondary/slateport/metatile_attributes.bin index d4894828bb7bc86e7d87bb144ca87610ca9b6bee..0f311a694f316031fc8829b1d3c72ae7fa4d39be 100644 GIT binary patch delta 36 kcmZ3(wuWtkJR_sPWCg}%K>-E^1_2-h0Wf>>7RCxj0C?;LzW@LL delta 36 jcmZ3(wuWtkJR>8+WCg}%K?WcY073{2BsXtitY8EHb!-KX diff --git a/data/tilesets/secondary/slateport/metatiles.bin b/data/tilesets/secondary/slateport/metatiles.bin index 0cb7f64acaf96c38d35e004426fe9fc0bfca9d57..3ba541bfbd4a2a77a00b1a692ed22bf48377f019 100644 GIT binary patch delta 241 zcmaE0^uTDt2Mz(bB-tdsB;F*IBGn?3BGaNxoFXhd%L0~#Tu!*0u-sv}%VY)K5>$Z& zyc#SqjLr>t9}}F# F4gkZUMKu5b delta 241 zcmaE0^uTDt2Mz%SG_Z+NgoTG$fm!8p!sUcz0n0)rEAW=^NCYAYEa25(0qNR&hW7;{ z7l@_NtkEpdJb52~5ts`S0&=YcPB;KfQeaXL2g<4g)i42hAU;SnNDqP!F#*Ph$b#f2 jI|;ftFe!jEs{=K`6o8b23_C6i1h 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 KZdk5Qi25H3171e} delta 6326 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 R`0sT9MitileTag == TAG_NONE || !template->images) + return 0xFFFF; + if ((tileStart = GetSpriteTileStartByTag(template->tileTag)) != 0xFFFF) // return if already loaded + return tileStart; + tempSheet.data = template->images[frame].data; + tempSheet.size = template->images[frame].size; + tempSheet.tag = template->tileTag; + return LoadSpriteSheet(&tempSheet); +} + void LoadSpriteSheets(const struct SpriteSheet *sheets) { u8 i; @@ -1621,6 +1636,13 @@ void LoadSpritePalettes(const struct SpritePalette *palettes) break; } +u8 LoadSpritePaletteInSlot(const struct SpritePalette *palette, u8 paletteNum) { + paletteNum = min(15, paletteNum); + sSpritePaletteTags[paletteNum] = palette->tag; + DoLoadSpritePalette(palette->data, paletteNum * 16); + return paletteNum; +} + void DoLoadSpritePalette(const u16 *src, u16 paletteOffset) { LoadPalette(src, paletteOffset + 0x100, 32); diff --git a/gflib/sprite.h b/gflib/sprite.h index e53737981b..6b952ab4ee 100644 --- a/gflib/sprite.h +++ b/gflib/sprite.h @@ -296,6 +296,7 @@ void FreeOamMatrix(u8 matrixNum); void InitSpriteAffineAnim(struct Sprite *sprite); void SetOamMatrixRotationScaling(u8 matrixNum, s16 xScale, s16 yScale, u16 rotation); u16 LoadSpriteSheet(const struct SpriteSheet *sheet); +u16 LoadSpriteSheetByTemplate(const struct SpriteTemplate *template, u8 frame); void LoadSpriteSheets(const struct SpriteSheet *sheets); u16 AllocTilesForSpriteSheet(struct SpriteSheet *sheet); void AllocTilesForSpriteSheets(struct SpriteSheet *sheets); @@ -309,6 +310,7 @@ void RequestSpriteSheetCopy(const struct SpriteSheet *sheet); u16 LoadSpriteSheetDeferred(const struct SpriteSheet *sheet); void FreeAllSpritePalettes(void); u8 LoadSpritePalette(const struct SpritePalette *palette); +u8 LoadSpritePaletteInSlot(const struct SpritePalette *palette, u8 paletteNum); void LoadSpritePalettes(const struct SpritePalette *palettes); u8 AllocSpritePalette(u16 tag); u8 IndexOfSpritePaletteTag(u16 tag); diff --git a/graphics/object_events/palettes/light.pal b/graphics/object_events/palettes/light.pal index 3beca89bdf..92a4477f76 100644 --- a/graphics/object_events/palettes/light.pal +++ b/graphics/object_events/palettes/light.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 110 198 165 -255 213 18 -255 214 38 -254 217 39 -254 218 53 -255 220 65 -255 221 76 -255 223 86 -254 225 95 -254 228 104 -254 229 112 -254 230 120 -255 232 132 -255 235 148 -255 237 162 -255 240 176 +64 61 42 +77 73 50 +85 81 58 +100 94 66 +111 105 75 +119 112 77 +140 131 92 +154 145 103 +171 159 111 +186 174 123 +197 183 128 +209 195 139 +224 209 146 +234 219 155 +249 232 161 diff --git a/graphics/object_events/palettes/light2.pal b/graphics/object_events/palettes/light2.pal new file mode 100644 index 0000000000..3d61a3020d --- /dev/null +++ b/graphics/object_events/palettes/light2.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +106 202 166 +58 54 31 +67 62 33 +96 89 53 +110 102 57 +121 111 67 +128 119 66 +156 143 82 +166 155 96 +185 169 100 +199 183 112 +211 192 113 +223 203 123 +237 218 129 +247 227 137 +255 237 147 diff --git a/graphics/object_events/palettes/neon_light.pal b/graphics/object_events/palettes/neon_light.pal new file mode 100644 index 0000000000..dd287fc645 --- /dev/null +++ b/graphics/object_events/palettes/neon_light.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +104 203 168 +19 48 64 +35 87 115 +58 132 140 +69 156 166 +77 193 254 +106 239 254 +27 68 89 +64 22 19 +115 39 34 +166 57 49 +191 66 57 +222 77 67 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/pics/misc/light.png b/graphics/object_events/pics/misc/light.png index d1a0402d102cf52e47a584f2feb56230d5b7debf..22687a7c0067cff356a2cd6a1ebef4e6d1115a9d 100644 GIT binary patch literal 6205 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 N6CBAt7?}Lse*nyl2|xe< literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/misc/poke_center_light.png b/graphics/object_events/pics/misc/poke_center_light.png new file mode 100644 index 0000000000000000000000000000000000000000..42d19f51c6eb9cc16d70ae9e9d4b06063494da62 GIT binary patch literal 5378 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.x - 2; - s16 right = gSaveBlock1Ptr->pos.x + 17; - s16 top = gSaveBlock1Ptr->pos.y; - s16 bottom = gSaveBlock1Ptr->pos.y + 15; - s16 x = sprite->data[6]; - s16 y = sprite->data[7]; - u16 sheetTileStart; - u32 paletteNum; - bool8 finished = TRUE; - // Ripped from RemoveObjectEventIfOutsideView - if (x >= left && x <= right - && y >= top && y <= bottom) - finished = FALSE; - finished = finished ? finished : gTimeOfDay != TIME_OF_DAY_NIGHT; - if (finished) { - sheetTileStart = sprite->sheetTileStart; - paletteNum = sprite->oam.paletteNum; - DestroySprite(sprite); - FieldEffectFreeTilesIfUnused(sheetTileStart); - FieldEffectFreePaletteIfUnused(paletteNum); - Weather_SetBlendCoeffs(7, 12); // TODO: Restore original blend coeffs at dawn - return; - } + s16 left = gSaveBlock1Ptr->pos.x - 2; + s16 right = gSaveBlock1Ptr->pos.x + 17; + s16 top = gSaveBlock1Ptr->pos.y; + s16 bottom = gSaveBlock1Ptr->pos.y + 15; + s16 x = sprite->data[6]; + s16 y = sprite->data[7]; + u16 sheetTileStart; + u32 paletteNum; + // Ripped from RemoveObjectEventIfOutsideView + if (!(x >= left && x <= right && y >= top && y <= bottom)) { + sheetTileStart = sprite->sheetTileStart; + paletteNum = sprite->oam.paletteNum; + DestroySprite(sprite); + FieldEffectFreeTilesIfUnused(sheetTileStart); + FieldEffectFreePaletteIfUnused(paletteNum); + Weather_SetBlendCoeffs(7, 12); // TODO: Restore original blend coeffs at dawn + return; + } - if (gPlayerAvatar.tileTransitionState) { // As long as the second coefficient stays 12, shadows will not change - Weather_SetBlendCoeffs(7, 12); - sprite->invisible = FALSE; - } else { - Weather_SetBlendCoeffs(12, 12); - sprite->invisible = gSaveBlock2Ptr->playTimeVBlanks & 1; - } + if (gTimeOfDay != TIME_OF_DAY_NIGHT) { + sprite->invisible = TRUE; + return; + } + + switch (sprite->data[5]) { // lightType + case 0: + if (gPaletteFade.active) { // if palette fade is active, don't flicker since the timer won't be updated + Weather_SetBlendCoeffs(7, 12); + sprite->invisible = FALSE; + } else if (gPlayerAvatar.tileTransitionState) { + Weather_SetBlendCoeffs(7, 12); // As long as the second coefficient stays 12, shadows will not change + sprite->invisible = FALSE; + if (GetSpritePaletteTagByPaletteNum(sprite->oam.paletteNum) == OBJ_EVENT_PAL_TAG_LIGHT_2) + LoadSpritePaletteInSlot(&sObjectEventSpritePalettes[FindObjectEventPaletteIndexByTag(OBJ_EVENT_PAL_TAG_LIGHT)], sprite->oam.paletteNum); + } else if ((sprite->invisible = gTimeUpdateCounter & 1)) { + Weather_SetBlendCoeffs(12, 12); + if (GetSpritePaletteTagByPaletteNum(sprite->oam.paletteNum) == OBJ_EVENT_PAL_TAG_LIGHT) + LoadSpritePaletteInSlot(&sObjectEventSpritePalettes[FindObjectEventPaletteIndexByTag(OBJ_EVENT_PAL_TAG_LIGHT_2)], sprite->oam.paletteNum); + } + break; + case 1 ... 2: + Weather_SetBlendCoeffs(12, 12); + sprite->invisible = FALSE; + break; + } } -// Spawn a light at a map coordinate based on metatile behavior -static void SpawnLightSprite(s16 x, s16 y, s16 camX, s16 camY, u32 behavior) { - struct Sprite *sprite; - u8 i; - for (i = 0; i < MAX_SPRITES; i++) { - sprite = &gSprites[i]; - if (sprite->inUse && sprite->callback == UpdateLightSprite && sprite->data[6] == x && sprite->data[7] == y) - return; - } - sprite = &gSprites[CreateSprite(&gFieldEffectObjectTemplate_BallLight, 0, 0, 0)]; - UpdateSpritePaletteByTemplate(&gFieldEffectObjectTemplate_BallLight, sprite); - GetMapCoordsFromSpritePos(x + camX, y + camY, &sprite->x, &sprite->y); - sprite->data[6] = x; - sprite->data[7] = y; - sprite->affineAnims = gDummySpriteAffineAnimTable; - sprite->affineAnimBeginning = TRUE; - sprite->centerToCornerVecX = -(32 >> 1); - sprite->centerToCornerVecY = -(32 >> 1); - sprite->oam.priority = 1; - sprite->oam.objMode = 1; // BLEND - sprite->oam.affineMode = ST_OAM_AFFINE_NORMAL; - sprite->coordOffsetEnabled = TRUE; - sprite->x += 8; - sprite->y += 22 + sprite->centerToCornerVecY; +// Spawn a light at a map coordinate +static void SpawnLightSprite(s16 x, s16 y, s16 camX, s16 camY, u32 lightType) { + struct Sprite *sprite; + const struct SpriteTemplate *template; + u8 i; + for (i = 0; i < MAX_SPRITES; i++) { + sprite = &gSprites[i]; + if (sprite->inUse && sprite->callback == UpdateLightSprite && sprite->data[6] == x && sprite->data[7] == y) + return; + } + lightType = min(lightType, ARRAY_COUNT(gFieldEffectLightTemplates) - 1); // bounds checking + template = gFieldEffectLightTemplates[lightType]; + LoadSpriteSheetByTemplate(template, 0); + sprite = &gSprites[CreateSprite(template, 0, 0, 0)]; + if (lightType == 0 && (i = IndexOfSpritePaletteTag(template->paletteTag + 1)) < 16) + sprite->oam.paletteNum = i; + else + UpdateSpritePaletteByTemplate(template, sprite); + GetMapCoordsFromSpritePos(x + camX, y + camY, &sprite->x, &sprite->y); + sprite->data[5] = lightType; + sprite->data[6] = x; + sprite->data[7] = y; + sprite->affineAnims = gDummySpriteAffineAnimTable; + sprite->affineAnimBeginning = TRUE; + sprite->coordOffsetEnabled = TRUE; + switch (lightType) { + case 0: // Rustboro lanterns + sprite->centerToCornerVecX = -(32 >> 1); + sprite->centerToCornerVecY = -(32 >> 1); + sprite->oam.priority = 1; + sprite->oam.objMode = 1; // BLEND + sprite->oam.affineMode = ST_OAM_AFFINE_NORMAL; + sprite->x += 8; + sprite->y += 22 + sprite->centerToCornerVecY; + break; + case 1 ... 2: // Pokemon Center & mart + sprite->centerToCornerVecX = -(16 >> 1); + sprite->centerToCornerVecY = -(16 >> 1); + sprite->oam.priority = 2; + sprite->subpriority = 0xFF; + sprite->oam.objMode = 1; // BLEND + } } void TrySpawnLightSprites(s16 camX, s16 camY) { - s16 left = gSaveBlock1Ptr->pos.x - 2; - s16 right = gSaveBlock1Ptr->pos.x + 17; - s16 top = gSaveBlock1Ptr->pos.y; - s16 bottom = gSaveBlock1Ptr->pos.y + 16; - u8 i = 0; - s16 x, y; - u32 behavior; - if (gTimeOfDay != TIME_OF_DAY_NIGHT) - return; - for (i = 0; gLightMetatiles[i].x > 0; i++) { - x = gLightMetatiles[i].x; - y = gLightMetatiles[i].y; - if (x >= left && x <= right && y >= top && y <= bottom) { - behavior = MapGridGetMetatileBehaviorAt(x, y); - if (behavior == 0x04) // TODO: Use an actual constant for light metatiles - SpawnLightSprite(x, y, camX, camY, behavior); + u8 i; + u8 objectCount; + s16 left = gSaveBlock1Ptr->pos.x - 2; + s16 right = gSaveBlock1Ptr->pos.x + MAP_OFFSET_W + 2; + s16 top = gSaveBlock1Ptr->pos.y; + s16 bottom = gSaveBlock1Ptr->pos.y + MAP_OFFSET_H + 2; + if (gMapHeader.events == NULL) + return; + + if (InBattlePyramid()) + objectCount = GetNumBattlePyramidObjectEvents(); + else if (InTrainerHill()) + objectCount = 2; + else + objectCount = gMapHeader.events->objectEventCount; + + for (i = 0; i < objectCount; i++) { + struct ObjectEventTemplate *template = &gSaveBlock1Ptr->objectEventTemplates[i]; + s16 npcX = template->x + MAP_OFFSET; + s16 npcY = template->y + MAP_OFFSET; + if (top <= npcY && bottom >= npcY && left <= npcX && right >= npcX && !FlagGet(template->flagId)) + if (template->graphicsId == OBJ_EVENT_GFX_LIGHT_SPRITE) // event is light sprite instead + SpawnLightSprite(npcX, npcY, camX, camY, template->trainerRange_berryTreeId); } - } } void TrySpawnObjectEvents(s16 cameraX, s16 cameraY) @@ -2080,12 +2122,14 @@ void TrySpawnObjectEvents(s16 cameraX, s16 cameraY) s16 npcX = template->x + MAP_OFFSET; s16 npcY = template->y + MAP_OFFSET; - if (top <= npcY && bottom >= npcY && left <= npcX && right >= npcX - && !FlagGet(template->flagId)) - TrySpawnObjectEventTemplate(template, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, cameraX, cameraY); + if (top <= npcY && bottom >= npcY && left <= npcX && right >= npcX && !FlagGet(template->flagId)) { + if (template->graphicsId == OBJ_EVENT_GFX_LIGHT_SPRITE) { // light sprite instead + SpawnLightSprite(npcX, npcY, cameraX, cameraY, template->trainerRange_berryTreeId); + } else + TrySpawnObjectEventTemplate(template, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, cameraX, cameraY); + } } } - TrySpawnLightSprites(cameraX, cameraY); } void RemoveObjectEventsOutsideView(void) diff --git a/src/field_weather.c b/src/field_weather.c index 2c0fc5ca8c..fb07ec41f2 100644 --- a/src/field_weather.c +++ b/src/field_weather.c @@ -466,18 +466,21 @@ static void ApplyGammaShift(u8 startPalIndex, u8 numPalettes, s8 gammaIndex) if (gammaIndex > 0) { + // Create the palette mask + u32 palettes = PALETTES_ALL; + numPalettes += startPalIndex; + palettes = (palettes >> startPalIndex) << startPalIndex; + palettes = (palettes << (32-numPalettes)) >> (32-numPalettes); + numPalettes -= startPalIndex; gammaIndex--; palOffset = startPalIndex * 16; - CpuFastCopy(gPlttBufferUnfaded + palOffset, gPlttBufferFaded + palOffset, 32 * numPalettes); - numPalettes += startPalIndex; + UpdateAltBgPalettes(palettes & PALETTES_BG); // Thunder gamma-shift looks bad on night-blended palettes, so ignore time blending in some situations - if (!(gammaIndex > 3 && gWeatherPtr->currWeather == WEATHER_RAIN_THUNDERSTORM)) { - // Create the palette mask - u32 palettes = PALETTES_ALL; - palettes = (palettes >> startPalIndex) << startPalIndex; - palettes = (palettes << (32-numPalettes)) >> (32-numPalettes); + if (!(gammaIndex > 3 && gWeatherPtr->currWeather == WEATHER_RAIN_THUNDERSTORM) && MapHasNaturalLight(gMapHeader.mapType)) UpdatePalettesWithTime(palettes); - } + else + CpuFastCopy(gPlttBufferUnfaded + palOffset, gPlttBufferFaded + palOffset, 32 * numPalettes); + numPalettes += startPalIndex; curPalIndex = startPalIndex; // Loop through the speficied palette range and apply necessary gamma shifts to the colors. while (curPalIndex < numPalettes) @@ -546,6 +549,7 @@ static void ApplyGammaShift(u8 startPalIndex, u8 numPalettes, s8 gammaIndex) numPalettes += startPalIndex; palettes = (palettes >> startPalIndex) << startPalIndex; palettes = (palettes << (32-numPalettes)) >> (32-numPalettes); + UpdateAltBgPalettes(palettes & PALETTES_BG); UpdatePalettesWithTime(palettes); } else { // copy CpuFastCopy(gPlttBufferUnfaded + startPalIndex * 16, gPlttBufferFaded + startPalIndex * 16, numPalettes * 16 * sizeof(u16)); @@ -570,6 +574,7 @@ static void ApplyGammaShiftWithBlend(u8 startPalIndex, u8 numPalettes, s8 gammaI while (curPalIndex < numPalettes) { + UpdateAltBgPalettes((1 << (palOffset >> 4)) & PALETTES_BG); CpuFastCopy(gPlttBufferUnfaded + palOffset, gPlttBufferFaded + palOffset, 16 * sizeof(u16)); UpdatePalettesWithTime(1 << (palOffset >> 4)); // Apply TOD blend if (sPaletteGammaTypes[curPalIndex] == GAMMA_NONE) @@ -670,6 +675,7 @@ static void ApplyFogBlend(u8 blendCoeff, u16 blendColor) // TODO: Optimize this u16 curPalIndex; // First blend all palettes with time + UpdateAltBgPalettes(PALETTES_BG); CpuFastCopy(gPlttBufferUnfaded, gPlttBufferFaded, 0x400); UpdatePalettesWithTime(PALETTES_ALL); // Then blend tile palettes [0, 12] faded->faded @@ -816,6 +822,7 @@ void FadeScreen(u8 mode, s8 delay) gWeatherPtr->fadeScreenCounter = 0; // Triggers gamma-shift-based fade-in else { if (MapHasNaturalLight(gMapHeader.mapType)) { + UpdateAltBgPalettes(PALETTES_BG); BeginTimeOfDayPaletteFade(PALETTES_ALL, delay, 16, 0, (struct BlendSettings *)&gTimeOfDayBlend[currentTimeBlend.time0], (struct BlendSettings *)&gTimeOfDayBlend[currentTimeBlend.time1], @@ -883,11 +890,15 @@ void UpdateSpritePaletteWithWeather(u8 spritePaletteIndex, bool8 allowFog) } } -void ApplyWeatherGammaShiftToPal(u8 paletteIndex) +void ApplyWeatherGammaShiftToPal(u8 paletteIndex) // now unused / obselete { ApplyGammaShift(paletteIndex, 1, gWeatherPtr->gammaIndex); } +void ApplyWeatherGammaShiftToPals(u8 startPalIndex, u8 numPalettes) { + ApplyGammaShift(startPalIndex, numPalettes, gWeatherPtr->gammaIndex); +} + // Unused static bool8 IsFirstFrameOfWeatherFadeIn(void) { diff --git a/src/fieldmap.c b/src/fieldmap.c index 245562c93f..7fb479ae26 100644 --- a/src/fieldmap.c +++ b/src/fieldmap.c @@ -30,7 +30,6 @@ EWRAM_DATA struct MapHeader gMapHeader = {0}; EWRAM_DATA struct Camera gCamera = {0}; EWRAM_DATA static struct ConnectionFlags gMapConnectionFlags = {0}; EWRAM_DATA static u32 sFiller = 0; // without this, the next file won't align properly -EWRAM_DATA struct Coords16 gLightMetatiles[32] = {0}; struct BackupMapLayout gBackupMapLayout; @@ -63,7 +62,6 @@ static bool8 IsCoordInIncomingConnectingMap(int coord, int srcMax, int destMax, #define AreCoordsWithinMapGridBounds(x, y) (x >= 0 && x < gBackupMapLayout.width && y >= 0 && y < gBackupMapLayout.height) #define MapGridGetTileAt(x, y) (AreCoordsWithinMapGridBounds(x, y) ? gBackupMapLayout.map[x + gBackupMapLayout.width * y] : MapGridGetBorderTileAt(x, y)) -static void CacheLightMetatiles(void); struct MapHeader const *const GetMapHeaderFromConnection(struct MapConnection *connection) { @@ -75,7 +73,6 @@ void InitMap(void) InitMapLayoutData(&gMapHeader); SetOccupiedSecretBaseEntranceMetatiles(gMapHeader.events); RunOnLoadMapScript(); - CacheLightMetatiles(); } void InitMapFromSavedGame(void) @@ -85,7 +82,6 @@ void InitMapFromSavedGame(void) SetOccupiedSecretBaseEntranceMetatiles(gMapHeader.events); LoadSavedMapView(); RunOnLoadMapScript(); - CacheLightMetatiles(); UpdateTVScreensOnMap(gBackupMapLayout.width, gBackupMapLayout.height); } @@ -382,23 +378,6 @@ u32 MapGridGetMetatileBehaviorAt(int x, int y) return GetBehaviorByMetatileId(metatile) & METATILE_BEHAVIOR_MASK; } -// Caches light metatile coordinates -static void CacheLightMetatiles(void) { // TODO: Better way to dynamically generate lights - u8 i = 0; - s16 x, y; - for (x = 0; x < gBackupMapLayout.width; x++) { - for (y = 0; y < gBackupMapLayout.height; y++) { - if (MapGridGetMetatileBehaviorAt(x, y) == 0x04) { - gLightMetatiles[i].x = x; - gLightMetatiles[i].y = y; - i++; - } - } - } - gLightMetatiles[i].x = -1; - gLightMetatiles[i].y = -1; -} - u8 MapGridGetMetatileLayerTypeAt(int x, int y) { u16 metatile = MapGridGetMetatileIdAt(x, y); diff --git a/src/overworld.c b/src/overworld.c index b9b69acffd..332fa6d8c7 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -184,7 +184,6 @@ static u16 (*sPlayerKeyInterceptCallback)(u32); static bool8 sReceivingFromLink; static u8 sRfuKeepAliveTimer; -static u16 sTimeUpdateCounter; // playTimeVBlanks will eventually overflow, so this is used to update TOD // IWRAM common @@ -199,6 +198,7 @@ u8 gFieldLinkPlayerCount; u8 gTimeOfDay; struct TimeBlendSettings currentTimeBlend; +u16 gTimeUpdateCounter; // playTimeVBlanks will eventually overflow, so this is used to update TOD // EWRAM vars EWRAM_DATA static u8 sObjectEventLoadFlag = 0; @@ -822,8 +822,7 @@ void LoadMapFromCameraTransition(u8 mapGroup, u8 mapNum) CopySecondaryTilesetToVramUsingHeap(gMapHeader.mapLayout); LoadSecondaryTilesetPalette(gMapHeader.mapLayout); - for (paletteIndex = 6; paletteIndex < 13; paletteIndex++) // TODO: Optimize gamma shifts - ApplyWeatherGammaShiftToPal(paletteIndex); + ApplyWeatherGammaShiftToPals(6, 6); // palettes [6,12] InitSecondaryTilesetAnimation(); UpdateLocationHistoryForRoamer(); @@ -1481,29 +1480,34 @@ u8 UpdateTimeOfDay(void) { minutes = gLocalTime.minutes; if (hours >= 22 || hours < 4) { // night currentTimeBlend.weight = 256; + currentTimeBlend.altWeight = 0; return gTimeOfDay = currentTimeBlend.time0 = currentTimeBlend.time1 = TIME_OF_DAY_NIGHT; } else if (hours >= 4 && hours < 7) { // night->twilight currentTimeBlend.time0 = TIME_OF_DAY_NIGHT; currentTimeBlend.time1 = TIME_OF_DAY_TWILIGHT; currentTimeBlend.weight = 256 - 256 * ((hours - 4) * 60 + minutes) / ((7-4)*60); + currentTimeBlend.altWeight = (256 - currentTimeBlend.weight) / 2; return gTimeOfDay = TIME_OF_DAY_DAY; } else if (hours >= 7 && hours < 10) { // twilight->day currentTimeBlend.time0 = TIME_OF_DAY_TWILIGHT; currentTimeBlend.time1 = TIME_OF_DAY_DAY; currentTimeBlend.weight = 256 - 256 * ((hours - 7) * 60 + minutes) / ((10-7)*60); + currentTimeBlend.altWeight = (256 - currentTimeBlend.weight) / 2 + 128; return gTimeOfDay = TIME_OF_DAY_DAY; } else if (hours >= 10 && hours < 18) { // day - currentTimeBlend.weight = 256; + currentTimeBlend.weight = currentTimeBlend.altWeight = 256; return gTimeOfDay = currentTimeBlend.time0 = currentTimeBlend.time1 = TIME_OF_DAY_DAY; } else if (hours >= 18 && hours < 20) { // day->twilight currentTimeBlend.time0 = TIME_OF_DAY_DAY; currentTimeBlend.time1 = TIME_OF_DAY_TWILIGHT; currentTimeBlend.weight = 256 - 256 * ((hours - 18) * 60 + minutes) / ((20-18)*60); + currentTimeBlend.altWeight = currentTimeBlend.weight / 2 + 128; return gTimeOfDay = TIME_OF_DAY_TWILIGHT; } else if (hours >= 20 && hours < 22) { // twilight->night currentTimeBlend.time0 = TIME_OF_DAY_TWILIGHT; currentTimeBlend.time1 = TIME_OF_DAY_NIGHT; currentTimeBlend.weight = 256 - 256 * ((hours - 20) * 60 + minutes) / ((22-20)*60); + currentTimeBlend.altWeight = currentTimeBlend.weight / 2; return gTimeOfDay = TIME_OF_DAY_NIGHT; } else { // This should never occur currentTimeBlend.weight = 256; @@ -1516,16 +1520,41 @@ bool8 MapHasNaturalLight(u8 mapType) { // Whether a map type is naturally lit/ou || mapType == MAP_TYPE_OCEAN_ROUTE; } +// Update & mix day / night bg palettes (into unfaded) +void UpdateAltBgPalettes(u16 palettes) { + struct Tileset *primary = gMapHeader.mapLayout->primaryTileset; + struct Tileset *secondary = gMapHeader.mapLayout->secondaryTileset; + u32 i = 1; + if (!MapHasNaturalLight(gMapHeader.mapType)) + return; + palettes &= ~((1 << NUM_PALS_IN_PRIMARY) - 1) | primary->swapPalettes; + palettes &= ((1 << NUM_PALS_IN_PRIMARY) - 1) | (secondary->swapPalettes << NUM_PALS_IN_PRIMARY); + palettes &= 0x1FFE; // don't blend palette 0, [13,15] + palettes >>= 1; // start at palette 1 + if (!palettes) + return; + while (palettes) { + if (palettes & 1) { + if (i < NUM_PALS_IN_PRIMARY) + AvgPaletteWeighted(&((u16*)primary->palettes)[i*16], &((u16*)primary->palettes)[((i+9)%16)*16], gPlttBufferUnfaded + i * 16, currentTimeBlend.altWeight); + else + AvgPaletteWeighted(&((u16*)secondary->palettes)[i*16], &((u16*)secondary->palettes)[((i+9)%16)*16], gPlttBufferUnfaded + i * 16, currentTimeBlend.altWeight); + } + i++; + palettes >>= 1; + } +} + void UpdatePalettesWithTime(u32 palettes) { if (MapHasNaturalLight(gMapHeader.mapType)) { - u16 i; - u16 tempPaletteBuffer[16]; + u32 i; u32 mask = 1 << 16; - for (i = 0; i < 16; i++, mask <<= 1) { - if (GetSpritePaletteTagByPaletteNum(i) >> 15) // Don't blend special sprite palette tags - palettes &= ~(mask); - } - palettes &= 0xFFFF1FFF; // Don't blend tile palettes [13,15] + if (palettes >= 0x10000) + for (i = 0; i < 16; i++, mask <<= 1) + if (GetSpritePaletteTagByPaletteNum(i) >> 15) // Don't blend special sprite palette tags + palettes &= ~(mask); + + palettes &= 0xFFFF1FFF; // Don't blend UI BG palettes [13,15] if (!palettes) return; TimeMixPalettes(palettes, @@ -1565,18 +1594,20 @@ static void OverworldBasic(void) UpdateTilesetAnimations(); DoScheduledBgTilemapCopiesToVram(); // Every minute if no palette fade is active, update TOD blending as needed - if (!(gPaletteFade.active || (++sTimeUpdateCounter % 3600))) { + if (!(gPaletteFade.active || (++gTimeUpdateCounter % 3600))) { struct TimeBlendSettings cachedBlend = { .time0 = currentTimeBlend.time0, .time1 = currentTimeBlend.time1, .weight = currentTimeBlend.weight, }; - sTimeUpdateCounter = 0; + gTimeUpdateCounter = 0; UpdateTimeOfDay(); if (cachedBlend.time0 != currentTimeBlend.time0 || cachedBlend.time1 != currentTimeBlend.time1 - || cachedBlend.weight != currentTimeBlend.weight) - UpdatePalettesWithTime(PALETTES_ALL); + || cachedBlend.weight != currentTimeBlend.weight) { + UpdateAltBgPalettes(PALETTES_BG); + UpdatePalettesWithTime(PALETTES_ALL); + } } } diff --git a/src/palette.c b/src/palette.c index 9ea27d0f25..2c9db82e25 100644 --- a/src/palette.c +++ b/src/palette.c @@ -1211,6 +1211,31 @@ void TimeMixPalettes(u32 palettes, u16 *src, u16 *dst, struct BlendSettings *ble } while (palettes); } +// Apply weighted average to palettes, preserving high bits of dst throughout +void AvgPaletteWeighted(u16 *src0, u16 *src1, u16 *dst, u16 weight0) { + u16 *srcEnd = src0 + 16; + u16 weight1 = 256 - weight0; + src0++; + src1++; + dst++; // leave dst transparency unchanged + while (src0 != srcEnd) { + u32 src0Color = *src0++; + s32 r0 = (src0Color << 27) >> 27; + s32 g0 = (src0Color << 22) >> 27; + s32 b0 = (src0Color << 17) >> 27; + u32 src1Color = *src1++; + s32 r1 = (src1Color << 27) >> 27; + s32 g1 = (src1Color << 22) >> 27; + s32 b1 = (src1Color << 17) >> 27; + + // Average and bitwise-OR + r0 = (weight0*r0 + weight1*r1) >> 8; + g0 = (weight0*g0 + weight1*g1) >> 8; + b0 = (weight0*b0 + weight1*b1) >> 8; + *dst++ = (*dst & 0x8000) | RGB2(r0, g0, b0); // preserve high bit of dst + } +} + void BlendPalettesUnfaded(u32 selectedPalettes, u8 coeff, u16 color) { void *src = gPlttBufferUnfaded; diff --git a/src/trainer_see.c b/src/trainer_see.c index 3bf4e0c2fd..0e478c9415 100644 --- a/src/trainer_see.c +++ b/src/trainer_see.c @@ -287,7 +287,7 @@ static const union AnimCmd *const sSpriteAnimTable_Emotes[] = { // TODO: Move these declarations into even_object_movement.h #define OBJ_EVENT_PAL_TAG_MAY 0x1110 -#define OBJ_EVENT_PAL_TAG_EMOTES 0x8002 +#define OBJ_EVENT_PAL_TAG_EMOTES 0x8003 static const struct SpriteTemplate sSpriteTemplate_ExclamationQuestionMark = {