MCPcopy Create free account
hub / github.com/OpenRCT2/OpenRCT2 / AddObject

Method AddObject

src/openrct2/object/ObjectRepository.cpp:283–308  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

281 }
282
283 void AddObject(const RCTObjectEntry* objectEntry, const void* data, size_t dataSize) override
284 {
285 utf8 objectName[9];
286 ObjectEntryGetNameFixed(objectName, sizeof(objectName), objectEntry);
287
288 // Check that the object is loadable before writing it
289 auto object = ObjectFactory::CreateObjectFromLegacyData(objectEntry, data, dataSize);
290 if (object == nullptr)
291 {
292 Console::Error::WriteLine("[%s] Unable to export object.", objectName);
293 }
294 else
295 {
296 LOG_VERBOSE("Adding object: [%s]", objectName);
297 auto path = GetPathForNewObject(*objectEntry);
298 try
299 {
300 SaveObject(path, objectEntry, data, dataSize);
301 ScanObject(path);
302 }
303 catch (const std::exception&)
304 {
305 Console::Error::WriteLine("Failed saving object: [%s] to '%s'.", objectName, path.c_str());
306 }
307 }
308 }
309
310 void AddObjectFromFile(
311 ObjectGeneration generation, std::string_view objectName, const void* data, size_t dataSize) override

Callers

nothing calls this directly

Calls 3

ObjectEntryGetNameFixedFunction · 0.85
WriteLineFunction · 0.85

Tested by

no test coverage detected