MCPcopy Create free account
hub / github.com/MergHQ/CRYENGINE / Event

Method Event

Code/CryEngine/CryAction/Statistics/ScriptBind_GameStatistics.cpp:275–367  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

273}
274
275int CScriptBind_GameStatistics::Event(IFunctionHandler* pH)
276{
277#if STATS_MODE_CVAR
278 if (CCryActionCVars::Get().g_statisticsMode != 2)
279 return pH->EndFunction();
280#endif
281
282 IStatsTracker* tracker = GetTracker(pH);
283 if (!tracker)
284 {
285 CryWarning(VALIDATOR_MODULE_GAME, VALIDATOR_ERROR, "[Telemetry] Event() tracker is nil");
286 }
287#if STATISTICS_CHECK_BINDING
288 else if (m_boundTrackers.find(tracker) == m_boundTrackers.end())
289 {
290 CryWarning(VALIDATOR_MODULE_GAME, VALIDATOR_ERROR, "[Telemetry] Event() tracker is not bound");
291 }
292#endif
293 else if (pH->GetParamCount() != 2)
294 {
295 m_pSS->RaiseError("[Telemetry] Error: Event() expected 2 params.");
296 }
297 else
298 {
299 if (pH->GetParamType(1) != svtNumber && pH->GetParamType(1) != svtString)
300 {
301 m_pSS->RaiseError("[Telemetry] Event() Param #1 expected String or Number.");
302 }
303 else if (pH->GetParamType(2) == svtNull)
304 {
305 m_pSS->RaiseError("[Telemetry] Event() Param #2 is Null");
306 }
307 else if (pH->GetParamType(1) == svtNumber)
308 {
309 int id;
310 pH->GetParam(1, id);
311 ScriptAnyValue p;
312 pH->GetParamAny(2, p);
313
314 if ((p.type == ANY_TTABLE || p.type == ANY_TVECTOR))
315 {
316 XmlNodeRef node = m_pGS->CreateStatXMLNode();
317 SaveLuaStatToXML(node, p);
318 if (XmlNodeRef ch = (node->getChildCount() > 0) ? node->getChild(0) : XmlNodeRef(0))
319 {
320 SStatAnyValue statVal(m_pGS->WrapXMLNode(ch));
321 m_pGS->PreprocessScriptedEventParameter(id, statVal);
322 tracker->Event(id, statVal);
323 }
324 }
325 else
326 {
327 SStatAnyValue statVal(p);
328 m_pGS->PreprocessScriptedEventParameter(id, statVal);
329 tracker->Event(id, statVal);
330 }
331 }
332 else if (pH->GetParamType(1) == svtString)

Callers

nothing calls this directly

Calls 15

CryWarningFunction · 0.85
SaveLuaStatToXMLFunction · 0.85
RaiseErrorMethod · 0.80
GetParamAnyMethod · 0.80
CreateStatXMLNodeMethod · 0.80
WrapXMLNodeMethod · 0.80
RegisterGameEventMethod · 0.80
GetFunction · 0.50
ifFunction · 0.50
XmlNodeRefClass · 0.50
EndFunctionMethod · 0.45
findMethod · 0.45

Tested by

no test coverage detected