Merge pull request #5230 from duncanspumpkin/refactor

Refactor flags
This commit is contained in:
Duncan 2017-02-16 19:09:13 +00:00 committed by GitHub
commit cc7bdf2a17
27 changed files with 61 additions and 21 deletions

View File

@ -6621,7 +6621,7 @@ void game_command_set_ride_price(sint32 *eax, sint32 *ebx, sint32 *ecx, sint32 *
*ebx = 0; // for cost check - changing ride price does not cost anything
gCommandExpenditureType = RCT_EXPENDITURE_TYPE_PARK_RIDE_TICKETS;
if (flags & 0x1) {
if (flags & GAME_COMMAND_FLAG_APPLY) {
uint32 shop_item;
if (ride->overall_view != (uint16)-1) {

View File

@ -1585,7 +1585,7 @@ const rct_ride_entry_vehicle CableLiftVehicle = {
.car_friction = 0,
.tab_height = 0,
.num_seats = 0,
.sprite_flags = 0x7,
.sprite_flags = VEHICLE_SPRITE_FLAG_FLAT | VEHICLE_SPRITE_FLAG_GENTLE_SLOPES | VEHICLE_SPRITE_FLAG_STEEP_SLOPES,
.sprite_width = 0,
.sprite_height_negative = 0,
.sprite_height_positive = 0,

View File

@ -895,10 +895,10 @@ static void vehicle_sprite_paint(rct_vehicle *vehicle, sint32 ebx, sint32 ecx, s
sint32 baseImage_id = ebx;
vehicle_boundbox bb = VehicleBoundboxes[vehicleEntry->draw_order][ecx];
if (vehicleEntry->flags_a & 0x4000) {
if (vehicleEntry->flags_a & VEHICLE_ENTRY_FLAG_A_14) {
baseImage_id += (vehicle->var_BA / 8) & 31;
}
if (vehicleEntry->flags_b & 0x80) {
if (vehicleEntry->flags_b & VEHICLE_ENTRY_FLAG_A_7) {
baseImage_id += vehicle->var_C5;
}
uint32 rotation = get_current_rotation();
@ -913,7 +913,7 @@ static void vehicle_sprite_paint(rct_vehicle *vehicle, sint32 ebx, sint32 ecx, s
for (sint32 i = 0; i < 8; i++){
if (vehicle->num_peeps > (i * 2) && vehicleEntry->no_seating_rows > i) {
image_id = baseImage_id | (vehicle->peep_tshirt_colours[i * 2] << 19) | (vehicle->peep_tshirt_colours[(i * 2) + 1] << 24) | 0xA0000000;
if (i == 0 && vehicleEntry->flags_b & 0x100) {
if (i == 0 && vehicleEntry->flags_b & VEHICLE_ENTRY_FLAG_A_8) {
image_id += (vehicleEntry->no_vehicle_images * vehicle->var_C5);
}
sub_98199C(image_id, 0, 0, bb.length_x, bb.length_y, bb.length_z, z, bb.offset_x, bb.offset_y, bb.offset_z + z, rotation);
@ -934,7 +934,7 @@ static void vehicle_sprite_paint_6D520E(rct_vehicle *vehicle, sint32 ebx, sint32
static void vehicle_sprite_paint_6D51EB(rct_vehicle *vehicle, sint32 ebx, sint32 z, const rct_ride_entry_vehicle *vehicleEntry)
{
sint32 ecx = ebx / 2;
if (vehicleEntry->flags_a & 0x800) {
if (vehicleEntry->flags_a & VEHICLE_ENTRY_FLAG_A_11) {
ebx = ebx / 2;
}
if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_15) {
@ -1343,7 +1343,7 @@ static void vehicle_sprite_1(rct_vehicle *vehicle, sint32 imageDirection, sint32
static void vehicle_sprite_2_0(rct_vehicle *vehicle, sint32 imageDirection, sint32 z, const rct_ride_entry_vehicle *vehicleEntry)
{
if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_GENTLE_SLOPES) {
if (vehicleEntry->flags_a & 0x4000) {
if (vehicleEntry->flags_a & VEHICLE_ENTRY_FLAG_A_14) {
sint32 ecx = (imageDirection / 2) + 16;
sint32 ebx = (((imageDirection / 8) + 8) * vehicleEntry->var_16) + vehicleEntry->var_20;
vehicle_sprite_paint_6D520E(vehicle, ebx, ecx, z, vehicleEntry);
@ -1563,7 +1563,7 @@ static void vehicle_sprite_5(rct_vehicle *vehicle, sint32 imageDirection, sint32
static void vehicle_sprite_6_0(rct_vehicle *vehicle, sint32 imageDirection, sint32 z, const rct_ride_entry_vehicle *vehicleEntry)
{
if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_GENTLE_SLOPES) {
if (vehicleEntry->flags_a & 0x4000) {
if (vehicleEntry->flags_a & VEHICLE_ENTRY_FLAG_A_14) {
sint32 ecx = ((imageDirection / 2) ^ 8) + 16;
sint32 ebx = (((imageDirection / 8) + 12) * vehicleEntry->var_16) + vehicleEntry->var_20;
vehicle_sprite_paint_6D520E(vehicle, ebx, ecx, z, vehicleEntry);

View File

@ -32,17 +32,17 @@ void vehicle_visual_submarine(sint32 x, sint32 imageDirection, sint32 y, sint32
sint32 baseImage_id = imageDirection;
sint32 image_id;
if (vehicle->restraints_position >= 64) {
if ((vehicleEntry->sprite_flags & 0x2000) && !(imageDirection & 3)) {
if ((vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_RESTRAINT_ANIMATION) && !(imageDirection & 3)) {
baseImage_id /= 8;
baseImage_id += ((vehicle->restraints_position - 64) / 64) * 4;
baseImage_id *= vehicleEntry->var_16;
baseImage_id += vehicleEntry->var_1C;
}
} else {
if (vehicleEntry->flags_a & 0x800) {
if (vehicleEntry->flags_a & VEHICLE_ENTRY_FLAG_A_11) {
baseImage_id /= 2;
}
if (vehicleEntry->sprite_flags & 0x8000) {
if (vehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_15) {
baseImage_id /= 8;
}
baseImage_id *= vehicleEntry->var_16;

View File

@ -247,6 +247,7 @@ static void window_banner_mousedown(sint32 widgetIndex, rct_window*w, rct_widget
widget->top + w->y,
widget->bottom - widget->top + 1,
w->colours[1],
0,
DROPDOWN_FLAG_STAY_OPEN,
13,
widget->right - widget->left - 3);

View File

@ -538,6 +538,7 @@ static void window_cheats_misc_mousedown(int widgetIndex, rct_window *w, rct_wid
w->y + dropdownWidget->top,
dropdownWidget->bottom - dropdownWidget->top + 1,
w->colours[1],
0,
DROPDOWN_FLAG_STAY_OPEN,
6,
dropdownWidget->right - dropdownWidget->left - 3

View File

@ -163,6 +163,7 @@ static void custom_currency_window_mousedown(sint32 widgetIndex, rct_window *w,
w->y + widget->top,
widget->bottom - widget->top + 1,
w->colours[1],
0,
DROPDOWN_FLAG_STAY_OPEN,
2,
widget->right - widget->left - 3

View File

@ -140,7 +140,7 @@ void window_dropdown_show_text(sint32 x, sint32 y, sint32 extray, uint8 colour,
max_string_width = max(string_width, max_string_width);
}
window_dropdown_show_text_custom_width(x, y, extray, colour, flags, num_items, max_string_width + 3);
window_dropdown_show_text_custom_width(x, y, extray, colour, 0, flags, num_items, max_string_width + 3);
}
/**
@ -153,8 +153,9 @@ void window_dropdown_show_text(sint32 x, sint32 y, sint32 extray, uint8 colour,
* @param flags (bh)
* @param num_items (bx)
* @param colour (al)
* @param custom_height (ah) requires flag set as well
*/
void window_dropdown_show_text_custom_width(sint32 x, sint32 y, sint32 extray, uint8 colour, uint8 flags, size_t num_items, sint32 width)
void window_dropdown_show_text_custom_width(sint32 x, sint32 y, sint32 extray, uint8 colour, uint8 custom_height, uint8 flags, size_t num_items, sint32 width)
{
rct_window* w;
@ -166,8 +167,8 @@ void window_dropdown_show_text_custom_width(sint32 x, sint32 y, sint32 extray, u
_dropdown_num_columns = 1;
_dropdown_item_width = width;
_dropdown_item_height = 10;
if (flags & 0x40)
_dropdown_item_height = flags & 0x3F;
if (flags & DROPDOWN_FLAG_CUSTOM_HEIGHT)
_dropdown_item_height = custom_height;
// Set the widgets
gDropdownNumItems = (sint32)num_items;

View File

@ -24,6 +24,7 @@
enum
{
DROPDOWN_FLAG_CUSTOM_HEIGHT = (1 << 6),
DROPDOWN_FLAG_STAY_OPEN = (1 << 7)
};
@ -45,7 +46,7 @@ void dropdown_set_checked(sint32 index, bool value);
void dropdown_set_disabled(sint32 index, bool value);
void window_dropdown_show_text(sint32 x, sint32 y, sint32 extray, uint8 colour, uint8 flags, size_t num_items);
void window_dropdown_show_text_custom_width(sint32 x, sint32 y, sint32 extray, uint8 colour, uint8 flags, size_t num_items, sint32 width);
void window_dropdown_show_text_custom_width(sint32 x, sint32 y, sint32 extray, uint8 colour, uint8 custom_height, uint8 flags, size_t num_items, sint32 width);
void window_dropdown_show_image(sint32 x, sint32 y, sint32 extray, uint8 colour, uint8 flags, sint32 numItems, sint32 itemWidth, sint32 itemHeight, sint32 numColumns);
void window_dropdown_close();
sint32 dropdown_index_from_point(sint32 x, sint32 y, rct_window* w);

View File

@ -58,7 +58,8 @@ enum {
FILTER_SELECTED = (1 << 12),
FILTER_NONSELECTED = (1 << 13),
FILTER_ALL = 0x7EF,
FILTER_RIDES = FILTER_RIDE_TRANSPORT | FILTER_RIDE_GENTLE | FILTER_RIDE_COASTER | FILTER_RIDE_THRILL | FILTER_RIDE_WATER | FILTER_RIDE_STALL,
FILTER_ALL = FILTER_RIDES | FILTER_RCT2 | FILTER_WW | FILTER_TT | FILTER_CUSTOM | FILTER_SELECTED | FILTER_NONSELECTED,
} FILTER_FLAGS;
uint32 _filter_flags;
@ -808,7 +809,7 @@ static void window_editor_object_selection_mouseup(rct_window *w, sint32 widgetI
window_editor_object_set_page(w, widgetIndex - WIDX_TAB_1);
break;
case WIDX_FILTER_RIDE_TAB_ALL:
_filter_flags |= 0x7E0;
_filter_flags |= FILTER_RIDES;
gConfigInterface.object_selection_filter_flags = _filter_flags;
config_save_default();
@ -826,7 +827,7 @@ static void window_editor_object_selection_mouseup(rct_window *w, sint32 widgetI
case WIDX_FILTER_RIDE_TAB_THRILL:
case WIDX_FILTER_RIDE_TAB_WATER:
case WIDX_FILTER_RIDE_TAB_STALL:
_filter_flags &= ~0x7E0;
_filter_flags &= ~FILTER_RIDES;
_filter_flags |= (1 << (widgetIndex - WIDX_FILTER_RIDE_TAB_TRANSPORT + 5));
gConfigInterface.object_selection_filter_flags = _filter_flags;
config_save_default();
@ -1194,7 +1195,7 @@ static void window_editor_object_selection_invalidate(rct_window *w)
(1 << WIDX_FILTER_RIDE_TAB_WATER) | (1 << WIDX_FILTER_RIDE_TAB_STALL);
for (sint32 i = 0; i < 7; i++)
w->pressed_widgets &= ~(1 << (WIDX_FILTER_RIDE_TAB_ALL + i));
if ((_filter_flags & 0x7E0) == 0x7E0)
if ((_filter_flags & FILTER_RIDES) == FILTER_RIDES)
w->pressed_widgets |= (1 << WIDX_FILTER_RIDE_TAB_ALL);
else {
for (sint32 i = 0; i < 6; i++) {

View File

@ -503,6 +503,7 @@ static void window_editor_objective_options_show_objective_dropdown(rct_window *
w->y + dropdownWidget->top,
dropdownWidget->bottom - dropdownWidget->top + 1,
w->colours[1],
0,
DROPDOWN_FLAG_STAY_OPEN,
numItems,
dropdownWidget->right - dropdownWidget->left - 3
@ -533,6 +534,7 @@ static void window_editor_objective_options_show_climate_dropdown(rct_window *w)
w->y + dropdownWidget->top,
dropdownWidget->bottom - dropdownWidget->top + 1,
w->colours[1],
0,
DROPDOWN_FLAG_STAY_OPEN,
4,
dropdownWidget->right - dropdownWidget->left - 3
@ -556,6 +558,7 @@ static void window_editor_objective_options_show_category_dropdown(rct_window *w
w->y + dropdownWidget->top,
dropdownWidget->bottom - dropdownWidget->top + 1,
w->colours[1],
0,
DROPDOWN_FLAG_STAY_OPEN,
5,
dropdownWidget->right - dropdownWidget->left - 3

View File

@ -1025,6 +1025,7 @@ static void window_editor_scenario_options_park_mousedown(sint32 widgetIndex, rc
w->y + dropdownWidget->top,
dropdownWidget->bottom - dropdownWidget->top - 1,
w->colours[1],
0,
DROPDOWN_FLAG_STAY_OPEN,
2,
dropdownWidget->right - dropdownWidget->left - 3

View File

@ -1298,6 +1298,7 @@ static void window_finances_research_mousedown(sint32 widgetIndex, rct_window *w
w->y + dropdownWidget->top,
dropdownWidget->bottom - dropdownWidget->top + 1,
w->colours[1],
0,
DROPDOWN_FLAG_STAY_OPEN,
4,
dropdownWidget->right - dropdownWidget->left - 3

View File

@ -378,6 +378,7 @@ static void window_guest_list_mousedown(sint32 widgetIndex, rct_window*w, rct_wi
w->y + widget->top,
widget->bottom - widget->top + 1,
w->colours[1],
0,
DROPDOWN_FLAG_STAY_OPEN,
_window_guest_list_num_pages,
widget->right - widget->left - 3
@ -402,6 +403,7 @@ static void window_guest_list_mousedown(sint32 widgetIndex, rct_window*w, rct_wi
w->y + widget->top,
widget->bottom - widget->top + 1,
w->colours[1],
0,
DROPDOWN_FLAG_STAY_OPEN,
2,
widget->right - widget->left - 3

View File

@ -353,6 +353,7 @@ static void window_multiplayer_groups_show_group_dropdown(rct_window *w, rct_wid
dropdownWidget->bottom - dropdownWidget->top + 1,
w->colours[1],
0,
0,
numItems,
widget->right - dropdownWidget->left
);

View File

@ -261,6 +261,7 @@ static void window_new_campaign_mousedown(sint32 widgetIndex, rct_window *w, rct
w->y + dropdownWidget->top,
dropdownWidget->bottom - dropdownWidget->top + 1,
w->colours[1],
0,
DROPDOWN_FLAG_STAY_OPEN,
numItems,
dropdownWidget->right - dropdownWidget->left - 3
@ -283,6 +284,7 @@ static void window_new_campaign_mousedown(sint32 widgetIndex, rct_window *w, rct
w->y + dropdownWidget->top,
dropdownWidget->bottom - dropdownWidget->top + 1,
w->colours[1],
0,
DROPDOWN_FLAG_STAY_OPEN,
numItems,
dropdownWidget->right - dropdownWidget->left - 3

View File

@ -1096,6 +1096,7 @@ static void window_options_mousedown(sint32 widgetIndex, rct_window*w, rct_widge
w->y + widget->top,
widget->bottom - widget->top + 1,
w->colours[1],
0,
DROPDOWN_FLAG_STAY_OPEN,
num_items,
widget->right - widget->left - 3
@ -1118,6 +1119,7 @@ static void window_options_mousedown(sint32 widgetIndex, rct_window*w, rct_widge
w->y + widget->top,
widget->bottom - widget->top + 1,
w->colours[1],
0,
DROPDOWN_FLAG_STAY_OPEN,
num_items,
widget->right - widget->left - 3
@ -1918,6 +1920,7 @@ static void window_options_show_dropdown(rct_window *w, rct_widget *widget, sint
w->y + widget->top,
widget->bottom - widget->top + 1,
w->colours[1],
0,
DROPDOWN_FLAG_STAY_OPEN,
num_items,
widget->right - widget->left - 3

View File

@ -251,6 +251,7 @@ static void window_player_overview_show_group_dropdown(rct_window *w, rct_widget
dropdownWidget->bottom - dropdownWidget->top + 1,
w->colours[1],
0,
0,
numItems,
widget->right - dropdownWidget->left
);

View File

@ -479,6 +479,7 @@ static void window_research_funding_mousedown(sint32 widgetIndex, rct_window *w,
w->y + dropdownWidget->top,
dropdownWidget->bottom - dropdownWidget->top + 1,
w->colours[1],
0,
DROPDOWN_FLAG_STAY_OPEN,
4,
dropdownWidget->right - dropdownWidget->left - 3

View File

@ -2069,6 +2069,7 @@ static void window_ride_show_view_dropdown(rct_window *w, rct_widget *widget)
dropdownWidget->bottom - dropdownWidget->top + 1,
w->colours[1],
0,
0,
numItems,
widget->right - dropdownWidget->left
);
@ -2752,6 +2753,7 @@ static void window_ride_vehicle_mousedown(sint32 widgetIndex, rct_window *w, rct
w->y + dropdownWidget->top,
dropdownWidget->bottom - dropdownWidget->top + 1,
w->colours[1],
0,
DROPDOWN_FLAG_STAY_OPEN,
numItems,
widget->right - dropdownWidget->left
@ -3177,6 +3179,7 @@ static void window_ride_mode_dropdown(rct_window *w, rct_widget *widget)
w->y + dropdownWidget->top,
dropdownWidget->bottom - dropdownWidget->top + 1,
w->colours[1],
0,
DROPDOWN_FLAG_STAY_OPEN,
numAvailableModes,
widget->right - dropdownWidget->left
@ -3211,6 +3214,7 @@ static void window_ride_load_dropdown(rct_window *w, rct_widget *widget)
w->y + dropdownWidget->top,
dropdownWidget->bottom - dropdownWidget->top + 1,
w->colours[1],
0,
DROPDOWN_FLAG_STAY_OPEN,
5,
widget->right - dropdownWidget->left
@ -3739,6 +3743,7 @@ static void window_ride_maintenance_mousedown(sint32 widgetIndex, rct_window *w,
w->y + dropdownWidget->top,
dropdownWidget->bottom - dropdownWidget->top + 1,
w->colours[1],
0,
DROPDOWN_FLAG_STAY_OPEN,
7,
widget->right - dropdownWidget->left
@ -4193,6 +4198,7 @@ static void window_ride_colour_mousedown(sint32 widgetIndex, rct_window *w, rct_
w->y + dropdownWidget->top,
dropdownWidget->bottom - dropdownWidget->top + 1,
w->colours[1],
0,
DROPDOWN_FLAG_STAY_OPEN,
4,
widget->right - dropdownWidget->left
@ -4220,6 +4226,7 @@ static void window_ride_colour_mousedown(sint32 widgetIndex, rct_window *w, rct_
w->y + dropdownWidget->top,
dropdownWidget->bottom - dropdownWidget->top + 1,
w->colours[1],
0,
DROPDOWN_FLAG_STAY_OPEN,
4,
widget->right - dropdownWidget->left
@ -4244,6 +4251,7 @@ static void window_ride_colour_mousedown(sint32 widgetIndex, rct_window *w, rct_
w->y + dropdownWidget->top,
dropdownWidget->bottom - dropdownWidget->top + 1,
w->colours[1],
0,
DROPDOWN_FLAG_STAY_OPEN,
countof(window_ride_entrance_style_list),
widget->right - dropdownWidget->left
@ -4262,6 +4270,7 @@ static void window_ride_colour_mousedown(sint32 widgetIndex, rct_window *w, rct_
w->y + dropdownWidget->top,
dropdownWidget->bottom - dropdownWidget->top + 1,
w->colours[1],
0,
DROPDOWN_FLAG_STAY_OPEN,
rideEntry->max_cars_in_train > 1 ? 3 : 2,
widget->right - dropdownWidget->left
@ -4285,6 +4294,7 @@ static void window_ride_colour_mousedown(sint32 widgetIndex, rct_window *w, rct_
w->y + dropdownWidget->top,
dropdownWidget->bottom - dropdownWidget->top + 1,
w->colours[1],
0,
DROPDOWN_FLAG_STAY_OPEN,
numItems,
widget->right - dropdownWidget->left
@ -4831,6 +4841,7 @@ static void window_ride_music_mousedown(sint32 widgetIndex, rct_window *w, rct_w
w->y + dropdownWidget->top,
dropdownWidget->bottom - dropdownWidget->top + 1,
w->colours[1],
0,
DROPDOWN_FLAG_STAY_OPEN,
numItems,
widget->right - dropdownWidget->left

View File

@ -3524,6 +3524,7 @@ static void window_ride_construction_show_special_track_dropdown(rct_window *w,
widget->bottom - widget->top + 1,
w->colours[1],
0,
0,
_numCurrentPossibleRideConfigurations,
widget->right - widget->left
);

View File

@ -325,6 +325,7 @@ static void window_ride_list_mousedown(sint32 widgetIndex, rct_window*w, rct_wid
w->y + widget->top,
widget->bottom - widget->top,
w->colours[1],
0,
DROPDOWN_FLAG_STAY_OPEN,
numItems,
widget->right - widget->left - 3

View File

@ -1318,7 +1318,7 @@ void window_staff_options_mousedown(sint32 widgetIndex, rct_window* w, rct_widge
sint32 y = widget->top + w->y;
sint32 extray = widget->bottom - widget->top + 1;
sint32 width = widget->right - widget->left - 3;
window_dropdown_show_text_custom_width(x, y, extray, w->colours[1], DROPDOWN_FLAG_STAY_OPEN, numCostumes, width);
window_dropdown_show_text_custom_width(x, y, extray, w->colours[1], 0, DROPDOWN_FLAG_STAY_OPEN, numCostumes, width);
// See above note.
gDropdownItemsChecked = itemsChecked;

View File

@ -500,6 +500,7 @@ static void window_themes_mousedown(sint32 widgetIndex, rct_window* w, rct_widge
w->y + widget->top,
widget->bottom - widget->top + 1,
w->colours[1],
0,
DROPDOWN_FLAG_STAY_OPEN,
num_items,
widget->right - widget->left - 3

View File

@ -1165,6 +1165,7 @@ static void window_tile_inspector_mousedown(sint32 widgetIndex, rct_window *w, r
w->y + widget->top,
widget->bottom - widget->top + 1,
w->colours[1],
0,
DROPDOWN_FLAG_STAY_OPEN,
3,
widget->right - widget->left - 3

View File

@ -319,6 +319,7 @@ static void window_title_command_editor_mousedown(sint32 widgetIndex, rct_window
w->y + widget->top,
widget->bottom - widget->top + 1,
w->colours[1],
0,
DROPDOWN_FLAG_STAY_OPEN,
numItems,
widget->right - widget->left - 3);
@ -339,6 +340,7 @@ static void window_title_command_editor_mousedown(sint32 widgetIndex, rct_window
w->y + widget->top,
widget->bottom - widget->top + 1,
w->colours[1],
0,
DROPDOWN_FLAG_STAY_OPEN,
numItems,
widget->right - widget->left - 3);
@ -356,6 +358,7 @@ static void window_title_command_editor_mousedown(sint32 widgetIndex, rct_window
w->y + widget->top,
widget->bottom - widget->top + 1,
w->colours[1],
0,
DROPDOWN_FLAG_STAY_OPEN,
numItems,
widget->right - widget->left - 3);

View File

@ -518,6 +518,7 @@ static void window_title_editor_mousedown(sint32 widgetIndex, rct_window* w, rct
w->y + widget->top,
widget->bottom - widget->top + 1,
w->colours[1],
0,
DROPDOWN_FLAG_STAY_OPEN,
numItems,
widget->right - widget->left - 3);