GError GPlugLoader::LoadFilePlug(const GChar8 *FullLibraryName) {

    GPlugHandle handle = NULL;

	// we don't wanna a null filename
	if (!FullLibraryName)
		return G_INVALID_PARAMETER;
	// unplug current library
	UnloadPlug();

	#if defined(G_OS_WIN) && !defined(__CYGWIN__)
		handle = LoadLibraryA(FullLibraryName);
	#elif defined(G_OS_HPUX)
		// BIND_FIRST is necessary for some reason
		handle = shl_load(FullLibraryName, BIND_DEFERRED | BIND_FIRST | BIND_VERBOSE, 0);
	// other Unix (it works also on MacOSX and Tiger)
	#else 
		handle = dlopen(FullLibraryName, RTLD_LAZY | RTLD_GLOBAL);
		// dlopen will not work with files in the current directory unless
		// they are prefaced with './'  (DB - Nov 5, 2003).
		// So we must check if file was expressed as a local file (without path)
		GString fPath = StrUtils::ExtractFilePath(FullLibraryName);
		if ((!handle) && (fPath.length() <= 0)) {
			GString localLibraryName = GString("./") + GString(FullLibraryName);
			handle = dlopen(StrUtils::ToAscii(localLibraryName), RTLD_LAZY | RTLD_GLOBAL);
		}
	#endif

	if (!handle)
		return G_INVALID_FORMAT;

	gPlugHandle = handle;
	return G_NO_ERROR;
}
void GServerInfoWindow::Update(const GListedServer & in_Server)
{
   m_pObjServerNameTxt->Text(in_Server.m_sServerName);
   m_pObjIpAddressTxt ->Text(GString(inet_ntoa(((SOCKADDR_IN*)&in_Server.m_ServerAdress)->sin_addr)));
   m_pObjPlayersTxt   ->Text(GString(in_Server.m_iNbPlayers) + L"/" + GString(in_Server.m_iMaxPlayers));
   m_pObjModsTxt      ->Text(in_Server.m_sModName);
   m_pObjScenarioTxt  ->Text(in_Server.m_sScenarioName);

   m_pObjPasswordCbo  ->ToggleState(in_Server.m_bHasPassword);
}
Example #3
0
int getIndexForKeytype(const char* key)
{
	for (int i = 0; i < sizeof KeytypeNames / sizeof(char*); i++)
	{
		GString lowkey = GString(key); Utility::ToLower(lowkey);
		GString lowname = GString(KeytypeNames[i]); Utility::ToLower(lowname);
		if (lowkey == lowname)
			return i;
	}

	return -1;
}
bool GEconomicHealthWindow::OnCreate()
{
	__super::OnCreate();

   m_pObjInnerFrame = (GUI::GFrame*)Child(L"frmInner");

   m_pObjGdpTotal          = (GUI::GLabel*)m_pObjInnerFrame->Child(L"frmGdp")->Child(L"txtTotal");
   m_pObjGdpPerCapita      = (GUI::GLabel*)m_pObjInnerFrame->Child(L"frmGdp")->Child(L"txtCapita");
   m_pObjUnemploymentTxt   = (GUI::GLabel*)m_pObjInnerFrame->Child(L"frmPopulation")->Child(L"txtUnemployment");
   m_pObjPovertyTxt        = (GUI::GLabel*)m_pObjInnerFrame->Child(L"frmPopulation")->Child(L"txtPoverty");
   m_pObjUnemploymentMtr   = (SP2::GCursorMeter*)m_pObjInnerFrame->Child(L"frmPopulation")->Child(L"frmUnemployment");
   m_pObjPovertyMtr        = (SP2::GCursorMeter*)m_pObjInnerFrame->Child(L"frmPopulation")->Child(L"frmPoverty");

   m_pObjPersonalIncomeTax = (GEditBoxNumeric*)m_pObjInnerFrame->Child(L"frmGdp")->Child(L"frmTax")->Child(L"edtText");
   m_pObjInflationValue    = (GUI::GLabel*)m_pObjInnerFrame->Child(L"frmInflation")->Child(L"txtInflation");
   m_pObjInflationGrowth   = (GUI::GLabel*)m_pObjInnerFrame->Child(L"frmInflation")->Child(L"txtInflationVar");
   m_pObjDelimiter         = (GUI::GPictureBox*)m_pObjInnerFrame->Child(L"frmInflation")->Child(L"picDelimiter");

   m_pObjInterestLevel     = (GEditBoxNumeric*)m_pObjInnerFrame->Child(L"frmInflation")->Child(L"frmInterest")->Child(L"edtText");

   m_pObjPersonalIncomeTaxVal   = (SP2::GUpdatableValue*)m_pObjInnerFrame->Child(L"frmGdp")->Child(L"frmTax");
   m_pObjInterestLevelVal       = (SP2::GUpdatableValue*)m_pObjInnerFrame->Child(L"frmInflation")->Child(L"frmInterest");

   m_pObjPersonalIncomeTaxVal->TextValueObj()->TextOffset(0,0);
   m_pObjInterestLevelVal->TextValueObj()->TextOffset(0,0);

   m_pObjPersonalIncomeTaxVal->TextValueObj()->TextAlignment(L"MiddleCenter");
   m_pObjInterestLevelVal->TextValueObj()->TextAlignment(L"MiddleCenter");

   m_pObjDelimiter->BringToFront();

   vector<UINT32> l_viStep;
   l_viStep.push_back(1);
   l_viStep.push_back(10);
   vector<REAL64> l_vfStep;
   l_vfStep.push_back(0.1f);
   l_vfStep.push_back(1.0f);   
   
   m_pObjPersonalIncomeTaxVal->Initialize(l_viStep, l_vfStep, L"", L" %",1,0, SP2::PersonalTaxes_LowerCap * 100, SP2::PersonalTaxes_UpperCap * 100);
   m_pObjInterestLevelVal->Initialize(l_viStep, l_vfStep, L"", L" %",1,0, SP2::InterestRate_LowerCap * 100, SP2::InterestRate_UpperCap * 100);

   m_pObjUnemploymentMtr->MeterBtn()[0]->PictureNormal(GString(SP2::PIC_GRADIENT_RED));
   m_pObjPovertyMtr->MeterBtn()[0]->PictureNormal(GString(SP2::PIC_GRADIENT_RED));

   if(Visible())
      Update();

	return true;
}
bool SP2::Event::GHdmSetPlayerInfo::Unserialize(GOBuffer& io_Buffer)
{
    GDZLOG(EDZLogLevel::Entry, L"io_Buffer.Remaining() = " + GString(io_Buffer.Remaining()));

    bool l_bReturn = false;
    if(__super::Unserialize(io_Buffer) && io_Buffer.Remaining() >= sizeof(UINT32))
    {
        GDZLOG(EDZLogLevel::Info1, L"m_PlayerInfo.ClientID = " + GString(m_PlayerInfo.ClientID) + L", m_PlayerInfo.CountryID = " + GString(m_PlayerInfo.CountryID) + L", m_PlayerInfo.PartyID = " + GString(m_PlayerInfo.PartyID) + L", m_PlayerInfo.PlayerName = " + GString(m_PlayerInfo.PlayerName) + L", m_PlayerInfo.PlayerStatus = " + GString(m_PlayerInfo.PlayerStatus) + L"io_Buffer.Remaining() = " + GString(io_Buffer.Remaining()));

        io_Buffer >> m_iPassword;

        GDZLOG(EDZLogLevel::Info1, L"io_Buffer.Remaining() = " + GString(io_Buffer.Remaining()) + L", m_iPassword = " + GDZDebug::FormatHex(m_iPassword));

        l_bReturn = true;
    }
Example #6
0
GString GString::Mid  (int nFirst, int nCnt) const
{
	if (nFirst > _len)
		nFirst = _len;

	return GString(&_str[nFirst], nCnt);
}
Example #7
0
GString Sprite::GetImageFilename() const
{
	if (mImage)
		return mImage->fname;
	else
		return GString();
}
Example #8
0
void	GHttp::Post(const GString &p, const GString &tab)
{
	GString page(p);
	GString	message(tab);
	if (!page.StartWith("http://"))
	{
		page = this->_host + page;
		if (!page.StartWith("http://"))
			page = "http://" + page;
	}
	GString chaine;
	chaine  = "POST " + page + " HTTP/1.1\r\n";
	chaine += "Host: " + this->_host + "\r\n";
	if (!this->_proxyUser.IsEmpty())
	{
		chaine += "Proxy-Authorization: Basic " + GCryptography::GBase64::Encode(this->_proxyUser + ":" + this->_proxyPass) + "\r\n";
		chaine += "Proxy-Connection : keep-alive\r\n";
	}
	if (!this->_user.IsEmpty())
		chaine += "Authorization: Basic " + GCryptography::GBase64::Encode(this->_user + ":" + this->_pass) + "\r\n";
	chaine += "Content-Type: application/x-www-form-urlencoded\r\n";
	chaine += "Content-Length: " + GString(message.Size()) + "\r\n";
	chaine += "\r\n";
	chaine += message + "\r\n";
	chaine += "\r\n";
	this->_socket.Send(chaine);
}
Example #9
0
GString GString::Left (int nCnt) const
{
	if (nCnt > _len)
		nCnt = _len;

	return GString(_str, nCnt);
}
Example #10
0
int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow)
{
	UNREFERENCED_PARAMETER(hPrevInstance);
	UNREFERENCED_PARAMETER(lpCmdLine);

	MSG msg;

	szTitle = GString(IDS_APP_TITLE);
	szWindowClass = GString(IDC_LAUNCHBROWSER);
	OptionsKeyName = Format(TEXT("Software\\%s"), szTitle.c_str());
	
	// if it's running already, pop the options dialog
	HWND existingWindow = FindWindow(szWindowClass.c_str(), szTitle.c_str());
	if(existingWindow != NULL)
	{
		SendNotifyMessage(existingWindow, WM_COMMAND, ID_FILE_OPTIONS, 0);
		return FALSE;
	}

	RegisterWindowClass(hInstance);

	if (!InitInstance (hInstance, nCmdShow))
	{
		return FALSE;
	}

	Browser::ScanRegistryForBrowsers();
	SearchEngine::InitSearchEngines();

	MouseDoubleClickTime = GetDoubleClickTime() / 1000.0;

	hKeyboardHook = SetWindowsHookEx(WH_KEYBOARD_LL, fnKeyboardHook, hInstance, 0);

	if(LoadOptionsFromRegistry() == FALSE)
	{
		PostMessage(hMainWindow, WMU_POP_OPTIONS_DIALOG, 0, 0);
	}

	// Main message loop:
	while (GetMessage(&msg, NULL, 0, 0))
	{
		TranslateMessage(&msg);
		DispatchMessage(&msg);
	}

	return (int) msg.wParam;
}
Example #11
0
GString GString::Right(int nCnt) const
{
	if (nCnt > _len)
		nCnt = _len + 1;

	int nFirst = _len - nCnt;
	return GString(&_str[nFirst]);
}
Example #12
0
BOOL LoadOptionsFromRegistry()
{
	RegKey options(HKEY_CURRENT_USER, OptionsKeyName, KEY_READ|KEY_CREATE_SUB_KEY|KEY_SET_VALUE);

	DWORD optionsSet;
	if(!(options.GetDWORDValue(GString(IDS_KEYNAME_OPTIONSSET), optionsSet) && optionsSet == 1))
	{
		return FALSE;
	}

	wstring browserName;
	if(options.GetStringValue(GString(IDS_KEYNAME_BROWSER), browserName))
	{
		int currentBrowserIndex = Browser::Find(browserName);
		if(currentBrowserIndex != -1)
		{
			Browser::SetCurrent(currentBrowserIndex);
			wstring commandLine;
			options.GetStringValue(GString(IDS_KEYNAME_BROWSEROPTIONS), commandLine);
			Browser::GetCurrent().SetCommandLine(commandLine);
		}
	}
	else
	{
		Browser::SetCurrent(0);
	}

	wstring searchName;
	if(options.GetStringValue(GString(IDS_KEYNAME_SEARCHENGINE), searchName))
	{
		int currentIndex = 0;
		for(auto s : SearchEngine::All())
		{
			if(searchName.compare(s.Name()) == 0)
			{
				SearchEngine::SetCurrent(currentIndex);
				break;
			}
			++currentIndex;
		}
		wstring formatString;
		options.GetStringValue(GString(IDS_KEYNAME_SEARCHFORMAT), formatString);
		SearchEngine::GetCurrent().SetFormatString(formatString);
	}
	return TRUE;
}
Example #13
0
	vector<GString> TokenSplit(const GString& str, const GString &token, bool compress)
	{
		vector<GString> ret;
		size_t len = str.length();
		auto it = &str[0];
		auto next = strpbrk(str.c_str(), token.c_str()); // next token instance
		for (; next != nullptr; next = strpbrk(it, token.c_str()))
		{
			if (!compress || it - next != 0)
				ret.push_back(GString(it, next));
			it = next + 1;
		}

		if (it != next && len)
			ret.push_back(GString(it, &str[len]));
		return ret;
	}
bool			GSqlDatabase::DropDatabase(const GString &Name)
{
	char *req = GString("DROP DATABASE IF EXISTS " + Name).ToChar();
	int res = mysql_query(&(this->_mysql), req);
	delete[] req;
	if (res)	
		return (false);
	return (true);
}
bool			GSqlDatabase::CreateDatabase(const GString &Name)
{
	char *req = GString("CREATE DATABASE " + Name).ToChar();
	int res = mysql_query(&(this->_mysql), req);
	delete[] req;
	if (res)	
		return (false);
	return (true);
}
Example #16
0
	GString SJIStoU8 (GString Line)
	{
#ifdef WIN32
		wchar_t u16s[MAX_STRING_SIZE];
		char mbs[MAX_STRING_SIZE];
		size_t len = MultiByteToWideChar(932, 0, Line.c_str(), Line.length(), u16s, MAX_STRING_SIZE);
		len = WideCharToMultiByte(CP_UTF8, 0, u16s, len, mbs, MAX_STRING_SIZE, NULL, NULL);
		mbs[len] = 0;
		return GString(mbs);
#elif defined(DARWIN)
        // Note: for OS X/Darwin/More than likely most BSD variants, iconv behaves a bit differently.
        iconv_t conv;
        char buf[MAX_STRING_SIZE];
        char* out = buf;
        size_t srcLength = Line.length();
        size_t dstLength = MAX_STRING_SIZE;
        const char* in = Line.c_str();
        
        conv = iconv_open("UTF-8", "SHIFT_JIS");
        iconv(conv, (char**)&in, &srcLength, (char**)&out, &dstLength);
        iconv_close(conv);
        // We have to use buf instead of out here.  For whatever reason, iconv on Darwin doesn't get us what we would expect if we just use out.
        return GString(buf);
#else
        char buf[MAX_STRING_SIZE];
		iconv_t conv;
		char** out = &buf;
		const char* in = Line.c_str();
		size_t BytesLeftSrc = Line.length();
		size_t BytesLeftDst = MAX_STRING_SIZE;

		conv = iconv_open("UTF-8", "SHIFT_JIS");
		bool success = (iconv(conv, (char **)&in, &BytesLeftSrc, out, &BytesLeftDst) > -1);

		iconv_close(conv);
		if (success)
			return GString(*out);
		else
		{
			Log::Printf("Failure converting character sets.");
			return GString();
		}
#endif
	}
Example #17
0
void ShowContextMenu(HWND hWnd)
{
	MENUITEMINFO separatorBtn = {0};
	separatorBtn.cbSize = sizeof(MENUITEMINFO);
	separatorBtn.fMask = MIIM_FTYPE;
	separatorBtn.fType = MFT_SEPARATOR;
	HMENU hMenu = CreatePopupMenu();
	if(hMenu != NULL)
	{
		InsertMenu(hMenu, -1, MF_BYPOSITION, ID_FILE_OPTIONS, GString(IDS_MENU_OPTIONS).c_str());
		InsertMenuItem(hMenu, -1, FALSE, &separatorBtn);
		InsertMenu(hMenu, -1, MF_BYPOSITION, IDM_EXIT, GString(IDS_MENU_EXIT).c_str());
		POINT pt;
		GetCursorPos(&pt);
		SetForegroundWindow(hWnd);
		TrackPopupMenu(hMenu, TPM_RIGHTBUTTON, pt.x, pt.y, 0, hWnd, NULL);
		DestroyMenu(hMenu);
		PostMessage(hWnd, WM_NULL, 0, 0);
	}
}
bool SP2::Event::GHdmSetPlayerInfo::Serialize(GIBuffer& io_Buffer) const
{
    GDZLOG(EDZLogLevel::Entry, L"io_Buffer.Size() = " + GString(io_Buffer.Size()));

    GDZLOG(EDZLogLevel::Info1, "m_PlayerInfo.ClientID = " + GString(m_PlayerInfo.ClientID) + L", m_PlayerInfo.CountryID = " + GString(m_PlayerInfo.CountryID) + L", m_PlayerInfo.PartyID = " + GString(m_PlayerInfo.PartyID) + L", m_PlayerInfo.PlayerName = " + GString(m_PlayerInfo.PlayerName) + L", m_PlayerInfo.PlayerStatus = " + GString(m_PlayerInfo.PlayerStatus));

    bool l_bReturn = false;
    if(__super::Serialize(io_Buffer))
    {
        GDZLOG(EDZLogLevel::Info1, L"io_Buffer.Size() = " + GString(io_Buffer.Size()) + L", m_iPassword = "******"io_Buffer.Size() = " + GString(io_Buffer.Size()));

        l_bReturn = true;
    }

    GDZLOG(EDZLogLevel::Exit, L"Returning " + GString(l_bReturn));
    return l_bReturn;
}
Example #19
0
	GString Narrow(std::wstring Line)
	{
		char mbs[2048];
		
#ifndef WIN32
		wcstombs(mbs, Line.c_str(), 2048);
#else
		memset(mbs, 0, 2048);
		size_t len = WideCharToMultiByte(CP_UTF8, 0, Line.c_str(), Line.length(), mbs, 2048, NULL, NULL);
#endif
		return GString(mbs);
	}
Example #20
0
void SaveOptionsToRegistry(HWND dlg)
{
	WCHAR buffer[16384];

	HWND searchCombo = GetDlgItem(dlg, IDC_COMBO_SEARCHENGINE);
	SearchEngine::SetCurrent(ComboBox_GetCurSel(searchCombo));

	GetDlgItemText(dlg, IDC_EDIT_SEARCHENGINEFORMAT, buffer, ARRAYSIZE(buffer));
	SearchEngine::GetCurrent().SetFormatString(buffer);

	HWND browserCombo = GetDlgItem(dlg, IDC_COMBO_BROWSERCHOICE);
	Browser::SetCurrent(ComboBox_GetCurSel(browserCombo));

	GetDlgItemText(dlg, IDC_EDIT_BROWSERPARAMETERS, buffer, ARRAYSIZE(buffer));
	Browser::GetCurrent().SetCommandLine(buffer);

	RegKey r(HKEY_CURRENT_USER, TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Run"), KEY_READ|KEY_SET_VALUE);
	if(IsDlgButtonChecked(dlg, IDC_CHECK_RUN_AT_STARTUP))
	{
		r.SetStringValue(szTitle, GetExecutableFilename());
	}
	else
	{
		r.DeleteValue(szTitle);
	}

	RegKey options;
	options.Create(HKEY_CURRENT_USER, OptionsKeyName, KEY_READ|KEY_CREATE_SUB_KEY|KEY_SET_VALUE);
	options.SetDWORDValue(GString(IDS_KEYNAME_OPTIONSSET), 1);
	options.SetStringValue(GString(IDS_KEYNAME_BROWSER), Browser::GetCurrent().Name());
	options.SetStringValue(GString(IDS_KEYNAME_BROWSEROPTIONS), Browser::GetCurrent().CommandLine());
	options.SetStringValue(GString(IDS_KEYNAME_BROWSER_EXECUTABLE), Browser::GetCurrent().ExecutableFilename());
	options.SetStringValue(GString(IDS_KEYNAME_SEARCHENGINE), SearchEngine::GetCurrent().Name());
	options.SetStringValue(GString(IDS_KEYNAME_SEARCHFORMAT), SearchEngine::GetCurrent().FormatString());
}
Example #21
0
GString GJsonPair::ToString() const
{
	if (!Valid())
	{
		return GString();
	}

	GString jsonPair = "\"";
	jsonPair += m_sKey;
	jsonPair += "\":";
	jsonPair += m_pValue->ToString();
	return jsonPair;
}
Example #22
0
GString GLDMaskWidget::nextStyleSheet(GLDGuideInfo &guideInfo)
{
    return GString("QPushButton#m_pGuideNextButton"
        "{"
        "border-image: url(" + guideInfo.m_nextButtonItem.m_normalImage + ");"
        "}"
        "QPushButton#m_pGuideNextButton:hover"
        "{"
        "border-image: url(" + guideInfo.m_nextButtonItem.m_hoverImage + ");"
        "}"
        "QPushButton#m_pGuideNextButton:pressed"
        "{"
        "border-image: url(" + guideInfo.m_nextButtonItem.m_pressedImage + ");"
        "}");
}
Example #23
0
void SetupNotificationIcon(HWND hWnd)
{
	ZeroMemory(&niData, sizeof(NOTIFYICONDATA));
	niData.cbSize = sizeof(NOTIFYICONDATA);
	niData.uID = 1;
	niData.uFlags = NIF_ICON|NIF_MESSAGE|NIF_TIP;
	niData.hIcon = (HICON)LoadImage(hInst, MAKEINTRESOURCE(IDI_LAUNCHBROWSER), IMAGE_ICON, GetSystemMetrics(SM_CXSMICON), GetSystemMetrics(SM_CYSMICON), LR_DEFAULTCOLOR);
	niData.hWnd = hWnd;
	niData.uCallbackMessage = WM_APP;
	wcscpy_s(niData.szTip, ARRAYSIZE(niData.szTip)-1, (szTitle + GString(IDS_BALLOON)).c_str());
	niData.uTimeout = 15000;
	niData.uVersion = NOTIFYICON_VERSION;
	Shell_NotifyIcon(NIM_ADD, &niData);
	Shell_NotifyIcon(NIM_SETVERSION, &niData);
}
Example #24
0
GString GLDMaskWidget::maskStyleSheet(GLDGuideInfo &guideInfo)
{
    return GString("QLabel#m_pMaskTitle"
        "{"
        "border-image: url(" + guideInfo.m_maskWidgetItem.m_normalImage + ");"
        "}"
        "QLabel#m_pMaskTitle:hover"
        "{"
        "border-image: url(" + guideInfo.m_maskWidgetItem.m_hoverImage + ");"
        "}"
        "QLabel#m_pMaskTitle:pressed"
        "{"
        "border-image: url(" + guideInfo.m_maskWidgetItem.m_pressedImage + ");"
        "}");
}
GString		GSocketUdpServer::Receive(void)
{
#if defined (GWIN)
	int		ret;
	int		len = sizeof(this->_sockaddr);
	DWORD	dwBytesRet, dwFlags;
	char	buffer[1024];
	WSABUF	wbuf;
	wbuf.len = 1024;
	wbuf.buf = buffer;
	dwFlags = 0;
	ret = WSARecvFrom(this->_socket, &wbuf, 1, &dwBytesRet, &dwFlags, reinterpret_cast <sockaddr*> (&this->_sockaddr), &len, NULL, NULL);
	if (ret == SOCKET_ERROR)
		return (GString());
	return (GString::GetBuffer(wbuf.buf, dwBytesRet));
#else
	char		buffer[1024];
	int	li = 0;
	li = recvfrom(this->_socket, buffer, sizeof(buffer), 0, 0, 0);
	if (li <= 0)
		return (GString(""));
	return (GString::GetBuffer(buffer, li));
#endif
}
Example #26
0
GString			GFileInfos::FormatedSize(unsigned int num) const
{
	long long	size(this->Size());
	GStringList name;
	name.PushBack("k");
	name.PushBack("M");
	name.PushBack("G");
	unsigned int j  = 0;
	long long newsize(size / 1024);
	if (newsize == 0)
		return ("1.0");
	while (newsize > 1024)
	{
		newsize /= 1024;
		j++;
	}
	return (GString(newsize, num) + name[j]);
}
Example #27
0
bool EHE_Action_Lower_Tax::Execute(INT32 in_source, INT32 in_target, INT32 in_intensity)
{
   REAL64 l_fIncomeTax = 0;

   GRSetSPtr l_pOutRecordSet(new GRecordSet());
   g_ServerDAL.DatabaseExecuteQuery(L"SELECT personal_income_tax FROM country WHERE id = " + GString(in_source),(GRSetSPtr)NULL,l_pOutRecordSet);

   if( (l_pOutRecordSet.get() ) && (l_pOutRecordSet.get()->Record(0)->Field(0)->Data() ) )
   {
      l_fIncomeTax = *((REAL64*)l_pOutRecordSet.get()->Record(0)->Field(0)->Data());
      if(l_fIncomeTax > 3.0f) 
         l_fIncomeTax -= 1.0f;
      
      g_ServerDAL.DBUpdateDomesticPolicies((INT16)in_source,&l_fIncomeTax);
   }
   else
      return false;

   //On close button called we must create an event to adjust the income tax if it has changed
   GGameEventSPtr l_GEAdjustTax = g_Joshua.CreateGameEvent(SP2::ADJUST_INCOME_TAX);
   l_GEAdjustTax->m_from = in_source;
   l_GEAdjustTax->m_target = 0;
   
   SP2::Event::GAdjustIncomeTax* l_pAdjustTax = (SP2::Event::GAdjustIncomeTax*)l_GEAdjustTax.get();
   l_pAdjustTax->IncomeTaxRate(l_fIncomeTax);
   g_Joshua.RaiseEvent(l_GEAdjustTax);
   g_Joshua.Log(L"Lowering taxes for " + GString(in_source),MSGTYPE_MSG);

   //Get the country capital and the coordinates for the flag to be placed on earth
   INT32 l_iCapitalID = g_ServerDAL.Capitals()[in_source-1].second;
   SP2::GCity l_City = g_ServerDAL.Cities()[l_iCapitalID-1];

   //Notify the client
   GGameEventSPtr l_GENotifyClient = g_Joshua.CreateGameEvent(SP2::NOTIFY_CLIENT);
   l_GENotifyClient->m_from   = 0;
   SP2::Event::GNotifyClient* l_pNotify = (SP2::Event::GNotifyClient*)l_GENotifyClient.get();
   l_pNotify->Set((REAL32)l_City.m_iY,(REAL32)l_City.m_iX,0,in_source,l_City.m_sName + ": lowering taxes");
   for(INT32 i = 0 ; i < (INT32)g_SP2Server->HumanPlayers().size() ; i++)
   {
      l_GENotifyClient->m_target =g_SP2Server->HumanPlayers()[i];
      g_Joshua.RaiseEvent(l_GENotifyClient);
   }
   return true;
}
Example #28
0
	GString Format(GString str, ...)
	{
		char r[1024];
		int bfsize;
		va_list vl;
		va_start(vl,str);
		bfsize = vsnprintf(r, 1024, str.c_str(), vl);
		if (bfsize < 0)
		{
			Utility::DebugBreak();
			va_end(vl);
			return "";
		}

		vector<char> fmt(bfsize + 1);
		vsnprintf(&fmt[0], bfsize, str.c_str(), vl);
		va_end(vl);

		return GString(fmt.data());
	}
Example #29
0
int KeyTranslate(GString K)
{
	for (uint32 i = 0; i < SpecialKeys.size(); i++)
	{
		GString Key = K; Utility::ToLower(Key);
		GString Target = GString(SpecialKeys.at(i).KeyString);  Utility::ToLower(Target);
		if (Key == Target)
			return SpecialKeys.at(i).boundkey;
	}

	if (K.length())
	{
		if (Utility::IsNumeric(K.c_str()))
			return atoi(K.c_str());
		else
			return (int)K[0];
	}
	else
		return 0;
}
Example #30
0
	GString GetSha256ForFile(GString Filename)
	{
		SHA256 SHA;
#ifndef WIN32
		std::ifstream InStream(Filename.c_str());
#else
		std::ifstream InStream(Utility::Widen(Filename).c_str());
#endif
		unsigned char tmpbuf[256];

		if (!InStream.is_open())
			return "";

		while (!InStream.eof())
		{
			InStream.read((char*)tmpbuf, 256);
			size_t cnt = InStream.gcount();

			SHA.add(tmpbuf, cnt);
		}

		return GString(SHA.getHash());
	}