MCPcopy Create free account
hub / github.com/BohemiaInteractive/CWR / AddChange

Method AddChange

engine/Poseidon/AI/AICenterStats.cpp:836–871  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

834}
835
836void AIMap::AddChange(bool erase, bool enemy, const AITargetInfo& info)
837{
838 if (erase && info._idExact != nullptr)
839 {
840 // try to eliminate pairs insert - delete
841 int i;
842 for (i = _changesQueue.Size() - 1; i >= 0; i--)
843 {
844 AITargetChange& change = _changesQueue[i];
845 if (change.idExact == info._idExact)
846 {
847 if (!change.erase && change.enemy == enemy && change.type == info._type)
848 {
849 // pair insert - delete found
850 // delete after insert - unit destroyed sooner insert applied
851 _changesQueue.Delete(i);
852 return;
853 }
854 else
855 {
856 break;
857 }
858 }
859 }
860 }
861
862 int index = _changesQueue.Add();
863 AITargetChange& change = _changesQueue[index];
864 change.erase = erase;
865 change.enemy = enemy;
866 change.idExact = info._idExact;
867 change.type = info._type;
868 change.x = info._x;
869 change.z = info._z;
870 change.time = Glob.time;
871}
872
873bool AIMap::ProcessChange()
874{

Callers 4

RemoveOldExposuresMethod · 0.80
AddNewExposuresMethod · 0.80
DeleteTargetMethod · 0.80
UpdateTargetMethod · 0.80

Calls 3

SizeMethod · 0.45
DeleteMethod · 0.45
AddMethod · 0.45

Tested by

no test coverage detected