/** * * rct2: 0x006EB806 */ static void widget_tab_draw(rct_drawpixelinfo *dpi, rct_window *w, rct_widgetindex widgetIndex) { // Get the widget rct_widget *widget = &w->widgets[widgetIndex]; if (widget->image == -1) return; // Draw widgets that aren't explicitly disabled. if (!widget_is_disabled(w, widgetIndex)) { widget_draw_image(dpi, w, widgetIndex); return; } // Do not draw hidden tabs, unless given a sprite. if (widget->type == WWT_TAB && widget->image != (IMAGE_TYPE_REMAP | SPR_G2_TAB_DISABLED)) return; if (widget->type != WWT_TRNBTN) { widget_draw_image(dpi, w, widgetIndex); return; } // Resolve the absolute ltrb sint32 l = w->x + widget->left; sint32 t = w->y + widget->top; // Get the colour and disabled image uint8 colour = w->colours[widget->colour] & 0x7F; uint32 image = widget->image + 2; // Draw disabled image gfx_draw_sprite(dpi, image | (colour << 19), l, t, 0); }
/** * * rct2: 0x006EB8E5 */ static void widget_button_draw(rct_drawpixelinfo *dpi, rct_window *w, int widgetIndex) { rct_widget* widget; int l, t, r, b, press; uint8 colour; // Get the widget widget = &w->widgets[widgetIndex]; // Resolve the absolute ltrb l = w->x + widget->left; t = w->y + widget->top; r = w->x + widget->right; b = w->y + widget->bottom; // Check if the button is pressed down press = widget_is_pressed(w, widgetIndex) || widget_is_active_tool(w, widgetIndex) ? 0x20 : 0; // Get the colour colour = w->colours[widget->colour]; if (widget->image == -2) { // Draw border with no fill gfx_fill_rect_inset(dpi, l, t, r, b, colour, press | 0x10); return; } // Draw the border with fill gfx_fill_rect_inset(dpi, l, t, r, b, colour, press); widget_draw_image(dpi, w, widgetIndex); }
/** * * rct2: 0x006EB861 */ static void widget_flat_button_draw(rct_drawpixelinfo *dpi, rct_window *w, rct_widgetindex widgetIndex) { if (!widget_is_disabled(w, widgetIndex) && widget_is_highlighted(w, widgetIndex)) { widget_button_draw(dpi, w, widgetIndex); return; } // Get the widget rct_widget *widget = &w->widgets[widgetIndex]; // Resolve the absolute ltrb sint32 l = w->x + widget->left; sint32 t = w->y + widget->top; sint32 r = w->x + widget->right; sint32 b = w->y + widget->bottom; // Get the colour uint8 colour = w->colours[widget->colour]; // Check if the button is pressed down if (widget_is_pressed(w, widgetIndex) || widget_is_active_tool(w, widgetIndex)) { if (widget->image == -2) { // Draw border with no fill gfx_fill_rect_inset(dpi, l, t, r, b, colour, INSET_RECT_FLAG_BORDER_INSET | INSET_RECT_FLAG_FILL_NONE); return; } // Draw the border with fill gfx_fill_rect_inset(dpi, l, t, r, b, colour, INSET_RECT_FLAG_BORDER_INSET); } // Draw image widget_draw_image(dpi, w, widgetIndex); }
/** * * rct2: 0x006EB806 */ static void widget_tab_draw(rct_drawpixelinfo *dpi, rct_window *w, int widgetIndex) { rct_widget* widget; int l, t, r, b; uint32 image; uint8 colour; // Get the widget widget = &w->widgets[widgetIndex]; // if (widget->image == -1) return; // Check if tab is disabled if (!widget_is_disabled(w, widgetIndex)) { widget_draw_image(dpi, w, widgetIndex); return; } if (widget->type == WWT_TAB) return; if (widget->type != WWT_TRNBTN) { widget_draw_image(dpi, w, widgetIndex); return; } // Resolve the absolute ltrb l = w->x + widget->left; t = w->y + widget->top; r = w->x + widget->right; b = w->y + widget->bottom; // Get the colour and image colour = w->colours[widget->colour] << 19; image = widget->image + 2; // Draw coloured image gfx_draw_sprite(dpi, image | colour, l, t); }