| 251 | } |
| 252 | |
| 253 | void CollectMultiplePickups(int itemNumber) |
| 254 | { |
| 255 | auto& firstItem = g_Level.Items[itemNumber]; |
| 256 | |
| 257 | auto collObjects = GetCollidedObjects(firstItem, true, true, LARA_RADIUS, ObjectCollectionMode::Items); |
| 258 | collObjects.Items.push_back(&firstItem); |
| 259 | for (auto* itemPtr : collObjects.Items) |
| 260 | { |
| 261 | if (!Objects[itemPtr->ObjectNumber].isPickup) |
| 262 | continue; |
| 263 | |
| 264 | // HACK: Exclude flares and torches from pickup batches. |
| 265 | if ((itemPtr->ObjectNumber == ID_FLARE_ITEM && itemPtr->Active) || |
| 266 | itemPtr->ObjectNumber == ID_BURNING_TORCH_ITEM) |
| 267 | { |
| 268 | continue; |
| 269 | } |
| 270 | |
| 271 | PickedUpObject(*itemPtr); |
| 272 | g_Hud.PickupSummary.AddDisplayPickup(*itemPtr); |
| 273 | |
| 274 | if (itemPtr->TriggerFlags & (1 << 8)) |
| 275 | { |
| 276 | for (int i = 0; i < g_Level.NumItems; i++) |
| 277 | { |
| 278 | if (g_Level.Items[i].ObjectNumber == itemPtr->ObjectNumber) |
| 279 | KillItem(i); |
| 280 | } |
| 281 | } |
| 282 | |
| 283 | HideOrDisablePickup(*itemPtr); |
| 284 | } |
| 285 | } |
| 286 | |
| 287 | void DoPickup(ItemInfo* laraItem) |
| 288 | { |
no test coverage detected