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

Method process_explosive

ogsr_engine/xrGame/agent_explosive_manager.cpp:65–91  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

63}
64
65bool CAgentExplosiveManager::process_explosive(CMemberOrder& member)
66{
67 float min_dist_sqr = flt_max;
68 CDangerExplosive* best_grenade = 0;
69 xr_vector<CDangerExplosive>::iterator I = m_explosives.begin();
70 xr_vector<CDangerExplosive>::iterator E = m_explosives.end();
71 for (; I != E; ++I)
72 {
73 if (!member.object().memory().visual().visible_now((*I).m_game_object))
74 continue;
75
76 float dist_sqr = (*I).m_game_object->Position().distance_to_sqr(member.object().Position());
77 if (dist_sqr < min_dist_sqr)
78 {
79 if ((*I).m_reactor && ((*I).m_reactor->Position().distance_to_sqr((*I).m_game_object->Position()) <= min_dist_sqr))
80 continue;
81 min_dist_sqr = dist_sqr;
82 best_grenade = &*I;
83 }
84 }
85
86 if (!best_grenade)
87 return (false);
88
89 best_grenade->m_reactor = &member.object();
90 return (true);
91}
92
93void CAgentExplosiveManager::react_on_explosives()
94{

Callers

nothing calls this directly

Calls 8

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

Tested by

no test coverage detected