MCPcopy Create free account
hub / github.com/OGSR/OGSR-Engine / process_corpse

Method process_corpse

ogsr_engine/xrGame/agent_corpse_manager.cpp:35–61  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

33};
34
35bool CAgentCorpseManager::process_corpse(CMemberOrder& member)
36{
37 float min_dist_sqr = flt_max;
38 CMemberCorpse* best_corpse = 0;
39 xr_vector<CMemberCorpse>::iterator I = m_corpses.begin();
40 xr_vector<CMemberCorpse>::iterator E = m_corpses.end();
41 for (; I != E; ++I)
42 {
43 if (!member.object().memory().visual().visible_now((*I).corpse()))
44 continue;
45
46 float dist_sqr = (*I).corpse()->Position().distance_to_sqr(member.object().Position());
47 if (dist_sqr < min_dist_sqr)
48 {
49 if ((*I).reactor() && ((*I).reactor()->Position().distance_to_sqr((*I).corpse()->Position()) <= min_dist_sqr))
50 continue;
51 min_dist_sqr = dist_sqr;
52 best_corpse = &*I;
53 }
54 }
55
56 if (!best_corpse)
57 return (false);
58
59 best_corpse->reactor(&member.object());
60 return (true);
61}
62
63void CAgentCorpseManager::react_on_member_death()
64{

Callers

nothing calls this directly

Calls 10

visible_nowMethod · 0.80
corpseMethod · 0.80
distance_to_sqrMethod · 0.80
PositionMethod · 0.80
reactorMethod · 0.80
beginMethod · 0.45
endMethod · 0.45
visualMethod · 0.45
memoryMethod · 0.45
objectMethod · 0.45

Tested by

no test coverage detected