_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; }
_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; }