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

Method ProcessScripts

ogsr_engine/xrGame/script_entity.cpp:228–318  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

226}
227
228void CScriptEntity::ProcessScripts()
229{
230 CScriptEntityAction* l_tpEntityAction = 0;
231#ifdef DEBUG
232 bool empty_queue = m_tpActionQueue.empty();
233#endif
234 while (!m_tpActionQueue.empty())
235 {
236 l_tpEntityAction = m_tpActionQueue.front();
237 VERIFY(l_tpEntityAction);
238#ifdef DEBUG
239// if (!xr_strcmp("m_stalker_wounded",*object().cName()))
240// Msg ("%6d Processing action : %s",Device.dwTimeGlobal,*l_tpEntityAction->m_tAnimationAction.m_caAnimationToPlay);
241#endif
242
243 if (m_tpCurrentEntityAction != l_tpEntityAction)
244 l_tpEntityAction->initialize();
245
246 m_tpCurrentEntityAction = l_tpEntityAction;
247
248 if (!l_tpEntityAction->CheckIfActionCompleted())
249 break;
250
251#ifdef DEBUG
252// if (!xr_strcmp("m_stalker_wounded",*object().cName()))
253// Msg ("%6d Action completed : %s",Device.dwTimeGlobal,*l_tpEntityAction->m_tAnimationAction.m_caAnimationToPlay);
254#endif
255
256 vfFinishAction(l_tpEntityAction);
257
258#ifdef DEBUG
259 if (psAI_Flags.is(aiLua))
260 Msg("Entity Action removed!!!");
261#endif
262
263 xr_delete(l_tpEntityAction);
264 m_tpActionQueue.erase(m_tpActionQueue.begin());
265 }
266
267 if (m_tpActionQueue.empty())
268 {
269#ifdef DEBUG
270 if (empty_queue)
271 ai().script_engine().script_log(ScriptStorage::eLuaMessageTypeInfo, "Object %s has an empty script queue!", *object().cName());
272#endif
273 return;
274 }
275
276 //try
277 //{
278 bool l_bCompleted;
279 l_bCompleted = l_tpEntityAction->m_tWatchAction.m_bCompleted;
280 bfAssignWatch(l_tpEntityAction);
281 if (l_tpEntityAction->m_tWatchAction.m_bCompleted && !l_bCompleted)
282 object().callback(GameObject::eActionTypeWatch)(object().lua_game_object(), u32(eActionTypeWatch));
283
284 l_bCompleted = l_tpEntityAction->m_tAnimationAction.m_bCompleted;
285 bfAssignAnimation(l_tpEntityAction);

Callers 1

ScriptCallBackFunction · 0.45

Calls 15

MsgFunction · 0.85
xr_deleteFunction · 0.85
isMethod · 0.80
script_logMethod · 0.80
lua_game_objectMethod · 0.80
u32Enum · 0.70
objectFunction · 0.50
emptyMethod · 0.45
frontMethod · 0.45
initializeMethod · 0.45
eraseMethod · 0.45

Tested by

no test coverage detected