Preserve stolen intel evidence and safely clean up spent folders

This commit is contained in:
2026-10-20 16:13:00 +02:00
parent ae2aedd131
commit 87d85ff02e
7 changed files with 221 additions and 23 deletions
+4
View File
@@ -63,6 +63,10 @@ int main(){
ERR_IssuedIntel a{&present,"radio-1"},b{&missing,"mortar-3"},c{nullptr,"depot-1"};ERR_BodyEvidence record{&body,{&a,&b,&c},false};Evidence service;service.record=&record;Array<string> result;
observer.position={3,0,0};assert(service.Inspect(&body,&observer,result));assert(result.size()==2&&result.Contains("mortar-3")&&result.Contains("depot-1")&&!result.Contains("radio-1"));
assert(!service.Inspect(&body,&observer,result));
// Engine deletion clears the weak entity reference, not the issued site.
// A consumed folder must remain reportable as missing after physical cleanup.
record.Searched=false;b.Folder=nullptr;
assert(service.Inspect(&body,&observer,result)&&result.Contains("mortar-3"));
Entity wreck,seat,unrelated;body.parent=&seat;seat.parent=&wreck;service.m_Roster={&record};
assert(service.RetainedWithin(&body)&&service.RetainedWithin(&seat)&&service.RetainedWithin(&wreck));
assert(!service.RetainedWithin(&unrelated)&&!service.RetainedWithin(nullptr));