Esempio n. 1
0
_MEMBER_FUNCTION_IMPL(GUIElement, constructor)
{
	const char * name;
	sq_getstring(pVM, -1, &name);
	String szName = name;

	if(szName.IsEmpty())
		_SET_RELEASE_HOOK(GUIElement);

	// Get our GUI instance
	CGUI * pGUI = g_pClient->GetGUI();

	try
	{
		pGUI->GetWindowManager()->getWindow(szName.C_String());
	}
	catch(CEGUI::Exception &e)
	{
		e;
		_SET_RELEASE_HOOK(GUIElement);
	}

	CEGUI::Window * pWindow = pGUI->GetWindowManager()->getWindow(szName.C_String());
	if(!pWindow || SQ_FAILED(sq_setinstance(pVM, pWindow)))
	{
		CLogFile::Printf("Can't create GUIElement.");
		sq_pushbool(pVM, false);
		return 1;
	}

	SubscribeGuiEvents(pWindow);

	sq_pushbool(pVM, true);
	return 1;
}
Esempio n. 2
0
_MEMBER_FUNCTION_IMPL(xml, constructor)
{
    const char * filename;
    sq_getstring(pVM, -1, &filename);

    if(filename)
    {
        CXML * pXML = new CXML();
        String strFileName(filename);
        SharedUtility::RemoveIllegalCharacters(strFileName);
        String strPath(SharedUtility::GetAbsolutePath("files/%s", strFileName.Get()));
        pXML->load(strPath);

        if(!pXML || SQ_FAILED(sq_setinstance(pVM, pXML)))
        {
            CLogFile::Print("Failed to load the xml.");
            SAFE_DELETE(pXML);
            sq_pushbool(pVM, false);
            return 1;
        }

        _SET_RELEASE_HOOK(xml);
        sq_pushbool(pVM, true);
        return 1;
    }

    sq_pushbool(pVM, false);
    return 1;
}