From bb615c60ee36814e968dc4203dd56cfff00ece8b Mon Sep 17 00:00:00 2001 From: Marijn van der Werf Date: Thu, 10 Nov 2016 13:20:47 +0100 Subject: [PATCH] Clean up translucent palettes --- src/drawing/drawing.c | 435 ++++++++++++++++------------------------- src/drawing/drawing.h | 51 ++++- src/drawing/rect.c | 29 +-- src/interface/colour.h | 1 + src/windows/dropdown.c | 5 +- src/windows/themes.c | 6 +- 6 files changed, 241 insertions(+), 286 deletions(-) diff --git a/src/drawing/drawing.c b/src/drawing/drawing.c index aba97e510d..82dc7bdfba 100644 --- a/src/drawing/drawing.c +++ b/src/drawing/drawing.c @@ -106,16 +106,6 @@ enum SPR_PALETTE_3109 = 3109, SPR_PALETTE_3110 = 3110, - SPR_PALETTE_WATER = 4947, - SPR_PALETTE_4948 = 4948, - SPR_PALETTE_4949 = 4949, - SPR_PALETTE_4950 = 4950, - SPR_PALETTE_DARKEN_3 = 4951, - SPR_PALETTE_4952 = 4952, - SPR_PALETTE_DARKEN_1 = 4953, - SPR_PALETTE_DARKEN_2 = 4954, - SPR_PALETTE_4955 = 4955, - SPR_PALETTE_BLACK = 4915, SPR_PALETTE_GREY = 4916, SPR_PALETTE_WHITE = 4917, @@ -148,7 +138,75 @@ enum SPR_PALETTE_DARK_PINK = 4944, SPR_PALETTE_BRIGHT_PINK = 4945, SPR_PALETTE_LIGHT_PINK = 4946, - + SPR_PALETTE_WATER = 4947, + SPR_PALETTE_4948 = 4948, + SPR_PALETTE_4949 = 4949, + SPR_PALETTE_4950 = 4950, + SPR_PALETTE_DARKEN_3 = 4951, + SPR_PALETTE_4952 = 4952, + SPR_PALETTE_DARKEN_1 = 4953, + SPR_PALETTE_DARKEN_2 = 4954, + SPR_PALETTE_4955 = 4955, + SPR_PALETTE_TRANSLUCENT_GREY = 4956, + SPR_PALETTE_TRANSLUCENT_GREY_HIGHLIGHT = 4957, + SPR_PALETTE_TRANSLUCENT_GREY_SHADOW = 4958, + SPR_PALETTE_TRANSLUCENT_LIGHT_BLUE = 4959, + SPR_PALETTE_TRANSLUCENT_LIGHT_BLUE_HIGHLIGHT = 4960, + SPR_PALETTE_TRANSLUCENT_LIGHT_BLUE_SHADOW = 4961, + SPR_PALETTE_TRANSLUCENT_BORDEAUX_RED = 4962, + SPR_PALETTE_TRANSLUCENT_BORDEAUX_RED_HIGHLIGHT = 4963, + SPR_PALETTE_TRANSLUCENT_BORDEAUX_RED_SHADOW = 4964, + SPR_PALETTE_TRANSLUCENT_DARK_GREEN = 4965, + SPR_PALETTE_TRANSLUCENT_DARK_GREEN_HIGHLIGHT = 4966, + SPR_PALETTE_TRANSLUCENT_DARK_GREEN_SHADOW = 4967, + SPR_PALETTE_TRANSLUCENT_LIGHT_PURPLE = 4968, + SPR_PALETTE_TRANSLUCENT_LIGHT_PURPLE_HIGHLIGHT = 4969, + SPR_PALETTE_TRANSLUCENT_LIGHT_PURPLE_SHADOW = 4970, + SPR_PALETTE_TRANSLUCENT_DARK_OLIVE_GREEN = 4971, + SPR_PALETTE_TRANSLUCENT_DARK_OLIVE_GREEN_HIGHLIGHT = 4972, + SPR_PALETTE_TRANSLUCENT_DARK_OLIVE_GREEN_SHADOW = 4973, + SPR_PALETTE_TRANSLUCENT_LIGHT_BROWN = 4974, + SPR_PALETTE_TRANSLUCENT_LIGHT_BROWN_HIGHLIGHT = 4975, + SPR_PALETTE_TRANSLUCENT_LIGHT_BROWN_SHADOW = 4976, + SPR_PALETTE_TRANSLUCENT_YELLOW = 4977, + SPR_PALETTE_TRANSLUCENT_YELLOW_HIGHLIGHT = 4978, + SPR_PALETTE_TRANSLUCENT_YELLOW_SHADOW = 4979, + SPR_PALETTE_TRANSLUCENT_MOSS_GREEN = 4980, + SPR_PALETTE_TRANSLUCENT_MOSS_GREEN_HIGHLIGHT = 4981, + SPR_PALETTE_TRANSLUCENT_MOSS_GREEN_SHADOW = 4982, + SPR_PALETTE_TRANSLUCENT_OLIVE_GREEN = 4983, + SPR_PALETTE_TRANSLUCENT_OLIVE_GREEN_HIGHLIGHT = 4984, + SPR_PALETTE_TRANSLUCENT_OLIVE_GREEN_SHADOW = 4985, + SPR_PALETTE_TRANSLUCENT_BRIGHT_GREEN = 4986, + SPR_PALETTE_TRANSLUCENT_BRIGHT_GREEN_HIGHLIGHT = 4987, + SPR_PALETTE_TRANSLUCENT_BRIGHT_GREEN_SHADOW = 4988, + SPR_PALETTE_TRANSLUCENT_SALMON_PINK = 4989, + SPR_PALETTE_TRANSLUCENT_SALMON_PINK_HIGHLIGHT = 4990, + SPR_PALETTE_TRANSLUCENT_SALMON_PINK_SHADOW = 4991, + SPR_PALETTE_TRANSLUCENT_BRIGHT_PURPLE = 4992, + SPR_PALETTE_TRANSLUCENT_BRIGHT_PURPLE_HIGHLIGHT = 4993, + SPR_PALETTE_TRANSLUCENT_BRIGHT_PURPLE_SHADOW = 4994, + SPR_PALETTE_TRANSLUCENT_BRIGHT_RED = 4995, + SPR_PALETTE_TRANSLUCENT_BRIGHT_RED_HIGHLIGHT = 4996, + SPR_PALETTE_TRANSLUCENT_BRIGHT_RED_SHADOW = 4997, + SPR_PALETTE_TRANSLUCENT_LIGHT_ORANGE = 4998, + SPR_PALETTE_TRANSLUCENT_LIGHT_ORANGE_HIGHLIGHT = 4999, + SPR_PALETTE_TRANSLUCENT_LIGHT_ORANGE_SHADOW = 5000, + SPR_PALETTE_TRANSLUCENT_TEAL = 5001, + SPR_PALETTE_TRANSLUCENT_TEAL_HIGHLIGHT = 5002, + SPR_PALETTE_TRANSLUCENT_TEAL_SHADOW = 5003, + SPR_PALETTE_TRANSLUCENT_BRIGHT_PINK = 5004, + SPR_PALETTE_TRANSLUCENT_BRIGHT_PINK_HIGHLIGHT = 5005, + SPR_PALETTE_TRANSLUCENT_BRIGHT_PINK_SHADOW = 5006, + SPR_PALETTE_TRANSLUCENT_DARK_BROWN = 5007, + SPR_PALETTE_TRANSLUCENT_DARK_BROWN_HIGHLIGHT = 5008, + SPR_PALETTE_TRANSLUCENT_DARK_BROWN_SHADOW = 5009, + SPR_PALETTE_TRANSLUCENT_LIGHT_PINK = 5010, + SPR_PALETTE_TRANSLUCENT_LIGHT_PINK_HIGHLIGHT = 5011, + SPR_PALETTE_TRANSLUCENT_LIGHT_PINK_SHADOW = 5012, + SPR_PALETTE_TRANSLUCENT_WHITE = 5013, + SPR_PALETTE_TRANSLUCENT_WHITE_HIGHLIGHT = 5014, + SPR_PALETTE_TRANSLUCENT_WHITE_SHADOW = 5015, SPR_PALETTE_GLASS_BLACK = 5016, SPR_PALETTE_GLASS_GREY = 5017, SPR_PALETTE_GLASS_WHITE = 5018, @@ -275,27 +333,66 @@ const uint16 palette_to_g1_offset[PALETTE_TO_G1_OFFSET_COUNT] = { SPR_PALETTE_DARKEN_2, // PALETTE_DARKEN_2 (construction marker) SPR_PALETTE_4955, // PALETTE_51 -// base shadow highlight - 4956, 0x135D, 0x135E, // PALETTE_TRANSLUCENT_GREY - 4959, 0x1360, 0x1361, // PALETTE_TRANSLUCENT_LIGHT_BLUE - 4962, 0x1363, 0x1364, // PALETTE_TRANSLUCENT_BORDEAUX_RED - 4965, 0x1366, 0x1367, // PALETTE_TRANSLUCENT_DARK_GREEN - 4968, 0x1369, 0x136A, // PALETTE_TRANSLUCENT_LIGHT_PURPLE - 4971, 0x136C, 0x136D, // PALETTE_TRANSLUCENT_DARK_OLIVE_GREEN - 4974, 0x136F, 0x1370, // PALETTE_TRANSLUCENT_LIGHT_BROWN - 4977, 0x1372, 0x1373, // PALETTE_TRANSLUCENT_YELLOW - 4980, 0x1375, 0x1376, // PALETTE_TRANSLUCENT_MOSS_GREEN - 4983, 0x1378, 0x1379, // PALETTE_TRANSLUCENT_OLIVE_GREEN - 4986, 0x137B, 0x137C, // PALETTE_TRANSLUCENT_BRIGHT_GREEN - 4989, 0x137E, 0x137F, // PALETTE_TRANSLUCENT_SALMON_PINK - 4992, 0x1381, 0x1382, // PALETTE_TRANSLUCENT_BRIGHT_PURPLE - 4995, 0x1384, 0x1385, // PALETTE_TRANSLUCENT_BRIGHT_RED - 4998, 0x1387, 0x1388, // PALETTE_TRANSLUCENT_LIGHT_ORANGE - 5001, 0x138A, 0x138B, // PALETTE_TRANSLUCENT_TEAL - 5004, 0x138D, 0x138E, // PALETTE_TRANSLUCENT_BRIGHT_PINK - 5007, 0x1390, 0x1391, // PALETTE_TRANSLUCENT_DARK_BROWN - 5010, 0x1393, 0x1394, // PALETTE_TRANSLUCENT_LIGHT_PINK - 5013, 0x1396, 0x1397, // PALETTE_TRANSLUCENT_WHITE + SPR_PALETTE_TRANSLUCENT_GREY, + SPR_PALETTE_TRANSLUCENT_GREY_HIGHLIGHT, + SPR_PALETTE_TRANSLUCENT_GREY_SHADOW, + SPR_PALETTE_TRANSLUCENT_LIGHT_BLUE, + SPR_PALETTE_TRANSLUCENT_LIGHT_BLUE_HIGHLIGHT, + SPR_PALETTE_TRANSLUCENT_LIGHT_BLUE_SHADOW, + SPR_PALETTE_TRANSLUCENT_BORDEAUX_RED, + SPR_PALETTE_TRANSLUCENT_BORDEAUX_RED_HIGHLIGHT, + SPR_PALETTE_TRANSLUCENT_BORDEAUX_RED_SHADOW, + SPR_PALETTE_TRANSLUCENT_DARK_GREEN, + SPR_PALETTE_TRANSLUCENT_DARK_GREEN_HIGHLIGHT, + SPR_PALETTE_TRANSLUCENT_DARK_GREEN_SHADOW, + SPR_PALETTE_TRANSLUCENT_LIGHT_PURPLE, + SPR_PALETTE_TRANSLUCENT_LIGHT_PURPLE_HIGHLIGHT, + SPR_PALETTE_TRANSLUCENT_LIGHT_PURPLE_SHADOW, + SPR_PALETTE_TRANSLUCENT_DARK_OLIVE_GREEN, + SPR_PALETTE_TRANSLUCENT_DARK_OLIVE_GREEN_HIGHLIGHT, + SPR_PALETTE_TRANSLUCENT_DARK_OLIVE_GREEN_SHADOW, + SPR_PALETTE_TRANSLUCENT_LIGHT_BROWN, + SPR_PALETTE_TRANSLUCENT_LIGHT_BROWN_HIGHLIGHT, + SPR_PALETTE_TRANSLUCENT_LIGHT_BROWN_SHADOW, + SPR_PALETTE_TRANSLUCENT_YELLOW, + SPR_PALETTE_TRANSLUCENT_YELLOW_HIGHLIGHT, + SPR_PALETTE_TRANSLUCENT_YELLOW_SHADOW, + SPR_PALETTE_TRANSLUCENT_MOSS_GREEN, + SPR_PALETTE_TRANSLUCENT_MOSS_GREEN_HIGHLIGHT, + SPR_PALETTE_TRANSLUCENT_MOSS_GREEN_SHADOW, + SPR_PALETTE_TRANSLUCENT_OLIVE_GREEN, + SPR_PALETTE_TRANSLUCENT_OLIVE_GREEN_HIGHLIGHT, + SPR_PALETTE_TRANSLUCENT_OLIVE_GREEN_SHADOW, + SPR_PALETTE_TRANSLUCENT_BRIGHT_GREEN, + SPR_PALETTE_TRANSLUCENT_BRIGHT_GREEN_HIGHLIGHT, + SPR_PALETTE_TRANSLUCENT_BRIGHT_GREEN_SHADOW, + SPR_PALETTE_TRANSLUCENT_SALMON_PINK, + SPR_PALETTE_TRANSLUCENT_SALMON_PINK_HIGHLIGHT, + SPR_PALETTE_TRANSLUCENT_SALMON_PINK_SHADOW, + SPR_PALETTE_TRANSLUCENT_BRIGHT_PURPLE, + SPR_PALETTE_TRANSLUCENT_BRIGHT_PURPLE_HIGHLIGHT, + SPR_PALETTE_TRANSLUCENT_BRIGHT_PURPLE_SHADOW, + SPR_PALETTE_TRANSLUCENT_BRIGHT_RED, + SPR_PALETTE_TRANSLUCENT_BRIGHT_RED_HIGHLIGHT, + SPR_PALETTE_TRANSLUCENT_BRIGHT_RED_SHADOW, + SPR_PALETTE_TRANSLUCENT_LIGHT_ORANGE, + SPR_PALETTE_TRANSLUCENT_LIGHT_ORANGE_HIGHLIGHT, + SPR_PALETTE_TRANSLUCENT_LIGHT_ORANGE_SHADOW, + SPR_PALETTE_TRANSLUCENT_TEAL, + SPR_PALETTE_TRANSLUCENT_TEAL_HIGHLIGHT, + SPR_PALETTE_TRANSLUCENT_TEAL_SHADOW, + SPR_PALETTE_TRANSLUCENT_BRIGHT_PINK, + SPR_PALETTE_TRANSLUCENT_BRIGHT_PINK_HIGHLIGHT, + SPR_PALETTE_TRANSLUCENT_BRIGHT_PINK_SHADOW, + SPR_PALETTE_TRANSLUCENT_DARK_BROWN, + SPR_PALETTE_TRANSLUCENT_DARK_BROWN_HIGHLIGHT, + SPR_PALETTE_TRANSLUCENT_DARK_BROWN_SHADOW, + SPR_PALETTE_TRANSLUCENT_LIGHT_PINK, + SPR_PALETTE_TRANSLUCENT_LIGHT_PINK_HIGHLIGHT, + SPR_PALETTE_TRANSLUCENT_LIGHT_PINK_SHADOW, + SPR_PALETTE_TRANSLUCENT_WHITE, + SPR_PALETTE_TRANSLUCENT_WHITE_HIGHLIGHT, + SPR_PALETTE_TRANSLUCENT_WHITE_SHADOW, SPR_PALETTE_GLASS_BLACK, SPR_PALETTE_GLASS_GREY, @@ -331,238 +428,50 @@ const uint16 palette_to_g1_offset[PALETTE_TO_G1_OFFSET_COUNT] = { SPR_PALETTE_GLASS_LIGHT_PINK, }; -/** rct2: 0x009DEDF4 */ -const FILTER_PALETTE_ID _9DEDF4[] = { - 0, // COLOUR_BLACK - 0, // COLOUR_GREY - 0, // COLOUR_WHITE - 0, // COLOUR_DARK_PURPLE - 0, // COLOUR_LIGHT_PURPLE - 0, // COLOUR_BRIGHT_PURPLE - 0, // COLOUR_DARK_BLUE - 0, // COLOUR_LIGHT_BLUE - 0, // COLOUR_ICY_BLUE - 0, // COLOUR_TEAL - 0, // COLOUR_AQUAMARINE - 0, // COLOUR_SATURATED_GREEN - 0, // COLOUR_DARK_GREEN - 0, // COLOUR_MOSS_GREEN - 0, // COLOUR_BRIGHT_GREEN - 0, // COLOUR_OLIVE_GREEN - 0, // COLOUR_DARK_OLIVE_GREEN - 0, // COLOUR_BRIGHT_YELLOW - 0, // COLOUR_YELLOW - 0, // COLOUR_DARK_YELLOW - 0, // COLOUR_LIGHT_ORANGE - 0, // COLOUR_DARK_ORANGE - 0, // COLOUR_LIGHT_BROWN - 0, // COLOUR_SATURATED_BROWN - 0, // COLOUR_DARK_BROWN - 0, // COLOUR_SALMON_PINK - 0, // COLOUR_BORDEAUX_RED - 0, // COLOUR_SATURATED_RED - 0, // COLOUR_BRIGHT_RED - 0, // COLOUR_DARK_PINK - 0, // COLOUR_BRIGHT_PINK - 0, // COLOUR_LIGHT_PINK +#define WINDOW_PALETTE_GREY {PALETTE_TRANSLUCENT_GREY, PALETTE_TRANSLUCENT_GREY_HIGHLIGHT, PALETTE_TRANSLUCENT_GREY_SHADOW} +#define WINDOW_PALETTE_LIGHT_PURPLE {PALETTE_TRANSLUCENT_LIGHT_PURPLE, PALETTE_TRANSLUCENT_LIGHT_PURPLE_HIGHLIGHT, PALETTE_TRANSLUCENT_LIGHT_PURPLE_SHADOW} +#define WINDOW_PALETTE_LIGHT_BLUE {PALETTE_TRANSLUCENT_LIGHT_BLUE, PALETTE_TRANSLUCENT_LIGHT_BLUE_HIGHLIGHT, PALETTE_TRANSLUCENT_LIGHT_BLUE_SHADOW} +#define WINDOW_PALETTE_TEAL {PALETTE_TRANSLUCENT_TEAL, PALETTE_TRANSLUCENT_TEAL_HIGHLIGHT, PALETTE_TRANSLUCENT_TEAL_SHADOW} +#define WINDOW_PALETTE_BRIGHT_GREEN {PALETTE_TRANSLUCENT_BRIGHT_GREEN, PALETTE_TRANSLUCENT_BRIGHT_GREEN_HIGHLIGHT, PALETTE_TRANSLUCENT_BRIGHT_GREEN_SHADOW} +#define WINDOW_PALETTE_YELLOW {PALETTE_TRANSLUCENT_YELLOW, PALETTE_TRANSLUCENT_YELLOW_HIGHLIGHT, PALETTE_TRANSLUCENT_YELLOW_SHADOW} +#define WINDOW_PALETTE_LIGHT_ORANGE {PALETTE_TRANSLUCENT_LIGHT_ORANGE, PALETTE_TRANSLUCENT_LIGHT_ORANGE_HIGHLIGHT, PALETTE_TRANSLUCENT_LIGHT_ORANGE_SHADOW} +#define WINDOW_PALETTE_LIGHT_BROWN {PALETTE_TRANSLUCENT_LIGHT_BROWN, PALETTE_TRANSLUCENT_LIGHT_BROWN_HIGHLIGHT, PALETTE_TRANSLUCENT_LIGHT_BROWN_SHADOW} +#define WINDOW_PALETTE_BRIGHT_RED {PALETTE_TRANSLUCENT_BRIGHT_RED, PALETTE_TRANSLUCENT_BRIGHT_RED_HIGHLIGHT, PALETTE_TRANSLUCENT_BRIGHT_RED_SHADOW} +#define WINDOW_PALETTE_BRIGHT_PINK {PALETTE_TRANSLUCENT_BRIGHT_PINK, PALETTE_TRANSLUCENT_BRIGHT_PINK_HIGHLIGHT, PALETTE_TRANSLUCENT_BRIGHT_PINK_SHADOW} - 0, // COLOUR_BLACK | COLOUR_FLAG_OUTLINE - 0, // COLOUR_GREY | COLOUR_FLAG_OUTLINE - 0, // COLOUR_WHITE | COLOUR_FLAG_OUTLINE - 0, // COLOUR_DARK_PURPLE | COLOUR_FLAG_OUTLINE - 0, // COLOUR_LIGHT_PURPLE | COLOUR_FLAG_OUTLINE - 0, // COLOUR_BRIGHT_PURPLE | COLOUR_FLAG_OUTLINE - 0, // COLOUR_DARK_BLUE | COLOUR_FLAG_OUTLINE - 0, // COLOUR_LIGHT_BLUE | COLOUR_FLAG_OUTLINE - 0, // COLOUR_ICY_BLUE | COLOUR_FLAG_OUTLINE - 0, // COLOUR_TEAL | COLOUR_FLAG_OUTLINE - 0, // COLOUR_AQUAMARINE | COLOUR_FLAG_OUTLINE - 0, // COLOUR_SATURATED_GREEN | COLOUR_FLAG_OUTLINE - 0, // COLOUR_DARK_GREEN | COLOUR_FLAG_OUTLINE - 0, // COLOUR_MOSS_GREEN | COLOUR_FLAG_OUTLINE - 0, // COLOUR_BRIGHT_GREEN | COLOUR_FLAG_OUTLINE - 0, // COLOUR_OLIVE_GREEN | COLOUR_FLAG_OUTLINE - 0, // COLOUR_DARK_OLIVE_GREEN | COLOUR_FLAG_OUTLINE - 0, // COLOUR_BRIGHT_YELLOW | COLOUR_FLAG_OUTLINE - 0, // COLOUR_YELLOW | COLOUR_FLAG_OUTLINE - 0, // COLOUR_DARK_YELLOW | COLOUR_FLAG_OUTLINE - 0, // COLOUR_LIGHT_ORANGE | COLOUR_FLAG_OUTLINE - 0, // COLOUR_DARK_ORANGE | COLOUR_FLAG_OUTLINE - 0, // COLOUR_LIGHT_BROWN | COLOUR_FLAG_OUTLINE - 0, // COLOUR_SATURATED_BROWN | COLOUR_FLAG_OUTLINE - 0, // COLOUR_DARK_BROWN | COLOUR_FLAG_OUTLINE - 0, // COLOUR_SALMON_PINK | COLOUR_FLAG_OUTLINE - 0, // COLOUR_BORDEAUX_RED | COLOUR_FLAG_OUTLINE - 0, // COLOUR_SATURATED_RED | COLOUR_FLAG_OUTLINE - 0, // COLOUR_BRIGHT_RED | COLOUR_FLAG_OUTLINE - 0, // COLOUR_DARK_PINK | COLOUR_FLAG_OUTLINE - 0, // COLOUR_BRIGHT_PINK | COLOUR_FLAG_OUTLINE - 0, // COLOUR_LIGHT_PINK | COLOUR_FLAG_OUTLINE - - 0, // COLOUR_BLACK | COLOUR_FLAG_INSET - 0, // COLOUR_GREY | COLOUR_FLAG_INSET - 0, // COLOUR_WHITE | COLOUR_FLAG_INSET - 0, // COLOUR_DARK_PURPLE | COLOUR_FLAG_INSET - 0, // COLOUR_LIGHT_PURPLE | COLOUR_FLAG_INSET - 0, // COLOUR_BRIGHT_PURPLE | COLOUR_FLAG_INSET - 0, // COLOUR_DARK_BLUE | COLOUR_FLAG_INSET - 0, // COLOUR_LIGHT_BLUE | COLOUR_FLAG_INSET - 0, // COLOUR_ICY_BLUE | COLOUR_FLAG_INSET - 0, // COLOUR_TEAL | COLOUR_FLAG_INSET - 0, // COLOUR_AQUAMARINE | COLOUR_FLAG_INSET - 0, // COLOUR_SATURATED_GREEN | COLOUR_FLAG_INSET - 0, // COLOUR_DARK_GREEN | COLOUR_FLAG_INSET - 0, // COLOUR_MOSS_GREEN | COLOUR_FLAG_INSET - 0, // COLOUR_BRIGHT_GREEN | COLOUR_FLAG_INSET - 0, // COLOUR_OLIVE_GREEN | COLOUR_FLAG_INSET - 0, // COLOUR_DARK_OLIVE_GREEN | COLOUR_FLAG_INSET - 0, // COLOUR_BRIGHT_YELLOW | COLOUR_FLAG_INSET - 0, // COLOUR_YELLOW | COLOUR_FLAG_INSET - 0, // COLOUR_DARK_YELLOW | COLOUR_FLAG_INSET - 0, // COLOUR_LIGHT_ORANGE | COLOUR_FLAG_INSET - 0, // COLOUR_DARK_ORANGE | COLOUR_FLAG_INSET - 0, // COLOUR_LIGHT_BROWN | COLOUR_FLAG_INSET - 0, // COLOUR_SATURATED_BROWN | COLOUR_FLAG_INSET - 0, // COLOUR_DARK_BROWN | COLOUR_FLAG_INSET - 0, // COLOUR_SALMON_PINK | COLOUR_FLAG_INSET - 0, // COLOUR_BORDEAUX_RED | COLOUR_FLAG_INSET - 0, // COLOUR_SATURATED_RED | COLOUR_FLAG_INSET - 0, // COLOUR_BRIGHT_RED | COLOUR_FLAG_INSET - 0, // COLOUR_DARK_PINK | COLOUR_FLAG_INSET - 0, // COLOUR_BRIGHT_PINK | COLOUR_FLAG_INSET - 0, // COLOUR_LIGHT_PINK | COLOUR_FLAG_INSET - - 0, // COLOUR_BLACK | COLOUR_FLAG_OUTLINE | COLOUR_FLAG_INSET - 0, // COLOUR_GREY | COLOUR_FLAG_OUTLINE | COLOUR_FLAG_INSET - 0, // COLOUR_WHITE | COLOUR_FLAG_OUTLINE | COLOUR_FLAG_INSET - 0, // COLOUR_DARK_PURPLE | COLOUR_FLAG_OUTLINE | COLOUR_FLAG_INSET - 0, // COLOUR_LIGHT_PURPLE | COLOUR_FLAG_OUTLINE | COLOUR_FLAG_INSET - 0, // COLOUR_BRIGHT_PURPLE | COLOUR_FLAG_OUTLINE | COLOUR_FLAG_INSET - 0, // COLOUR_DARK_BLUE | COLOUR_FLAG_OUTLINE | COLOUR_FLAG_INSET - 0, // COLOUR_LIGHT_BLUE | COLOUR_FLAG_OUTLINE | COLOUR_FLAG_INSET - 0, // COLOUR_ICY_BLUE | COLOUR_FLAG_OUTLINE | COLOUR_FLAG_INSET - 0, // COLOUR_TEAL | COLOUR_FLAG_OUTLINE | COLOUR_FLAG_INSET - 0, // COLOUR_AQUAMARINE | COLOUR_FLAG_OUTLINE | COLOUR_FLAG_INSET - 0, // COLOUR_SATURATED_GREEN | COLOUR_FLAG_OUTLINE | COLOUR_FLAG_INSET - 0, // COLOUR_DARK_GREEN | COLOUR_FLAG_OUTLINE | COLOUR_FLAG_INSET - 0, // COLOUR_MOSS_GREEN | COLOUR_FLAG_OUTLINE | COLOUR_FLAG_INSET - 0, // COLOUR_BRIGHT_GREEN | COLOUR_FLAG_OUTLINE | COLOUR_FLAG_INSET - 0, // COLOUR_OLIVE_GREEN | COLOUR_FLAG_OUTLINE | COLOUR_FLAG_INSET - 0, // COLOUR_DARK_OLIVE_GREEN | COLOUR_FLAG_OUTLINE | COLOUR_FLAG_INSET - 0, // COLOUR_BRIGHT_YELLOW | COLOUR_FLAG_OUTLINE | COLOUR_FLAG_INSET - 0, // COLOUR_YELLOW | COLOUR_FLAG_OUTLINE | COLOUR_FLAG_INSET - 0, // COLOUR_DARK_YELLOW | COLOUR_FLAG_OUTLINE | COLOUR_FLAG_INSET - 0, // COLOUR_LIGHT_ORANGE | COLOUR_FLAG_OUTLINE | COLOUR_FLAG_INSET - 0, // COLOUR_DARK_ORANGE | COLOUR_FLAG_OUTLINE | COLOUR_FLAG_INSET - 0, // COLOUR_LIGHT_BROWN | COLOUR_FLAG_OUTLINE | COLOUR_FLAG_INSET - 0, // COLOUR_SATURATED_BROWN | COLOUR_FLAG_OUTLINE | COLOUR_FLAG_INSET - 0, // COLOUR_DARK_BROWN | COLOUR_FLAG_OUTLINE | COLOUR_FLAG_INSET - 0, // COLOUR_SALMON_PINK | COLOUR_FLAG_OUTLINE | COLOUR_FLAG_INSET - 0, // COLOUR_BORDEAUX_RED | COLOUR_FLAG_OUTLINE | COLOUR_FLAG_INSET - 0, // COLOUR_SATURATED_RED | COLOUR_FLAG_OUTLINE | COLOUR_FLAG_INSET - 0, // COLOUR_BRIGHT_RED | COLOUR_FLAG_OUTLINE | COLOUR_FLAG_INSET - 0, // COLOUR_DARK_PINK | COLOUR_FLAG_OUTLINE | COLOUR_FLAG_INSET - 0, // COLOUR_BRIGHT_PINK | COLOUR_FLAG_OUTLINE | COLOUR_FLAG_INSET - 0, // COLOUR_LIGHT_PINK | COLOUR_FLAG_OUTLINE | COLOUR_FLAG_INSET - - PALETTE_TRANSLUCENT_GREY, // COLOUR_BLACK | COLOUR_FLAG_TRANSLUCENT - PALETTE_TRANSLUCENT_GREY, // COLOUR_GREY | COLOUR_FLAG_TRANSLUCENT - PALETTE_TRANSLUCENT_WHITE, // COLOUR_WHITE | COLOUR_FLAG_TRANSLUCENT - PALETTE_TRANSLUCENT_LIGHT_PURPLE, // COLOUR_DARK_PURPLE | COLOUR_FLAG_TRANSLUCENT - PALETTE_TRANSLUCENT_LIGHT_PURPLE, // COLOUR_LIGHT_PURPLE | COLOUR_FLAG_TRANSLUCENT - PALETTE_TRANSLUCENT_BRIGHT_PURPLE, // COLOUR_BRIGHT_PURPLE | COLOUR_FLAG_TRANSLUCENT - PALETTE_TRANSLUCENT_LIGHT_BLUE, // COLOUR_DARK_BLUE | COLOUR_FLAG_TRANSLUCENT - PALETTE_TRANSLUCENT_LIGHT_BLUE, // COLOUR_LIGHT_BLUE | COLOUR_FLAG_TRANSLUCENT - PALETTE_TRANSLUCENT_LIGHT_BLUE, // COLOUR_ICY_BLUE | COLOUR_FLAG_TRANSLUCENT - PALETTE_TRANSLUCENT_TEAL, // COLOUR_TEAL | COLOUR_FLAG_TRANSLUCENT - PALETTE_TRANSLUCENT_TEAL, // COLOUR_AQUAMARINE | COLOUR_FLAG_TRANSLUCENT - PALETTE_TRANSLUCENT_BRIGHT_GREEN, // COLOUR_SATURATED_GREEN | COLOUR_FLAG_TRANSLUCENT - PALETTE_TRANSLUCENT_DARK_GREEN, // COLOUR_DARK_GREEN | COLOUR_FLAG_TRANSLUCENT - PALETTE_TRANSLUCENT_MOSS_GREEN, // COLOUR_MOSS_GREEN | COLOUR_FLAG_TRANSLUCENT - PALETTE_TRANSLUCENT_BRIGHT_GREEN, // COLOUR_BRIGHT_GREEN | COLOUR_FLAG_TRANSLUCENT - PALETTE_TRANSLUCENT_OLIVE_GREEN, // COLOUR_OLIVE_GREEN | COLOUR_FLAG_TRANSLUCENT - PALETTE_TRANSLUCENT_DARK_OLIVE_GREEN, // COLOUR_DARK_OLIVE_GREEN | COLOUR_FLAG_TRANSLUCENT - PALETTE_TRANSLUCENT_YELLOW, // COLOUR_BRIGHT_YELLOW | COLOUR_FLAG_TRANSLUCENT - PALETTE_TRANSLUCENT_YELLOW, // COLOUR_YELLOW | COLOUR_FLAG_TRANSLUCENT - PALETTE_TRANSLUCENT_YELLOW, // COLOUR_DARK_YELLOW | COLOUR_FLAG_TRANSLUCENT - PALETTE_TRANSLUCENT_LIGHT_ORANGE, // COLOUR_LIGHT_ORANGE | COLOUR_FLAG_TRANSLUCENT - PALETTE_TRANSLUCENT_LIGHT_ORANGE, // COLOUR_DARK_ORANGE | COLOUR_FLAG_TRANSLUCENT - PALETTE_TRANSLUCENT_LIGHT_BROWN, // COLOUR_LIGHT_BROWN | COLOUR_FLAG_TRANSLUCENT - PALETTE_TRANSLUCENT_LIGHT_BROWN, // COLOUR_SATURATED_BROWN | COLOUR_FLAG_TRANSLUCENT - PALETTE_TRANSLUCENT_DARK_BROWN, // COLOUR_DARK_BROWN | COLOUR_FLAG_TRANSLUCENT - PALETTE_TRANSLUCENT_SALMON_PINK, // COLOUR_SALMON_PINK | COLOUR_FLAG_TRANSLUCENT - PALETTE_TRANSLUCENT_BORDEAUX_RED, // COLOUR_BORDEAUX_RED | COLOUR_FLAG_TRANSLUCENT - PALETTE_TRANSLUCENT_BRIGHT_RED, // COLOUR_SATURATED_RED | COLOUR_FLAG_TRANSLUCENT - PALETTE_TRANSLUCENT_BRIGHT_RED, // COLOUR_BRIGHT_RED | COLOUR_FLAG_TRANSLUCENT - PALETTE_TRANSLUCENT_BRIGHT_PINK, // COLOUR_DARK_PINK | COLOUR_FLAG_TRANSLUCENT - PALETTE_TRANSLUCENT_BRIGHT_PINK, // COLOUR_BRIGHT_PINK | COLOUR_FLAG_TRANSLUCENT - PALETTE_TRANSLUCENT_LIGHT_PINK, // COLOUR_LIGHT_PINK | COLOUR_FLAG_TRANSLUCENT - - PALETTE_34, // COLOUR_BLACK | COLOUR_FLAG_OUTLINE | COLOUR_FLAG_TRANSLUCENT - PALETTE_WATER, // COLOUR_GREY | COLOUR_FLAG_OUTLINE | COLOUR_FLAG_TRANSLUCENT - PALETTE_34, // COLOUR_WHITE | COLOUR_FLAG_OUTLINE | COLOUR_FLAG_TRANSLUCENT - PALETTE_WATER, // COLOUR_DARK_PURPLE | COLOUR_FLAG_OUTLINE | COLOUR_FLAG_TRANSLUCENT - PALETTE_34, // COLOUR_LIGHT_PURPLE | COLOUR_FLAG_OUTLINE | COLOUR_FLAG_TRANSLUCENT - PALETTE_WATER, // COLOUR_BRIGHT_PURPLE | COLOUR_FLAG_OUTLINE | COLOUR_FLAG_TRANSLUCENT - PALETTE_34, // COLOUR_DARK_BLUE | COLOUR_FLAG_OUTLINE | COLOUR_FLAG_TRANSLUCENT - PALETTE_WATER, // COLOUR_LIGHT_BLUE | COLOUR_FLAG_OUTLINE | COLOUR_FLAG_TRANSLUCENT - PALETTE_34, // COLOUR_ICY_BLUE | COLOUR_FLAG_OUTLINE | COLOUR_FLAG_TRANSLUCENT - PALETTE_WATER, // COLOUR_TEAL | COLOUR_FLAG_OUTLINE | COLOUR_FLAG_TRANSLUCENT - PALETTE_34, // COLOUR_AQUAMARINE | COLOUR_FLAG_OUTLINE | COLOUR_FLAG_TRANSLUCENT - PALETTE_WATER, // COLOUR_SATURATED_GREEN | COLOUR_FLAG_OUTLINE | COLOUR_FLAG_TRANSLUCENT - PALETTE_34, // COLOUR_DARK_GREEN | COLOUR_FLAG_OUTLINE | COLOUR_FLAG_TRANSLUCENT - PALETTE_WATER, // COLOUR_MOSS_GREEN | COLOUR_FLAG_OUTLINE | COLOUR_FLAG_TRANSLUCENT - PALETTE_34, // COLOUR_BRIGHT_GREEN | COLOUR_FLAG_OUTLINE | COLOUR_FLAG_TRANSLUCENT - PALETTE_WATER, // COLOUR_OLIVE_GREEN | COLOUR_FLAG_OUTLINE | COLOUR_FLAG_TRANSLUCENT - PALETTE_34, // COLOUR_DARK_OLIVE_GREEN | COLOUR_FLAG_OUTLINE | COLOUR_FLAG_TRANSLUCENT - PALETTE_WATER, // COLOUR_BRIGHT_YELLOW | COLOUR_FLAG_OUTLINE | COLOUR_FLAG_TRANSLUCENT - PALETTE_34, // COLOUR_YELLOW | COLOUR_FLAG_OUTLINE | COLOUR_FLAG_TRANSLUCENT - PALETTE_WATER, // COLOUR_DARK_YELLOW | COLOUR_FLAG_OUTLINE | COLOUR_FLAG_TRANSLUCENT - PALETTE_34, // COLOUR_LIGHT_ORANGE | COLOUR_FLAG_OUTLINE | COLOUR_FLAG_TRANSLUCENT - PALETTE_WATER, // COLOUR_DARK_ORANGE | COLOUR_FLAG_OUTLINE | COLOUR_FLAG_TRANSLUCENT - PALETTE_34, // COLOUR_LIGHT_BROWN | COLOUR_FLAG_OUTLINE | COLOUR_FLAG_TRANSLUCENT - PALETTE_WATER, // COLOUR_SATURATED_BROWN | COLOUR_FLAG_OUTLINE | COLOUR_FLAG_TRANSLUCENT - PALETTE_34, // COLOUR_DARK_BROWN | COLOUR_FLAG_OUTLINE | COLOUR_FLAG_TRANSLUCENT - PALETTE_WATER, // COLOUR_SALMON_PINK | COLOUR_FLAG_OUTLINE | COLOUR_FLAG_TRANSLUCENT - PALETTE_34, // COLOUR_BORDEAUX_RED | COLOUR_FLAG_OUTLINE | COLOUR_FLAG_TRANSLUCENT - PALETTE_WATER, // COLOUR_SATURATED_RED | COLOUR_FLAG_OUTLINE | COLOUR_FLAG_TRANSLUCENT - PALETTE_34, // COLOUR_BRIGHT_RED | COLOUR_FLAG_OUTLINE | COLOUR_FLAG_TRANSLUCENT - PALETTE_WATER, // COLOUR_DARK_PINK | COLOUR_FLAG_OUTLINE | COLOUR_FLAG_TRANSLUCENT - PALETTE_34, // COLOUR_BRIGHT_PINK | COLOUR_FLAG_OUTLINE | COLOUR_FLAG_TRANSLUCENT - PALETTE_WATER, // COLOUR_LIGHT_PINK | COLOUR_FLAG_OUTLINE | COLOUR_FLAG_TRANSLUCENT - - PALETTE_34, // COLOUR_BLACK | COLOUR_FLAG_INSET | COLOUR_FLAG_TRANSLUCENT - PALETTE_WATER, // COLOUR_GREY | COLOUR_FLAG_INSET | COLOUR_FLAG_TRANSLUCENT - PALETTE_34, // COLOUR_WHITE | COLOUR_FLAG_INSET | COLOUR_FLAG_TRANSLUCENT - PALETTE_WATER, // COLOUR_DARK_PURPLE | COLOUR_FLAG_INSET | COLOUR_FLAG_TRANSLUCENT - PALETTE_34, // COLOUR_LIGHT_PURPLE | COLOUR_FLAG_INSET | COLOUR_FLAG_TRANSLUCENT - PALETTE_WATER, // COLOUR_BRIGHT_PURPLE | COLOUR_FLAG_INSET | COLOUR_FLAG_TRANSLUCENT - PALETTE_34, // COLOUR_DARK_BLUE | COLOUR_FLAG_INSET | COLOUR_FLAG_TRANSLUCENT - PALETTE_WATER, // COLOUR_LIGHT_BLUE | COLOUR_FLAG_INSET | COLOUR_FLAG_TRANSLUCENT - PALETTE_34, // COLOUR_ICY_BLUE | COLOUR_FLAG_INSET | COLOUR_FLAG_TRANSLUCENT - PALETTE_WATER, // COLOUR_TEAL | COLOUR_FLAG_INSET | COLOUR_FLAG_TRANSLUCENT - PALETTE_34, // COLOUR_AQUAMARINE | COLOUR_FLAG_INSET | COLOUR_FLAG_TRANSLUCENT - PALETTE_WATER, // COLOUR_SATURATED_GREEN | COLOUR_FLAG_INSET | COLOUR_FLAG_TRANSLUCENT - PALETTE_34, // COLOUR_DARK_GREEN | COLOUR_FLAG_INSET | COLOUR_FLAG_TRANSLUCENT - PALETTE_WATER, // COLOUR_MOSS_GREEN | COLOUR_FLAG_INSET | COLOUR_FLAG_TRANSLUCENT - PALETTE_34, // COLOUR_BRIGHT_GREEN | COLOUR_FLAG_INSET | COLOUR_FLAG_TRANSLUCENT - PALETTE_WATER, // COLOUR_OLIVE_GREEN | COLOUR_FLAG_INSET | COLOUR_FLAG_TRANSLUCENT - PALETTE_34, // COLOUR_DARK_OLIVE_GREEN | COLOUR_FLAG_INSET | COLOUR_FLAG_TRANSLUCENT - PALETTE_WATER, // COLOUR_BRIGHT_YELLOW | COLOUR_FLAG_INSET | COLOUR_FLAG_TRANSLUCENT - PALETTE_34, // COLOUR_YELLOW | COLOUR_FLAG_INSET | COLOUR_FLAG_TRANSLUCENT - PALETTE_WATER, // COLOUR_DARK_YELLOW | COLOUR_FLAG_INSET | COLOUR_FLAG_TRANSLUCENT - PALETTE_34, // COLOUR_LIGHT_ORANGE | COLOUR_FLAG_INSET | COLOUR_FLAG_TRANSLUCENT - PALETTE_WATER, // COLOUR_DARK_ORANGE | COLOUR_FLAG_INSET | COLOUR_FLAG_TRANSLUCENT - PALETTE_34, // COLOUR_LIGHT_BROWN | COLOUR_FLAG_INSET | COLOUR_FLAG_TRANSLUCENT - PALETTE_WATER, // COLOUR_SATURATED_BROWN | COLOUR_FLAG_INSET | COLOUR_FLAG_TRANSLUCENT - PALETTE_34, // COLOUR_DARK_BROWN | COLOUR_FLAG_INSET | COLOUR_FLAG_TRANSLUCENT - PALETTE_WATER, // COLOUR_SALMON_PINK | COLOUR_FLAG_INSET | COLOUR_FLAG_TRANSLUCENT - PALETTE_34, // COLOUR_BORDEAUX_RED | COLOUR_FLAG_INSET | COLOUR_FLAG_TRANSLUCENT - PALETTE_WATER, // COLOUR_SATURATED_RED | COLOUR_FLAG_INSET | COLOUR_FLAG_TRANSLUCENT - PALETTE_34, // COLOUR_BRIGHT_RED | COLOUR_FLAG_INSET | COLOUR_FLAG_TRANSLUCENT - PALETTE_WATER, // COLOUR_DARK_PINK | COLOUR_FLAG_INSET | COLOUR_FLAG_TRANSLUCENT - PALETTE_34, // COLOUR_BRIGHT_PINK | COLOUR_FLAG_INSET | COLOUR_FLAG_TRANSLUCENT - PALETTE_WATER, // COLOUR_LIGHT_PINK | COLOUR_FLAG_INSET | COLOUR_FLAG_TRANSLUCENT +const translucent_window_palette TranslucentWindowPalettes[COLOUR_COUNT] = { + WINDOW_PALETTE_GREY, // COLOUR_BLACK + WINDOW_PALETTE_GREY, // COLOUR_GREY + {PALETTE_TRANSLUCENT_WHITE, PALETTE_TRANSLUCENT_WHITE_HIGHLIGHT, PALETTE_TRANSLUCENT_WHITE_SHADOW}, + WINDOW_PALETTE_LIGHT_PURPLE, // COLOUR_DARK_PURPLE + WINDOW_PALETTE_LIGHT_PURPLE, // COLOUR_LIGHT_PURPLE + {PALETTE_TRANSLUCENT_BRIGHT_PURPLE, PALETTE_TRANSLUCENT_BRIGHT_PURPLE_HIGHLIGHT, PALETTE_TRANSLUCENT_BRIGHT_PURPLE_SHADOW}, + WINDOW_PALETTE_LIGHT_BLUE, // COLOUR_DARK_BLUE + WINDOW_PALETTE_LIGHT_BLUE, // COLOUR_LIGHT_BLUE + WINDOW_PALETTE_LIGHT_BLUE, // COLOUR_ICY_BLUE + WINDOW_PALETTE_TEAL, // COLOUR_TEAL + WINDOW_PALETTE_TEAL, // COLOUR_AQUAMARINE + WINDOW_PALETTE_BRIGHT_GREEN, // COLOUR_SATURATED_GREEN + {PALETTE_TRANSLUCENT_DARK_GREEN, PALETTE_TRANSLUCENT_DARK_GREEN_HIGHLIGHT, PALETTE_TRANSLUCENT_DARK_GREEN_SHADOW}, + {PALETTE_TRANSLUCENT_MOSS_GREEN, PALETTE_TRANSLUCENT_MOSS_GREEN_HIGHLIGHT, PALETTE_TRANSLUCENT_MOSS_GREEN_SHADOW}, + WINDOW_PALETTE_BRIGHT_GREEN, // COLOUR_BRIGHT_GREEN + {PALETTE_TRANSLUCENT_OLIVE_GREEN, PALETTE_TRANSLUCENT_OLIVE_GREEN_HIGHLIGHT, PALETTE_TRANSLUCENT_OLIVE_GREEN_SHADOW}, + {PALETTE_TRANSLUCENT_DARK_OLIVE_GREEN, PALETTE_TRANSLUCENT_DARK_OLIVE_GREEN_HIGHLIGHT, PALETTE_TRANSLUCENT_DARK_OLIVE_GREEN_SHADOW}, + WINDOW_PALETTE_YELLOW, // COLOUR_BRIGHT_YELLOW + WINDOW_PALETTE_YELLOW, // COLOUR_YELLOW + WINDOW_PALETTE_YELLOW, // COLOUR_DARK_YELLOW + WINDOW_PALETTE_LIGHT_ORANGE, // COLOUR_LIGHT_ORANGE + WINDOW_PALETTE_LIGHT_ORANGE, // COLOUR_DARK_ORANGE + WINDOW_PALETTE_LIGHT_BROWN, // COLOUR_LIGHT_BROWN + WINDOW_PALETTE_LIGHT_BROWN, // COLOUR_SATURATED_BROWN + {PALETTE_TRANSLUCENT_DARK_BROWN, PALETTE_TRANSLUCENT_DARK_BROWN_HIGHLIGHT, PALETTE_TRANSLUCENT_DARK_BROWN_SHADOW}, + {PALETTE_TRANSLUCENT_SALMON_PINK, PALETTE_TRANSLUCENT_SALMON_PINK_HIGHLIGHT, PALETTE_TRANSLUCENT_SALMON_PINK_SHADOW}, + {PALETTE_TRANSLUCENT_BORDEAUX_RED, PALETTE_TRANSLUCENT_BORDEAUX_RED_HIGHLIGHT, PALETTE_TRANSLUCENT_BORDEAUX_RED_SHADOW}, + WINDOW_PALETTE_BRIGHT_RED, // COLOUR_SATURATED_RED + WINDOW_PALETTE_BRIGHT_RED, // COLOUR_BRIGHT_RED + WINDOW_PALETTE_BRIGHT_PINK, // COLOUR_DARK_PINK + WINDOW_PALETTE_BRIGHT_PINK, // COLOUR_BRIGHT_PINK + {PALETTE_TRANSLUCENT_LIGHT_PINK, PALETTE_TRANSLUCENT_LIGHT_PINK_HIGHLIGHT, PALETTE_TRANSLUCENT_LIGHT_PINK_SHADOW}, }; void gfx_draw_pixel(rct_drawpixelinfo *dpi, int x, int y, int colour) diff --git a/src/drawing/drawing.h b/src/drawing/drawing.h index 0675fb6779..dfacf3db24 100644 --- a/src/drawing/drawing.h +++ b/src/drawing/drawing.h @@ -109,29 +109,66 @@ typedef enum { PALETTE_DARKEN_1 = 49, PALETTE_DARKEN_2 = 50, PALETTE_51 = 51, // Decolorize + darken - PALETTE_TRANSLUCENT_GREY = 52, + PALETTE_TRANSLUCENT_GREY_HIGHLIGHT = 53, + PALETTE_TRANSLUCENT_GREY_SHADOW = 54, PALETTE_TRANSLUCENT_LIGHT_BLUE = 55, - PALETTE_TRANSLUCENT_LIGHT_BLUE_HIGHLIGHT = PALETTE_TRANSLUCENT_LIGHT_BLUE + 1, // used by console + PALETTE_TRANSLUCENT_LIGHT_BLUE_HIGHLIGHT = 56, + PALETTE_TRANSLUCENT_LIGHT_BLUE_SHADOW = 57, PALETTE_TRANSLUCENT_BORDEAUX_RED = 58, + PALETTE_TRANSLUCENT_BORDEAUX_RED_HIGHLIGHT = 59, + PALETTE_TRANSLUCENT_BORDEAUX_RED_SHADOW = 60, PALETTE_TRANSLUCENT_DARK_GREEN = 61, + PALETTE_TRANSLUCENT_DARK_GREEN_HIGHLIGHT = 62, + PALETTE_TRANSLUCENT_DARK_GREEN_SHADOW = 63, PALETTE_TRANSLUCENT_LIGHT_PURPLE = 64, + PALETTE_TRANSLUCENT_LIGHT_PURPLE_HIGHLIGHT = 65, + PALETTE_TRANSLUCENT_LIGHT_PURPLE_SHADOW = 66, PALETTE_TRANSLUCENT_DARK_OLIVE_GREEN = 67, + PALETTE_TRANSLUCENT_DARK_OLIVE_GREEN_HIGHLIGHT = 68, + PALETTE_TRANSLUCENT_DARK_OLIVE_GREEN_SHADOW = 69, PALETTE_TRANSLUCENT_LIGHT_BROWN = 70, + PALETTE_TRANSLUCENT_LIGHT_BROWN_HIGHLIGHT = 71, + PALETTE_TRANSLUCENT_LIGHT_BROWN_SHADOW = 72, PALETTE_TRANSLUCENT_YELLOW = 73, + PALETTE_TRANSLUCENT_YELLOW_HIGHLIGHT = 74, + PALETTE_TRANSLUCENT_YELLOW_SHADOW = 75, PALETTE_TRANSLUCENT_MOSS_GREEN = 76, + PALETTE_TRANSLUCENT_MOSS_GREEN_HIGHLIGHT = 77, + PALETTE_TRANSLUCENT_MOSS_GREEN_SHADOW = 78, PALETTE_TRANSLUCENT_OLIVE_GREEN = 79, + PALETTE_TRANSLUCENT_OLIVE_GREEN_HIGHLIGHT = 80, + PALETTE_TRANSLUCENT_OLIVE_GREEN_SHADOW = 81, PALETTE_TRANSLUCENT_BRIGHT_GREEN = 82, + PALETTE_TRANSLUCENT_BRIGHT_GREEN_HIGHLIGHT = 83, + PALETTE_TRANSLUCENT_BRIGHT_GREEN_SHADOW = 84, PALETTE_TRANSLUCENT_SALMON_PINK = 85, + PALETTE_TRANSLUCENT_SALMON_PINK_HIGHLIGHT = 86, + PALETTE_TRANSLUCENT_SALMON_PINK_SHADOW = 87, PALETTE_TRANSLUCENT_BRIGHT_PURPLE = 88, + PALETTE_TRANSLUCENT_BRIGHT_PURPLE_HIGHLIGHT = 89, + PALETTE_TRANSLUCENT_BRIGHT_PURPLE_SHADOW = 90, PALETTE_TRANSLUCENT_BRIGHT_RED = 91, + PALETTE_TRANSLUCENT_BRIGHT_RED_HIGHLIGHT = 92, + PALETTE_TRANSLUCENT_BRIGHT_RED_SHADOW = 93, PALETTE_TRANSLUCENT_LIGHT_ORANGE = 94, + PALETTE_TRANSLUCENT_LIGHT_ORANGE_HIGHLIGHT = 95, + PALETTE_TRANSLUCENT_LIGHT_ORANGE_SHADOW = 96, PALETTE_TRANSLUCENT_TEAL = 97, + PALETTE_TRANSLUCENT_TEAL_HIGHLIGHT = 98, + PALETTE_TRANSLUCENT_TEAL_SHADOW = 99, PALETTE_TRANSLUCENT_BRIGHT_PINK = 100, + PALETTE_TRANSLUCENT_BRIGHT_PINK_HIGHLIGHT = 101, + PALETTE_TRANSLUCENT_BRIGHT_PINK_SHADOW = 102, PALETTE_TRANSLUCENT_DARK_BROWN = 103, + PALETTE_TRANSLUCENT_DARK_BROWN_HIGHLIGHT = 104, + PALETTE_TRANSLUCENT_DARK_BROWN_SHADOW = 105, PALETTE_TRANSLUCENT_LIGHT_PINK = 106, + PALETTE_TRANSLUCENT_LIGHT_PINK_HIGHLIGHT = 107, + PALETTE_TRANSLUCENT_LIGHT_PINK_SHADOW = 108, PALETTE_TRANSLUCENT_WHITE = 109, - + PALETTE_TRANSLUCENT_WHITE_HIGHLIGHT = 110, + PALETTE_TRANSLUCENT_WHITE_SHADOW = 111, PALETTE_GLASS_BLACK = 112 + COLOUR_BLACK, PALETTE_GLASS_GREY = 112 + COLOUR_GREY, PALETTE_GLASS_WHITE = 112 + COLOUR_WHITE, @@ -166,6 +203,12 @@ typedef enum { PALETTE_GLASS_LIGHT_PINK = 112 + COLOUR_LIGHT_PINK, } FILTER_PALETTE_ID; +typedef struct translucent_window_palette { + FILTER_PALETTE_ID base; + FILTER_PALETTE_ID highlight; + FILTER_PALETTE_ID shadow; +} translucent_window_palette; + typedef struct rct_g1_header { uint32 num_entries; uint32 total_size; @@ -217,7 +260,7 @@ extern const uint16 palette_to_g1_offset[]; extern uint8 gPeepPalette[256]; extern uint8 gOtherPalette[256]; extern uint8 text_palette[]; -extern const FILTER_PALETTE_ID _9DEDF4[]; +extern const translucent_window_palette TranslucentWindowPalettes[COLOUR_COUNT]; extern int gLastDrawStringX; extern int gLastDrawStringY; diff --git a/src/drawing/rect.c b/src/drawing/rect.c index 360d6b9050..3073545ae5 100644 --- a/src/drawing/rect.c +++ b/src/drawing/rect.c @@ -36,35 +36,36 @@ void gfx_fill_rect_inset(rct_drawpixelinfo* dpi, short left, short top, short ri uint8 shadow, fill, hilight; if (colour & (COLOUR_FLAG_TRANSLUCENT | COLOUR_FLAG_8)) { - FILTER_PALETTE_ID palette; + translucent_window_palette palette; if (colour & COLOUR_FLAG_8) { // TODO: This can't be added up - palette = NOT_TRANSLUCENT(colour); + // palette = NOT_TRANSLUCENT(colour); + assert(false); } else { - palette = _9DEDF4[colour]; + palette = TranslucentWindowPalettes[BASE_COLOUR(colour)]; } if (flags & INSET_RECT_FLAG_BORDER_NONE) { - gfx_filter_rect(dpi, left, top, right, bottom, palette); + gfx_filter_rect(dpi, left, top, right, bottom, palette.base); } else if (flags & INSET_RECT_FLAG_BORDER_INSET) { // Draw outline of box - gfx_filter_rect(dpi, left, top, left, bottom, palette + 1); - gfx_filter_rect(dpi, left, top, right, top, palette + 1); - gfx_filter_rect(dpi, right, top, right, bottom, palette + 2); - gfx_filter_rect(dpi, left, bottom, right, bottom, palette + 2); + gfx_filter_rect(dpi, left, top, left, bottom, palette.highlight); + gfx_filter_rect(dpi, left, top, right, top, palette.highlight); + gfx_filter_rect(dpi, right, top, right, bottom, palette.shadow); + gfx_filter_rect(dpi, left, bottom, right, bottom, palette.shadow); if (!(flags & INSET_RECT_FLAG_FILL_NONE)) { - gfx_filter_rect(dpi, left+1, top+1, right-1, bottom-1, palette); + gfx_filter_rect(dpi, left+1, top+1, right-1, bottom-1, palette.base); } } else { // Draw outline of box - gfx_filter_rect(dpi, left, top, left, bottom, palette + 2); - gfx_filter_rect(dpi, left, top, right, top, palette + 2); - gfx_filter_rect(dpi, right, top, right, bottom, palette + 1); - gfx_filter_rect(dpi, left, bottom, right, bottom, palette + 1); + gfx_filter_rect(dpi, left, top, left, bottom, palette.shadow); + gfx_filter_rect(dpi, left, top, right, top, palette.shadow); + gfx_filter_rect(dpi, right, top, right, bottom, palette.highlight); + gfx_filter_rect(dpi, left, bottom, right, bottom, palette.highlight); if (!(flags & INSET_RECT_FLAG_FILL_NONE)) { - gfx_filter_rect(dpi, left+1, top+1, right-1, bottom-1, palette); + gfx_filter_rect(dpi, left+1, top+1, right-1, bottom-1, palette.base); } } } else { diff --git a/src/interface/colour.h b/src/interface/colour.h index 605888f56f..cd63adc57a 100644 --- a/src/interface/colour.h +++ b/src/interface/colour.h @@ -73,6 +73,7 @@ enum { #define COLOUR_FLAG_8 (1 << 8) #define TRANSLUCENT(x) ((x) | COLOUR_FLAG_TRANSLUCENT) #define NOT_TRANSLUCENT(x) ((x) & ~COLOUR_FLAG_TRANSLUCENT) +#define BASE_COLOUR(x) ((x) & 0x1F) #define NUM_COLOURS 32 diff --git a/src/windows/dropdown.c b/src/windows/dropdown.c index 1e98c1aa31..c2dc03de28 100644 --- a/src/windows/dropdown.c +++ b/src/windows/dropdown.c @@ -297,8 +297,9 @@ static void window_dropdown_paint(rct_window *w, rct_drawpixelinfo *dpi) b = t; if (w->colours[0] & COLOUR_FLAG_TRANSLUCENT) { - gfx_filter_rect(dpi, l, t, r, b, _9DEDF4[w->colours[0]] + 1); - gfx_filter_rect(dpi, l, t + 1, r, b + 1, _9DEDF4[w->colours[0]] + 2); + translucent_window_palette palette = TranslucentWindowPalettes[BASE_COLOUR(w->colours[0])]; + gfx_filter_rect(dpi, l, t, r, b, palette.highlight); + gfx_filter_rect(dpi, l, t + 1, r, b + 1, palette.shadow); } else { gfx_fill_rect(dpi, l, t, r, b, ColourMapA[w->colours[0]].mid_dark); gfx_fill_rect(dpi, l, t + 1, r, b + 1, ColourMapA[w->colours[0]].lightest); diff --git a/src/windows/themes.c b/src/windows/themes.c index 9dc0d76015..419ab43567 100644 --- a/src/windows/themes.c +++ b/src/windows/themes.c @@ -810,10 +810,10 @@ void window_themes_scrollpaint(rct_window *w, rct_drawpixelinfo *dpi, int scroll if (i + 1 < get_colour_scheme_tab_count()) { int colour = w->colours[1]; if (colour & COLOUR_FLAG_TRANSLUCENT) { - FILTER_PALETTE_ID palette = _9DEDF4[colour]; + translucent_window_palette windowPalette = TranslucentWindowPalettes[BASE_COLOUR(colour)]; - gfx_filter_rect(dpi, 0, y + _row_height - 2, window_themes_widgets[WIDX_THEMES_LIST].right, y + _row_height - 2, palette + 1); - gfx_filter_rect(dpi, 0, y + _row_height - 1, window_themes_widgets[WIDX_THEMES_LIST].right, y + _row_height - 1, palette + 2); + gfx_filter_rect(dpi, 0, y + _row_height - 2, window_themes_widgets[WIDX_THEMES_LIST].right, y + _row_height - 2, windowPalette.highlight); + gfx_filter_rect(dpi, 0, y + _row_height - 1, window_themes_widgets[WIDX_THEMES_LIST].right, y + _row_height - 1, windowPalette.shadow); } else { colour = ColourMapA[w->colours[1]].mid_dark;