0x00472D3F
| 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) |
no test coverage detected