Esempio n. 1
0
bool Engine::Initialize(){

	m_screenWidth = 0;
	m_screenHeight = 0;
	try {

		InitializeWindows(m_screenWidth, m_screenHeight);

		//Use RAII for as much as possible

		m_Input = new InputSystem;
		if(!m_Input){
			return false;
		}

		m_ResourceLoader = new ResourceLoader();
		if(!m_ResourceLoader){
			return false;
		}

		m_Graphics = new GraphicsSystem(m_hwnd, m_ResourceLoader);
		if(!m_Graphics){
			return false;
		}

		m_EventManager = EventManager::Get();
		if(!m_EventManager){
			return false;
		}

		m_AudioSystem = new AudioSystem();
		if(!m_AudioSystem){
			return false;
		}

		m_ScriptManager = new ScriptManager();
		if(!m_ScriptManager){
			return false;
		}

		RegisterScriptFunctions();
	
		m_ScriptManager->ExecuteScript("programdata/required.lua");

		m_clock = clock();

		DGEngineInit();

		return true;
	}
	catch(std::exception exc){
		MessageBoxA(m_hwnd, exc.what(), "Error", MB_OK);
	}

	return false;
}
BOOL KScriptManager::Load()
{
    BOOL            bResult     = false;
    BOOL            bRetCode    = false;
    ILuaScriptEx*   piScript    = NULL;
    lua_State*      pLuaState   = NULL;

	piScript = CreateLuaInterface(&KMemory::LuaAllocator, NULL);
	KGLOG_PROCESS_ERROR(piScript);

    bRetCode = RegisterScriptFunctions(piScript);
    KGLOG_PROCESS_ERROR(bRetCode);

    piScript->RegisterConstList(g_LuaServerConstList);

    pLuaState = piScript->GetLuaState();
    KGLOG_PROCESS_ERROR(pLuaState);

    Luna<KScene>::Register(pLuaState);
    Luna<KHero>::Register(pLuaState);
    Luna<KPlayer>::Register(pLuaState);
    Luna<KAILogic>::Register(pLuaState);
    Luna<KAIState>::Register(pLuaState);
    Luna<KAIAction>::Register(pLuaState);
    Luna<KGItem>::Register(pLuaState);
    Luna<KGLuaItemInfo>::Register(pLuaState);
    Luna<KBall>::Register(pLuaState);

    bRetCode = LoadScripts(piScript, SERVER_SCRIPTS_DIR);
    KGLOG_PROCESS_ERROR(bRetCode);

    lua_gc(piScript->GetLuaState(), LUA_GCRESTART, 0);
    lua_gc(piScript->GetLuaState(), LUA_GCSETPAUSE, 100);
    lua_gc(piScript->GetLuaState(), LUA_GCSETSTEPMUL, 150);

    KG_COM_RELEASE(m_piScript);
    m_piScript = piScript;
    piScript = NULL;

    bResult = true;
Exit0:
    KG_COM_RELEASE(piScript);
    return bResult;
}
Esempio n. 3
0
BOOL KScriptManager::Load()
{
    BOOL            bResult    = false;
    BOOL            bRetCode   = false;
    ILuaScriptEx*   piScript   = NULL;

	piScript = CreateLuaInterface(&KMemory::LuaAllocator, NULL);
	KGLOG_PROCESS_ERROR(piScript);

    bRetCode = RegisterScriptFunctions(piScript);
    KGLOG_PROCESS_ERROR(bRetCode);

    piScript->RegisterConstList(g_LuaCenterConstList);

    Luna<KGPQ>::Register(piScript->GetLuaState());
    Luna<KGlobalCustomDataManager>::Register(piScript->GetLuaState());
    Luna<KGlobalSystemValueManager>::Register(piScript->GetLuaState());
    Luna<KRole>::Register(piScript->GetLuaState());
    Luna<KTong>::Register(piScript->GetLuaState());
    Luna<KActivityManager>::Register(piScript->GetLuaState());
    Luna<KMentorCenter>::Register(piScript->GetLuaState());
    Luna<KMapInfo>::Register(piScript->GetLuaState());
    Luna<KMapCopy>::Register(piScript->GetLuaState());

    bRetCode = LoadScripts(piScript, CENTER_SCRIPTS_DIR);
    KGLOG_PROCESS_ERROR(bRetCode);

    lua_gc(piScript->GetLuaState(), LUA_GCRESTART, 0);
    lua_gc(piScript->GetLuaState(), LUA_GCSETPAUSE, 100);
    lua_gc(piScript->GetLuaState(), LUA_GCSETSTEPMUL, 150);

    KG_COM_RELEASE(m_piScript);
    m_piScript = piScript;
    piScript = NULL;

    bResult = true;
Exit0:
    KG_COM_RELEASE(piScript);
    return bResult;
}