| 532 | void CScriptEngine::print_stack() { Log(get_lua_traceback(lua())); } |
| 533 | |
| 534 | void CScriptEngine::script_log(ScriptStorage::ELuaMessageType tLuaMessageType, const char* caFormat, |
| 535 | ...) // Используется в очень многих местах //Очень много пишет в лог. |
| 536 | { |
| 537 | #ifdef DEBUG |
| 538 | va_list marker; |
| 539 | va_start(marker, caFormat); |
| 540 | // |
| 541 | LPCSTR S = ""; |
| 542 | LPSTR S1; |
| 543 | string4096 S2; |
| 544 | switch (tLuaMessageType) |
| 545 | { |
| 546 | case ScriptStorage::eLuaMessageTypeInfo: S = "[LUA INFO]"; break; |
| 547 | case ScriptStorage::eLuaMessageTypeError: S = "[LUA ERROR]"; break; |
| 548 | case ScriptStorage::eLuaMessageTypeMessage: S = "[LUA MESSAGE]"; break; |
| 549 | case ScriptStorage::eLuaMessageTypeHookCall: S = "[LUA HOOK_CALL]"; break; |
| 550 | case ScriptStorage::eLuaMessageTypeHookReturn: S = "[LUA HOOK_RETURN]"; break; |
| 551 | case ScriptStorage::eLuaMessageTypeHookLine: S = "[LUA HOOK_LINE]"; break; |
| 552 | case ScriptStorage::eLuaMessageTypeHookCount: S = "[LUA HOOK_COUNT]"; break; |
| 553 | case ScriptStorage::eLuaMessageTypeHookTailReturn: S = "[LUA HOOK_TAIL_RETURN]"; break; |
| 554 | default: NODEFAULT; |
| 555 | } |
| 556 | xr_strcpy(S2, S); |
| 557 | S1 = S2 + xr_strlen(S); |
| 558 | vsprintf(S1, caFormat, marker); |
| 559 | Msg("-----------------------------------------"); |
| 560 | Msg("[script_log] %s", S2); |
| 561 | print_stack(); |
| 562 | Msg("-----------------------------------------"); |
| 563 | va_end(marker); |
| 564 | #endif |
| 565 | } |
| 566 | |
| 567 | bool CScriptEngine::load_buffer(lua_State* L, const char* caBuffer, size_t tSize, const char* caScriptName, |
| 568 | const char* caNameSpaceName) // KRodin: эта функция форматирует содержимое скрипта используя FILE_HEADER и после этого загружает его в lua |
no test coverage detected