From 53493d097742abeb028f9500bd0078affd0b54bb Mon Sep 17 00:00:00 2001 From: Ted John Date: Wed, 22 Nov 2017 22:06:56 +0000 Subject: [PATCH] Name only flag for banner objects --- src/openrct2-ui/windows/Banner.cpp | 6 ++++-- src/openrct2-ui/windows/Scenery.cpp | 5 +++-- src/openrct2-ui/windows/TopToolbar.cpp | 27 ++++++++++++-------------- src/openrct2/world/scenery.h | 5 +++++ 4 files changed, 24 insertions(+), 19 deletions(-) diff --git a/src/openrct2-ui/windows/Banner.cpp b/src/openrct2-ui/windows/Banner.cpp index d4a088088e..9454a31c49 100644 --- a/src/openrct2-ui/windows/Banner.cpp +++ b/src/openrct2-ui/windows/Banner.cpp @@ -304,8 +304,10 @@ static void window_banner_invalidate(rct_window *w) // Scenery item not sure why we use this instead of banner? rct_scenery_entry* sceneryEntry = get_banner_entry(banner->type); - - if (sceneryEntry->banner.flags & 1) colour_btn->type = WWT_COLOURBTN; + if (sceneryEntry->banner.flags & BANNER_ENTRY_FLAG_HAS_PRIMARY_COLOUR) + { + colour_btn->type = WWT_COLOURBTN; + } w->pressed_widgets &= ~(1ULL<disabled_widgets &= ~( diff --git a/src/openrct2-ui/windows/Scenery.cpp b/src/openrct2-ui/windows/Scenery.cpp index d1442f3b75..73d9dedd10 100644 --- a/src/openrct2-ui/windows/Scenery.cpp +++ b/src/openrct2-ui/windows/Scenery.cpp @@ -965,9 +965,10 @@ void window_scenery_invalidate(rct_window *w) if (tabSelectedSceneryId >= 0x400) { sceneryEntry = get_banner_entry(tabSelectedSceneryId - 0x400); - - if (sceneryEntry->banner.flags & 1) + if (sceneryEntry->banner.flags & BANNER_ENTRY_FLAG_HAS_PRIMARY_COLOUR) + { window_scenery_widgets[WIDX_SCENERY_PRIMARY_COLOUR_BUTTON].type = WWT_COLOURBTN; + } } else if (tabSelectedSceneryId >= 0x300) { sceneryEntry = get_large_scenery_entry(tabSelectedSceneryId - 0x300); diff --git a/src/openrct2-ui/windows/TopToolbar.cpp b/src/openrct2-ui/windows/TopToolbar.cpp index 2c126211b7..f17b813846 100644 --- a/src/openrct2-ui/windows/TopToolbar.cpp +++ b/src/openrct2-ui/windows/TopToolbar.cpp @@ -1011,21 +1011,18 @@ static void repaint_scenery_tool_down(sint16 x, sint16 y, rct_widgetindex widget { rct_banner* banner = &gBanners[tile_element->properties.banner.index]; rct_scenery_entry* scenery_entry = get_banner_entry(banner->type); - - // If can't repaint - if (!(scenery_entry->banner.flags & - (1 << 0))) - return; - - gGameCommandErrorTitle = STR_CANT_REPAINT_THIS; - game_do_command( - grid_x, - 1, - grid_y, - tile_element->base_height | ((tile_element->properties.banner.position & 0x3) << 8), - GAME_COMMAND_SET_BANNER_COLOUR, - 0, - gWindowSceneryPrimaryColour | (gWindowScenerySecondaryColour << 8)); + if (scenery_entry->banner.flags & BANNER_ENTRY_FLAG_HAS_PRIMARY_COLOUR) + { + gGameCommandErrorTitle = STR_CANT_REPAINT_THIS; + game_do_command( + grid_x, + 1, + grid_y, + tile_element->base_height | ((tile_element->properties.banner.position & 0x3) << 8), + GAME_COMMAND_SET_BANNER_COLOUR, + 0, + gWindowSceneryPrimaryColour | (gWindowScenerySecondaryColour << 8)); + } break; } default: diff --git a/src/openrct2/world/scenery.h b/src/openrct2/world/scenery.h index 4b2628f248..2af0fb0130 100644 --- a/src/openrct2/world/scenery.h +++ b/src/openrct2/world/scenery.h @@ -252,6 +252,11 @@ enum { SCENERY_GHOST_FLAG_4 = (1 << SCENERY_TYPE_BANNER) }; +enum +{ + BANNER_ENTRY_FLAG_HAS_PRIMARY_COLOUR = (1 << 0), +}; + #define SCENERY_ENTRIES_BY_TAB 256 #ifdef __cplusplus