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

Method initialize

ogsr_engine/xrGame/stalker_combat_planner.cpp:93–146  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

91}
92
93void CStalkerCombatPlanner::initialize()
94{
95 inherited::initialize();
96
97 if (!m_loaded)
98 {
99 CScriptActionPlanner::m_storage.set_property(eWorldPropertyInCover, false);
100 CScriptActionPlanner::m_storage.set_property(eWorldPropertyLookedOut, false);
101 CScriptActionPlanner::m_storage.set_property(eWorldPropertyPositionHolded, false);
102 CScriptActionPlanner::m_storage.set_property(eWorldPropertyEnemyDetoured, false);
103 CScriptActionPlanner::m_storage.set_property(eWorldPropertyUseSuddenness, true);
104 CScriptActionPlanner::m_storage.set_property(eWorldPropertyKilledWounded, false);
105
106 object().brain().CStalkerPlanner::m_storage.set_property(eWorldPropertyCriticallyWounded, false);
107 }
108
109 object().agent_manager().member().member(m_object).cover(0);
110 // this is fake, should be revisited
111 // we must clear path, since it can be built using eMentalStateFree velocities
112 // and our new path may not be ready
113 object().movement().clear_path();
114
115 object().m_clutched_hammer_enabled = true;
116
117 m_last_enemy_id = u16(-1);
118 m_last_level_time = 0;
119 m_last_wounded = false;
120
121 if (!m_loaded && object().memory().enemy().selected())
122 {
123 CVisualMemoryManager* visual_memory_manager = object().memory().enemy().selected()->visual_memory();
124 VERIFY(visual_memory_manager);
125 CScriptActionPlanner::m_storage.set_property(eWorldPropertyUseSuddenness, !visual_memory_manager->visible_now(&object()));
126 }
127
128 m_loaded = false;
129
130 if (!object().agent_manager().member().combat_members().empty())
131 CScriptActionPlanner::m_storage.set_property(eWorldPropertyUseSuddenness, false);
132
133 // this is possible when i enter combat when it is wait after combat stage
134 // VERIFY (object().memory().enemy().selected());
135
136 if (m_object->memory().visual().visible_now(m_object->memory().enemy().selected()))
137 {
138 if (m_object->memory().enemy().selected()->human_being())
139 if (object().agent_manager().member().can_cry_noninfo_phrase())
140 if (object().agent_manager().member().members().size() > 1)
141 if (!CScriptActionPlanner::m_storage.property(eWorldPropertyUseSuddenness))
142 object().sound().play(eStalkerSoundAlarm);
143 }
144
145 object().agent_manager().member().register_in_combat(m_object);
146}
147
148void CStalkerCombatPlanner::finalize()
149{

Callers

nothing calls this directly

Calls 15

clear_pathMethod · 0.80
movementMethod · 0.80
visible_nowMethod · 0.80
soundMethod · 0.80
initializeFunction · 0.50
objectFunction · 0.50
set_propertyMethod · 0.45
coverMethod · 0.45
memberMethod · 0.45
selectedMethod · 0.45
memoryMethod · 0.45

Tested by

no test coverage detected