diff --git a/src/widget.cpp b/src/widget.cpp --- a/src/widget.cpp +++ b/src/widget.cpp @@ -275,17 +275,17 @@ WidgetID GetWidgetFromPos(const Window * * @param top Top edge of the frame * @param right Right edge of the frame * @param bottom Bottom edge of the frame - * @param colour Colour table to use. @see _colour_gradient + * @param colour Colour table to use. @see Colours * @param flags Flags controlling how to draw the frame. @see FrameFlags */ void DrawFrameRect(int left, int top, int right, int bottom, Colours colour, FrameFlags flags) { assert(colour < COLOUR_END); - uint dark = _colour_gradient[colour][3]; - uint medium_dark = _colour_gradient[colour][5]; - uint medium_light = _colour_gradient[colour][6]; - uint light = _colour_gradient[colour][7]; + uint dark = GetColourGradient(colour, 3); + uint medium_dark = GetColourGradient(colour, 5); + uint medium_light = GetColourGradient(colour, 6); + uint light = GetColourGradient(colour, 7); if (flags & FR_TRANSPARENT) { GfxFillRect(left, top, right, bottom, PALETTE_TO_TRANSPARENT, FILLRECT_RECOLOUR); @@ -423,7 +423,7 @@ static inline void DrawMatrix(const Rect row_height = r.Height() / num_rows; } - int col = _colour_gradient[colour & 0xF][6]; + int col = GetColourGradient(colour, 6); int x = r.left; for (int ctr = num_columns; ctr > 1; ctr--) { @@ -437,7 +437,7 @@ static inline void DrawMatrix(const Rect GfxFillRect(r.left + WidgetDimensions::scaled.bevel.left, x, r.right - WidgetDimensions::scaled.bevel.right, x + WidgetDimensions::scaled.bevel.top - 1, col); } - col = _colour_gradient[colour & 0xF][4]; + col = GetColourGradient(colour, 4); x = r.left - 1; for (int ctr = num_columns; ctr > 1; ctr--) { @@ -469,8 +469,8 @@ static inline void DrawVerticalScrollbar 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); - int c1 = _colour_gradient[colour & 0xF][3]; - int c2 = _colour_gradient[colour & 0xF][7]; + int c1 = GetColourGradient(colour, 3); + int c2 = GetColourGradient(colour, 7); /* draw "shaded" background */ GfxFillRect(r.left, r.top + height, r.right, r.bottom - height, c2); @@ -508,8 +508,8 @@ static inline void DrawHorizontalScrollb 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); - int c1 = _colour_gradient[colour & 0xF][3]; - int c2 = _colour_gradient[colour & 0xF][7]; + int c1 = GetColourGradient(colour, 3); + int c2 = GetColourGradient(colour, 7); /* draw "shaded" background */ GfxFillRect(r.left + width, r.top, r.right - width, r.bottom, c2); @@ -547,8 +547,8 @@ static inline void DrawFrame(const Rect if (str != STR_NULL) x2 = DrawString(r.left + WidgetDimensions::scaled.frametext.left, r.right - WidgetDimensions::scaled.frametext.right, r.top, str, text_colour, align, false, fs); - int c1 = _colour_gradient[colour][3]; - int c2 = _colour_gradient[colour][7]; + int c1 = GetColourGradient(colour, 3); + int c2 = GetColourGradient(colour, 7); /* If the frame has text, adjust the top bar to fit half-way through */ Rect inner = r.Shrink(ScaleGUITrad(1)); @@ -645,7 +645,7 @@ static inline void DrawResizeBox(const R if (bevel) { DrawFrameRect(r.left, r.top, r.right, r.bottom, colour, (clicked) ? FR_LOWERED : FR_NONE); } else if (clicked) { - GfxFillRect(r.Shrink(WidgetDimensions::scaled.bevel), _colour_gradient[colour][6]); + GfxFillRect(r.Shrink(WidgetDimensions::scaled.bevel), GetColourGradient(colour, 6)); } 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)); } @@ -685,7 +685,7 @@ void DrawCaption(const Rect &r, Colours DrawFrameRect(ir, colour, company_owned ? FR_LOWERED | FR_DARKENED | FR_BORDERONLY : FR_LOWERED | FR_DARKENED); if (company_owned) { - GfxFillRect(ir.Shrink(WidgetDimensions::scaled.bevel), _colour_gradient[_company_colours[owner]][4]); + GfxFillRect(ir.Shrink(WidgetDimensions::scaled.bevel), GetColourGradient(_company_colours[owner], 4)); } if (str != STR_NULL) { @@ -1906,7 +1906,7 @@ NWidgetCore *NWidgetMatrix::GetWidgetFro /* virtual */ void NWidgetMatrix::Draw(const Window *w) { /* Fill the background. */ - GfxFillRect(this->GetCurrentRect(), _colour_gradient[this->colour & 0xF][5]); + GfxFillRect(this->GetCurrentRect(), GetColourGradient(this->colour, 5)); /* Set up a clipping area for the previews. */ bool rtl = _current_text_dir == TD_RTL; @@ -2171,7 +2171,7 @@ void NWidgetBackground::Draw(const Windo if (this->child != nullptr) this->child->Draw(w); if (this->IsDisabled()) { - GfxFillRect(r.Shrink(WidgetDimensions::scaled.bevel), _colour_gradient[this->colour & 0xF][2], FILLRECT_CHECKER); + GfxFillRect(r.Shrink(WidgetDimensions::scaled.bevel), GetColourGradient(this->colour, 2), FILLRECT_CHECKER); } DrawOutline(w, this); @@ -2416,7 +2416,7 @@ void NWidgetScrollbar::Draw(const Window } if (this->IsDisabled()) { - GfxFillRect(r.Shrink(WidgetDimensions::scaled.bevel), _colour_gradient[this->colour & 0xF][2], FILLRECT_CHECKER); + GfxFillRect(r.Shrink(WidgetDimensions::scaled.bevel), GetColourGradient(this->colour, 2), FILLRECT_CHECKER); } DrawOutline(w, this); @@ -2867,7 +2867,7 @@ void NWidgetLeaf::Draw(const Window *w) if (this->index >= 0) w->DrawWidget(r, this->index); if (this->IsDisabled()) { - GfxFillRect(r.Shrink(WidgetDimensions::scaled.bevel), _colour_gradient[this->colour & 0xF][2], FILLRECT_CHECKER); + GfxFillRect(r.Shrink(WidgetDimensions::scaled.bevel), GetColourGradient(this->colour, 2), FILLRECT_CHECKER); } DrawOutline(w, this);