void UpdateLegacyLoadedObjectList() { for (sint32 i = 0; i < OBJECT_ENTRY_COUNT; i++) { Object * loadedObject = nullptr; if (_loadedObjects != nullptr) { loadedObject = _loadedObjects[i]; } uint8 objectType, entryIndex; get_type_entry_index(i, &objectType, &entryIndex); rct_object_entry_extended * legacyEntry = &object_entry_groups[objectType].entries[entryIndex]; void * * legacyChunk = &object_entry_groups[objectType].chunks[entryIndex]; if (loadedObject == nullptr) { Memory::Set(legacyEntry, 0xFF, sizeof(rct_object_entry_extended)); *legacyChunk = (void *)-1; } else { legacyEntry->entry = *loadedObject->GetObjectEntry(); legacyEntry->chunk_size = 0; *legacyChunk = loadedObject->GetLegacyData(); } } }
void * get_loaded_object_chunk(size_t index) { uint8 objectType, entryIndex; get_type_entry_index(index, &objectType, &entryIndex); void *entry = object_entry_groups[objectType].chunks[entryIndex]; return entry; }
const rct_object_entry * get_loaded_object_entry(size_t index) { uint8 objectType, entryIndex; get_type_entry_index(index, &objectType, &entryIndex); rct_object_entry * entry = (rct_object_entry *)&(object_entry_groups[objectType].entries[entryIndex]); return entry; }
uint8 GetLoadedObjectEntryIndex(const Object * object) override { uint8 result = UINT8_MAX; size_t index = GetLoadedObjectIndex(object); if (index != SIZE_MAX) { get_type_entry_index(index, nullptr, &result); } return result; }