diff --git a/src/bootstrap_gui.cpp b/src/bootstrap_gui.cpp index 7202bfa6a9..88057c6335 100644 --- a/src/bootstrap_gui.cpp +++ b/src/bootstrap_gui.cpp @@ -386,10 +386,10 @@ bool HandleBootstrap() /* Initialise the palette. The biggest step is 'faking' some recolour sprites. * This way the mauve and gray colours work and we can show the user interface. */ GfxInitPalettes(); - static const uint8_t offsets[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x80, 0, 0, 0, 0x04, 0x08 }; + static const EnumIndexArray offsets = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x80, 0, 0, 0, 0x04, 0x08 }; for (Colours i = Colours::Begin; i != Colours::End; i++) { - for (ColourShade j = SHADE_BEGIN; j < SHADE_END; j++) { - SetColourGradient(i, j, PixelColour(offsets[to_underlying(i)] + j)); + for (Shade j = Shade::Begin; j < Shade::End; j++) { + SetColourGradient(i, j, PixelColour(offsets[i] + to_underlying(j))); } } diff --git a/src/build_vehicle_gui.cpp b/src/build_vehicle_gui.cpp index 86ad70d048..98990e0b98 100644 --- a/src/build_vehicle_gui.cpp +++ b/src/build_vehicle_gui.cpp @@ -934,7 +934,7 @@ void DrawEngineList(VehicleType type, const Rect &r, const GUIEngineList &eng_li int sprite_right = GetVehicleImageCellSize(type, EIT_PURCHASE).extend_right; int sprite_width = sprite_left + sprite_right; int circle_width = std::max(GetScaledSpriteSize(SPR_CIRCLE_FOLDED).width, GetScaledSpriteSize(SPR_CIRCLE_UNFOLDED).width); - PixelColour linecolour = GetColourGradient(Colours::Orange, SHADE_NORMAL); + PixelColour linecolour = GetColourGradient(Colours::Orange, Shade::Normal); auto badge_column_widths = badge_classes.GetColumnWidths(); diff --git a/src/company_cmd.cpp b/src/company_cmd.cpp index 8333149346..8ecc9d7938 100644 --- a/src/company_cmd.cpp +++ b/src/company_cmd.cpp @@ -156,8 +156,8 @@ void SetLocalCompany(CompanyID new_company) */ TextColour GetDrawStringCompanyColour(CompanyID company) { - if (!Company::IsValidID(company)) return GetColourGradient(Colours::White, SHADE_NORMAL).ToTextColour(); - return GetColourGradient(_company_colours[company], SHADE_NORMAL).ToTextColour(); + if (!Company::IsValidID(company)) return GetColourGradient(Colours::White, Shade::Normal).ToTextColour(); + return GetColourGradient(_company_colours[company], Shade::Normal).ToTextColour(); } /** diff --git a/src/console_gui.cpp b/src/console_gui.cpp index 6ad074ae1c..29a404167a 100644 --- a/src/console_gui.cpp +++ b/src/console_gui.cpp @@ -548,7 +548,7 @@ bool IsValidConsoleColour(TextColour c) * colour gradient, so it must be one of those. */ c &= ~TC_IS_PALETTE_COLOUR; for (Colours i = Colours::Begin; i < Colours::End; i++) { - if (GetColourGradient(i, SHADE_NORMAL).p == c) return true; + if (GetColourGradient(i, Shade::Normal).p == c) return true; } return false; diff --git a/src/depot_gui.cpp b/src/depot_gui.cpp index 1329b3931f..3015e2f659 100644 --- a/src/depot_gui.cpp +++ b/src/depot_gui.cpp @@ -418,7 +418,7 @@ struct DepotWindow : Window { */ if (this->type == VehicleType::Train && _consistent_train_width != 0) { int w = ScaleSpriteTrad(2 * _consistent_train_width); - PixelColour col = GetColourGradient(wid->colour, SHADE_NORMAL); + PixelColour col = GetColourGradient(wid->colour, Shade::Normal); Rect image = ir.Indent(this->header_width, rtl).Indent(this->count_width, !rtl); int first_line = w + (-this->hscroll->GetPosition()) % w; if (rtl) { diff --git a/src/dropdown_common_type.h b/src/dropdown_common_type.h index 0607f0f0df..bcdb62dd61 100644 --- a/src/dropdown_common_type.h +++ b/src/dropdown_common_type.h @@ -38,8 +38,8 @@ public: void Draw(const Rect &full, const Rect &, bool, int, Colours bg_colour) const override { - PixelColour c1 = GetColourGradient(bg_colour, SHADE_DARK); - PixelColour c2 = GetColourGradient(bg_colour, SHADE_LIGHTEST); + PixelColour c1 = GetColourGradient(bg_colour, Shade::Dark); + PixelColour c2 = GetColourGradient(bg_colour, Shade::Lightest); int mid = CentreBounds(full.top, full.bottom, 0); GfxFillRect(full.WithY(mid - WidgetDimensions::scaled.bevel.bottom, mid - 1), c1); diff --git a/src/dropdown_type.h b/src/dropdown_type.h index a80454701e..dfb5fb73c0 100644 --- a/src/dropdown_type.h +++ b/src/dropdown_type.h @@ -76,7 +76,7 @@ public: */ virtual void Draw(const Rect &full, [[maybe_unused]] const Rect &r, [[maybe_unused]] bool sel, [[maybe_unused]] int click_result, Colours bg_colour) const { - if (this->masked) GfxFillRect(full, GetColourGradient(bg_colour, SHADE_LIGHT), FillRectMode::Checker); + if (this->masked) GfxFillRect(full, GetColourGradient(bg_colour, Shade::Light), FillRectMode::Checker); } /** diff --git a/src/fios_gui.cpp b/src/fios_gui.cpp index 38f1f97f55..3bdf26d1c3 100644 --- a/src/fios_gui.cpp +++ b/src/fios_gui.cpp @@ -573,7 +573,7 @@ public: tr.top += HEADER_HEIGHT; /* Create the nice lighter rectangle at the details top */ - GfxFillRect(r.WithHeight(HEADER_HEIGHT).Shrink(WidgetDimensions::scaled.bevel.left, WidgetDimensions::scaled.bevel.top, WidgetDimensions::scaled.bevel.right, 0), GetColourGradient(Colours::Grey, SHADE_LIGHTEST)); + GfxFillRect(r.WithHeight(HEADER_HEIGHT).Shrink(WidgetDimensions::scaled.bevel.left, WidgetDimensions::scaled.bevel.top, WidgetDimensions::scaled.bevel.right, 0), GetColourGradient(Colours::Grey, Shade::Lightest)); DrawString(hr.left, hr.right, hr.top, STR_SAVELOAD_DETAIL_CAPTION, TC_FROMSTRING, SA_HOR_CENTER); if (this->selected == nullptr) return; diff --git a/src/graph_gui.cpp b/src/graph_gui.cpp index 82c0cb3d46..9f2c283fff 100644 --- a/src/graph_gui.cpp +++ b/src/graph_gui.cpp @@ -725,7 +725,7 @@ public: DrawString(text, str, (this->highlight_state && this->highlight_range == index) ? TC_WHITE : TC_BLACK, SA_CENTER, false, FontSize::Small); if (HasBit(this->masked_range, index)) { - GfxFillRect(line.Shrink(WidgetDimensions::scaled.bevel), GetColourGradient(Colours::Brown, SHADE_DARKER), FillRectMode::Checker); + GfxFillRect(line.Shrink(WidgetDimensions::scaled.bevel), GetColourGradient(Colours::Brown, Shade::Darker), FillRectMode::Checker); } line = line.Translate(0, line_height); @@ -897,7 +897,7 @@ public: if (c == nullptr) continue; DataSet &dataset = this->data.emplace_back(); - dataset.colour = GetColourGradient(c->colour, SHADE_LIGHTER); + dataset.colour = GetColourGradient(c->colour, Shade::Lighter); dataset.exclude_bit = k.base(); for (int j = this->num_on_x_axis, i = 0; --j >= 0;) { @@ -1589,8 +1589,8 @@ struct PerformanceRatingDetailWindow : Window { ScoreID score_type = (ScoreID)(widget - WID_PRD_SCORE_FIRST); /* The colours used to show how the progress is going */ - PixelColour colour_done = GetColourGradient(Colours::Green, SHADE_NORMAL); - PixelColour colour_notdone = GetColourGradient(Colours::Red, SHADE_NORMAL); + PixelColour colour_done = GetColourGradient(Colours::Green, Shade::Normal); + PixelColour colour_notdone = GetColourGradient(Colours::Red, Shade::Normal); /* Draw all the score parts */ int64_t val = _score_part[company][score_type]; diff --git a/src/group_gui.cpp b/src/group_gui.cpp index 22ee6ff7c5..4d67f778cc 100644 --- a/src/group_gui.cpp +++ b/src/group_gui.cpp @@ -343,7 +343,7 @@ private: { /* Highlight the group if a vehicle is dragged over it */ if (g_id == this->group_over) { - GfxFillRect(r.Shrink(WidgetDimensions::scaled.bevel), GetColourGradient(Colours::Grey, SHADE_LIGHTEST)); + GfxFillRect(r.Shrink(WidgetDimensions::scaled.bevel), GetColourGradient(Colours::Grey, Shade::Lightest)); } if (g_id == NEW_GROUP) return; @@ -355,7 +355,7 @@ private: const int offset = (rtl ? -(int)this->column_size[VGC_FOLD].width : (int)this->column_size[VGC_FOLD].width) / 2; const int level_width = rtl ? -WidgetDimensions::scaled.hsep_indent : WidgetDimensions::scaled.hsep_indent; - const PixelColour linecolour = GetColourGradient(Colours::Orange, SHADE_NORMAL); + const PixelColour linecolour = GetColourGradient(Colours::Orange, Shade::Normal); r = r.Shrink(WidgetDimensions::scaled.framerect, RectPadding::zero); if (indent > 0) { @@ -708,7 +708,7 @@ public: for (auto it = first; it != last; ++it) { const Vehicle *v = it->GetSingleVehicle(); if (v->group_id != this->vli.ToGroupID()) { - GfxFillRect(mr.Shrink(WidgetDimensions::scaled.bevel), GetColourGradient(Colours::Grey, SHADE_DARK), FillRectMode::Checker); + GfxFillRect(mr.Shrink(WidgetDimensions::scaled.bevel), GetColourGradient(Colours::Grey, Shade::Dark), FillRectMode::Checker); } mr = mr.Translate(0, this->resize.step_height); } diff --git a/src/linkgraph/linkgraph_gui.cpp b/src/linkgraph/linkgraph_gui.cpp index dc08c6b5a0..ec2b7a999c 100644 --- a/src/linkgraph/linkgraph_gui.cpp +++ b/src/linkgraph/linkgraph_gui.cpp @@ -314,7 +314,7 @@ void LinkGraphOverlay::DrawContent(Point pta, Point ptb, const LinkProperties &c GfxDrawLine(pta.x, pta.y + offset_y, ptb.x, ptb.y + offset_y, colour, width, dash); } - GfxDrawLine(pta.x, pta.y, ptb.x, ptb.y, GetColourGradient(Colours::Grey, SHADE_DARKEST), width); + GfxDrawLine(pta.x, pta.y, ptb.x, ptb.y, GetColourGradient(Colours::Grey, Shade::Darkest), width); } /** @@ -335,8 +335,8 @@ void LinkGraphOverlay::DrawStationDots(const DrawPixelInfo *dpi) const LinkGraphOverlay::DrawVertex(pt.x, pt.y, r, GetColourGradient(st->owner != OWNER_NONE ? - Company::Get(st->owner)->colour : Colours::Grey, SHADE_LIGHT), - GetColourGradient(Colours::Grey, SHADE_DARKEST)); + Company::Get(st->owner)->colour : Colours::Grey, Shade::Light), + GetColourGradient(Colours::Grey, Shade::Darkest)); } } diff --git a/src/main_gui.cpp b/src/main_gui.cpp index 73fc413c6e..55488359c4 100644 --- a/src/main_gui.cpp +++ b/src/main_gui.cpp @@ -556,8 +556,8 @@ void SetupColoursAndInitialWindow() for (Colours i = Colours::Begin; i != Colours::End; i++) { const uint8_t *b = GetNonSprite(GetColourPalette(i), SpriteType::Recolour) + 1; assert(b != nullptr); - for (ColourShade j = SHADE_BEGIN; j < SHADE_END; j++) { - SetColourGradient(i, j, PixelColour{b[0xC6 + j]}); + for (Shade j = Shade::Begin; j < Shade::End; j++) { + SetColourGradient(i, j, PixelColour{b[0xC6 + to_underlying(j)]}); } } diff --git a/src/misc_gui.cpp b/src/misc_gui.cpp index 647362c6b6..1f049561eb 100644 --- a/src/misc_gui.cpp +++ b/src/misc_gui.cpp @@ -746,7 +746,7 @@ void QueryString::DrawEditBox(const Window *w, WidgetID wid) const DrawFrameRect(cr, wi->colour, wi->IsLowered() ? FrameFlag::Lowered : FrameFlags{}); DrawSpriteIgnorePadding(rtl ? SPR_IMG_DELETE_RIGHT : SPR_IMG_DELETE_LEFT, PAL_NONE, cr, SA_CENTER); - if (this->text.GetText().empty()) GfxFillRect(cr.Shrink(WidgetDimensions::scaled.bevel), GetColourGradient(wi->colour, SHADE_DARKER), FillRectMode::Checker); + if (this->text.GetText().empty()) GfxFillRect(cr.Shrink(WidgetDimensions::scaled.bevel), GetColourGradient(wi->colour, Shade::Darker), FillRectMode::Checker); DrawFrameRect(fr, wi->colour, {FrameFlag::Lowered, FrameFlag::Darkened}); GfxFillRect(fr.Shrink(WidgetDimensions::scaled.bevel), PC_BLACK); diff --git a/src/network/network_content_gui.cpp b/src/network/network_content_gui.cpp index 1c2470c293..e9ad27ade4 100644 --- a/src/network/network_content_gui.cpp +++ b/src/network/network_content_gui.cpp @@ -718,7 +718,7 @@ public: tr.top += HEADER_HEIGHT; /* Create the nice darker rectangle at the details top */ - GfxFillRect(r.WithHeight(HEADER_HEIGHT).Shrink(WidgetDimensions::scaled.bevel.left, WidgetDimensions::scaled.bevel.top, WidgetDimensions::scaled.bevel.right, 0), GetColourGradient(Colours::LightBlue, SHADE_NORMAL)); + GfxFillRect(r.WithHeight(HEADER_HEIGHT).Shrink(WidgetDimensions::scaled.bevel.left, WidgetDimensions::scaled.bevel.top, WidgetDimensions::scaled.bevel.right, 0), GetColourGradient(Colours::LightBlue, Shade::Normal)); DrawString(hr.left, hr.right, hr.top, STR_CONTENT_DETAIL_TITLE, TC_FROMSTRING, SA_HOR_CENTER); /* Draw the total download size */ diff --git a/src/network/network_gui.cpp b/src/network/network_gui.cpp index 779c86aa22..7ada2c10f6 100644 --- a/src/network/network_gui.cpp +++ b/src/network/network_gui.cpp @@ -647,7 +647,7 @@ public: /* Draw the right menu */ /* Create the nice darker rectangle at the details top */ - GfxFillRect(r.WithHeight(header_height).Shrink(WidgetDimensions::scaled.bevel), GetColourGradient(Colours::LightBlue, SHADE_NORMAL)); + GfxFillRect(r.WithHeight(header_height).Shrink(WidgetDimensions::scaled.bevel), GetColourGradient(Colours::LightBlue, Shade::Normal)); hr.top = DrawStringMultiLine(hr, header_msg, TC_FROMSTRING, SA_HOR_CENTER); if (sel == nullptr) return; @@ -1496,7 +1496,7 @@ protected: DrawFrameRect(br, button->colour, {}); DrawSpriteIgnorePadding(button->sprite, PAL_NONE, br, SA_CENTER); if (button->disabled) { - GfxFillRect(br.Shrink(WidgetDimensions::scaled.bevel), GetColourGradient(button->colour, SHADE_DARKER), FillRectMode::Checker); + GfxFillRect(br.Shrink(WidgetDimensions::scaled.bevel), GetColourGradient(button->colour, Shade::Darker), FillRectMode::Checker); } r = r.Indent(button->width + WidgetDimensions::scaled.hsep_normal, !rtl); } diff --git a/src/newgrf_gui.cpp b/src/newgrf_gui.cpp index 9ad832a02d..72b0f715f9 100644 --- a/src/newgrf_gui.cpp +++ b/src/newgrf_gui.cpp @@ -907,7 +907,7 @@ struct NewGRFWindow : public Window, NewGRFScanCallback { case WID_NS_NEWGRF_INFO_TITLE: { /* Create the nice darker rectangle at the details top. */ - GfxFillRect(r.Shrink(WidgetDimensions::scaled.bevel), GetColourGradient(Colours::Mauve, SHADE_NORMAL)); + GfxFillRect(r.Shrink(WidgetDimensions::scaled.bevel), GetColourGradient(Colours::Mauve, Shade::Normal)); DrawString(r.left, r.right, CentreBounds(r.top, r.bottom, GetCharacterHeight(FontSize::Normal)), STR_NEWGRF_SETTINGS_INFO_TITLE, TC_FROMSTRING, SA_HOR_CENTER); break; } diff --git a/src/order_gui.cpp b/src/order_gui.cpp index fabd06d163..6e9f0bb5c2 100644 --- a/src/order_gui.cpp +++ b/src/order_gui.cpp @@ -1104,7 +1104,7 @@ public: int top = (this->order_over < this->selected_order ? y : y + line_height) - WidgetDimensions::scaled.framerect.top; int bottom = std::min(top + 2, ir.bottom); top = std::max(top - 3, ir.top); - GfxFillRect(ir.left, top, ir.right, bottom, GetColourGradient(Colours::Grey, SHADE_LIGHTEST)); + GfxFillRect(ir.left, top, ir.right, bottom, GetColourGradient(Colours::Grey, Shade::Lightest)); break; } y += line_height; diff --git a/src/palette.cpp b/src/palette.cpp index 617b0d23ec..0c9c1887f5 100644 --- a/src/palette.cpp +++ b/src/palette.cpp @@ -379,7 +379,7 @@ TextColour GetContrastColour(PixelColour background, uint8_t threshold) */ struct ColourGradients { - using ColourGradient = std::array; + using ColourGradient = std::array; static inline std::array gradient{}; }; @@ -390,9 +390,9 @@ struct ColourGradients * @param shade Shade level from 1 to 7. * @returns palette index of colour. */ -PixelColour GetColourGradient(Colours colour, ColourShade shade) +PixelColour GetColourGradient(Colours colour, Shade shade) { - return ColourGradients::gradient[to_underlying(colour) % to_underlying(Colours::End)][shade % SHADE_END]; + return ColourGradients::gradient[to_underlying(colour) % to_underlying(Colours::End)][to_underlying(shade) % to_underlying(Shade::End)]; } /** @@ -401,9 +401,9 @@ PixelColour GetColourGradient(Colours colour, ColourShade shade) * @param shade Shade level from 1 to 7. * @param palette_index Palette index to set. */ -void SetColourGradient(Colours colour, ColourShade shade, PixelColour palette_index) +void SetColourGradient(Colours colour, Shade shade, PixelColour palette_index) { assert(colour < Colours::End); - assert(shade < SHADE_END); - ColourGradients::gradient[to_underlying(colour) % to_underlying(Colours::End)][shade % SHADE_END] = palette_index; + assert(shade < Shade::End); + ColourGradients::gradient[to_underlying(colour) % to_underlying(Colours::End)][to_underlying(shade) % to_underlying(Shade::End)] = palette_index; } diff --git a/src/palette_func.h b/src/palette_func.h index 89c0f5a61f..5b1ceb0d24 100644 --- a/src/palette_func.h +++ b/src/palette_func.h @@ -69,22 +69,24 @@ inline bool IsValidColours(Colours colours) TextColour GetContrastColour(PixelColour background, uint8_t threshold = 128); -enum ColourShade : uint8_t { - SHADE_BEGIN = 0, - SHADE_DARKEST = SHADE_BEGIN, - SHADE_DARKER, - SHADE_DARK, - SHADE_NORMAL, - SHADE_LIGHT, - SHADE_LIGHTER, - SHADE_LIGHTEST, - SHADE_LIGHTEREST, - SHADE_END, -}; -DECLARE_INCREMENT_DECREMENT_OPERATORS(ColourShade) +/** The eight shades of each company colour. Not all shaded are used. */ +enum class Shade : uint8_t { + Darkest, ///< Darkest colour shade. + Darker, ///< Darker colour shade. + Dark, ///< Dark colour shade. + Normal, ///< Normal colour shade. + Light, ///< Light colour shade. + Lighter, ///< Lighter colour shade. + Lightest, ///< Lightest colour shade. + Lighterest, ///< Lighterest colour shade. -PixelColour GetColourGradient(Colours colour, ColourShade shade); -void SetColourGradient(Colours colour, ColourShade shade, PixelColour palette_colour); + End, ///< End marker for iteration. + Begin = Shade::Darkest, ///< Begin marker for iteration. +}; +DECLARE_INCREMENT_DECREMENT_OPERATORS(Shade) + +PixelColour GetColourGradient(Colours colour, Shade shade); +void SetColourGradient(Colours colour, Shade shade, PixelColour palette_colour); /** * Return the colour for a particular greyscale level. diff --git a/src/picker_gui.cpp b/src/picker_gui.cpp index e79f27ba94..0efb849a66 100644 --- a/src/picker_gui.cpp +++ b/src/picker_gui.cpp @@ -414,7 +414,7 @@ void PickerWindow::DrawWidget(const Rect &r, WidgetID widget) const } if (!this->callbacks.IsTypeAvailable(item.class_index, item.index)) { - GfxFillRect(ir, GetColourGradient(Colours::Grey, SHADE_DARKER), FillRectMode::Checker); + GfxFillRect(ir, GetColourGradient(Colours::Grey, Shade::Darker), FillRectMode::Checker); } break; } diff --git a/src/settingentry_gui.cpp b/src/settingentry_gui.cpp index 85f427d40d..7f9c7e706f 100644 --- a/src/settingentry_gui.cpp +++ b/src/settingentry_gui.cpp @@ -99,7 +99,7 @@ uint BaseSettingEntry::Draw(GameSettings *settings_ptr, int left, int right, int int x = rtl ? right : left; if (cur_row >= first_row) { - PixelColour colour = GetColourGradient(Colours::Orange, SHADE_NORMAL); + PixelColour colour = GetColourGradient(Colours::Orange, Shade::Normal); y += (cur_row - first_row) * BaseSettingEntry::line_height; // Compute correct y start position /* Draw vertical for parent nesting levels */ diff --git a/src/settings_gui.cpp b/src/settings_gui.cpp index 8d42f27bc2..7de7b2b7fe 100644 --- a/src/settings_gui.cpp +++ b/src/settings_gui.cpp @@ -1878,7 +1878,7 @@ void ShowGameOptions() */ void DrawArrowButtons(int x, int y, Colours button_colour, uint8_t state, bool clickable_left, bool clickable_right) { - PixelColour colour = GetColourGradient(button_colour, SHADE_DARKER); + PixelColour colour = GetColourGradient(button_colour, Shade::Darker); Dimension dim = NWidgetScrollbar::GetHorizontalDimension(); Rect lr = {x, y, x + (int)dim.width - 1, y + (int)dim.height - 1}; @@ -1910,7 +1910,7 @@ void DrawArrowButtons(int x, int y, Colours button_colour, uint8_t state, bool c */ void DrawUpDownButtons(int x, int y, Colours button_colour, uint8_t state, bool clickable_up, bool clickable_down) { - PixelColour colour = GetColourGradient(button_colour, SHADE_DARKER); + PixelColour colour = GetColourGradient(button_colour, Shade::Darker); Rect r = {x, y, x + SETTING_BUTTON_WIDTH - 1, y + SETTING_BUTTON_HEIGHT - 1}; Rect ur = r.WithWidth(SETTING_BUTTON_WIDTH / 2, (_current_text_dir == TD_RTL)); @@ -1936,7 +1936,7 @@ void DrawUpDownButtons(int x, int y, Colours button_colour, uint8_t state, bool */ void DrawDropDownButton(int x, int y, Colours button_colour, bool state, bool clickable) { - PixelColour colour = GetColourGradient(button_colour, SHADE_DARKER); + PixelColour colour = GetColourGradient(button_colour, Shade::Darker); Rect r = {x, y, x + SETTING_BUTTON_WIDTH - 1, y + SETTING_BUTTON_HEIGHT - 1}; @@ -1962,13 +1962,13 @@ void DrawBoolButton(int x, int y, Colours button_colour, Colours background, boo Rect r = {x, y, x + SETTING_BUTTON_WIDTH - 1, y + SETTING_BUTTON_HEIGHT - 1}; DrawFrameRect(r, state ? Colours::Green : background, state ? FrameFlags{FrameFlag::Lowered} : FrameFlags{FrameFlag::Lowered, FrameFlag::BorderOnly}); if (!clickable) { - GfxFillRect(r.Shrink(WidgetDimensions::scaled.bevel), GetColourGradient(state ? Colours::Green : background, SHADE_DARKER), FillRectMode::Checker); + GfxFillRect(r.Shrink(WidgetDimensions::scaled.bevel), GetColourGradient(state ? Colours::Green : background, Shade::Darker), FillRectMode::Checker); } Rect button_rect = r.WithWidth(SETTING_BUTTON_WIDTH / 3, state ^ (_current_text_dir == TD_RTL)); DrawFrameRect(button_rect, button_colour, {}); if (!clickable) { - GfxFillRect(button_rect.Shrink(WidgetDimensions::scaled.bevel), GetColourGradient(button_colour, SHADE_DARKER), FillRectMode::Checker); + GfxFillRect(button_rect.Shrink(WidgetDimensions::scaled.bevel), GetColourGradient(button_colour, Shade::Darker), FillRectMode::Checker); } } diff --git a/src/slider.cpp b/src/slider.cpp index c82006bb7b..74beed0e1c 100644 --- a/src/slider.cpp +++ b/src/slider.cpp @@ -45,9 +45,9 @@ void DrawSliderWidget(Rect r, Colours wedge_colour, Colours handle_colour, TextC int wx1 = r.left + sw / 2; int wx2 = r.right - sw / 2; if (_current_text_dir == TD_RTL) std::swap(wx1, wx2); - const PixelColour shadow = GetColourGradient(wedge_colour, SHADE_DARK); - const PixelColour fill = GetColourGradient(wedge_colour, SHADE_LIGHTER); - const PixelColour light = GetColourGradient(wedge_colour, SHADE_LIGHTEST); + const PixelColour shadow = GetColourGradient(wedge_colour, Shade::Dark); + const PixelColour fill = GetColourGradient(wedge_colour, Shade::Lighter); + const PixelColour light = GetColourGradient(wedge_colour, Shade::Lightest); const std::array wedge{ Point{wx1, r.bottom - ha}, Point{wx2, r.top + ha}, Point{wx2, r.bottom - ha} }; GfxFillPolygon(wedge, fill); GfxDrawLine(wedge[0].x, wedge[0].y, wedge[2].x, wedge[2].y, light, t); diff --git a/src/smallmap_gui.cpp b/src/smallmap_gui.cpp index 11fb15e206..bbe863056b 100644 --- a/src/smallmap_gui.cpp +++ b/src/smallmap_gui.cpp @@ -345,7 +345,7 @@ void BuildOwnerLegend() int i = NUM_NO_COMPANY_ENTRIES; for (const Company *c : Company::Iterate()) { - _legend_land_owners[i].colour = GetColourGradient(c->colour, SHADE_LIGHT); + _legend_land_owners[i].colour = GetColourGradient(c->colour, Shade::Light); _legend_land_owners[i].company = c->index; _legend_land_owners[i].show_on_map = true; _legend_land_owners[i].col_break = false; diff --git a/src/train_gui.cpp b/src/train_gui.cpp index 06f7d4c458..4b79fd9d67 100644 --- a/src/train_gui.cpp +++ b/src/train_gui.cpp @@ -81,7 +81,7 @@ static int HighlightDragPosition(int px, int max_width, int y, VehicleID selecti int top = y - height / 2; Rect r = {drag_hlight_left, top, drag_hlight_right, top + height - 1}; /* Sprite-scaling is used here as the area is from sprite size */ - GfxFillRect(r.Shrink(ScaleSpriteTrad(1)), GetColourGradient(Colours::Grey, SHADE_LIGHTEST)); + GfxFillRect(r.Shrink(ScaleSpriteTrad(1)), GetColourGradient(Colours::Grey, Shade::Lightest)); } return drag_hlight_width; @@ -406,7 +406,7 @@ void DrawTrainDetails(const Train *v, const Rect &r, int vscroll_pos, uint16_t v if (vscroll_pos <= 0 && vscroll_pos > -vscroll_cap) { int py = r.top - line_height * vscroll_pos + text_y_offset; if (i > 0 || separate_sprite_row) { - if (vscroll_pos != 0) GfxFillRect(r.WithY(py - WidgetDimensions::scaled.matrix.top - 1, py - WidgetDimensions::scaled.matrix.top), GetColourGradient(Colours::Grey, SHADE_LIGHT)); + if (vscroll_pos != 0) GfxFillRect(r.WithY(py - WidgetDimensions::scaled.matrix.top - 1, py - WidgetDimensions::scaled.matrix.top), GetColourGradient(Colours::Grey, Shade::Light)); } switch (det_tab) { case TDW_TAB_CARGO: diff --git a/src/vehicle_gui.cpp b/src/vehicle_gui.cpp index 26525e447e..1a45f27a6e 100644 --- a/src/vehicle_gui.cpp +++ b/src/vehicle_gui.cpp @@ -704,7 +704,7 @@ static void DrawVehicleRefitWindow(const RefitOptions &refits, const RefitOption bool rtl = _current_text_dir == TD_RTL; uint iconwidth = std::max(GetSpriteSize(SPR_CIRCLE_FOLDED).width, GetSpriteSize(SPR_CIRCLE_UNFOLDED).width); uint iconheight = GetSpriteSize(SPR_CIRCLE_FOLDED).height; - PixelColour linecolour = GetColourGradient(Colours::Orange, SHADE_NORMAL); + PixelColour linecolour = GetColourGradient(Colours::Orange, Shade::Normal); int iconleft = rtl ? ir.right - iconwidth : ir.left; int iconcenter = rtl ? ir.right - iconwidth / 2 : ir.left + iconwidth / 2; diff --git a/src/viewport.cpp b/src/viewport.cpp index a582b5493a..4e843274ff 100644 --- a/src/viewport.cpp +++ b/src/viewport.cpp @@ -1789,7 +1789,7 @@ static void ViewportDrawStrings(ZoomLevel zoom, const StringSpriteToDrawVector * } if (ss.flags.Test(ViewportStringFlag::TextColour)) { - if (ss.colour != Colours::Invalid) colour = GetColourGradient(ss.colour, SHADE_LIGHTER).ToTextColour(); + if (ss.colour != Colours::Invalid) colour = GetColourGradient(ss.colour, Shade::Lighter).ToTextColour(); } int left = x + WidgetDimensions::scaled.fullbevel.left; diff --git a/src/widget.cpp b/src/widget.cpp index 37ee61a685..dbe1f0c19b 100644 --- a/src/widget.cpp +++ b/src/widget.cpp @@ -313,10 +313,10 @@ void DrawFrameRect(int left, int top, int right, int bottom, Colours colour, Fra } else { assert(colour < Colours::End); - const PixelColour dark = GetColourGradient(colour, SHADE_DARK); - const PixelColour medium_dark = GetColourGradient(colour, SHADE_LIGHT); - const PixelColour medium_light = GetColourGradient(colour, SHADE_LIGHTER); - const PixelColour light = GetColourGradient(colour, SHADE_LIGHTEST); + const PixelColour dark = GetColourGradient(colour, Shade::Dark); + const PixelColour medium_dark = GetColourGradient(colour, Shade::Light); + const PixelColour medium_light = GetColourGradient(colour, Shade::Lighter); + const PixelColour light = GetColourGradient(colour, Shade::Lightest); PixelColour interior; Rect outer = {left, top, right, bottom}; // Outside rectangle @@ -480,7 +480,7 @@ static inline void DrawMatrix(const Rect &r, Colours colour, bool clicked, uint3 row_height = r.Height() / num_rows; } - PixelColour col = GetColourGradient(colour, SHADE_LIGHTER); + PixelColour col = GetColourGradient(colour, Shade::Lighter); int x = r.left; for (int ctr = num_columns; ctr > 1; ctr--) { @@ -494,7 +494,7 @@ static inline void DrawMatrix(const Rect &r, Colours colour, bool clicked, uint3 GfxFillRect(r.left + WidgetDimensions::scaled.bevel.left, x, r.right - WidgetDimensions::scaled.bevel.right, x + WidgetDimensions::scaled.bevel.top - 1, col); } - col = GetColourGradient(colour, SHADE_NORMAL); + col = GetColourGradient(colour, Shade::Normal); x = r.left - 1; for (int ctr = num_columns; ctr > 1; ctr--) { @@ -526,8 +526,8 @@ static inline void DrawVerticalScrollbar(const Rect &r, Colours colour, bool up_ DrawImageButtons(r.WithHeight(height, false), NWID_VSCROLLBAR, colour, up_clicked, SPR_ARROW_UP, SA_CENTER); DrawImageButtons(r.WithHeight(height, true), NWID_VSCROLLBAR, colour, down_clicked, SPR_ARROW_DOWN, SA_CENTER); - PixelColour c1 = GetColourGradient(colour, SHADE_DARK); - PixelColour c2 = GetColourGradient(colour, SHADE_LIGHTEST); + PixelColour c1 = GetColourGradient(colour, Shade::Dark); + PixelColour c2 = GetColourGradient(colour, Shade::Lightest); /* draw "shaded" background */ Rect bg = r.Shrink(0, height); @@ -566,8 +566,8 @@ static inline void DrawHorizontalScrollbar(const Rect &r, Colours colour, bool l DrawImageButtons(r.WithWidth(width, false), NWID_HSCROLLBAR, colour, left_clicked, SPR_ARROW_LEFT, SA_CENTER); DrawImageButtons(r.WithWidth(width, true), NWID_HSCROLLBAR, colour, right_clicked, SPR_ARROW_RIGHT, SA_CENTER); - PixelColour c1 = GetColourGradient(colour, SHADE_DARK); - PixelColour c2 = GetColourGradient(colour, SHADE_LIGHTEST); + PixelColour c1 = GetColourGradient(colour, Shade::Dark); + PixelColour c2 = GetColourGradient(colour, Shade::Lightest); /* draw "shaded" background */ Rect bg = r.Shrink(width, 0); @@ -606,8 +606,8 @@ static inline void DrawFrame(const Rect &r, Colours colour, TextColour text_colo if (!str.empty()) x2 = DrawString(r.left + WidgetDimensions::scaled.frametext.left, r.right - WidgetDimensions::scaled.frametext.right, r.top, str, text_colour, align, false, fs); - PixelColour c1 = GetColourGradient(colour, SHADE_DARK); - PixelColour c2 = GetColourGradient(colour, SHADE_LIGHTEST); + PixelColour c1 = GetColourGradient(colour, Shade::Dark); + PixelColour c2 = GetColourGradient(colour, Shade::Lightest); /* If the frame has text, adjust the top bar to fit half-way through */ Rect inner = r.Shrink(ScaleGUITrad(1)); @@ -704,7 +704,7 @@ static inline void DrawResizeBox(const Rect &r, Colours colour, bool at_left, bo if (bevel) { DrawFrameRect(r, colour, clicked ? FrameFlag::Lowered : FrameFlags{}); } else if (clicked) { - GfxFillRect(r.Shrink(WidgetDimensions::scaled.bevel), GetColourGradient(colour, SHADE_LIGHTER)); + GfxFillRect(r.Shrink(WidgetDimensions::scaled.bevel), GetColourGradient(colour, Shade::Lighter)); } DrawSpriteIgnorePadding(at_left ? SPR_WINDOW_RESIZE_LEFT : SPR_WINDOW_RESIZE_RIGHT, PAL_NONE, r.Shrink(ScaleGUITrad(2)), at_left ? (SA_LEFT | SA_BOTTOM | SA_FORCE) : (SA_RIGHT | SA_BOTTOM | SA_FORCE)); } @@ -744,7 +744,7 @@ void DrawCaption(const Rect &r, Colours colour, Owner owner, TextColour text_col DrawFrameRect(ir, colour, company_owned ? FrameFlags{FrameFlag::Lowered, FrameFlag::Darkened, FrameFlag::BorderOnly} : FrameFlags{FrameFlag::Lowered, FrameFlag::Darkened}); if (company_owned) { - GfxFillRect(ir.Shrink(WidgetDimensions::scaled.bevel), GetColourGradient(_company_colours[owner], SHADE_NORMAL)); + GfxFillRect(ir.Shrink(WidgetDimensions::scaled.bevel), GetColourGradient(_company_colours[owner], Shade::Normal)); } if (str.empty()) return; @@ -2093,7 +2093,7 @@ NWidgetCore *NWidgetMatrix::GetWidgetFromPos(int x, int y) /* virtual */ void NWidgetMatrix::Draw(const Window *w) { /* Fill the background. */ - GfxFillRect(this->GetCurrentRect(), GetColourGradient(this->colour, SHADE_LIGHT)); + GfxFillRect(this->GetCurrentRect(), GetColourGradient(this->colour, Shade::Light)); /* Set up a clipping area for the previews. */ bool rtl = _current_text_dir == TD_RTL; @@ -2361,7 +2361,7 @@ void NWidgetBackground::Draw(const Window *w) if (this->child != nullptr) this->child->Draw(w); if (this->IsDisabled()) { - GfxFillRect(r.Shrink(WidgetDimensions::scaled.bevel), GetColourGradient(this->colour, SHADE_DARKER), FillRectMode::Checker); + GfxFillRect(r.Shrink(WidgetDimensions::scaled.bevel), GetColourGradient(this->colour, Shade::Darker), FillRectMode::Checker); } DrawOutline(w, this); @@ -2636,7 +2636,7 @@ void NWidgetScrollbar::Draw(const Window *w) } if (this->IsDisabled()) { - GfxFillRect(r.Shrink(WidgetDimensions::scaled.bevel), GetColourGradient(this->colour, SHADE_DARKER), FillRectMode::Checker); + GfxFillRect(r.Shrink(WidgetDimensions::scaled.bevel), GetColourGradient(this->colour, Shade::Darker), FillRectMode::Checker); } DrawOutline(w, this); @@ -3126,7 +3126,7 @@ void NWidgetLeaf::Draw(const Window *w) if (this->IsDisabled() && this->type != WWT_BOOLBTN) { /* WWT_BOOLBTN is excluded as it draws its own disabled state. */ - GfxFillRect(r.Shrink(WidgetDimensions::scaled.bevel), GetColourGradient(this->colour, SHADE_DARKER), FillRectMode::Checker); + GfxFillRect(r.Shrink(WidgetDimensions::scaled.bevel), GetColourGradient(this->colour, Shade::Darker), FillRectMode::Checker); } DrawOutline(w, this);