Replace object_entry_get_type() with method (#10937)

This commit is contained in:
Michael Steenbeek 2020-03-15 12:07:04 +01:00 committed by GitHub
parent c31ef8e635
commit 18ebe73dfa
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
12 changed files with 37 additions and 39 deletions

View File

@ -306,7 +306,7 @@ static void visible_list_refresh(rct_window* w)
{
uint8_t selectionFlags = _objectSelectionFlags[i];
const ObjectRepositoryItem* item = &items[i];
uint8_t objectType = item->ObjectEntry.flags & 0x0F;
uint8_t objectType = item->ObjectEntry.GetType();
if (objectType == get_selected_object_type(w) && !(selectionFlags & OBJECT_SELECTION_FLAG_6) && filter_source(item)
&& filter_string(item) && filter_chunks(item) && filter_selected(selectionFlags))
{
@ -1292,7 +1292,7 @@ static void editor_load_selected_objects()
else if (!(gScreenFlags & SCREEN_FLAGS_EDITOR))
{
// Defaults selected items to researched (if in-game)
uint8_t objectType = object_entry_get_type(entry);
uint8_t objectType = entry->GetType();
uint8_t entryIndex = object_manager_get_loaded_object_entry_index(loadedObject);
if (objectType == OBJECT_TYPE_RIDE)
{
@ -1405,7 +1405,7 @@ static bool filter_string(const ObjectRepositoryItem* item)
// Check if the searched string exists in the name, ride type, or filename
bool inName = strstr(name_lower, filter_lower) != nullptr;
bool inRideType = ((item->ObjectEntry.flags & 0x0F) == OBJECT_TYPE_RIDE) && strstr(type_lower, filter_lower) != nullptr;
bool inRideType = (item->ObjectEntry.GetType() == OBJECT_TYPE_RIDE) && strstr(type_lower, filter_lower) != nullptr;
bool inPath = strstr(object_path, filter_lower) != nullptr;
return inName || inRideType || inPath;
@ -1448,7 +1448,7 @@ static bool filter_source(const ObjectRepositoryItem* item)
static bool filter_chunks(const ObjectRepositoryItem* item)
{
switch (item->ObjectEntry.flags & 0x0F)
switch (item->ObjectEntry.GetType())
{
case OBJECT_TYPE_RIDE:
@ -1480,7 +1480,7 @@ static void filter_update_counts()
const ObjectRepositoryItem* item = &items[i];
if (filter_source(item) && filter_string(item) && filter_chunks(item) && filter_selected(selectionFlags[i]))
{
uint8_t objectType = item->ObjectEntry.flags & 0xF;
uint8_t objectType = item->ObjectEntry.GetType();
_filter_object_counts[objectType]++;
}
}

View File

@ -346,8 +346,7 @@ static bool _updatedListAfterDownload;
static rct_string_id get_object_type_string(const rct_object_entry* entry)
{
rct_string_id result;
uint8_t objectType = object_entry_get_type(entry);
switch (objectType)
switch (entry->GetType())
{
case OBJECT_TYPE_RIDE:
result = STR_OBJECT_SELECTION_RIDE_VEHICLES_ATTRACTIONS;

View File

@ -49,7 +49,7 @@ static void setup_track_manager_objects()
{
uint8_t* selectionFlags = &_objectSelectionFlags[i];
const ObjectRepositoryItem* item = &items[i];
uint8_t object_type = object_entry_get_type(&item->ObjectEntry);
uint8_t object_type = item->ObjectEntry.GetType();
if (object_type == OBJECT_TYPE_RIDE)
{
*selectionFlags |= OBJECT_SELECTION_FLAG_6;
@ -78,7 +78,7 @@ static void setup_track_designer_objects()
{
uint8_t* selectionFlags = &_objectSelectionFlags[i];
const ObjectRepositoryItem* item = &items[i];
uint8_t objectType = object_entry_get_type(&item->ObjectEntry);
uint8_t objectType = item->ObjectEntry.GetType();
if (objectType == OBJECT_TYPE_RIDE)
{
*selectionFlags |= OBJECT_SELECTION_FLAG_6;
@ -237,7 +237,7 @@ void sub_6AB211()
const ObjectRepositoryItem* items = object_repository_get_items();
for (int32_t i = 0; i < numObjects; i++)
{
uint8_t objectType = object_entry_get_type(&items[i].ObjectEntry);
uint8_t objectType = items[i].ObjectEntry.GetType();
_numAvailableObjectsForType[objectType]++;
}
@ -365,7 +365,7 @@ void reset_selected_object_count_and_size()
const ObjectRepositoryItem* items = object_repository_get_items();
for (int32_t i = 0; i < numObjects; i++)
{
uint8_t objectType = object_entry_get_type(&items[i].ObjectEntry);
uint8_t objectType = items[i].ObjectEntry.GetType();
if (_objectSelectionFlags[i] & OBJECT_SELECTION_FLAG_SELECTED)
{
_numSelectedObjectsForType[objectType]++;
@ -430,7 +430,7 @@ int32_t window_editor_object_selection_select_object(uint8_t bh, int32_t flags,
return 0;
}
uint8_t objectType = object_entry_get_type(&item->ObjectEntry);
uint8_t objectType = item->ObjectEntry.GetType();
if (objectType == OBJECT_TYPE_SCENERY_GROUP && (flags & (1 << 2)))
{
for (const auto& sgEntry : item->SceneryGroupInfo.Entries)
@ -457,7 +457,7 @@ int32_t window_editor_object_selection_select_object(uint8_t bh, int32_t flags,
return 1;
}
uint8_t objectType = object_entry_get_type(&item->ObjectEntry);
uint8_t objectType = item->ObjectEntry.GetType();
uint16_t maxObjects = object_entry_group_counts[objectType];
if (gScreenFlags & SCREEN_FLAGS_TRACK_DESIGNER)
{
@ -510,7 +510,7 @@ bool editor_check_object_group_at_least_one_selected(int32_t checkObjectType)
for (int32_t i = 0; i < numObjects; i++)
{
uint8_t objectType = object_entry_get_type(&items[i].ObjectEntry);
uint8_t objectType = items[i].ObjectEntry.GetType();
if (checkObjectType == objectType && (_objectSelectionFlags[i] & OBJECT_SELECTION_FLAG_SELECTED))
{
return true;
@ -536,7 +536,7 @@ int32_t editor_remove_unused_objects()
&& !(_objectSelectionFlags[i] & OBJECT_SELECTION_FLAG_ALWAYS_REQUIRED))
{
const ObjectRepositoryItem* item = &items[i];
uint8_t objectType = object_entry_get_type(&item->ObjectEntry);
uint8_t objectType = item->ObjectEntry.GetType();
if (objectType >= OBJECT_TYPE_SCENERY_GROUP)
{

View File

@ -1078,7 +1078,7 @@ static int32_t cc_load_object(InteractiveConsole& console, const arguments_t& ar
}
uint32_t groupIndex = object_manager_get_loaded_object_entry_index(loadedObject);
uint8_t objectType = object_entry_get_type(entry);
uint8_t objectType = entry->GetType();
if (objectType == OBJECT_TYPE_RIDE)
{
// Automatically research the ride so it's supported by the game.

View File

@ -105,6 +105,11 @@ struct rct_object_entry
name[i] = dc;
}
}
uint8_t GetType() const
{
return flags & 0x0F;
}
};
assert_struct_size(rct_object_entry, 0x10);
@ -214,7 +219,7 @@ public:
virtual uint8_t GetObjectType() const final
{
return _objectEntry.flags & 0x0F;
return _objectEntry.GetType();
}
virtual std::string GetName() const;
virtual std::string GetName(int32_t language) const;

View File

@ -203,7 +203,7 @@ namespace ObjectFactory
rct_object_entry entry = fs.ReadValue<rct_object_entry>();
if (object_entry_get_type(&entry) != OBJECT_TYPE_SCENARIO_TEXT)
if (entry.GetType() != OBJECT_TYPE_SCENARIO_TEXT)
{
result = CreateObject(entry);
@ -265,8 +265,7 @@ namespace ObjectFactory
Object* CreateObject(const rct_object_entry& entry)
{
Object* result;
uint8_t objectType = object_entry_get_type(&entry);
switch (objectType)
switch (entry.GetType())
{
case OBJECT_TYPE_RIDE:
result = new RideObject(entry);

View File

@ -69,11 +69,6 @@ bool object_entry_is_empty(const rct_object_entry* entry)
return false;
}
uint8_t object_entry_get_type(const rct_object_entry* objectEntry)
{
return (objectEntry->flags & 0x0F);
}
uint8_t object_entry_get_source_game_legacy(const rct_object_entry* objectEntry)
{
return (objectEntry->flags & 0xF0) >> 4;
@ -96,7 +91,7 @@ void object_create_identifier_name(char* string_buffer, size_t size, const rct_o
*/
bool find_object_in_entry_group(const rct_object_entry* entry, uint8_t* entry_type, uint8_t* entry_index)
{
int32_t objectType = object_entry_get_type(entry);
int32_t objectType = entry->GetType();
if (objectType >= OBJECT_TYPE_COUNT)
{
return false;

View File

@ -105,7 +105,7 @@ public:
loadedObject = ori->LoadedObject;
if (loadedObject == nullptr)
{
uint8_t objectType = object_entry_get_type(&ori->ObjectEntry);
uint8_t objectType = ori->ObjectEntry.GetType();
int32_t slot = FindSpareSlot(objectType);
if (slot != -1)
{
@ -479,7 +479,7 @@ private:
ori = _objectRepository.FindObject(&entry);
if (ori == nullptr)
{
if (object_entry_get_type(&entry) != OBJECT_TYPE_SCENARIO_TEXT)
if (entry.GetType() != OBJECT_TYPE_SCENARIO_TEXT)
{
invalidEntries.push_back(entry);
ReportMissingObject(&entry);
@ -521,7 +521,7 @@ private:
if (!object_entry_is_empty(entry))
{
ori = _objectRepository.FindObject(entry);
if (ori == nullptr && object_entry_get_type(entry) != OBJECT_TYPE_SCENARIO_TEXT)
if (ori == nullptr && entry->GetType() != OBJECT_TYPE_SCENARIO_TEXT)
{
missingObjects.push_back(*entry);
ReportMissingObject(entry);

View File

@ -135,7 +135,7 @@ protected:
stream->WriteValue(source);
}
switch (object_entry_get_type(&item.ObjectEntry))
switch (item.ObjectEntry.GetType())
{
case OBJECT_TYPE_RIDE:
stream->WriteValue<uint8_t>(item.RideInfo.RideFlags);
@ -173,7 +173,7 @@ protected:
item.Sources.push_back(value);
}
switch (object_entry_get_type(&item.ObjectEntry))
switch (item.ObjectEntry.GetType())
{
case OBJECT_TYPE_RIDE:
item.RideInfo.RideFlags = stream->ReadValue<uint8_t>();
@ -520,7 +520,7 @@ private:
}
// Encode data
uint8_t objectType = object_entry_get_type(entry);
uint8_t objectType = entry->GetType();
sawyercoding_chunk_header chunkHeader;
chunkHeader.encoding = object_entry_group_encoding[objectType];
chunkHeader.length = (uint32_t)dataSize;
@ -650,7 +650,7 @@ bool IsObjectCustom(const ObjectRepositoryItem* object)
// Do not count our new object types as custom yet, otherwise the game
// will try to pack them into saved games.
auto type = object_entry_get_type(&object->ObjectEntry);
auto type = object->ObjectEntry.GetType();
if (type > OBJECT_TYPE_SCENARIO_TEXT)
{
return false;
@ -749,7 +749,7 @@ bool object_entry_compare(const rct_object_entry* a, const rct_object_entry* b)
// If an official object don't bother checking checksum
if ((a->flags & 0xF0) || (b->flags & 0xF0))
{
if (object_entry_get_type(a) != object_entry_get_type(b))
if (a->GetType() != b->GetType())
{
return false;
}

View File

@ -85,7 +85,7 @@ void SceneryGroupObject::UpdateEntryIndexes()
uint16_t sceneryEntry = objectManager.GetLoadedObjectEntryIndex(ori->LoadedObject);
Guard::Assert(sceneryEntry != UINT8_MAX, GUARD_LINE);
auto objectType = ori->ObjectEntry.flags & 0x0F;
auto objectType = ori->ObjectEntry.GetType();
switch (objectType)
{
case OBJECT_TYPE_SMALL_SCENERY:

View File

@ -513,7 +513,7 @@ private:
auto foundObject = objectRepository.FindObject(objectName);
if (foundObject != nullptr)
{
uint8_t objectType = object_entry_get_type(&foundObject->ObjectEntry);
uint8_t objectType = foundObject->ObjectEntry.GetType();
switch (objectType)
{
case OBJECT_TYPE_SMALL_SCENERY:

View File

@ -486,7 +486,7 @@ rct_string_id TrackDesign::CreateTrackDesignScenery()
// Run an element loop
for (auto& scenery : scenery_elements)
{
switch (object_entry_get_type(&scenery.scenery_object))
switch (scenery.scenery_object.GetType())
{
case OBJECT_TYPE_PATHS:
{
@ -659,7 +659,7 @@ static void track_design_mirror_scenery(TrackDesign* td6)
uint8_t entry_type{ 0 }, entry_index{ 0 };
if (!find_object_in_entry_group(&scenery.scenery_object, &entry_type, &entry_index))
{
entry_type = object_entry_get_type(&scenery.scenery_object);
entry_type = scenery.scenery_object.GetType();
if (entry_type != OBJECT_TYPE_PATHS)
{
continue;
@ -859,7 +859,7 @@ static bool TrackDesignPlaceSceneryElementGetEntry(
{
if (!find_object_in_entry_group(&scenery.scenery_object, &entry_type, &entry_index))
{
entry_type = object_entry_get_type(&scenery.scenery_object);
entry_type = scenery.scenery_object.GetType();
if (entry_type != OBJECT_TYPE_PATHS)
{
_trackDesignPlaceStateSceneryUnavailable = true;