Name glass palettes

This commit is contained in:
Marijn van der Werf 2016-11-09 23:40:13 +01:00
parent 2109763267
commit 4f47808201
9 changed files with 144 additions and 44 deletions

View File

@ -148,6 +148,74 @@ enum
SPR_PALETTE_DARK_PINK = 4944,
SPR_PALETTE_BRIGHT_PINK = 4945,
SPR_PALETTE_LIGHT_PINK = 4946,
SPR_PALETTE_GLASS_BLACK = 5016,
SPR_PALETTE_GLASS_GREY = 5017,
SPR_PALETTE_GLASS_WHITE = 5018,
SPR_PALETTE_GLASS_DARK_PURPLE = 5019,
SPR_PALETTE_GLASS_LIGHT_PURPLE = 5020,
SPR_PALETTE_GLASS_BRIGHT_PURPLE = 5021,
SPR_PALETTE_GLASS_DARK_BLUE = 5022,
SPR_PALETTE_GLASS_LIGHT_BLUE = 5023,
SPR_PALETTE_GLASS_ICY_BLUE = 5024,
SPR_PALETTE_GLASS_TEAL = 5025,
SPR_PALETTE_GLASS_AQUAMARINE = 5026,
SPR_PALETTE_GLASS_SATURATED_GREEN = 5027,
SPR_PALETTE_GLASS_DARK_GREEN = 5028,
SPR_PALETTE_GLASS_MOSS_GREEN = 5029,
SPR_PALETTE_GLASS_BRIGHT_GREEN = 5030,
SPR_PALETTE_GLASS_OLIVE_GREEN = 5031,
SPR_PALETTE_GLASS_DARK_OLIVE_GREEN = 5032,
SPR_PALETTE_GLASS_BRIGHT_YELLOW = 5033,
SPR_PALETTE_GLASS_YELLOW = 5034,
SPR_PALETTE_GLASS_DARK_YELLOW = 5035,
SPR_PALETTE_GLASS_LIGHT_ORANGE = 5036,
SPR_PALETTE_GLASS_DARK_ORANGE = 5037,
SPR_PALETTE_GLASS_LIGHT_BROWN = 5038,
SPR_PALETTE_GLASS_SATURATED_BROWN = 5039,
SPR_PALETTE_GLASS_DARK_BROWN = 5040,
SPR_PALETTE_GLASS_SALMON_PINK = 5041,
SPR_PALETTE_GLASS_BORDEAUX_RED = 5042,
SPR_PALETTE_GLASS_SATURATED_RED = 5043,
SPR_PALETTE_GLASS_BRIGHT_RED = 5044,
SPR_PALETTE_GLASS_DARK_PINK = 5045,
SPR_PALETTE_GLASS_BRIGHT_PINK = 5046,
SPR_PALETTE_GLASS_LIGHT_PINK = 5047,
};
const FILTER_PALETTE_ID GlassPaletteIds[COLOUR_COUNT] = {
PALETTE_GLASS_BLACK,
PALETTE_GLASS_GREY,
PALETTE_GLASS_WHITE,
PALETTE_GLASS_DARK_PURPLE,
PALETTE_GLASS_LIGHT_PURPLE,
PALETTE_GLASS_BRIGHT_PURPLE,
PALETTE_GLASS_DARK_BLUE,
PALETTE_GLASS_LIGHT_BLUE,
PALETTE_GLASS_ICY_BLUE,
PALETTE_GLASS_TEAL,
PALETTE_GLASS_AQUAMARINE,
PALETTE_GLASS_SATURATED_GREEN,
PALETTE_GLASS_DARK_GREEN,
PALETTE_GLASS_MOSS_GREEN,
PALETTE_GLASS_BRIGHT_GREEN,
PALETTE_GLASS_OLIVE_GREEN,
PALETTE_GLASS_DARK_OLIVE_GREEN,
PALETTE_GLASS_BRIGHT_YELLOW,
PALETTE_GLASS_YELLOW,
PALETTE_GLASS_DARK_YELLOW,
PALETTE_GLASS_LIGHT_ORANGE,
PALETTE_GLASS_DARK_ORANGE,
PALETTE_GLASS_LIGHT_BROWN,
PALETTE_GLASS_SATURATED_BROWN,
PALETTE_GLASS_DARK_BROWN,
PALETTE_GLASS_SALMON_PINK,
PALETTE_GLASS_BORDEAUX_RED,
PALETTE_GLASS_SATURATED_RED,
PALETTE_GLASS_BRIGHT_RED,
PALETTE_GLASS_DARK_PINK,
PALETTE_GLASS_BRIGHT_PINK,
PALETTE_GLASS_LIGHT_PINK,
};
// Previously 0x97FCBC use it to get the correct palette from g1_elements
@ -229,39 +297,38 @@ const uint16 palette_to_g1_offset[PALETTE_TO_G1_OFFSET_COUNT] = {
5010, 0x1393, 0x1394, // PALETTE_TRANSLUCENT_LIGHT_PINK
5013, 0x1396, 0x1397, // PALETTE_TRANSLUCENT_WHITE
// Used by SMALL_SCENERY_FLAG_HAS_GLASS
0x1398, // 112 + BLACK
0x1399, // 112 + GREY
0x139A, // 112 + WHITE
0x139B, // 112 + DARK_PURPLE
0x139C, // 112 + LIGHT_PURPLE
0x139D, // 112 + BRIGHT_PURPLE
0x139E, // 112 + DARK_BLUE
0x139F, // 112 + LIGHT_BLUE
0x13A0, // 112 + ICY_BLUE
0x13A1, // 112 + TEAL
0x13A2, // 112 + AQUAMARINE
0x13A3, // 112 + SATURATED_GREEN
0x13A4, // 112 + DARK_GREEN
0x13A5, // 112 + MOSS_GREEN
0x13A6, // 112 + BRIGHT_GREEN
0x13A7, // 112 + OLIVE_GREEN
0x13A8, // 112 + DARK_OLIVE_GREEN
0x13A9, // 112 + BRIGHT_YELLOW
0x13AA, // 112 + YELLOW
0x13AB, // 112 + DARK_YELLOW
0x13AC, // 112 + LIGHT_ORANGE
0x13AD, // 112 + DARK_ORANGE
0x13AE, // 112 + LIGHT_BROWN
0x13AF, // 112 + SATURATED_BROWN
0x13B0, // 112 + DARK_BROWN
0x13B1, // 112 + SALMON_PINK
0x13B2, // 112 + BORDEAUX_RED
0x13B3, // 112 + SATURATED_RED
0x13B4, // 112 + BRIGHT_RED
0x13B5, // 112 + DARK_PINK
0x13B6, // 112 + BRIGHT_PINK
0x13B7, // 112 + LIGHT_PINK
SPR_PALETTE_GLASS_BLACK,
SPR_PALETTE_GLASS_GREY,
SPR_PALETTE_GLASS_WHITE,
SPR_PALETTE_GLASS_DARK_PURPLE,
SPR_PALETTE_GLASS_LIGHT_PURPLE,
SPR_PALETTE_GLASS_BRIGHT_PURPLE,
SPR_PALETTE_GLASS_DARK_BLUE,
SPR_PALETTE_GLASS_LIGHT_BLUE,
SPR_PALETTE_GLASS_ICY_BLUE,
SPR_PALETTE_GLASS_TEAL,
SPR_PALETTE_GLASS_AQUAMARINE,
SPR_PALETTE_GLASS_SATURATED_GREEN,
SPR_PALETTE_GLASS_DARK_GREEN,
SPR_PALETTE_GLASS_MOSS_GREEN,
SPR_PALETTE_GLASS_BRIGHT_GREEN,
SPR_PALETTE_GLASS_OLIVE_GREEN,
SPR_PALETTE_GLASS_DARK_OLIVE_GREEN,
SPR_PALETTE_GLASS_BRIGHT_YELLOW,
SPR_PALETTE_GLASS_YELLOW,
SPR_PALETTE_GLASS_DARK_YELLOW,
SPR_PALETTE_GLASS_LIGHT_ORANGE,
SPR_PALETTE_GLASS_DARK_ORANGE,
SPR_PALETTE_GLASS_LIGHT_BROWN,
SPR_PALETTE_GLASS_SATURATED_BROWN,
SPR_PALETTE_GLASS_DARK_BROWN,
SPR_PALETTE_GLASS_SALMON_PINK,
SPR_PALETTE_GLASS_BORDEAUX_RED,
SPR_PALETTE_GLASS_SATURATED_RED,
SPR_PALETTE_GLASS_BRIGHT_RED,
SPR_PALETTE_GLASS_DARK_PINK,
SPR_PALETTE_GLASS_BRIGHT_PINK,
SPR_PALETTE_GLASS_LIGHT_PINK,
};
/** rct2: 0x009DEDF4 */

View File

@ -132,8 +132,38 @@ typedef enum {
PALETTE_TRANSLUCENT_LIGHT_PINK = 106,
PALETTE_TRANSLUCENT_WHITE = 109,
PALETTE_132 = 112 + COLOUR_LIGHT_ORANGE,
PALETTE_139 = 112 + COLOUR_SATURATED_RED,
PALETTE_GLASS_BLACK = 112 + COLOUR_BLACK,
PALETTE_GLASS_GREY = 112 + COLOUR_GREY,
PALETTE_GLASS_WHITE = 112 + COLOUR_WHITE,
PALETTE_GLASS_DARK_PURPLE = 112 + COLOUR_DARK_PURPLE,
PALETTE_GLASS_LIGHT_PURPLE = 112 + COLOUR_LIGHT_PURPLE,
PALETTE_GLASS_BRIGHT_PURPLE = 112 + COLOUR_BRIGHT_PURPLE,
PALETTE_GLASS_DARK_BLUE = 112 + COLOUR_DARK_BLUE,
PALETTE_GLASS_LIGHT_BLUE = 112 + COLOUR_LIGHT_BLUE,
PALETTE_GLASS_ICY_BLUE = 112 + COLOUR_ICY_BLUE,
PALETTE_GLASS_TEAL = 112 + COLOUR_TEAL,
PALETTE_GLASS_AQUAMARINE = 112 + COLOUR_AQUAMARINE,
PALETTE_GLASS_SATURATED_GREEN = 112 + COLOUR_SATURATED_GREEN,
PALETTE_GLASS_DARK_GREEN = 112 + COLOUR_DARK_GREEN,
PALETTE_GLASS_MOSS_GREEN = 112 + COLOUR_MOSS_GREEN,
PALETTE_GLASS_BRIGHT_GREEN = 112 + COLOUR_BRIGHT_GREEN,
PALETTE_GLASS_OLIVE_GREEN = 112 + COLOUR_OLIVE_GREEN,
PALETTE_GLASS_DARK_OLIVE_GREEN = 112 + COLOUR_DARK_OLIVE_GREEN,
PALETTE_GLASS_BRIGHT_YELLOW = 112 + COLOUR_BRIGHT_YELLOW,
PALETTE_GLASS_YELLOW = 112 + COLOUR_YELLOW,
PALETTE_GLASS_DARK_YELLOW = 112 + COLOUR_DARK_YELLOW,
PALETTE_GLASS_LIGHT_ORANGE = 112 + COLOUR_LIGHT_ORANGE,
PALETTE_GLASS_DARK_ORANGE = 112 + COLOUR_DARK_ORANGE,
PALETTE_GLASS_LIGHT_BROWN = 112 + COLOUR_LIGHT_BROWN,
PALETTE_GLASS_SATURATED_BROWN = 112 + COLOUR_SATURATED_BROWN,
PALETTE_GLASS_DARK_BROWN = 112 + COLOUR_DARK_BROWN,
PALETTE_GLASS_SALMON_PINK = 112 + COLOUR_SALMON_PINK,
PALETTE_GLASS_BORDEAUX_RED = 112 + COLOUR_BORDEAUX_RED,
PALETTE_GLASS_SATURATED_RED = 112 + COLOUR_SATURATED_RED,
PALETTE_GLASS_BRIGHT_RED = 112 + COLOUR_BRIGHT_RED,
PALETTE_GLASS_DARK_PINK = 112 + COLOUR_DARK_PINK,
PALETTE_GLASS_BRIGHT_PINK = 112 + COLOUR_BRIGHT_PINK,
PALETTE_GLASS_LIGHT_PINK = 112 + COLOUR_LIGHT_PINK,
} FILTER_PALETTE_ID;
typedef struct rct_g1_header {
@ -182,6 +212,7 @@ extern uint16 gCurrentFontFlags;
extern uint8 gGamePalette[256 * 4];
extern uint32 gPaletteEffectFrame;
extern const FILTER_PALETTE_ID GlassPaletteIds[COLOUR_COUNT];
extern const uint16 palette_to_g1_offset[];
extern uint8 gPeepPalette[256];
extern uint8 gOtherPalette[256];

View File

@ -54,7 +54,9 @@ enum {
COLOUR_BRIGHT_RED,
COLOUR_DARK_PINK,
COLOUR_BRIGHT_PINK,
COLOUR_LIGHT_PINK
COLOUR_LIGHT_PINK,
COLOUR_COUNT
};
/**
@ -89,7 +91,7 @@ typedef struct rct_colour_map {
uint8 colour_11;
} rct_colour_map;
extern rct_colour_map ColourMapA[32];
extern rct_colour_map ColourMapA[COLOUR_COUNT];
void colours_init_maps();

View File

@ -73,7 +73,7 @@ static void ride_entrance_exit_paint(uint8 direction, int height, rct_map_elemen
uint8 colour_1, colour_2;
uint32 transparant_image_id = 0, image_id = 0;
if (style->base_image_id & 0x40000000) {
colour_1 = ride->track_colour_main[0] + 0x70;
colour_1 = GlassPaletteIds[ride->track_colour_main[0]];
transparant_image_id = (colour_1 << 19) | 0x40000000;
}

View File

@ -134,7 +134,7 @@ void scenery_paint(uint8 direction, int height, rct_map_element* mapElement) {
if (dword_F64EB0 == 0) {
// Draw translucent overlay:
// TODO: Name palette entries
int image_id = (baseImageid & 0x7FFFF) + (((mapElement->properties.scenery.colour_1 & 0x1F) + 112) << 19) + 0x40000004;
int image_id = (baseImageid & 0x7FFFF) + (GlassPaletteIds[(mapElement->properties.scenery.colour_1 & 0x1F)] << 19) + 0x40000004;
sub_98199C(image_id, x_offset, y_offset, boxlength.x, boxlength.y, boxlength.z - 1, height, boxoffset.x, boxoffset.y, boxoffset.z, rotation);
}
}

View File

@ -162,7 +162,7 @@ static void window_error_paint(rct_window *w, rct_drawpixelinfo *dpi)
b = w->y + w->height - 1;
gfx_filter_rect(dpi, l + 1, t + 1, r - 1, b - 1, PALETTE_45);
gfx_filter_rect(dpi, l, t, r, b, PALETTE_139);
gfx_filter_rect(dpi, l, t, r, b, PALETTE_GLASS_SATURATED_RED);
gfx_filter_rect(dpi, l, t + 2, l, b - 2, PALETTE_47);
gfx_filter_rect(dpi, r, t + 2, r, b - 2, PALETTE_47);

View File

@ -4689,7 +4689,7 @@ static void window_ride_colour_paint(rct_window *w, rct_drawpixelinfo *dpi)
terniaryColour = 0;
if (entranceStyle->base_image_id & 0x40000000) {
terniaryColour = 0x40000000 | ((trackColour.main + 112) << 19);
terniaryColour = 0x40000000 | (GlassPaletteIds[trackColour.main] << 19);
}
spriteIndex = (trackColour.additional << 24) | (trackColour.main << 19);

View File

@ -1147,7 +1147,7 @@ void window_scenery_scrollpaint(rct_window *w, rct_drawpixelinfo *dpi, int scrol
gfx_draw_sprite(&clipdpi, imageId, 0x2F, (sceneryEntry->wall.height * 2) + 0x32,
tertiaryColour);
imageId = (sceneryEntry->image + 0x40000006) | ((gWindowSceneryPrimaryColour + 0x70) << 19);
imageId = (sceneryEntry->image + 0x40000006) | (GlassPaletteIds[gWindowSceneryPrimaryColour] << 19);
gfx_draw_sprite(&clipdpi, imageId, 0x2F, (sceneryEntry->wall.height * 2) + 0x32,
tertiaryColour);
}
@ -1202,7 +1202,7 @@ void window_scenery_scrollpaint(rct_window *w, rct_drawpixelinfo *dpi, int scrol
if (sceneryEntry->small_scenery.flags & SMALL_SCENERY_FLAG_HAS_GLASS) {
imageId = ((sceneryEntry->image + gWindowSceneryRotation) + 0x40000004) +
((gWindowSceneryPrimaryColour + 0x70) << 19);
(GlassPaletteIds[gWindowSceneryPrimaryColour] << 19);
gfx_draw_sprite(&clipdpi, imageId, 0x20, spriteTop, w->colours[1]);
}

View File

@ -195,7 +195,7 @@ static void window_tooltip_paint(rct_window *w, rct_drawpixelinfo *dpi)
// Background
gfx_filter_rect(dpi, left + 1, top + 1, right - 1, bottom - 1, PALETTE_45);
gfx_filter_rect(dpi, left + 1, top + 1, right - 1, bottom - 1, PALETTE_132);
gfx_filter_rect(dpi, left + 1, top + 1, right - 1, bottom - 1, PALETTE_GLASS_LIGHT_ORANGE);
// Sides
gfx_filter_rect(dpi, left + 0, top + 2, left + 0, bottom - 2, PALETTE_47);