mirror of
https://github.com/OpenRCT2/OpenRCT2
synced 2026-01-28 17:24:47 +01:00
fix loading object via console
This commit is contained in:
@@ -595,7 +595,7 @@ extern "C"
|
||||
IObjectRepository * objRepo = GetObjectRepository();
|
||||
}
|
||||
|
||||
int object_load_chunk(int groupIndex, const rct_object_entry * entry, int * chunkSize)
|
||||
bool object_load_chunk(int groupIndex, const rct_object_entry * entry, int * outGroupIndex)
|
||||
{
|
||||
IObjectRepository * objRepo = GetObjectRepository();
|
||||
Object * object = objRepo->LoadObject(entry);
|
||||
@@ -623,6 +623,10 @@ extern "C"
|
||||
}
|
||||
}
|
||||
chunkList[groupIndex] = object->GetLegacyData();
|
||||
if (outGroupIndex != nullptr)
|
||||
{
|
||||
*outGroupIndex = groupIndex;
|
||||
}
|
||||
|
||||
rct_object_entry_extended * extendedEntry = &object_entry_groups[objectType].entries[groupIndex];
|
||||
Memory::Copy<void>(extendedEntry, object->GetObjectEntry(), sizeof(rct_object_entry));
|
||||
@@ -658,6 +662,23 @@ extern "C"
|
||||
return (void *)object;
|
||||
}
|
||||
|
||||
void * object_repository_find_loaded_object(const rct_object_entry * objectEntry)
|
||||
{
|
||||
for (size_t i = 0; i < 721; i++)
|
||||
{
|
||||
Object * object = _loadedObjects[i];
|
||||
if (object != nullptr)
|
||||
{
|
||||
const rct_object_entry * entry = object->GetObjectEntry();
|
||||
if (memcmp(objectEntry->name, entry->name, 8) == 0)
|
||||
{
|
||||
return (void *)object;
|
||||
}
|
||||
}
|
||||
}
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
void * object_repository_get_loaded_object(uint8 objectType, uint8 entryIndex)
|
||||
{
|
||||
int index = GetObjectEntryIndex(objectType, entryIndex);
|
||||
@@ -820,6 +841,12 @@ extern "C"
|
||||
return objectRepository->FindObject(entry);
|
||||
}
|
||||
|
||||
const ObjectRepositoryItem * object_repository_find_object_by_name(const char * name)
|
||||
{
|
||||
IObjectRepository * objectRepository = GetObjectRepository();
|
||||
return objectRepository->FindObject(name);
|
||||
}
|
||||
|
||||
void object_delete(void * object)
|
||||
{
|
||||
if (object != nullptr)
|
||||
|
||||
@@ -76,7 +76,9 @@ IObjectRepository * GetObjectRepository();
|
||||
size_t object_repository_get_items_count();
|
||||
const ObjectRepositoryItem * object_repository_get_items();
|
||||
const ObjectRepositoryItem * object_repository_find_object_by_entry(const rct_object_entry * entry);
|
||||
const ObjectRepositoryItem * object_repository_find_object_by_name(const char * name);
|
||||
void * object_repository_load_object(const rct_object_entry * objectEntry);
|
||||
void * object_repository_find_loaded_object(const rct_object_entry * objectEntry);
|
||||
void * object_repository_get_loaded_object(uint8 objectType, uint8 entryIndex);
|
||||
void object_repository_unload(size_t itemIndex);
|
||||
|
||||
|
||||
@@ -101,6 +101,7 @@ void RideObject::Load()
|
||||
_legacyType.name = language_allocate_object_string(GetName());
|
||||
_legacyType.description = language_allocate_object_string(GetDescription());
|
||||
_legacyType.images_offset = gfx_object_allocate_images(GetImageTable()->GetImages(), GetImageTable()->GetCount());
|
||||
_legacyType.vehicle_preset_list = &_presetColours;
|
||||
|
||||
int cur_vehicle_images_offset = _legacyType.images_offset + 3;
|
||||
for (int i = 0; i < 4; i++)
|
||||
|
||||
Reference in New Issue
Block a user