1
0
mirror of https://github.com/OpenRCT2/OpenRCT2 synced 2025-12-23 15:52:55 +01:00

add more drawing of bottom toolbar

This commit is contained in:
IntelOrca
2014-04-11 17:38:15 +01:00
parent 5cb1600417
commit 8cbe0e7aa1
8 changed files with 365 additions and 102 deletions

View File

@@ -87,6 +87,10 @@
#define RCT2_ADDRESS_TOOLTIP_TIMEOUT 0x009DE53C
#define RCT2_ADDRESS_TOOLTIP_NOT_SHOWN_TICKS 0x009DE53E
#define RCT2_ADDRESS_CURSOR_OVER_WINDOWCLASS 0x009DE55C
#define RCT2_ADDRESS_CURSOR_OVER_WINDOWNUMBER 0x009DE55E
#define RCT2_ADDRESS_CURSOR_OVER_WIDGETINDEX 0x009DE560
#define RCT2_ADDRESS_SCREEN_FLAGS 0x009DEA68
#define RCT2_ADDRESS_PLACE_OBJECT_MODIFIER 0x009DEA70
#define RCT2_ADDRESS_ON_TUTORIAL 0x009DEA71
@@ -113,6 +117,7 @@
#define RCT2_ADDRESS_GUESTS_IN_PARK 0x01357844
#define RCT2_ADDRESS_CURRENT_PARK_RATING 0x01357CB0
#define RCT2_ADDRESS_PARK_RATING_HISTORY 0x01357CB2
#define RCT2_ADDRESS_CURRENT_PROFIT 0x01358330
#define RCT2_ADDRESS_CURRENT_PARK_VALUE 0x0135853C
#define RCT2_ADDRESS_CURRENT_COMPANY_VALUE 0x0135874C
#define RCT2_ADDRESS_CURRENT_MONEY_ENCRYPTED 0x013587F8

View File

@@ -64,7 +64,7 @@ void editor_load()
news_item_init_queue();
RCT2_CALLPROC_EBPSAFE(0x0066EF38); // window_main_editor_create
mainWindow = window_get_main();
RCT2_CALLPROC_X(0x006E7C9C, 0x960, 0, 0x960, 0x70, mainWindow, 0, 0);
window_scroll_to_location(mainWindow, 2400, 2400, 112);
mainWindow->flags &= ~0x08;
RCT2_CALLPROC_EBPSAFE(0x006837E3);
gfx_invalidate_screen();
@@ -111,7 +111,7 @@ void trackdesigner_load()
news_item_init_queue();
RCT2_CALLPROC_EBPSAFE(0x0066EF38); // window_main_editor_create
mainWindow = window_get_main();
RCT2_CALLPROC_X(0x006E7C9C, 0x960, 0, 0x960, 0x70, mainWindow, 0, 0);
window_scroll_to_location(mainWindow, 2400, 2400, 112);
mainWindow->flags &= ~0x08;
RCT2_CALLPROC_EBPSAFE(0x006837E3);
gfx_invalidate_screen();
@@ -149,7 +149,7 @@ void trackmanager_load()
news_item_init_queue();
RCT2_CALLPROC_EBPSAFE(0x0066EF38); // window_main_editor_create
mainWindow = window_get_main();
RCT2_CALLPROC_X(0x006E7C9C, 0x960, 0, 0x960, 0x70, mainWindow, 0, 0);
window_scroll_to_location(mainWindow, 2400, 2400, 112);
mainWindow->flags &= ~0x08;
RCT2_CALLPROC_EBPSAFE(0x006837E3);
gfx_invalidate_screen();

View File

@@ -39,6 +39,13 @@ void park_init()
*/
int calculate_park_rating()
{
{
int eax, ebx, ecx, edx, esi, edi, ebp;
RCT2_CALLFUNC_X(0x00669EAA, &eax, &ebx, &ecx, &edx, &esi, &edi, &ebp);
return eax & 0xFFFF;
}
int result;
result = 1150;

View File

@@ -206,7 +206,7 @@ static void title_update_showcase()
// Update viewport
w = window_get_main();
if (w != NULL) {
RCT2_CALLPROC_X(0x006E7C9C, x, 0, y, _edx, w, 0, 0);
window_scroll_to_location(w, x, y, _edx);
w->flags &= ~0x08;
viewport_update_position(w);
}

View File

@@ -33,6 +33,7 @@ static void widget_closebox_draw(rct_drawpixelinfo *dpi, rct_window *w, int widg
static void widget_scroll_draw(rct_drawpixelinfo *dpi, rct_window *w, int widgetIndex);
static void widget_hscrollbar_draw(rct_drawpixelinfo *dpi, rct_scroll *scroll, int l, int t, int r, int b, int colour);
static void widget_vscrollbar_draw(rct_drawpixelinfo *dpi, rct_scroll *scroll, int l, int t, int r, int b, int colour);
static void widget_draw_image(rct_drawpixelinfo *dpi, rct_window *w, int widgetIndex);
/**
*
@@ -208,34 +209,16 @@ static void widget_button_draw(rct_drawpixelinfo *dpi, rct_window *w, int widget
// 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 button
// Draw the border with fill
gfx_fill_rect_inset(dpi, l, t, r, b, colour, press);
if (widget->image == -1)
return;
// Draw the image
image = widget->image;
if (!widget_is_disabled(w, widgetIndex)) {
if (image & 0x80000000) {
// ?
}
if (image & 0x40000000)
image &= ~0x40000000;
else
image |= colour << 19;
gfx_draw_sprite(dpi, image, l, t);
} else {
// ?
}
widget_draw_image(dpi, w, widgetIndex);
}
/**
@@ -257,8 +240,18 @@ static void widget_tab_draw(rct_drawpixelinfo *dpi, rct_window *w, int widgetInd
return;
// Check if tab is disabled
if (widget_is_disabled(w, widgetIndex))
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;
@@ -266,20 +259,12 @@ static void widget_tab_draw(rct_drawpixelinfo *dpi, rct_window *w, int widgetInd
r = w->x + widget->right;
b = w->y + widget->bottom;
// Get the colour
colour = w->colours[widget->colour];
// Get the colour and image
colour = w->colours[widget->colour] << 19;
image = widget->image + 2;
// Check if the tab is pressed down
image = widget->image;
if (widget_is_pressed(w, widgetIndex))
image++;
if (image & 0x40000000)
image &= ~0x40000000;
else
image |= colour << 19;
gfx_draw_sprite(dpi, image, l, t);
// Draw coloured image
gfx_draw_sprite(dpi, image | colour, l, t);
}
/**
@@ -289,10 +274,15 @@ static void widget_tab_draw(rct_drawpixelinfo *dpi, rct_window *w, int widgetInd
static void widget_flat_button_draw(rct_drawpixelinfo *dpi, rct_window *w, int widgetIndex)
{
rct_widget* widget;
int l, t, r, b, state;
int l, t, r, b, press;
uint32 image;
uint8 colour;
if (!widget_is_disabled(w, widgetIndex) && widget_is_highlighted(w, widgetIndex)) {
widget_button_draw(dpi, w, widgetIndex);
return;
}
// Get the widget
widget = &w->widgets[widgetIndex];
@@ -302,22 +292,23 @@ static void widget_flat_button_draw(rct_drawpixelinfo *dpi, rct_window *w, int w
r = w->x + widget->right;
b = w->y + widget->bottom;
// Check if the button is pressed down
state = 0;
if (widget_is_pressed(w, widgetIndex))
state = 1;
// Check if the button is highlighted
if (state == 0 && widget_is_highlighted(w, widgetIndex))
state = 2;
// Get the colour
colour = w->colours[widget->colour];
if (state == 1)
// Check if the button is pressed down
if (widget_is_pressed(w, widgetIndex)) {
if (widget->image == -2) {
// Draw border with no fill
gfx_fill_rect_inset(dpi, l, t, r, b, colour, 0x20 | 0x10);
return;
}
// Draw the border with fill
gfx_fill_rect_inset(dpi, l, t, r, b, colour, 0x20);
else if (state == 2)
gfx_fill_rect_inset(dpi, l, t, r, b, colour, 0x10);
}
// Draw image
widget_draw_image(dpi, w, widgetIndex);
}
/**
@@ -551,6 +542,48 @@ static void widget_vscrollbar_draw(rct_drawpixelinfo *dpi, rct_scroll *scroll, i
gfx_draw_string(dpi, (char*)0x009DED69, 0, l + 1, b - 8);
}
static void widget_draw_image(rct_drawpixelinfo *dpi, rct_window *w, int widgetIndex)
{
int l, t, r, b, colour, image;
rct_widget *widget;
// Get the widget
widget = &w->widgets[widgetIndex];
// Get the image
image = widget->image;
if (image == -1)
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
colour = w->colours[widget->colour];
if (widget->type == WWT_4 || widget->type == WWT_6 || widget->type == WWT_TRNBTN || widget->type == WWT_TAB)
if (widget_is_pressed(w, widgetIndex))
image++;
if (!widget_is_disabled(w, widgetIndex)) {
if (image & 0x80000000) {
// ?
}
if (image & 0x40000000)
image &= ~0x40000000;
else
image |= colour << 19;
gfx_draw_sprite(dpi, image, l, t);
} else {
// ?
}
}
int widget_is_disabled(rct_window *w, int widgetIndex)
{
return w->disabled_widgets & (1LL << widgetIndex);
@@ -577,5 +610,11 @@ int widget_is_pressed(rct_window *w, int widgetIndex)
int widget_is_highlighted(rct_window *w, int widgetIndex)
{
return 0;
if (RCT2_GLOBAL(RCT2_ADDRESS_CURSOR_OVER_WINDOWCLASS, rct_windowclass) != w->classification)
return 0;
if (RCT2_GLOBAL(RCT2_ADDRESS_CURSOR_OVER_WINDOWNUMBER, rct_windownumber) != w->number)
return 0;
if (RCT2_GLOBAL(RCT2_ADDRESS_CURSOR_OVER_WIDGETINDEX, sint32) != widgetIndex)
return 0;
return 1;
}

View File

@@ -439,6 +439,15 @@ rct_window *window_get_main()
return NULL;
}
/**
*
* rct2: 0x006E7C9C
*/
void window_scroll_to_location(rct_window *w, int x, int y, int z)
{
RCT2_CALLPROC_X(0x006E7C9C, x, 0, y, z , w, 0, 0);
}
/**
*
* rct2: 0x0068881A

View File

@@ -29,6 +29,19 @@ union rct_window_event;
typedef void wndproc(struct rct_window*, union rct_window_event*);
typedef sint8 rct_windowclass;
typedef sint16 rct_windownumber;
typedef struct {
rct_windowclass classification;
rct_windownumber number;
} window_identifier;
typedef struct {
window_identifier window;
int widget_index;
} widget_identifier;
/**
* Widget structure
* size: 0x10
@@ -44,19 +57,6 @@ typedef struct {
uint16 tooltip; // 0x0E
} rct_widget;
typedef sint8 rct_windowclass;
typedef sint16 rct_windownumber;
typedef struct {
rct_windowclass classification;
rct_windownumber number;
} window_identifier;
typedef struct {
window_identifier window;
int widget_index;
} widget_identifier;
/**
* Viewport structure
* size: 0x14
@@ -75,34 +75,6 @@ typedef struct {
uint16 flags; // 0x12
} rct_viewport;
enum {
HSCROLLBAR_VISIBLE = (1 << 0),
HSCROLLBAR_THUMB_PRESSED = (1 << 1),
HSCROLLBAR_LEFT_PRESSED = (1 << 2),
HSCROLLBAR_RIGHT_PRESSED = (1 << 3),
VSCROLLBAR_VISIBLE = (1 << 4),
VSCROLLBAR_THUMB_PRESSED = (1 << 5),
VSCROLLBAR_UP_PRESSED = (1 << 6),
VSCROLLBAR_DOWN_PRESSED = (1 << 7),
};
#define SCROLLBAR_SIZE 16
enum {
SCROLL_PART_NONE = -1,
SCROLL_PART_VIEW = 0,
SCROLL_PART_HSCROLLBAR_LEFT = 1,
SCROLL_PART_HSCROLLBAR_RIGHT = 2,
SCROLL_PART_HSCROLLBAR_LEFT_TROUGH = 3,
SCROLL_PART_HSCROLLBAR_RIGHT_TROUGH = 4,
SCROLL_PART_HSCROLLBAR_THUMB = 5,
SCROLL_PART_VSCROLLBAR_TOP = 6,
SCROLL_PART_VSCROLLBAR_BOTTOM = 7,
SCROLL_PART_VSCROLLBAR_TOP_TROUGH = 8,
SCROLL_PART_VSCROLLBAR_BOTTOM_TROUGH = 9,
SCROLL_PART_VSCROLLBAR_THUMB = 10,
};
typedef struct {
uint16 flags; // 0x00
sint16 h_left; // 0x02
@@ -215,6 +187,34 @@ typedef enum {
WF_WHITE_BORDER_MASK = (1 << 12) | (1 << 13),
} WINDOW_FLAGS;
enum {
HSCROLLBAR_VISIBLE = (1 << 0),
HSCROLLBAR_THUMB_PRESSED = (1 << 1),
HSCROLLBAR_LEFT_PRESSED = (1 << 2),
HSCROLLBAR_RIGHT_PRESSED = (1 << 3),
VSCROLLBAR_VISIBLE = (1 << 4),
VSCROLLBAR_THUMB_PRESSED = (1 << 5),
VSCROLLBAR_UP_PRESSED = (1 << 6),
VSCROLLBAR_DOWN_PRESSED = (1 << 7),
};
#define SCROLLBAR_SIZE 16
enum {
SCROLL_PART_NONE = -1,
SCROLL_PART_VIEW = 0,
SCROLL_PART_HSCROLLBAR_LEFT = 1,
SCROLL_PART_HSCROLLBAR_RIGHT = 2,
SCROLL_PART_HSCROLLBAR_LEFT_TROUGH = 3,
SCROLL_PART_HSCROLLBAR_RIGHT_TROUGH = 4,
SCROLL_PART_HSCROLLBAR_THUMB = 5,
SCROLL_PART_VSCROLLBAR_TOP = 6,
SCROLL_PART_VSCROLLBAR_BOTTOM = 7,
SCROLL_PART_VSCROLLBAR_TOP_TROUGH = 8,
SCROLL_PART_VSCROLLBAR_BOTTOM_TROUGH = 9,
SCROLL_PART_VSCROLLBAR_THUMB = 10,
};
enum {
INPUT_STATE_RESET = 0,
INPUT_STATE_NORMAL = 1,
@@ -283,6 +283,7 @@ rct_window *window_bring_to_front(rct_window *w);
rct_window *window_get_main();
void window_scroll_to_location(rct_window *w, int x, int y, int z);
void window_rotate_camera(rct_window *w);
void window_draw(rct_window *w, int left, int top, int right, int bottom);

View File

@@ -22,6 +22,7 @@
#include "climate.h"
#include "news_item.h"
#include "park.h"
#include "peep.h"
#include "sprites.h"
#include "strings.h"
#include "widget.h"
@@ -62,8 +63,7 @@ rct_widget window_game_bottom_toolbar_widgets[] = {
static void window_game_bottom_toolbar_emptysub() { }
static void window_game_bottom_toolbar_mouseup();
static void window_game_bottom_toolbar_mousedown();
static void window_game_bottom_toolbar_dropdown();
static void window_game_bottom_toolbar_tooltip();
static void window_game_bottom_toolbar_invalidate();
static void window_game_bottom_toolbar_paint();
@@ -77,8 +77,6 @@ static uint32 window_game_bottom_toolbar_events[] = {
window_game_bottom_toolbar_emptysub,
window_game_bottom_toolbar_mouseup,
window_game_bottom_toolbar_emptysub,
window_game_bottom_toolbar_mousedown,
window_game_bottom_toolbar_dropdown,
window_game_bottom_toolbar_emptysub,
window_game_bottom_toolbar_emptysub,
window_game_bottom_toolbar_emptysub,
@@ -98,6 +96,8 @@ static uint32 window_game_bottom_toolbar_events[] = {
window_game_bottom_toolbar_emptysub,
window_game_bottom_toolbar_emptysub,
window_game_bottom_toolbar_emptysub,
window_game_bottom_toolbar_tooltip,
window_game_bottom_toolbar_emptysub,
window_game_bottom_toolbar_emptysub,
window_game_bottom_toolbar_invalidate,
window_game_bottom_toolbar_paint,
@@ -133,19 +133,92 @@ void window_game_bottom_toolbar_open()
window->colours[2] = 0;
}
/**
*
* rct2: 0x0066C588
*/
static void window_game_bottom_toolbar_mouseup()
{
short widgetIndex;
rct_window *w, *mainWindow;
rct_news_item *newsItem;
__asm mov widgetIndex, dx
__asm mov w, esi
switch (widgetIndex) {
case WIDX_LEFT_OUTSET:
case WIDX_MONEY:
if (!(RCT2_GLOBAL(0x013573E4, uint32) & 0x800))
RCT2_CALLPROC_EBPSAFE(0x0069DDF1);
break;
case WIDX_GUESTS:
RCT2_CALLPROC_EBPSAFE(0x00667D35);
break;
case WIDX_PARK_RATING:
RCT2_CALLPROC_EBPSAFE(0x00667CA4);
break;
case WIDX_MIDDLE_INSET:
news_item_close_current();
break;
case WIDX_NEWS_SUBJECT:
newsItem = &(RCT2_ADDRESS(RCT2_ADDRESS_NEWS_ITEM_LIST, rct_news_item)[0]);
RCT2_CALLPROC_X(0x0066EBE6, 0, newsItem->type, newsItem->assoc, 0, 0, 0, 0);
break;
case WIDX_NEWS_LOCATE:
newsItem = &(RCT2_ADDRESS(RCT2_ADDRESS_NEWS_ITEM_LIST, rct_news_item)[0]);
if (newsItem->type == NEWS_ITEM_NULL)
break;
{
uint32 eax, ebx, ecx, edx, esi, edi, ebp;
ecx = newsItem->assoc;
edx = newsItem->type;
RCT2_CALLFUNC_X(0x0066BA74, &eax, &ebx, &ecx, &edx, &esi, &edi, &ebp);
if ((eax & 0xFFFF) == 0x8000)
break;
if ((mainWindow = window_get_main()) != NULL)
window_scroll_to_location(mainWindow, eax & 0xFFFF, ecx & 0xFFFF, edx & 0xFFFF);
}
break;
case WIDX_RIGHT_OUTSET:
case WIDX_DATE:
RCT2_CALLPROC_EBPSAFE(0x0066E464);
break;
}
}
static void window_game_bottom_toolbar_mousedown()
static void window_game_bottom_toolbar_tooltip()
{
int month, day;
short widgetIndex;
rct_window *w, *mainWindow;
rct_news_item *newsItem;
}
__asm mov widgetIndex, dx
__asm mov w, esi
static void window_game_bottom_toolbar_dropdown()
{
switch (widgetIndex) {
case WIDX_MONEY:
*((int*)0x013CE952) = RCT2_GLOBAL(RCT2_ADDRESS_CURRENT_PROFIT, sint32);
*((int*)0x013CE956) = RCT2_GLOBAL(RCT2_ADDRESS_CURRENT_PARK_VALUE, sint32);
widgetIndex = 0;
break;
case WIDX_PARK_RATING:
*((short*)0x013CE952) = RCT2_GLOBAL(RCT2_ADDRESS_CURRENT_PARK_RATING, sint16);
widgetIndex = 0;
break;
case WIDX_DATE:
month = RCT2_GLOBAL(RCT2_ADDRESS_CURRENT_MONTH_YEAR, sint16) & 7;
day = ((RCT2_GLOBAL(RCT2_ADDRESS_CURRENT_DAY, sint16) * ((short*)0x00993988)[month]) >> 16) & 0xFF;
*((short*)0x013CE952) = STR_DATE_DAY_1 + day;
*((short*)0x013CE954) = STR_MONTH_MARCH + month;
widgetIndex = 0;
break;
}
__asm mov dx, widgetIndex
}
/**
@@ -386,9 +459,138 @@ static void window_game_bottom_toolbar_draw_right_panel(rct_drawpixelinfo *dpi,
}
}
/**
*
* rct2: 0x0066BFA5
*/
static void window_game_bottom_toolbar_draw_news_item(rct_drawpixelinfo *dpi, rct_window *w)
{
int x, y;
rct_news_item *newsItem;
newsItem = &(RCT2_ADDRESS(RCT2_ADDRESS_NEWS_ITEM_LIST, rct_news_item)[0]);
// Current news item
gfx_fill_rect_inset(
dpi,
w->x + window_game_bottom_toolbar_widgets[WIDX_MIDDLE_OUTSET].left + 1,
w->y + window_game_bottom_toolbar_widgets[WIDX_MIDDLE_OUTSET].top + 1,
w->x + window_game_bottom_toolbar_widgets[WIDX_MIDDLE_OUTSET].right - 1,
w->y + window_game_bottom_toolbar_widgets[WIDX_MIDDLE_OUTSET].bottom - 1,
w->colours[2],
48
);
// Text
memcpy((void*)0x009B5F2C, &newsItem->colour, 256);
RCT2_CALLPROC_X(
0x006C1F57,
14,
1926,
(window_game_bottom_toolbar_widgets[WIDX_MIDDLE_OUTSET].left + window_game_bottom_toolbar_widgets[WIDX_MIDDLE_OUTSET].right) / 2 + w->x,
w->y + window_game_bottom_toolbar_widgets[WIDX_MIDDLE_OUTSET].top + 11,
0,
dpi,
(newsItem->ticks << 16) | (window_game_bottom_toolbar_widgets[WIDX_MIDDLE_OUTSET].right - window_game_bottom_toolbar_widgets[WIDX_MIDDLE_OUTSET].left - 62)
);
x = w->x + window_game_bottom_toolbar_widgets[WIDX_NEWS_SUBJECT].left;
y = w->y + window_game_bottom_toolbar_widgets[WIDX_NEWS_SUBJECT].top;
switch (newsItem->type) {
case NEWS_ITEM_RIDE:
gfx_draw_sprite(dpi, SPR_RIDE, x, y);
break;
case NEWS_ITEM_PEEP_1:
case NEWS_ITEM_PEEP_2:
if (newsItem->flags & 1)
break;
/*
_edi = (int)e->paint.dpi;
_cx = x;
_dx = y;
__asm {
mov cx, _cx
mov dx, _dx
mov esi, w
mov edi, _edi
push ebp
mov ebp, 0066C3B8h
push after
push esi
jmp ebp
after:
pop ebp
}
break;
*/
//_ax = x + 1;
//_cx = y + 1;
//_edi = (int)dpi;
//__asm {
// mov edi, _edi
// mov ax, _ax
// mov cx, _cx
// mov bx, 22
// mov dx, 22
// push ebp
//}
//sub_6EE53B();
//__asm {
// pop ebp
// mov dpi, edi
//}
//if (dpi == NULL)
// break;
//x = 10;
//y = 19;
//peep = &rctmem->sprites[*((short*)&newsItem->assoc)].peep;
//if (peep->type == PEEP_TYPE_STAFF && peep->var_2F == 3)
// y += 3;
//_eax = *((int*)(0x00982708 + (peep->sprite_type * 8)));
//_ebx = w->var_48E & 0xFFFFFFFC;
//_ebx += *((int*)_eax);
//_ebx++;
//gfx_draw_sprite(dpi, _ebx | (peep->var_30 << 19) | (peep->var_31 << 24) | 0xA0000000, x, y);
//if (_ebx >= 0x2A1D && _ebx >= 0x2A3D) {
// _ebx += 32;
// _ebx |= 0x20000000;
// _ebx |= peep->balloon_colour << 19;
// gfx_draw_sprite(dpi, _ebx, x, y);
//} else if (_ebx >= 0x2BBD && _ebx >= 0x2BDD) {
// _ebx += 32;
// _ebx |= 0x20000000;
// _ebx |= peep->umbrella_colour << 19;
// gfx_draw_sprite(dpi, _ebx, x, y);
//} else if (_ebx >= 0x29DD && _ebx >= 0x29FD) {
// _ebx += 32;
// _ebx |= 0x20000000;
// _ebx |= peep->hat_colour << 19;
// gfx_draw_sprite(dpi, _ebx, x, y);
//} else {
//}
break;
case NEWS_ITEM_MONEY:
gfx_draw_sprite(dpi, SPR_FINANCE, x, y);
case NEWS_ITEM_SCENERY:
gfx_draw_sprite(dpi, (newsItem->assoc < 0x10000 ? SPR_NEW_RIDE : SPR_SCENERY), x, y);
break;
case NEWS_ITEM_PEEPS:
gfx_draw_sprite(dpi, SPR_GUESTS, x, y);
case NEWS_ITEM_AWARD:
gfx_draw_sprite(dpi, SPR_AWARD, x, y);
case NEWS_ITEM_GRAPH:
gfx_draw_sprite(dpi, SPR_GRAPH, x, y);
break;
}
}
static void window_game_bottom_toolbar_draw_tutorial_text(rct_drawpixelinfo *dpi, rct_window *w)