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

Function applyLoadedObjectMarkToIndex

src/OpenLoco/src/Objects/ObjectIndex.cpp:1037–1060  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1035 }
1036
1037 static void applyLoadedObjectMarkToIndex(std::span<SelectedObjectsFlags> objectFlags, const std::array<std::span<uint8_t>, kMaxObjectTypes>& loadedObjectFlags)
1038 {
1039 for (ObjectIndexId i = 0; i < static_cast<int16_t>(_installedObjectList.size()); i++)
1040 {
1041 objectFlags[i] &= ~(SelectedObjectsFlags::inUse | SelectedObjectsFlags::selected);
1042
1043 auto entry = _installedObjectList[i];
1044
1045 auto objHandle = findObjectHandle(entry._header);
1046 if (!objHandle.has_value())
1047 {
1048 continue;
1049 }
1050 const auto loadedFlags = loadedObjectFlags[enumValue(objHandle->type)][objHandle->id];
1051 if (loadedFlags & (1 << 0))
1052 {
1053 objectFlags[i] |= SelectedObjectsFlags::selected | SelectedObjectsFlags::inUse;
1054 }
1055 if (loadedFlags & (1 << 1))
1056 {
1057 objectFlags[i] |= SelectedObjectsFlags::selected;
1058 }
1059 }
1060 }
1061
1062 // 0x00472D3F
1063 static void markInUseObjects(std::span<SelectedObjectsFlags> objectFlags)

Callers 2

markInUseObjectsFunction · 0.85
markOnlyLoadedObjectsFunction · 0.85

Calls 3

findObjectHandleFunction · 0.85
enumValueFunction · 0.85
sizeMethod · 0.45

Tested by

no test coverage detected