Formatting improvements (pt 1)

This commit is contained in:
wolfreak99 2016-06-21 14:30:07 -04:00
parent 4afdf20f14
commit b587b15ddd
1 changed files with 30 additions and 27 deletions

View File

@ -337,12 +337,16 @@ static void visible_list_refresh(rct_window *w)
for (int i = 0; i < numObjects; i++) { for (int i = 0; i < numObjects; i++) {
rct_object_filters *filter = get_object_filter(i); rct_object_filters *filter = get_object_filter(i);
int type = entry->flags & 0x0F; int type = entry->flags & 0x0F;
if (type == w->selected_tab && !(*itemFlags & OBJECT_SELECTION_FLAG_6) && filter_source(entry) && filter_string(entry, filter) && filter_chunks(entry, filter) && filter_selected(itemFlags)) { if (type == w->selected_tab && !(*itemFlags & OBJECT_SELECTION_FLAG_6)
currentListItem->entry = entry; && filter_source(entry)
currentListItem->filter = filter; && filter_string(entry, filter)
currentListItem->flags = itemFlags; && filter_chunks(entry, filter)
currentListItem++; && filter_selected(itemFlags)) {
_numListItems++; currentListItem->entry = entry;
currentListItem->filter = filter;
currentListItem->flags = itemFlags;
currentListItem++;
_numListItems++;
} }
entry = object_get_next(entry); entry = object_get_next(entry);
@ -906,7 +910,8 @@ static void window_editor_object_selection_resize(rct_window *w)
{ {
window_set_resize(w, 600, 400, 1200, 1000); window_set_resize(w, 600, 400, 1200, 1000);
} }
#define FILTER_DROPDOWN_POSITION_SELECTED 5
#define FILTER_DROPDOWN_POSITION_NONSELECTED 6
void window_editor_object_selection_mousedown(int widgetIndex, rct_window*w, rct_widget* widget) void window_editor_object_selection_mousedown(int widgetIndex, rct_window*w, rct_widget* widget)
{ {
int num_items; int num_items;
@ -925,15 +930,15 @@ void window_editor_object_selection_mousedown(int widgetIndex, rct_window*w, rct
gDropdownItemsArgs[1] = STR_OBJECT_FILTER_WW; gDropdownItemsArgs[1] = STR_OBJECT_FILTER_WW;
gDropdownItemsArgs[2] = STR_OBJECT_FILTER_TT; gDropdownItemsArgs[2] = STR_OBJECT_FILTER_TT;
gDropdownItemsArgs[3] = STR_OBJECT_FILTER_CUSTOM; gDropdownItemsArgs[3] = STR_OBJECT_FILTER_CUSTOM;
//Track manager cannot select multiple, show show selection filters if not in track manager //Track manager cannot select multiple, so only show selection filters if not in track manager
if (!(gScreenFlags & SCREEN_FLAGS_TRACK_MANAGER)) { if (!(gScreenFlags & SCREEN_FLAGS_TRACK_MANAGER)) {
num_items = 7; num_items = 7;
gDropdownItemsFormat[4] = 0; gDropdownItemsFormat[4] = 0;
gDropdownItemsFormat[5] = 1156; gDropdownItemsFormat[FILTER_DROPDOWN_POSITION_SELECTED] = 1156;
gDropdownItemsFormat[6] = 1156; gDropdownItemsFormat[FILTER_DROPDOWN_POSITION_NONSELECTED] = 1156;
gDropdownItemsArgs[4] = STR_NONE; gDropdownItemsArgs[4] = STR_NONE;
gDropdownItemsArgs[5] = STR_SELECTED_ONLY; gDropdownItemsArgs[FILTER_DROPDOWN_POSITION_SELECTED] = STR_SELECTED_ONLY;
gDropdownItemsArgs[6] = STR_NON_SELECTED_ONLY; gDropdownItemsArgs[FILTER_DROPDOWN_POSITION_NONSELECTED] = STR_NON_SELECTED_ONLY;
} }
window_dropdown_show_text( window_dropdown_show_text(
@ -947,8 +952,8 @@ void window_editor_object_selection_mousedown(int widgetIndex, rct_window*w, rct
gDropdownItemsChecked = _filter_flags & 0xF; gDropdownItemsChecked = _filter_flags & 0xF;
if (!(gScreenFlags & SCREEN_FLAGS_TRACK_MANAGER)) { if (!(gScreenFlags & SCREEN_FLAGS_TRACK_MANAGER)) {
dropdown_set_checked(5, _filter_selected); dropdown_set_checked(FILTER_DROPDOWN_POSITION_SELECTED, _filter_selected);
dropdown_set_checked(6, _filter_nonselected); dropdown_set_checked(FILTER_DROPDOWN_POSITION_NONSELECTED, _filter_nonselected);
} }
break; break;
@ -962,22 +967,18 @@ static void window_editor_object_selection_dropdown(rct_window *w, int widgetInd
switch (widgetIndex) { switch (widgetIndex) {
case WIDX_FILTER_DROPDOWN: case WIDX_FILTER_DROPDOWN:
if (dropdownIndex == 5) { if (dropdownIndex == FILTER_DROPDOWN_POSITION_SELECTED) {
_filter_selected = !_filter_selected; _filter_selected = !_filter_selected;
if (_filter_selected && _filter_nonselected) { _filter_nonselected = false;
_filter_nonselected = false;
}
} }
else if (dropdownIndex == 6) { else if (dropdownIndex == FILTER_DROPDOWN_POSITION_NONSELECTED) {
_filter_nonselected = !_filter_nonselected; _filter_nonselected = !_filter_nonselected;
if (_filter_nonselected && _filter_selected) { _filter_selected = false;
_filter_selected = false;
}
} }
else { else {
_filter_flags ^= (1 << dropdownIndex); _filter_flags ^= (1 << dropdownIndex);
gConfigInterface.object_selection_filter_flags = _filter_flags;
} }
gConfigInterface.object_selection_filter_flags = _filter_flags;
config_save_default(); config_save_default();
filter_update_counts(); filter_update_counts();
@ -2169,7 +2170,6 @@ static bool filter_chunks(rct_object_entry *entry, rct_object_filters *filter)
static void filter_update_counts() static void filter_update_counts()
{ {
if (!_FILTER_ALL || strlen(_filter_string) > 0) { if (!_FILTER_ALL || strlen(_filter_string) > 0) {
int numObjects = gInstalledObjectsCount;
rct_object_entry *installed_entry = gInstalledObjects; rct_object_entry *installed_entry = gInstalledObjects;
rct_object_filters *filter; rct_object_filters *filter;
uint8 *objectFlag = RCT2_GLOBAL(RCT2_ADDRESS_EDITOR_OBJECT_FLAGS_LIST, uint8*); uint8 *objectFlag = RCT2_GLOBAL(RCT2_ADDRESS_EDITOR_OBJECT_FLAGS_LIST, uint8*);
@ -2177,11 +2177,14 @@ static void filter_update_counts()
for (int i = 0; i < 11; i++) { for (int i = 0; i < 11; i++) {
_filter_object_counts[i] = 0; _filter_object_counts[i] = 0;
} }
for (int i = 0; i < numObjects; i++) { for (int i = 0; i < gInstalledObjectsCount; i++) {
filter = get_object_filter(i); filter = get_object_filter(i);
type = installed_entry->flags & 0xF; type = installed_entry->flags & 0xF;
if (filter_source(installed_entry) && filter_string(installed_entry, filter) && filter_chunks(installed_entry, filter) && filter_selected(objectFlag)) { if (filter_source(installed_entry)
_filter_object_counts[type]++; && filter_string(installed_entry, filter)
&& filter_chunks(installed_entry, filter)
&& filter_selected(objectFlag)) {
_filter_object_counts[type]++;
} }
installed_entry = object_get_next(installed_entry); installed_entry = object_get_next(installed_entry);
objectFlag++; objectFlag++;