MCPcopy Create free account
hub / github.com/TombEngine/TombEngine / CollectMultiplePickups

Function CollectMultiplePickups

TombEngine/Game/pickup/pickup.cpp:253–285  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

251}
252
253void 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
287void DoPickup(ItemInfo* laraItem)
288{

Callers 1

DoPickupFunction · 0.85

Calls 6

GetCollidedObjectsFunction · 0.85
PickedUpObjectFunction · 0.85
KillItemFunction · 0.85
HideOrDisablePickupFunction · 0.85
AddDisplayPickupMethod · 0.80
push_backMethod · 0.45

Tested by

no test coverage detected