MCPcopy Create free account
hub / github.com/OpenLoco/OpenLoco / load

Method load

src/OpenLoco/src/Objects/BridgeObject.cpp:54–91  ·  view source on GitHub ↗

0x0042C5B6

Source from the content-addressed store, hash-verified

52
53 // 0x0042C5B6
54 void BridgeObject::load(const LoadedObjectHandle& handle, std::span<const std::byte> data, ObjectManager::DependentObjects*)
55 {
56 auto remainingData = data.subspan(sizeof(BridgeObject));
57
58 {
59 auto strRes = ObjectManager::loadStringTable(remainingData, handle, 0);
60 name = strRes.str;
61 remainingData = remainingData.subspan(strRes.tableLength);
62 }
63
64 for (auto i = 0; i < trackNumCompatible; ++i)
65 {
66 trackMods[i] = 0xFF;
67 ObjectHeader trackModHeader = *reinterpret_cast<const ObjectHeader*>(remainingData.data());
68 auto res = ObjectManager::findObjectHandle(trackModHeader);
69 if (res.has_value())
70 {
71 trackMods[i] = res->id;
72 }
73 remainingData = remainingData.subspan(sizeof(ObjectHeader));
74 }
75
76 for (auto i = 0; i < roadNumCompatible; ++i)
77 {
78 roadMods[i] = 0xFF;
79 ObjectHeader roadModHeader = *reinterpret_cast<const ObjectHeader*>(remainingData.data());
80 auto res = ObjectManager::findObjectHandle(roadModHeader);
81 if (res.has_value())
82 {
83 roadMods[i] = res->id;
84 }
85 remainingData = remainingData.subspan(sizeof(ObjectHeader));
86 }
87
88 auto imgRes = ObjectManager::loadImageTable(remainingData);
89 image = imgRes.imageOffset;
90 assert(remainingData.size() == imgRes.tableLength);
91 }
92
93 // 0x0042C632
94 void BridgeObject::unload()

Callers

nothing calls this directly

Calls 5

loadStringTableFunction · 0.85
findObjectHandleFunction · 0.85
loadImageTableFunction · 0.85
dataMethod · 0.45
sizeMethod · 0.45

Tested by

no test coverage detected