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

Function UpdateAllItems

TombEngine/Game/items.cpp:878–915  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

876}
877
878void UpdateAllItems()
879{
880 InItemControlLoop = true;
881
882 int itemNumber = NextItemActive;
883 while (itemNumber != NO_VALUE)
884 {
885 auto& item = g_Level.Items[itemNumber];
886 itemNumber = item.NextActive;
887
888 if (!Objects.CheckID(item.ObjectNumber))
889 continue;
890
891 if (g_GameFlow->LastFreezeMode != FreezeMode::None && !Objects[item.ObjectNumber].AlwaysActive)
892 continue;
893
894 if (item.AfterDeath <= ITEM_DEATH_TIMEOUT)
895 {
896 if (Objects[item.ObjectNumber].control)
897 Objects[item.ObjectNumber].control(item.Index);
898
899 TestVolumes(item.Index);
900 ProcessEffects(&item);
901
902 if (item.AfterDeath > 0 && item.AfterDeath < ITEM_DEATH_TIMEOUT && !(Wibble & 3))
903 item.AfterDeath++;
904 if (item.AfterDeath == ITEM_DEATH_TIMEOUT)
905 KillItem(item.Index);
906 }
907 else
908 {
909 KillItem(item.Index);
910 }
911 }
912
913 InItemControlLoop = false;
914 KillMoveItems();
915}
916
917void UpdateAllEffects()
918{

Callers 2

GamePhaseFunction · 0.85
FreezePhaseFunction · 0.85

Calls 5

TestVolumesFunction · 0.85
ProcessEffectsFunction · 0.85
KillItemFunction · 0.85
KillMoveItemsFunction · 0.85
CheckIDMethod · 0.80

Tested by

no test coverage detected