Beispiel #1
0
    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();
            }
        }
    }
Beispiel #2
0
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;
}
Beispiel #3
0
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;
}
Beispiel #4
0
 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;
 }