Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- bool CLuaMain::LoadScriptFromBuffer ( const char* cpBuffer, unsigned int uiSize, const char* szFileName, bool bUTF8 )
- {
- 0C6E5C30 push 0FFFFFFFFh
- 0C6E5C32 push 100D87D3h
- 0C6E5C37 mov eax,dword ptr fs:[00000000h]
- 0C6E5C3D push eax
- 0C6E5C3E sub esp,0D0h
- 0C6E5C44 mov eax,dword ptr ds:[100FA01Ch]
- 0C6E5C49 xor eax,esp
- 0C6E5C4B mov dword ptr [esp+0C8h],eax
- 0C6E5C52 push ebx
- 0C6E5C53 push ebp
- 0C6E5C54 push esi
- 0C6E5C55 push edi
- 0C6E5C56 mov eax,dword ptr ds:[100FA01Ch]
- 0C6E5C5B xor eax,esp
- 0C6E5C5D push eax
- 0C6E5C5E lea eax,[esp+0E4h]
- 0C6E5C65 mov dword ptr fs:[00000000h],eax
- 0C6E5C6B mov ebx,ecx
- 0C6E5C6D mov ebp,dword ptr [esp+0F4h]
- if ( m_luaVM )
- 0C6E5C74 cmp dword ptr [ebp+48h],0
- {
- CLogger::LogPrint ( "SCRIPT ERROR: Unknown\n" );
- g_pClientGame->GetScriptDebugging()->LogInformation ( m_luaVM, "Loading script failed for unknown reason" );
- }
- }
- else
- {
- ResetInstructionCount ();
- int iret = lua_pcall ( m_luaVM, 0, 0, 0 ) ;
- if ( iret == LUA_ERRRUN || iret == LUA_ERRMEM )
- {
- SString strRes = ConformResourcePath ( lua_tostring( m_luaVM, -1 ) );
- std::vector <SString> vecSplit;
- strRes.Split ( ":", vecSplit );
- if ( vecSplit.size ( ) >= 3 )
- 0C6E5C78 mov eax,dword ptr [esp+0F8h]
- 0C6E5C7F mov esi,edx
- 0C6E5C81 mov dword ptr [esp+14h],eax
- 0C6E5C85 je CLuaMain::LoadScriptFromBuffer+2D8h (0C6E5F08h)
- 0C6E5C8B lea ecx,[esp+0A4h]
- 0C6E5C92 call dword ptr ds:[100DC1F0h]
- 0C6E5C98 cmp byte ptr [esp+0FCh],0
- 0C6E5CA0 mov dword ptr [esp+0ECh],0
- 0C6E5CAB jne CLuaMain::LoadScriptFromBuffer+1C1h (0C6E5DF1h)
- 0C6E5CB1 push esi
- 0C6E5CB2 lea ecx,[esp+8Ch]
- 0C6E5CB9 call dword ptr ds:[100DC1F4h]
- 0C6E5CBF push ebx
- 0C6E5CC0 lea ecx,[esp+8Ch]
- 0C6E5CC7 mov byte ptr [esp+0F0h],1
- 0C6E5CCF call dword ptr ds:[100DC1E0h]
- 0C6E5CD5 lea ecx,[esp+0C0h]
- 0C6E5CDC push ecx
- 0C6E5CDD lea ecx,[esp+8Ch]
- 0C6E5CE4 call SharedUtil::TranslateToUTF8 (0C623230h)
- 0C6E5CE9 add esp,4
- 0C6E5CEC mov edi,eax
- 0C6E5CEE lea eax,[esp+6Ch]
- 0C6E5CF2 mov byte ptr [esp+0ECh],2
- 0C6E5CFA call SharedUtil::ConvertToANSI (0C623210h)
- 0C6E5CFF push eax
- 0C6E5D00 lea ecx,[esp+0A8h]
- 0C6E5D07 mov byte ptr [esp+0F0h],3
- 0C6E5D0F call dword ptr ds:[100DC20Ch]
- 0C6E5D15 lea ecx,[esp+6Ch]
- 0C6E5D19 mov byte ptr [esp+0ECh],2
- 0C6E5D21 call dword ptr ds:[100DC208h]
- 0C6E5D27 lea ecx,[esp+0C0h]
- 0C6E5D2E mov byte ptr [esp+0ECh],1
- 0C6E5D36 call dword ptr ds:[100DC1C8h]
- 0C6E5D3C mov eax,dword ptr [esp+0B8h]
- 0C6E5D43 cmp ebx,eax
- 0C6E5D45 je CLuaMain::LoadScriptFromBuffer+16Fh (0C6E5D9Fh)
- 0C6E5D47 mov ecx,dword ptr [esp+14h]
- 0C6E5D4B lea edx,[esp+6Ch]
- 0C6E5D4F push edx
- 0C6E5D50 mov ebx,eax
- 0C6E5D52 call SharedUtil::ConformResourcePath (0C6232D0h)
- 0C6E5D57 add esp,4
- 0C6E5D5A mov byte ptr [esp+0ECh],4
- 0C6E5D62 cmp dword ptr [eax+18h],10h
- 0C6E5D66 jb CLuaMain::LoadScriptFromBuffer+13Dh (0C6E5D6Dh)
- {
- std::string strUTFScript;
- if ( !bUTF8 ) //If it's not a marked UTF-8 script
- {
- std::string strBuffer = std::string(cpBuffer);
- strBuffer.resize(uiSize); //Clamp to end size;
- strUTFScript = ConvertToANSI(TranslateToUTF8( strBuffer ));
- if ( uiSize != strUTFScript.size() )
- {
- uiSize = strUTFScript.size();
- g_pClientGame->GetScriptDebugging()->LogWarning ( m_luaVM, "Script '%s' is not encoded in UTF-8. Loading as ANSI...", ConformResourcePath(szFileName).c_str() );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement