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));
	}
Beispiel #2
0
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");
//  }
}
Beispiel #3
0
	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 );
}
Beispiel #5
0
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;

}
Beispiel #6
0
	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;
	}