std::pair<int, int> CMazeGameMenu::getChosenResolution() { auto resList = getGuiElement<irr::gui::IGUIListBox>(MenuElement::ResolutionDropDown); std::wstring resStr(resList->getListItem(resList->getSelected())); auto xPosition = resStr.find(L"x"); auto widthStr = resStr.substr(0, xPosition); auto heightStr = resStr.substr(xPosition + 1); LOG(DEBUG) << "Got resolution of: " << widthStr << "," << heightStr; return std::make_pair<int, int>(std::stoi(widthStr), std::stoi(heightStr)); }
void DotSceneLoader::processPagedGeometry(rapidxml::xml_node<>* XMLNode) { Ogre::String filename = "../Projects/SampleScene3/" + getAttrib(XMLNode, "fileName"); Ogre::String model = getAttrib(XMLNode, "model"); // Ogre::Real pagesize = getAttribReal(XMLNode, "pageSize"); // Ogre::Real batchdistance = getAttribReal(XMLNode, "batchDistance"); // Ogre::Real impostordistance = getAttribReal(XMLNode, "impostorDistance"); // Ogre::Vector4 bounds = Ogre::StringConverter::parseVector4(getAttrib( // XMLNode, "bounds")); std::ifstream stream(filename.c_str()); if (!stream.is_open()) return; Ogre::StringVector list; char res[128]; PGInstanceList mInstanceList; while (!stream.eof()) { stream.getline(res, 128); Ogre::String resStr(res); // ParseStringVector(resStr, list); if (list.size() == 3) { PGInstanceInfo info; info.pos = Ogre::StringConverter::parseVector3(list[0]); info.scale = Ogre::StringConverter::parseReal(list[1]); info.yaw = Ogre::StringConverter::parseReal(list[2]); mInstanceList.push_back(info); } else if (list.size() == 4) { PGInstanceInfo info; info.pos = Ogre::StringConverter::parseVector3(list[1]); info.scale = Ogre::StringConverter::parseReal(list[2]); info.yaw = Ogre::StringConverter::parseReal(list[3]); mInstanceList.push_back(info); } } stream.close(); // if (model != "") { // Ogre::Entity *mEntityHandle = mSceneMgr->createEntity(model + ".mesh"); // } }
void setPlugins(bool noDlg , bool startUp) { string plugDir = resStr(IDS_PLUGINDIR); string dir = plugDir + "*.dll"; WIN32_FIND_DATA fd; HANDLE hFile; BOOL found; found = ((hFile = FindFirstFile(dir.c_str(),&fd))!=INVALID_HANDLE_VALUE); int i = 0; bool newOne = false; while (found) { if (!(fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) && stricmp("ui.dll" , fd.cFileName) ) { int p = Plg.findby((TdEntry)string(plugDir + fd.cFileName).c_str() , PLG_FILE); if (p < 0) { newOne = true; p = Plg.addrow(); Plg.setint(p , PLG_NEW , 1); } else Plg.setint(p , PLG_NEW , 0); Plg.setch(p , PLG_FILE , (plugDir + fd.cFileName).c_str()); i++; } found = FindNextFile(hFile , &fd); } FindClose(hFile); if ((startUp && getArgV(ARGV_PLUGINS , false)) || (newOne && !noDlg)) PlugsDialog(Konnekt::newProfile); if (!startUp) return; newOne = false; // Wlaczanie wtyczek: for (unsigned int i = 0 ; i < Plg.getrowcount(); i++) { if (Plg.getint(i , PLG_NEW)==-1) {Plg.deleterow(i);i--;continue;} // usuwa nie istniejaca wtyczke if (Plg.getint(i , PLG_LOAD)!=1) continue; if (!Plug.PlugIN(Plg.getch(i , PLG_FILE))) {Plg.setint(i , PLG_LOAD , -1); newOne = 1; // MessageBox(NULL ,resStr(IDS_ERR_PLUGERROR),STR(resStr(IDS_APPNAME)),MB_ICONWARNING|MB_OK|MB_TASKMODAL);exit(0); } } Tables::savePlg(); IMLOG("- Plug.sort"); Plug.sort(); // if (newOne) // IMessageDirect(Plug[0] , IMI_DLGPLUGS , 2); }
void CVideoSettingsForm::ParseDisplayModeString( const CString& rez , TDisplayMode& displayMode ) const {GUCE_TRACE; CString tmp, resStr( rez ); resStr = resStr.CutChars( 2, false ); tmp = resStr.SubstrToChar( '@', false ); displayMode.frequency = GUCEF::CORE::StringToUInt32( tmp ); resStr = resStr.CutChars( 1+tmp.Length(), false ); tmp = resStr.SubstrToChar( 'x', false ); displayMode.depthInBits = GUCEF::CORE::StringToUInt32( tmp ); resStr = resStr.CutChars( 1+tmp.Length(), false ); tmp = resStr.SubstrToChar( 'x', false ); displayMode.heightInPixels = GUCEF::CORE::StringToUInt32( tmp ); resStr = resStr.CutChars( 1+tmp.Length(), false ); displayMode.widthInPixels = GUCEF::CORE::StringToUInt32( resStr ); }
bool cAlarmServer::loadAlarmData(TiXmlElement* element, cAlarmData* data) { UtlString codeStr; UtlString idStr; UtlString compStr(""); UtlString sevStr("minor"); UtlString resStr(""); UtlString groupName("disabled"); bool actEmail = true; bool actSms = true; bool actLog = true; bool actTrap = true; int filtMax = INT_MAX; int filtMin = 0; if (element && data) { idStr = element->Attribute("id"); if (idStr.isNull()) { OsSysLog::add(FAC_ALARM, PRI_ERR,"code=%s: alarm ID is required", codeStr.data()); return false; } TiXmlElement* codeElement = element->FirstChildElement("code"); if ( !codeElement ) { OsSysLog::add(FAC_ALARM, PRI_ERR, "id=%s: alarm code is required", element->Attribute("id")); return false; } textContentShallow(codeStr, codeElement); codeElement = element->FirstChildElement("severity"); if ( codeElement ) { textContentShallow(sevStr, codeElement); } else { OsSysLog::add(FAC_ALARM, PRI_WARNING, "id=%s: no severity; assuming %s", idStr.data(), sevStr.data()); } codeElement = element->FirstChildElement("component"); if ( codeElement ) { textContentShallow(compStr, codeElement); } else { OsSysLog::add(FAC_ALARM, PRI_WARNING,"id=%s: no component; set to null", idStr.data()); } codeElement = element->FirstChildElement("action"); actLog = getBoolAttribute(codeElement, "log", true); if ( codeElement ) { // Get the alarm group name used for both regular emails and SMS emails. groupName = codeElement->Attribute("email"); if (strcmp(groupName.data(), "disabled") == 0) { // All regular/SMS notifications for this alarm type must be disabled. actEmail = false; actSms = false; actTrap = false; } } codeElement = element->FirstChildElement("filter"); filtMax = getIntAttribute(codeElement, "max_reports", INT_MAX); filtMin = getIntAttribute(codeElement, "min_threshold"); } else { return false; } data->setAlarmId(idStr); data->setCode(codeStr); data->setSeverity(sevToSyslogPri(sevStr)); data->setComponent(compStr); data->setShortTitle(idStr); // default fallback title is internal id data->setDescription(idStr); // default fallback description is internal id data->setResolution(resStr); data->actions[cAlarmData::eActionLog] = actLog; data->actions[cAlarmData::eActionEmail] = actEmail; data->actions[cAlarmData::eActionSms] = actSms; data->actions[cAlarmData::eActionTrap] = actTrap; data->group_name = groupName; data->max_report = filtMax; data->min_threshold = filtMin; data->resetCount(); return true; }
int cPlugs::PlugIN(const char * file , const char * cert , int ex) { HMODULE hModule; cPlug dll; IMLOG("* plugin - %s" , file); try { dll.priority = PLUGP_NONE; dll.Ctrl = 0; hModule = LoadLibrary(file); if (!hModule) { string err = "Load Failed ["; int errNo = GetLastError(); err +=inttoch(errNo); err +="] "; err +=GetLastErrorMsg(errNo); strcpy(TLS().buff , err.c_str()); throw (char*)TLS().buff; } dll.IMessageProc=(fIMessageProc)GetProcAddress(hModule , "IMessageProc"); if (!dll.IMessageProc) { dll.IMessageProc=(fIMessageProc)GetProcAddress(hModule , "_IMessageProc@4"); if (!dll.IMessageProc) throw "IMessageProc not found!"; } dll.file = file; dll.hModule=hModule; // if (Plug.size() < 1) { // ID dla UI jest inne od pozosta³ych // dll.ID = Plug.size(); // } else { dll.ID=(unsigned int)Plug.size()+PLUG_MAX_COUNT; // <=0x80 to identyfikatory... Do 127 wtyczek! // } /* if (cert) { char * ch = (char*)IMessageDirect(dll,IM_PLUG_CERT , 0 , 0); if (!ch || strcmp(cert , ch)) throw "Unsuplied CERT"; }*/ dll.running = true; dll.type=IMessageDirect(dll,IM_PLUG_TYPE , 0 , 0 , 0); dll.version=safeChar(IMessageDirect(dll,IM_PLUG_VERSION , 0 , 0 , 0)); if (dll.version.empty()) { FileVersionInfo(dll.file.c_str() , TLS().buff2); dll.version = TLS().buff2; } // Zamieniamy wersje tekstowa na liczbowa... Stamina::RegEx reg; if (reg.match("/(\\d*)[., ]*(\\d*)[., ]*(\\d*)[., ]*(\\d*)/" , dll.version.c_str())) dll.versionNumber = VERSION_TO_NUM(atoi(reg[1].c_str()) , atoi(reg[2].c_str()) , atoi(reg[3].c_str()) , atoi(reg[4].c_str())); else dll.versionNumber = 0; dll.sig=safeChar(IMessageDirect(dll,IM_PLUG_SIG , 0 , 0 , 0)); // dll.core_v=safeChar(IMessageDirect(dll,IM_PLUG_CORE_V , 0 , 0 , 0)); // dll.ui_v=safeChar(IMessageDirect(dll,IM_PLUG_UI_V , 0 , 0 , 0)); dll.net=IMessageDirect(dll,IM_PLUG_NET , 0 , 0); dll.name=safeChar(IMessageDirect(dll,IM_PLUG_NAME , 0 , 0 , 0)); dll.netname=safeChar(IMessageDirect(dll,IM_PLUG_NETNAME , 0 , 0 , 0)); if (IMessageDirect(dll,IM_PLUG_SDKVERSION , 0 , 0 , 0) < KONNEKT_SDK_V) throw "Wtyczka przygotowana zosta³a dla starszej wersji API. Poszukaj nowszej wersji!"; if (Plug.size() > 0 && dll.net==0) throw "Bad Net value!"; if (dll.sig=="" || dll.name=="") throw "Sig|Name required!"; // if (dll.core_v!="" && dll.core_v!=core_v) throw "incompatible Core"; // if (ui_v!="" && dll.ui_v!="" && dll.ui_v!=ui_v) throw "incompatible UserInterface"; if (Plug.size()==0) {//ui_v=dll.sig; ui_sender=dll.ID; } dll.Ctrl = ex? createCorePluginCtrl() : createPluginCtrl(); dll.Ctrl->setCtrl(dll.ID , hModule); dll.running = true; if (!IMessageDirect(dll,IM_PLUG_INIT , (tIMP)(dll.Ctrl) , (tIMP)dll.hModule , 0)) throw "IM_INIT failed"; if (ex) IMessageDirect(dll,IM_PLUG_INITEX , (tIMP)(dll.Ctrl) , 0 , 0); int pos = this->push(dll); if (dll.net == -1) { /* odpytujemy raz jeszcze, sam nas o to prosi³... */ Plug[pos].net =IMessageDirect(dll,IM_PLUG_NET , 0 , 0); Plug[pos].name=safeChar(IMessageDirect(dll,IM_PLUG_NAME , 0 , 0 , 0)); Plug[pos].netname=safeChar(IMessageDirect(dll,IM_PLUG_NETNAME , 0 , 0 , 0)); if (Plug[pos].name=="") throw "Sig|Name required!"; } // Wtyczka zostala zatwierdzona i dodana // cPlug & plg = Plug[Plug.size()-1]; } catch (char * er) { if (dll.Ctrl) {delete dll.Ctrl;dll.Ctrl = 0;} if (hModule) FreeLibrary(hModule); CStdString errMsg; errMsg.Format(resString(IDS_ERR_DLL).c_str() , file , er); int ret = MessageBox(NULL , errMsg , resStr(IDS_APPNAME) , MB_ICONWARNING|MB_YESNOCANCEL|MB_TASKMODAL); if (ret == IDCANCEL) abort(); return ret == IDYES? 0 : -1; } return 1; }