From 198ebd0cb1cd1ce4ef845324213bbfce51bff8f6 Mon Sep 17 00:00:00 2001 From: Marijn van der Werf Date: Sat, 6 Aug 2016 19:47:55 +0200 Subject: [PATCH] Use constants for colours --- src/drawing/rect.c | 2 +- src/drawing/string.c | 14 +++++++------- src/interface/colour.h | 2 ++ src/interface/widget.c | 6 +++--- src/windows/about.c | 6 +++--- src/windows/banner.c | 2 +- src/windows/debug_paint.c | 2 +- src/windows/dropdown.c | 6 +++--- src/windows/editor_bottom_toolbar.c | 6 +++--- src/windows/loadsave.c | 8 ++++---- src/windows/music_credits.c | 6 +++--- src/windows/ride_construction.c | 6 +++--- src/windows/server_list.c | 6 +++--- src/windows/sign.c | 10 +++++----- src/windows/title_logo.c | 6 +++--- src/windows/title_menu.c | 2 +- 16 files changed, 46 insertions(+), 44 deletions(-) diff --git a/src/drawing/rect.c b/src/drawing/rect.c index 1163fb7500..8dc5ebcd17 100644 --- a/src/drawing/rect.c +++ b/src/drawing/rect.c @@ -45,7 +45,7 @@ void gfx_fill_rect_inset(rct_drawpixelinfo* dpi, short left, short top, short ri if (colour & 0x180) { if (colour & 0x100) { - colour = colour & 0x7F; + colour = NOT_TRANSLUCENT(colour); } else { colour = RCT2_ADDRESS(0x009DEDF4,uint8)[colour]; } diff --git a/src/drawing/string.c b/src/drawing/string.c index 1dd614f654..6473c30cb9 100644 --- a/src/drawing/string.c +++ b/src/drawing/string.c @@ -1209,7 +1209,7 @@ static void ttf_process_string(rct_drawpixelinfo *dpi, const utf8 *text, text_dr static void ttf_process_initial_colour(int colour, text_draw_info *info) { if (colour != 254 && colour != 255) { - info->flags &= ~(1 | 2 | 4 | 8); + info->flags &= ~(TEXT_DRAW_FLAG_INSET | TEXT_DRAW_FLAG_OUTLINE | 4 | 8); if ((sint16)info->font_sprite_base < 0) { info->flags |= 4; if ((sint16)info->font_sprite_base != -1) { @@ -1217,18 +1217,18 @@ static void ttf_process_initial_colour(int colour, text_draw_info *info) } info->font_sprite_base = 224; } - if (colour & (1 << 5)) { + if (colour & COLOUR_FLAG_OUTLINE) { info->flags |= TEXT_DRAW_FLAG_OUTLINE; } - colour &= ~(1 << 5); - if (!(colour & (1 << 6))) { - if (!(info->flags & 1)) { + colour &= ~COLOUR_FLAG_OUTLINE; + if (!(colour & COLOUR_FLAG_INSET)) { + if (!(info->flags & TEXT_DRAW_FLAG_INSET)) { uint16 flags = info->flags; colour_char_window(colour, &flags, (uint8*)&info->palette); } } else { - info->flags |= 1; - colour &= 0x1F; + info->flags |= TEXT_DRAW_FLAG_INSET; + colour &= ~COLOUR_FLAG_INSET; uint32 eax; if (info->flags & 4) { diff --git a/src/interface/colour.h b/src/interface/colour.h index fd4c0592c6..b20c36d057 100644 --- a/src/interface/colour.h +++ b/src/interface/colour.h @@ -65,6 +65,8 @@ enum { COLOUR_LIGHT_WATER = 10 }; +#define COLOUR_FLAG_OUTLINE (1 << 5) +#define COLOUR_FLAG_INSET (1 << 6) #define COLOUR_FLAG_TRANSLUCENT (1 << 7) #define TRANSLUCENT(x) ((x) | COLOUR_FLAG_TRANSLUCENT) #define NOT_TRANSLUCENT(x) ((x) & ~COLOUR_FLAG_TRANSLUCENT) diff --git a/src/interface/widget.c b/src/interface/widget.c index 4fc3c68ee0..d3e13af0f3 100644 --- a/src/interface/widget.c +++ b/src/interface/widget.c @@ -861,7 +861,7 @@ static void widget_draw_image(rct_drawpixelinfo *dpi, rct_window *w, int widgetI int t = w->y + widget->top; // Get the colour - uint8 colour = w->colours[widget->colour] & 0x7F; + uint8 colour = NOT_TRANSLUCENT(w->colours[widget->colour]); if (widget->type == WWT_4 || widget->type == WWT_COLOURBTN || widget->type == WWT_TRNBTN || widget->type == WWT_TAB) if (widget_is_pressed(w, widgetIndex) || widget_is_active_tool(w, widgetIndex)) @@ -870,12 +870,12 @@ static void widget_draw_image(rct_drawpixelinfo *dpi, rct_window *w, int widgetI if (widget_is_disabled(w, widgetIndex)) { // Draw greyed out (light border bottom right shadow) colour = w->colours[widget->colour]; - colour = ColourMapA[colour & 0x7F].lighter; + colour = ColourMapA[NOT_TRANSLUCENT(colour)].lighter; gfx_draw_sprite_solid(dpi, image, l + 1, t + 1, colour); // Draw greyed out (dark) colour = w->colours[widget->colour]; - colour = ColourMapA[colour & 0x7F].mid_light; + colour = ColourMapA[NOT_TRANSLUCENT(colour)].mid_light; gfx_draw_sprite_solid(dpi, image, l, t, colour); } else { if (image & 0x80000000) { diff --git a/src/windows/about.c b/src/windows/about.c index 411ce9548c..2b8ff85a02 100644 --- a/src/windows/about.c +++ b/src/windows/about.c @@ -96,9 +96,9 @@ void window_about_open() window->enabled_widgets = (1 << WIDX_CLOSE) | (1 << WIDX_MUSIC_CREDITS) | (1 << WIDX_PUBLISHER_CREDITS); window_init_scroll_widgets(window); - window->colours[0] = 7; - window->colours[1] = 7; - window->colours[2] = 7; + window->colours[0] = COLOUR_LIGHT_BLUE; + window->colours[1] = COLOUR_LIGHT_BLUE; + window->colours[2] = COLOUR_LIGHT_BLUE; } /** diff --git a/src/windows/banner.c b/src/windows/banner.c index 45452ea52b..e7521be533 100644 --- a/src/windows/banner.c +++ b/src/windows/banner.c @@ -231,7 +231,7 @@ static void window_banner_mousedown(int widgetIndex, rct_window*w, rct_widget* w switch (widgetIndex) { case WIDX_MAIN_COLOUR: - window_dropdown_show_colour(w, widget, w->colours[1] | 0x80, banner->colour); + window_dropdown_show_colour(w, widget, TRANSLUCENT(w->colours[1]), banner->colour); break; case WIDX_TEXT_COLOUR_DROPDOWN_BUTTON: diff --git a/src/windows/debug_paint.c b/src/windows/debug_paint.c index 9ddf7e8819..1e7790f7dc 100644 --- a/src/windows/debug_paint.c +++ b/src/windows/debug_paint.c @@ -103,7 +103,7 @@ void window_debug_paint_open() window_init_scroll_widgets(window); window_push_others_below(window); - window->colours[0] = COLOUR_BLACK | COLOUR_FLAG_TRANSLUCENT; + window->colours[0] = TRANSLUCENT(COLOUR_BLACK); window->colours[1] = COLOUR_GREY; } diff --git a/src/windows/dropdown.c b/src/windows/dropdown.c index 87f9fd440c..e8048c1683 100644 --- a/src/windows/dropdown.c +++ b/src/windows/dropdown.c @@ -305,7 +305,7 @@ static void window_dropdown_paint(rct_window *w, rct_drawpixelinfo *dpi) t += (_dropdown_item_height / 2); b = t; - if (w->colours[0] & 0x80) { + if (w->colours[0] & COLOUR_FLAG_TRANSLUCENT) { gfx_fill_rect(dpi, l, t, r, b, (RCT2_ADDRESS(0x009DEDF4, uint8)[w->colours[0]] | 0x02000000) + 1); gfx_fill_rect(dpi, l, t + 1, r, b + 1, (RCT2_ADDRESS(0x009DEDF4, uint8)[w->colours[0]] | 0x02000000) + 2); } else { @@ -344,12 +344,12 @@ static void window_dropdown_paint(rct_window *w, rct_drawpixelinfo *dpi) } // Calculate colour - colour = w->colours[0] & 0x7F; + colour = NOT_TRANSLUCENT(w->colours[0]); if (i == highlightedIndex) colour = 2; if (dropdown_is_disabled(i)) if (i < 64) - colour = (w->colours[0] & 0x7F) | 0x40; + colour = NOT_TRANSLUCENT(w->colours[0]) | 0x40; // Draw item string gfx_draw_string_left_clipped( diff --git a/src/windows/editor_bottom_toolbar.c b/src/windows/editor_bottom_toolbar.c index 72111396c7..006e5da84f 100644 --- a/src/windows/editor_bottom_toolbar.c +++ b/src/windows/editor_bottom_toolbar.c @@ -481,14 +481,14 @@ void window_editor_bottom_toolbar_paint(rct_window *w, rct_drawpixelinfo *dpi) window_editor_bottom_toolbar_widgets[WIDX_NEXT_IMAGE].left) / 2 + w->x; short stateY = w->height - 0x0C + w->y; gfx_draw_string_centred(dpi, EditorStepNames[gS6Info->editor_step], - stateX, stateY, (w->colours[2] & 0x7F) | 0x20, 0); + stateX, stateY, NOT_TRANSLUCENT(w->colours[2]) | COLOUR_FLAG_OUTLINE, 0); if (drawPreviousButton) { gfx_draw_sprite(dpi, SPR_PREVIOUS, window_editor_bottom_toolbar_widgets[WIDX_PREVIOUS_IMAGE].left + 6 + w->x, window_editor_bottom_toolbar_widgets[WIDX_PREVIOUS_IMAGE].top + 6 + w->y, 0); - int textColour = w->colours[1] & 0x7F; + int textColour = NOT_TRANSLUCENT(w->colours[1]); if (gHoverWidget.window_classification == WC_BOTTOM_TOOLBAR && gHoverWidget.widget_index == WIDX_PREVIOUS_STEP_BUTTON ) { @@ -512,7 +512,7 @@ void window_editor_bottom_toolbar_paint(rct_window *w, rct_drawpixelinfo *dpi) window_editor_bottom_toolbar_widgets[WIDX_NEXT_IMAGE].right - 29 + w->x, window_editor_bottom_toolbar_widgets[WIDX_NEXT_IMAGE].top + 6 + w->y, 0); - int textColour = w->colours[1] & 0x7F; + int textColour = NOT_TRANSLUCENT(w->colours[1]); if (gHoverWidget.window_classification == WC_BOTTOM_TOOLBAR && gHoverWidget.widget_index == WIDX_NEXT_STEP_BUTTON diff --git a/src/windows/loadsave.c b/src/windows/loadsave.c index ae033c3b70..73ff0b3f12 100644 --- a/src/windows/loadsave.c +++ b/src/windows/loadsave.c @@ -170,9 +170,9 @@ rct_window *window_loadsave_open(int type, char *defaultName) w = window_create_centred(WW, WH, &window_loadsave_events, WC_LOADSAVE, WF_STICK_TO_FRONT); w->widgets = window_loadsave_widgets; w->enabled_widgets = (1 << WIDX_CLOSE) | (1 << WIDX_UP) | (1 << WIDX_NEW) | (1 << WIDX_SORT_NAME) | (1 << WIDX_SORT_DATE) | (1 << WIDX_BROWSE) | (1 << WIDX_DEFAULT); - w->colours[0] = 7; - w->colours[1] = 7; - w->colours[2] = 7; + w->colours[0] = COLOUR_LIGHT_BLUE; + w->colours[1] = COLOUR_LIGHT_BLUE; + w->colours[2] = COLOUR_LIGHT_BLUE; } w->no_list_items = 0; @@ -878,7 +878,7 @@ static rct_window *window_overwrite_prompt_open(const char *name, const char *pa w->enabled_widgets = (1 << WIDX_CLOSE) | (1 << WIDX_OVERWRITE_CANCEL) | (1 << WIDX_OVERWRITE_OVERWRITE); window_init_scroll_widgets(w); w->flags |= WF_TRANSPARENT; - w->colours[0] = 154; + w->colours[0] = TRANSLUCENT(COLOUR_BORDEAUX_RED); safe_strcpy(_window_overwrite_prompt_name, name, sizeof(_window_overwrite_prompt_name)); safe_strcpy(_window_overwrite_prompt_path, path, sizeof(_window_overwrite_prompt_path)); diff --git a/src/windows/music_credits.c b/src/windows/music_credits.c index fdb11cafeb..358a8d7b69 100644 --- a/src/windows/music_credits.c +++ b/src/windows/music_credits.c @@ -95,9 +95,9 @@ void window_music_credits_open() window->enabled_widgets = 1 << WIDX_CLOSE; window_init_scroll_widgets(window); - window->colours[0] = 7; - window->colours[1] = 7; - window->colours[2] = 7; + window->colours[0] = COLOUR_LIGHT_BLUE; + window->colours[1] = COLOUR_LIGHT_BLUE; + window->colours[2] = COLOUR_LIGHT_BLUE; } diff --git a/src/windows/ride_construction.c b/src/windows/ride_construction.c index f8df87cc10..b766b0f5bc 100644 --- a/src/windows/ride_construction.c +++ b/src/windows/ride_construction.c @@ -553,9 +553,9 @@ rct_window *window_ride_construction_open() window_init_scroll_widgets(w); - w->colours[0] = 24; - w->colours[1] = 24; - w->colours[2] = 24; + w->colours[0] = COLOUR_DARK_BROWN; + w->colours[1] = COLOUR_DARK_BROWN; + w->colours[2] = COLOUR_DARK_BROWN; w->number = rideIndex; diff --git a/src/windows/server_list.c b/src/windows/server_list.c index fb16c361ac..2ddf52f4c7 100644 --- a/src/windows/server_list.c +++ b/src/windows/server_list.c @@ -179,9 +179,9 @@ void window_server_list_open() window->page = 0; window->list_information_type = 0; - window->colours[0] = 1; - window->colours[1] = 26; - window->colours[2] = 26; + window->colours[0] = COLOUR_GREY; + window->colours[1] = COLOUR_BORDEAUX_RED; + window->colours[2] = COLOUR_BORDEAUX_RED; window_set_resize(window, WWIDTH_MIN, WHEIGHT_MIN, WWIDTH_MAX, WHEIGHT_MAX); diff --git a/src/windows/sign.c b/src/windows/sign.c index dcacc740bb..f36d0ed107 100644 --- a/src/windows/sign.c +++ b/src/windows/sign.c @@ -275,10 +275,10 @@ static void window_sign_mousedown(int widgetIndex, rct_window*w, rct_widget* wid { switch (widgetIndex) { case WIDX_MAIN_COLOUR: - window_dropdown_show_colour(w, widget, w->colours[1] | 0x80, (uint8)w->list_information_type); + window_dropdown_show_colour(w, widget, TRANSLUCENT(w->colours[1]), (uint8)w->list_information_type); break; case WIDX_TEXT_COLOUR: - window_dropdown_show_colour(w, widget, w->colours[1] | 0x80, (uint8)w->var_492); + window_dropdown_show_colour(w, widget, TRANSLUCENT(w->colours[1]), (uint8)w->var_492); break; } } @@ -425,9 +425,9 @@ void window_sign_small_open(rct_windownumber number){ w->number = number; window_init_scroll_widgets(w); - w->colours[0] = 24; - w->colours[1] = 24; - w->colours[2] = 24; + w->colours[0] = COLOUR_DARK_BROWN; + w->colours[1] = COLOUR_DARK_BROWN; + w->colours[2] = COLOUR_DARK_BROWN; int view_x = gBanners[w->number].x << 5; int view_y = gBanners[w->number].y << 5; diff --git a/src/windows/title_logo.c b/src/windows/title_logo.c index 1fac428777..1b4439c005 100644 --- a/src/windows/title_logo.c +++ b/src/windows/title_logo.c @@ -86,9 +86,9 @@ void window_title_logo_open() ); window->widgets = window_title_logo_widgets; window_init_scroll_widgets(window); - window->colours[0] = 129; - window->colours[1] = 129; - window->colours[2] = 129; + window->colours[0] = TRANSLUCENT(COLOUR_GREY); + window->colours[1] = TRANSLUCENT(COLOUR_GREY); + window->colours[2] = TRANSLUCENT(COLOUR_GREY); } /** diff --git a/src/windows/title_menu.c b/src/windows/title_menu.c index 7414aa05d8..cb83d49817 100644 --- a/src/windows/title_menu.c +++ b/src/windows/title_menu.c @@ -161,7 +161,7 @@ static void window_title_menu_mousedown(int widgetIndex, rct_window*w, rct_widge w->x + widget->left, w->y + widget->top, widget->bottom - widget->top + 1, - w->colours[0] | 0x80, + TRANSLUCENT(w->colours[0]), DROPDOWN_FLAG_STAY_OPEN, 4 );