diff --git a/src/addresses.h b/src/addresses.h index 01c72b73dd..bfc7390b62 100644 --- a/src/addresses.h +++ b/src/addresses.h @@ -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 diff --git a/src/editor.c b/src/editor.c index 7d0c59e9d0..da3091a9d7 100644 --- a/src/editor.c +++ b/src/editor.c @@ -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(); diff --git a/src/park.c b/src/park.c index 186036fc38..a1d8f87a1b 100644 --- a/src/park.c +++ b/src/park.c @@ -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; diff --git a/src/title.c b/src/title.c index a67d8bc987..61dd217f80 100644 --- a/src/title.c +++ b/src/title.c @@ -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); } diff --git a/src/widget.c b/src/widget.c index 1dd66a6b37..6877938395 100644 --- a/src/widget.c +++ b/src/widget.c @@ -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; } \ No newline at end of file diff --git a/src/window.c b/src/window.c index 5d4ebaf0da..2c048e2747 100644 --- a/src/window.c +++ b/src/window.c @@ -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 diff --git a/src/window.h b/src/window.h index 4dfaaa7d0e..be7255d3ef 100644 --- a/src/window.h +++ b/src/window.h @@ -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); diff --git a/src/window_game_bottom_toolbar.c b/src/window_game_bottom_toolbar.c index 7cca518355..3a017d0478 100644 --- a/src/window_game_bottom_toolbar.c +++ b/src/window_game_bottom_toolbar.c @@ -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)