mirror of
https://github.com/OpenRCT2/OpenRCT2
synced 2026-01-22 14:24:33 +01:00
committed by
Michael Steenbeek
parent
0260633953
commit
f2c9fc58d5
@@ -1877,3 +1877,44 @@ bool editor_check_object_group_at_least_one_selected(sint32 checkObjectType)
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
sint32 editor_remove_unused_objects()
|
||||
{
|
||||
bool createSelectionFlags = (_objectSelectionFlags == nullptr);
|
||||
if (createSelectionFlags && !sub_6AB211())
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
setup_in_use_selection_flags();
|
||||
|
||||
sint32 numObjects = (sint32)object_repository_get_items_count();
|
||||
const ObjectRepositoryItem * items = object_repository_get_items();
|
||||
|
||||
sint32 numUnselectedObjects = 0;
|
||||
for (sint32 i = 0; i < numObjects; i++)
|
||||
{
|
||||
if (!(_objectSelectionFlags[i] & OBJECT_SELECTION_FLAG_IN_USE) && !(_objectSelectionFlags[i] & OBJECT_SELECTION_FLAG_ALWAYS_REQUIRED))
|
||||
{
|
||||
const ObjectRepositoryItem * item = &items[i];
|
||||
uint8 objectType = item->ObjectEntry.flags & 0xF;
|
||||
|
||||
if (objectType == OBJECT_TYPE_PARK_ENTRANCE || objectType == OBJECT_TYPE_SCENARIO_TEXT || objectType == OBJECT_TYPE_WATER || objectType == OBJECT_TYPE_SCENERY_SETS)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
_numSelectedObjectsForType[objectType]--;
|
||||
_objectSelectionFlags[i] &= ~OBJECT_SELECTION_FLAG_SELECTED;
|
||||
numUnselectedObjects++;
|
||||
}
|
||||
}
|
||||
unload_unselected_objects();
|
||||
|
||||
if (createSelectionFlags)
|
||||
{
|
||||
editor_object_flags_free();
|
||||
}
|
||||
|
||||
return numUnselectedObjects;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user