Fix build when using ValyriaTear/luabind (on Ubuntu)
[ryzomcore.git] / nel / src / gui / lua_manager.cpp
blob31f2a4450c024c051d057ba15989f681a9ec41cb
1 // Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/>
2 // Copyright (C) 2010 Winch Gate Property Limited
3 //
4 // This source file has been modified by the following contributors:
5 // Copyright (C) 2013 Laszlo KIS-ADAM (dfighter) <dfighter1985@gmail.com>
6 //
7 // This program is free software: you can redistribute it and/or modify
8 // it under the terms of the GNU Affero General Public License as
9 // published by the Free Software Foundation, either version 3 of the
10 // License, or (at your option) any later version.
12 // This program is distributed in the hope that it will be useful,
13 // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 // GNU Affero General Public License for more details.
17 // You should have received a copy of the GNU Affero General Public License
18 // along with this program. If not, see <http://www.gnu.org/licenses/>.
21 #include "stdpch.h"
22 #include "nel/gui/lua_manager.h"
23 #include "nel/gui/lua_helper.h"
25 #ifdef DEBUG_NEW
26 #define new DEBUG_NEW
27 #endif
29 namespace NLGUI
32 bool CLuaManager::debugLua = false;
33 bool CLuaManager::editorMode = false;
34 CLuaManager* CLuaManager::instance = NULL;
36 CLuaManager::CLuaManager()
38 luaState = new NLGUI::CLuaState( debugLua );
41 CLuaManager::~CLuaManager()
43 if (luaState)
45 delete luaState;
46 luaState = NULL;
50 void CLuaManager::releaseInstance()
52 if (instance)
54 delete instance;
55 instance = NULL;
59 bool CLuaManager::executeLuaScript( const std::string &luaScript, bool smallScript )
61 if( editorMode )
62 return true;
64 try
66 if( smallScript )
67 luaState->executeSmallScript( luaScript );
68 else
69 luaState->executeScript( luaScript );
71 catch( const ELuaError &e )
73 nlwarning( e.luaWhat().c_str() );
74 return false;
77 return true;
80 void CLuaManager::ResetLuaState()
82 if (luaState) delete luaState;
84 luaState = new CLuaState( debugLua );
87 void CLuaManager::forceGarbageCollect()
89 nlinfo("Collecting Garbaged LUA variables");
90 luaState->setGCThreshold( 0 );
91 nlinfo( NLMISC::toString( "Memory Used : %d Kb", luaState->getGCCount() ).c_str() );