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

Function markInUseObjects

src/OpenLoco/src/Objects/ObjectIndex.cpp:1063–1089  ·  view source on GitHub ↗

0x00472D3F

Source from the content-addressed store, hash-verified

1061
1062 // 0x00472D3F
1063 static void markInUseObjects(std::span<SelectedObjectsFlags> objectFlags)
1064 {
1065 std::array<uint8_t, kMaxObjects> allLoadedObjectFlags{};
1066 std::array<std::span<uint8_t>, kMaxObjectTypes> loadedObjectFlags;
1067 size_t count = 0U;
1068 for (uint8_t i = 0; i < kMaxObjectTypes; ++i)
1069 {
1070 const auto type = static_cast<ObjectType>(i);
1071 loadedObjectFlags[i] = std::span<uint8_t>(allLoadedObjectFlags.begin() + count, getMaxObjects(type));
1072 count += getMaxObjects(type);
1073 }
1074
1075 markLoadedObjects(loadedObjectFlags);
1076
1077 if (Game::hasFlags(GameStateFlags::tileManagerLoaded))
1078 {
1079 loadedObjectFlags[enumValue(ObjectType::region)][0] |= (1U << 0);
1080 markInUseObjectsByTile(loadedObjectFlags);
1081 }
1082
1083 markInUseVehicleObjects(loadedObjectFlags[enumValue(ObjectType::vehicle)]);
1084 markInUseIndustryObjects(loadedObjectFlags[enumValue(ObjectType::industry)]);
1085 markInUseCompetitorObjects(loadedObjectFlags[enumValue(ObjectType::competitor)]);
1086
1087 // Copy results over to objectFlags
1088 applyLoadedObjectMarkToIndex(objectFlags, loadedObjectFlags);
1089 }
1090
1091 // 0x00472CFD
1092 static void selectRequiredObjects(ObjectIndexSelection& selection)

Callers 1

ObjectIndex.cppFile · 0.85

Calls 10

getMaxObjectsFunction · 0.85
markLoadedObjectsFunction · 0.85
enumValueFunction · 0.85
markInUseObjectsByTileFunction · 0.85
markInUseVehicleObjectsFunction · 0.85
markInUseIndustryObjectsFunction · 0.85
hasFlagsFunction · 0.50
beginMethod · 0.45

Tested by

no test coverage detected