Exemple #1
0
	ustring ErrAsStr(DWORD err, PCWSTR lib) {
		HMODULE mod = nullptr;
		if (err && lib) {
			mod = ::LoadLibraryExW(lib, nullptr, DONT_RESOLVE_DLL_REFERENCES); //LOAD_LIBRARY_AS_DATAFILE
		}
		PWSTR buf = nullptr;
		::FormatMessageW(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_IGNORE_INSERTS | ((mod) ? FORMAT_MESSAGE_FROM_HMODULE : FORMAT_MESSAGE_FROM_SYSTEM), mod, err,
		                 MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), //GetSystemDefaultLangID(),
		                 (PWSTR)&buf, 0, nullptr);

		if (mod)
			::FreeLibrary(mod);

		if (!buf) {
			if (lib) {
				return ErrAsStr(err);
			} else {
				wchar_t out[MAX_PATH];
				_snwprintf(out, sizeofa(out), L"[0x%x] Unknown error", err);
				return ustring(out);
			}
		}

		wchar_t out[MAX_PATH_LEN];
		_snwprintf(out, sizeofa(out), L"[0x%x] %s", err, buf);
		::LocalFree(buf);

		ustring ret(out);
		return ret.erase(ret.size() - 2);
	}
static void Config(void)
{
  static const struct InitDialogItem PreDialogItems[] =
  {
    {DI_DOUBLEBOX  ,3  ,1  ,50 ,10 ,0               ,MTitle},
    {DI_TEXT       ,5  ,2  ,0  ,0  ,0               ,MPathToViewer},
    {DI_EDIT       ,5  ,3  ,47 ,0  ,DIF_EDITEXPAND  ,-1},
    {DI_TEXT       ,5  ,4  ,0  ,0  ,0               ,MOpenContents},
    {DI_EDIT       ,5  ,5  ,47 ,0  ,0               ,-1},
    {DI_TEXT       ,5  ,6  ,0  ,0  ,0               ,MKeywordSearch},
    {DI_EDIT       ,5  ,7  ,47 ,0  ,0               ,-1},
    {DI_TEXT       ,4  ,8  ,0  ,0  ,DIF_SEPARATOR   ,-1},
    {DI_BUTTON     ,0  ,9  ,0  ,0  ,DIF_CENTERGROUP ,MOk},
    {DI_BUTTON     ,0  ,9  ,0  ,0  ,DIF_CENTERGROUP ,MCancel},
  };
  struct FarDialogItem DialogItems[sizeofa(PreDialogItems)];

  InitDialogItems(PreDialogItems,DialogItems,sizeofa(PreDialogItems));
  DialogItems[2].Focus = TRUE;
  lstrcpy(DialogItems[2].Data,PathToViewer);
  lstrcpy(DialogItems[4].Data,OpenContents);
  lstrcpy(DialogItems[6].Data,KeywordSearch);
  DialogItems[8].DefaultButton = 1;

  if (Info.Dialog(Info.ModuleNumber,-1,-1,54,12,NULL,(struct FarDialogItem *)&DialogItems,sizeofa(DialogItems)) != 8)
    return;

  lstrcpy(PathToViewer,DialogItems[2].Data);
  lstrcpy(OpenContents,DialogItems[4].Data);
  lstrcpy(KeywordSearch,DialogItems[6].Data);

  SetRegKey("PathToViewer",PathToViewer);
  SetRegKey("OpenContents",OpenContents);
  SetRegKey("KeywordSearch",KeywordSearch);
}
Exemple #3
0
void LoadoutOptionsMenu (void)
{
	static int choice = 0;

	CMenu	m (25);
	int	i, nOptions = 0;

m.AddText (TXT_GUN_LOADOUT, 0);
optGuns = m.ToS ();
for (i = 0; i < (int) sizeofa (pszGuns); i++, nOptions++)
	m.AddCheck (pszGuns [i], (extraGameInfo [0].loadout.nGuns & (1 << i)) != 0, 0, HTX_GUN_LOADOUT);
m.AddText ("", 0);
m.AddText (TXT_DEVICE_LOADOUT, 0);
optDevices = m.ToS ();
for (i = 0; i < (int) sizeofa (pszDevices); i++, nOptions++)
	m.AddCheck (pszDevices [i], (extraGameInfo [0].loadout.nDevice & (nDeviceFlags [i])) != 0, 0, HTX_DEVICE_LOADOUT);
do {
	i = m.Menu (NULL, TXT_LOADOUT_MENUTITLE, LoadoutCallback, &choice);
	} while (i != -1);
extraGameInfo [0].loadout.nGuns = 0;
for (i = 0; i < (int) sizeofa (pszGuns); i++) {
	if (m [optGuns + i].m_value)
		extraGameInfo [0].loadout.nGuns |= (1 << i);
	}
extraGameInfo [0].loadout.nDevice = 0;
for (i = 0; i < (int) sizeofa (pszDevices); i++) {
	if (m [optDevices + i].m_value)
		extraGameInfo [0].loadout.nDevice |= nDeviceFlags [i];
	}
AddPlayerLoadout ();
}
void	Panel::GetOpenPluginInfo(OpenPluginInfo *Info) {
	static WCHAR PanelTitle[64];
	Info->StructSize = sizeof(*Info);
	Info->Flags = OPIF_ADDDOTS | OPIF_SHOWNAMESONLY | OPIF_USEHIGHLIGHTING | OPIF_USEFILTER;
	Info->HostFile	= nullptr;
	Info->CurDir	= nullptr;
	Info->Format	= Options.Prefix.c_str();
	Info->PanelTitle = PanelTitle;
	if (!host().empty()) {
		_snwprintf(PanelTitle, sizeofa(PanelTitle), L"%s: %s", Options.Prefix.c_str(), host().c_str());
	} else {
		_snwprintf(PanelTitle, sizeofa(PanelTitle), L"%s", Options.Prefix.c_str());
	}

	static PCWSTR ColumnTitles0[] = {nullptr, GetMsg(txtStatus), GetMsg(txtSession)};
	static PanelMode CustomPanelModes[] = {
		{L"N,Z,O", L"0,10,10", ColumnTitles0, FALSE, TRUE, TRUE, TRUE, L"C0, S", L"0, 6", {0, 0}},
		{L"N,Z,O", L"0,10,10", ColumnTitles0, FALSE, TRUE, TRUE, TRUE, L"C0, S", L"0, 6", {0, 0}},
		{L"N,Z,O", L"0,10,10", ColumnTitles0, FALSE, TRUE, TRUE, TRUE, L"C0, S", L"0, 6", {0, 0}},
		{L"N,Z,O", L"0,10,10", ColumnTitles0, FALSE, TRUE, TRUE, TRUE, L"C0, S", L"0, 6", {0, 0}},
		{L"N,Z,O", L"0,10,10", ColumnTitles0, FALSE, TRUE, TRUE, TRUE, L"C0, S", L"0, 6", {0, 0}},
		{L"N,Z,O", L"0,10,10", ColumnTitles0, FALSE, TRUE, TRUE, TRUE, L"C0, S", L"0, 6", {0, 0}},
		{L"N,Z,O", L"0,10,10", ColumnTitles0, FALSE, TRUE, TRUE, TRUE, L"C0, S", L"0, 6", {0, 0}},
		{L"N,Z,O", L"0,10,10", ColumnTitles0, FALSE, TRUE, TRUE, TRUE, L"C0, S", L"0, 6", {0, 0}},
		{L"N,Z,O", L"0,10,10", ColumnTitles0, FALSE, TRUE, TRUE, TRUE, L"C0, S", L"0, 6", {0, 0}},
		{L"N,Z,O", L"0,10,10", ColumnTitles0, FALSE, TRUE, TRUE, TRUE, L"C0, S", L"0, 6", {0, 0}},
	};
	Info->PanelModesArray = CustomPanelModes;
	Info->PanelModesNumber = sizeofa(CustomPanelModes);
	Info->StartPanelMode = L'0';

//	KeyBar
	static KeyBarTitles keybartitles = {
		{ nullptr, nullptr, nullptr, (PWSTR)L"", (PWSTR)L"", (PWSTR)L"", (PWSTR)L"", (PWSTR)L""},
		{ nullptr, },
		{ nullptr, },
		{(PWSTR)L"", (PWSTR)L"", (PWSTR)L"", (PWSTR)L"", (PWSTR)L"", (PWSTR)L"", (PWSTR)L"", (PWSTR)L"", }
	};
	keybartitles.Titles[3] = (PWSTR)GetMsg(txtOperation);
	keybartitles.Titles[4] = (PWSTR)GetMsg(txtMessg);
	keybartitles.Titles[5] = (PWSTR)GetMsg(txtComp);
	keybartitles.Titles[6] = (PWSTR)GetMsg(txtTerm);
	keybartitles.Titles[7] = (PWSTR)GetMsg(txtDisconn);
	keybartitles.ShiftTitles[3] = (PWSTR)L"";
	keybartitles.ShiftTitles[4] = (PWSTR)L"";
	keybartitles.ShiftTitles[5] = (PWSTR)GetMsg(txtLocal);
	keybartitles.ShiftTitles[6] = (PWSTR)L"";
	keybartitles.ShiftTitles[7] = (PWSTR)GetMsg(txtLogOff);
	Info->KeyBar = &keybartitles;
}
Exemple #5
0
void Config(void)
{
  struct InitDialogItem InitItems[] =
  {
    // type, x1, y1, x2, y2, focus, selected, flags, default, data
    { DI_DOUBLEBOX,3, 1,65,6, 0,0,0,0, (char*)mConfig_Title },

    { DI_TEXT,     5, 2, 0,0, 0,0,0,0, (char*)mConfig_DefFiltersDir },
    { DI_EDIT,     5, 3,63,0, 1,0,0,0, NULLSTR },

    {DI_TEXT,3,4,0,0,0,0,DIF_SEPARATOR,0,NULLSTR},

    { DI_BUTTON,  0, 5, 0,0 ,0,0,DIF_CENTERGROUP,1, (char *)mOk },
    { DI_BUTTON,  0, 5, 0,0 ,0,0,DIF_CENTERGROUP,0, (char *)mCancel }
  };
  enum
  {
    C2_FDIR = 2,
    C_TXT,
    C_OK,
    C_CANCEL
  };
  struct FarDialogItem DialogItems[sizeofa(InitItems)];
  InitDialogItems(InitItems,DialogItems,sizeofa(InitItems));

  ReadRegistry();

  lstrcpy( DialogItems[C2_FDIR].Data , DefFiltersDir );

  if ( FarInfo.DialogEx(FarInfo.ModuleNumber,-1,-1,69,8,"Config",DialogItems,sizeofa(DialogItems),0,0,FarMailInfo.ShowHelpDlgProc,(long)FarMailInfo.ModuleName) == C_OK )
  {
    lstrcpyn( DefFiltersDir, DialogItems[C2_FDIR].Data, MAX_PATH);
    if (!*DefFiltersDir)
    {
      char path[MAX_PATH];
      lstrcpy(path,FarMailInfo.ModuleName);
      *(FSF.PointToName(path)) = 0;
      lstrcat(path,"FILTERS\\");
      lstrcpy(DefFiltersDir,path);
    }
    else
    {
      FSF.Unquote(DefFiltersDir);
      FSF.AddEndSlash(DefFiltersDir);
    }

    SetRegKey2( HKEY_CURRENT_USER, PluginRootKey, NULLSTR, DEFFILTERSDIR, DefFiltersDir);
  }
}
Exemple #6
0
void ControlsReadFCS (int rawAxis)
{
	int raw_button, button;
	tJoyAxisCal	cal [4];

if (gameStates.input.nJoyType != CONTROL_THRUSTMASTER_FCS) 
	return;
JoyGetCalVals (cal, sizeofa (cal));
if (cal [3].nMax > 1)
	raw_button = (rawAxis * 100) / cal [3].nMax;
else
	raw_button = 0;
if (raw_button > 88)
	button = 0;
else if (raw_button > 63)
	button = 7;
else if (raw_button > 39)
	button = 11;
else if (raw_button > 15)
	button = 15;
else
	button = 19;
ControlsSetFCSButton (19, button);
ControlsSetFCSButton (15, button);
ControlsSetFCSButton (11, button);
ControlsSetFCSButton (7, button);
}
void CBatmonContainer::DrawPage(void) const
{
  CWindowGc& gc=SystemGc();
  gc.SetPenStyle(CGraphicsContext::ESolidPen);
  gc.SetPenColor(TRgb::Color4K(0xff0));
  gc.SetBrushStyle(CGraphicsContext::ENullBrush);
  gc.UseFont(LatinPlain12());
  SValue page[]=
  {
    {0,L"Battery capacity",0x0104,&CBatmonContainer::Capacity},
    {4,L"Battery impedance",0x0146,&CBatmonContainer::Impedance},
    {14,L"Standby time",0x0106,&CBatmonContainer::Hour},
    {24,L"Battery type",0x0101,&CBatmonContainer::Common},
    {24,L"Battery",0x014d,&CBatmonContainer::Battery},
    {6,L"Backup battery open",0x0122,&CBatmonContainer::Voltage},
    {6,L"Backup battery close",0x0123,&CBatmonContainer::Voltage},
    {24,L"Present charging state",0x011d,&CBatmonContainer::Common},
    {24,L"Present charger type",0x0117,&CBatmonContainer::Common},
    {6,L"Charging voltage",0x0119,&CBatmonContainer::Voltage},
    {6,L"Charging current",0x011a,&CBatmonContainer::Current}
  };
  TRect value(2,18,174,30);
  TBuf<32> data;
  for(TUint i=0;i<sizeofa(page);i++)
  {
    TPtrC ptr((TUint16*)page[i].iTitle);
    gc.DrawText(ptr,value,10);
    (this->*(page[i].iFunc))(data,page[i].iAddress);
    gc.DrawText(data,value,10,CGraphicsContext::ERight,page[i].iWidth);
    value.Move(0,13);
  }
  gc.DiscardFont();
}
	inline void ebox_code(DWORD err, PCWSTR line) {
		ustring	title(L"Error: ");
		title += as_str(err);
		::SetLastError(err);
		PCWSTR Msg[] = {title.c_str(), line, L"OK", };
		psi().Message(get_plugin_guid(), FMSG_WARNING | FMSG_ERRORTYPE, nullptr, Msg, sizeofa(Msg), 1);
	}
HRESULT			ExecRestricted(PCWSTR app) {
	AutoUTF	cmd(Expand(app));

	PROCESS_INFORMATION pi = {0};
	STARTUPINFOW si = {0};
	si.cb = sizeof(si);
	si.dwFlags = STARTF_USESHOWWINDOW;
	si.wShowWindow = SW_SHOWNORMAL;

	WinToken	hToken(TOKEN_ASSIGN_PRIMARY | TOKEN_DUPLICATE | TOKEN_QUERY | TOKEN_ADJUST_DEFAULT);
	if (hToken.IsOK()) {
		HANDLE	hTokenRest = nullptr;
		PSID	AdminSid = GetAdminSid();
		SID_AND_ATTRIBUTES	SidsToDisable[] = {
			{AdminSid, 0},
		};
		//TODO сделать restricted DACL
		if (::CreateRestrictedToken(hToken, DISABLE_MAX_PRIVILEGE, sizeofa(SidsToDisable), SidsToDisable, 0, nullptr, 0, nullptr, &hTokenRest)) {
			if (::CreateProcessAsUserW(hTokenRest, nullptr, (PWSTR)cmd.c_str(), nullptr, nullptr, false,
									   NORMAL_PRIORITY_CLASS | CREATE_NEW_CONSOLE, nullptr, nullptr, &si, &pi)) {
				::CloseHandle(pi.hThread);
				::CloseHandle(pi.hProcess);
				::CloseHandle(hTokenRest);
				return	NO_ERROR;
			}
			::CloseHandle(hTokenRest);
		}
		::FreeSid(AdminSid);
	}
	return	::GetLastError();
}
intptr_t Config(void)
{
  wchar_t won[32],lose[32];
  FSF.sprintf(won,L"%6ld",Opt.WonFreq);
  FSF.sprintf(lose,L"%6ld",Opt.LoseFreq);
  FarDialogItem DialogItems[]=
  {
    {DI_DOUBLEBOX, 3, 1,62,12,{0},                     NULL,NULL,      0,                                GetMsg(mName)             ,0,0,{0,0}},
    {DI_CHECKBOX,  5, 2, 0, 0,{(bool)Opt.ShowInConfig},NULL,NULL,      0,                                GetMsg(mConfigConfigMenu) ,0,0,{0,0}},
    {DI_CHECKBOX,  5, 3, 0, 0,{(bool)Opt.ShowInPanels},NULL,NULL,      0,                                GetMsg(mConfigPanelsMenu) ,0,0,{0,0}},
    {DI_CHECKBOX,  5, 4, 0, 0,{(bool)Opt.ShowInEditor},NULL,NULL,      0,                                GetMsg(mConfigViewerMenu) ,0,0,{0,0}},
    {DI_CHECKBOX,  5, 5, 0, 0,{(bool)Opt.ShowInViewer},NULL,NULL,      0,                                GetMsg(mConfigEditorMenu) ,0,0,{0,0}},
    {DI_CHECKBOX,  5, 6, 0, 0,{(bool)Opt.ShowInDialog},NULL,NULL,      0,                                GetMsg(mConfigDialogMenu) ,0,0,{0,0}},
    {DI_TEXT,     -1, 7, 0, 0,{0},                     NULL,NULL,      DIF_SEPARATOR,                    L""                       ,0,0,{0,0}},
    {DI_TEXT,      5, 8, 0, 0,{0},                     NULL,NULL,      0,                                GetMsg(mConfigWonFreq)    ,0,0,{0,0}},
    {DI_FIXEDIT,   0, 8, 0, 0,{0},                     NULL,L"#####9", DIF_MASKEDIT,                     won                       ,0,0,{0,0}},
    {DI_TEXT,      5, 9, 0, 0,{0},                     NULL,NULL,      0,                                GetMsg(mConfigLoseFreq)   ,0,0,{0,0}},
    {DI_FIXEDIT,   0, 9, 0, 0,{0},                     NULL,L"#####9", DIF_MASKEDIT,                     lose                      ,0,0,{0,0}},
    {DI_TEXT,     -1,10, 0, 0,{0},                     NULL,NULL,      DIF_SEPARATOR,                    L""                       ,0,0,{0,0}},
    {DI_BUTTON,    0,11, 0, 0,{0},                     NULL,NULL,      DIF_CENTERGROUP|DIF_DEFAULTBUTTON,GetMsg(mConfigSave)       ,0,0,{0,0}},
    {DI_BUTTON,    0,11, 0, 0,{0},                     NULL,NULL,      DIF_CENTERGROUP,                  GetMsg(mConfigCancel)     ,0,0,{0,0}},
  };
  size_t max=0;
  {
    int labels[]={CONFIGDLG_LWON,CONFIGDLG_LLOSE};
    for(unsigned int i=0;i<sizeofa(labels);i++)
    {
      size_t cur_len=wcslen(DialogItems[labels[i]].Data);
      if(max<cur_len) max=cur_len;
    }
  }
  DialogItems[CONFIGDLG_EWON].X1=DialogItems[CONFIGDLG_LWON].X1+(int)max; DialogItems[CONFIGDLG_EWON].X2=DialogItems[CONFIGDLG_EWON].X1+5;
  DialogItems[CONFIGDLG_ELOSE].X1=DialogItems[CONFIGDLG_LLOSE].X1+(int)max; DialogItems[CONFIGDLG_ELOSE].X2=DialogItems[CONFIGDLG_ELOSE].X1+5;

  intptr_t DlgCode=-1;
  HANDLE hDlg=Info.DialogInit(&MainGuid,&ConfigGuid,-1,-1,66,14,L"Config",DialogItems,sizeofa(DialogItems),0,0,ConfigDialogProc,0);
  if(hDlg!=INVALID_HANDLE_VALUE) DlgCode=Info.DialogRun(hDlg);
  if(DlgCode==CONFIGDLG_SAVE)
  {
    Opt.ShowInConfig=GetCheck(CONFIGDLG_CONFIGMENU);
    Opt.ShowInPanels=GetCheck(CONFIGDLG_PANELSMENU);
    Opt.ShowInEditor=GetCheck(CONFIGDLG_VIEWERMENU);
    Opt.ShowInViewer=GetCheck(CONFIGDLG_EDITORMENU);
    Opt.ShowInDialog=GetCheck(CONFIGDLG_DIALOGMENU);
    Opt.WonFreq=FSF.atoi(GetData(CONFIGDLG_EWON));
    Opt.LoseFreq=FSF.atoi(GetData(CONFIGDLG_ELOSE));
    {
      CFarSettings settings(MainGuid);
      settings.Set(L"ShowInConfig",Opt.ShowInConfig);
      settings.Set(L"ShowInPanels",Opt.ShowInPanels);
      settings.Set(L"ShowInEditor",Opt.ShowInEditor);
      settings.Set(L"ShowInViewer",Opt.ShowInViewer);
      settings.Set(L"ShowInDialog",Opt.ShowInDialog);
      settings.Set(L"WonFreq",Opt.WonFreq);
      settings.Set(L"LoseFreq",Opt.LoseFreq);
    }
  }
  if(hDlg!=INVALID_HANDLE_VALUE) Info.DialogFree(hDlg);
  return FALSE;
}
void CBatmonContainer::DrawTitle(void) const
{
  CWindowGc& gc=SystemGc();
  gc.SetPenColor(TRgb::Color4K(0x048));
  gc.SetPenStyle(CGraphicsContext::ESolidPen);
  gc.SetBrushColor(TRgb::Color4K(0x006));
  gc.SetBrushStyle(CGraphicsContext::ESolidBrush);
  TRect rect=Rect();
  rect.SetHeight(14);
  gc.DrawRect(rect);
  TRect value(rect);
  value.Shrink(1,1);
  gc.UseFont(LatinPlain12());
  SValue title[]=
  {
    {32,NULL,0x0102,&CBatmonContainer::Temperature},
    {50,NULL,0x0103,&CBatmonContainer::Voltage},
    {47,NULL,0x0113,&CBatmonContainer::Current},
    {47,NULL,0x0112,&CBatmonContainer::Current}
  };
  TBuf<32> data;
  for(TUint i=0;i<sizeofa(title);i++)
  {
    gc.SetPenStyle(CGraphicsContext::ESolidPen);
    gc.SetPenColor(TRgb::Color4K(0xff0));
    gc.SetBrushStyle(CGraphicsContext::ENullBrush);
    (this->*(title[i].iFunc))(data,title[i].iAddress);
    gc.DrawText(data,value,11,CGraphicsContext::ERight);
    DrawRight(value);
    value.Resize(-title[i].iWidth,0);
  }
  gc.DiscardFont();
}
static void UpdateItem(FarListItem *item,SmallInfoRec *data,int width)
{
  const int InfoMsgs[]={0,mInfoCopy,mInfoMove,mInfoWipe,mInfoDel,mInfoAttr};
  TCHAR SrcA[2*MAX_PATH],percent[10];
#ifdef UNICODE
  TCHAR* text=(TCHAR*)malloc(128*sizeof(TCHAR));
  item->Text=text;
#else
  TCHAR* text=item->Text;
#endif
  wc2mb(data->Src,SrcA,sizeofa(SrcA));
  _stprintf(percent,_T("%3ld"),data->percent); percent[3]=0;
  _tcscpy(text,GetMsg(InfoMsgs[data->type]));
  _tcscat(text,GetMsg(mInfoSep));
  _tcscat(text,percent);
  _tcscat(text,_T("%"));
  _tcscat(text,GetMsg(mInfoSep));
  _tcscat(text,FSF.TruncPathStr(SrcA,width));
  if(data->wait)
  {
    if(data->pause)
      item->Flags=LIF_CHECKED|'w';
    else
      item->Flags=LIF_CHECKED|'W';
  }
  else if(data->Ask)
    item->Flags=LIF_CHECKED|'?';
  else if(data->pause)
    item->Flags=0;
  else
    item->Flags=LIF_CHECKED|'*';
}
void TrackWeaponObject (short nObject, int nOwner)
{
if (gameData.multigame.laser.nFired [0] < sizeofa (gameData.multigame.laser.nObjects)) {
	if (gameData.multigame.laser.nFired [0] < gameData.multigame.laser.nFired [1])
		MapObjnumLocalToRemote (nObject, gameData.multigame.laser.nObjects [1][gameData.multigame.laser.nFired [0]], nOwner);
	gameData.multigame.laser.nObjects [0][gameData.multigame.laser.nFired [0]++] = nObject;
	}
}
const char *GetDlgItemNameByType(int Type)
{
  static char unknown[50];
  const char *ptr=GetDlgGrbNameByValueEq(DlgItems,sizeofa(DlgItems),Type);
  if (ptr)
    return ptr;
  FSF.sprintf(unknown,"%d",Type);
  return unknown;
}
Exemple #15
0
int SoundChannelIndex (void)
{
	int	h, i;

for (h = (int) sizeofa (detailData.nSoundChannels), i = 0; i < h; i++)
	if (audio.MaxChannels () < detailData.nSoundChannels [i])
		break;
return i - 1;
}
void AccesDeniedErrorMessage() {
	PCWSTR msg[] = {
		L"Error",
		L"To operate with remote sessions you must set on remote system:",
		L"[HKLM\\SYSTEM\\CurrentControlSet\\Control\\Terminal Server]",
		L"\"AllowRemoteRPC\"=dword:1",
		L"OK",
	};
	farebox(msg, sizeofa(msg));
}
Exemple #17
0
int FindDisplayMode (int nScrSize)
{
	tDisplayModeInfo *dmiP = displayModeInfo;
	int w = nScrSize >> 16, h = nScrSize & 0xffff;

for (int j = sizeofa (displayModeInfo), i = 0; i < j; i++, dmiP++)
	if ((dmiP->w == w) && (dmiP->h == h))
		return i;
return -1;
}
static void Config(void)
{
  static const struct InitDialogItem PreDialogItems[] =
  {
    {DI_DOUBLEBOX  ,3  ,1  ,41 ,6  ,0               ,MTitle},
    {DI_TEXT       ,5  ,2  ,0  ,0  ,0               ,MShowIn},
    {DI_COMBOBOX   ,5  ,3  ,20 ,0  ,DIF_DROPDOWNLIST,-1},
    {DI_COMBOBOX   ,23 ,3  ,38 ,0  ,DIF_DROPDOWNLIST,-1},
    {DI_TEXT       ,4  ,4  ,0  ,0  ,DIF_SEPARATOR   ,-1},
    {DI_BUTTON     ,0  ,5  ,0  ,0  ,DIF_CENTERGROUP ,MOk},
    {DI_BUTTON     ,0  ,5  ,0  ,0  ,DIF_CENTERGROUP ,MCancel},
  };
  struct FarDialogItem DialogItems[sizeofa(PreDialogItems)];

  InitDialogItems(PreDialogItems,DialogItems,sizeofa(PreDialogItems));
  DialogItems[2].Focus = TRUE;
  struct FarListItem li1[2];
  memset(li1,0,sizeof(li1));
  struct FarList fl1 = {2, li1};
  li1[Modality].Flags=LIF_SELECTED;
  GetMsg(MNonModal,li1[0].Text);
  GetMsg(MModal,li1[1].Text);
  DialogItems[2].ListItems = &fl1;
  struct FarListItem li2[2];
  memset(li2,0,sizeof(li2));
  struct FarList fl2 = {2, li2};
  li2[Visuality].Flags=LIF_SELECTED;
  GetMsg(MEditor,li2[0].Text);
  GetMsg(MViewer,li2[1].Text);
  DialogItems[3].ListItems = &fl2;
  DialogItems[5].DefaultButton = 1;

  if (Info.Dialog(Info.ModuleNumber,-1,-1,45,8,NULL,(struct FarDialogItem *)&DialogItems,sizeofa(DialogItems)) != 5)
    return;

  Modality = DialogItems[2].ListPos;
  Visuality = DialogItems[3].ListPos;

  SetRegKey("Modality",Modality);
  SetRegKey("Visuality",Visuality);
}
Exemple #19
0
int EquippedPlayerBomb (tObject *objP)
{
if (objP->info.nType == OBJ_PLAYER) {
		int		nPlayer = objP->info.nId;
		int		i, nWeapon = gameData.multiplayer.weaponStates [nPlayer].nSecondary;

	for (i = 0; i < (int) sizeofa (nBombIds); i++)
		if (nWeapon == nBombIds [i])
			return i + 1;
	}
return 0;
}
Exemple #20
0
int FindTableFps (int nFps)
{
	int	i, j = 0, d, dMin = 0x7fffffff;

for (i = 0; i < int (sizeofa (fpsTable)); i++) {
	d = abs (nFps - fpsTable [i]);
	if (d < dMin) {
		j = i;
		dMin = d;
		}
	}
return j;
}
void WINAPI _export ShowInfoMenu(void)
{
  FarDialogItem DialogItems[1];
  memset(DialogItems,0,sizeof(DialogItems));
  DialogItems[0].Type=DI_LISTBOX; DialogItems[0].Flags=DIF_LISTWRAPMODE;
  ThreadData Thread={FALSE,NULL,NULL,NULL,PlgOpt.RefreshInterval};
  InitThreadData(&Thread);
  InfoMenuData params={{&Thread,0,{-1,-1},{L"",L""},INVALID_HANDLE_VALUE,false,InfoMenuDialogKeyProc,MACRO_INFO_MENU,true,false},0,NULL,true,true};
  CFarDialog dialog;
  dialog.Execute(Info.ModuleNumber,-1,-1,0,0,_T("InfoMenu"),DialogItems,sizeofa(DialogItems),0,0,InfoMenuProc,(LONG_PTR)&params);
  FreeThreadData(&Thread);
  free(params.id);
}
const struct sili_device *
sili_lookup(struct pci_attach_args *pa)
{
	int				i;
	const struct sili_device	*sd;

	for (i = 0; i < sizeofa(sili_devices); i++) {
		sd = &sili_devices[i];
		if (sd->sd_vendor == PCI_VENDOR(pa->pa_id) &&
		    sd->sd_product == PCI_PRODUCT(pa->pa_id))
			return (sd);
	}

	return (NULL);
}
Exemple #23
0
int EquippedPlayerMissile (tObject *objP, int *nMissiles)
{
if (objP->info.nType == OBJ_PLAYER) {
		int		nPlayer = objP->info.nId;
		int		i, nWeapon = gameData.multiplayer.weaponStates [nPlayer].nSecondary;

	for (i = 0; i < (int) sizeofa (nMissileIds); i++)
		if (nWeapon == nMissileIds [i]) {
			*nMissiles = gameData.multiplayer.weaponStates [nPlayer].nMissiles;
			return i + 1;
			}
	}
*nMissiles = 0;
return 0;
}
Exemple #24
0
static bool IsPowerup (const char* bmName)
{
	static const char* szNames [] = {
		"invuln",
		"pwr",
		"flare"
		};

if (!strstr (bmName, "#0"))
	return false;
for (int i = 0, j = sizeofa (szNames); i < j; i++)
	if (strstr (bmName, szNames [i]) == bmName)
		return true;
return false;
}
void ShowName(const wchar_t *Name)
{
  Splited Names;
  unsigned long length=(unsigned long)wcslen(Name);
  for(unsigned int i=0;i<sizeofa(Names.Name);i++) Names.Name[i][0]=0;
  for(unsigned int i=0;i<sizeofa(Names.Name);i++)
  {
    if(length<65)
    {
      memcpy(Names.Name[i],Name+i*65,sizeof(wchar_t)*length);
      Names.Name[i][length]=0;
      break;
    }
    else
    {
      memcpy(Names.Name[i],Name+i*65,sizeof(wchar_t)*65);
      Names.Name[i][65]=0;
      length-=65;
    }
  }
  FarDialogItem DialogItems[5];
  memset(DialogItems,0,sizeof(DialogItems));
  DialogItems[0].Type=DI_DOUBLEBOX; DialogItems[0].X1=3; DialogItems[0].Y1=1;
  DialogItems[0].X2=71; DialogItems[0].Y2=6;
  for(unsigned int i=1;i<sizeofa(DialogItems);i++)
  {
    DialogItems[i].Type=DI_TEXT; DialogItems[i].X1=5; DialogItems[i].Y1=1+i;
  }
  Names.Console=CreateFileW(L"CONOUT$",GENERIC_WRITE,FILE_SHARE_READ|FILE_SHARE_WRITE,NULL,OPEN_EXISTING,0,NULL);
  if(Names.Console!=INVALID_HANDLE_VALUE)
  {
    CFarDialog dialog;
    dialog.Execute(Info.ModuleNumber,-1,-1,75,8,_T("ShowName"),DialogItems,sizeofa(DialogItems),0,0,NameDlgProc,(LONG_PTR)&Names);
    CloseHandle(Names.Console);
  }
}
Exemple #26
0
static int KeyDvorak (int keyCode)
{
    static tKeyMap keyMap [] = {
        {KEY_A, KEY_A},
        {KEY_B, KEY_X},
        {KEY_C, KEY_J},
        {KEY_D, KEY_E},
        {KEY_E, KEY_PERIOD},
        {KEY_F, KEY_U},
        {KEY_G, KEY_I},
        {KEY_H, KEY_D},
        {KEY_I, KEY_C},
        {KEY_J, KEY_H},
        {KEY_K, KEY_T},
        {KEY_L, KEY_N},
        {KEY_M, KEY_M},
        {KEY_N, KEY_B},
        {KEY_O, KEY_R},
        {KEY_P, KEY_L},
        {KEY_Q, KEY_RAPOSTRO},
        {KEY_R, KEY_P},
        {KEY_S, KEY_O},
        {KEY_T, KEY_Y},
        {KEY_U, KEY_G},
        {KEY_V, KEY_K},
        {KEY_W, KEY_COMMA},
        {KEY_X, KEY_Q},
        {KEY_Y, KEY_F},
        {KEY_Z, KEY_SEMICOLON},
        {KEY_COMMA, KEY_W},
        {KEY_PERIOD, KEY_V},
        {KEY_SLASH, KEY_Z},
        {KEY_SEMICOLON, KEY_S},
        {KEY_LAPOSTRO, KEY_MINUS},
        {KEY_LBRACKET, KEY_SLASH},
        {KEY_RBRACKET, KEY_EQUALS},
        {KEY_MINUS, KEY_LBRACKET},
        {KEY_EQUALS, KEY_RBRACKET}
    };

    int flags = keyCode & 0xff00;

    keyCode &= 0xff;
    for (int i = 0, j = sizeofa (keyMap); i < j; i++)
        if (keyCode == keyMap [i].inKey)
            return keyMap [i].outKey;
    return keyCode | flags;
}
const struct mfi_pci_device *
mfi_pci_find_device(struct pci_attach_args *pa)
{
	const struct mfi_pci_device *mpd;
	int i;

	for (i = 0; i < sizeofa(mfi_pci_devices); i++) {
		mpd = &mfi_pci_devices[i];

		if (mpd->mpd_vendor == PCI_VENDOR(pa->pa_id) &&
		    mpd->mpd_product == PCI_PRODUCT(pa->pa_id))
			return (mpd);
	}

	return (NULL);
}
Exemple #28
0
int CreateCameras (void)
{
	int		h, i, j, k, r;
	ubyte		t;
	tWall		*wallP;
	tObject	*objP;
	tTrigger	*triggerP;

if (!gameStates.app.bD2XLevel)
	return 0;
PrintLog ("   creating cameras\n");
memset (gameData.cameras.nSides, 0xFF, MAX_SEGMENTS * 6 * sizeof (*gameData.cameras.nSides));
for (i = 0, wallP = gameData.walls.walls; i < gameData.walls.nWalls; i++, wallP++) {
	t = wallP->nTrigger;
	if (t >= gameData.trigs.nTriggers)
		continue;
	triggerP = gameData.trigs.triggers + t;
	if (triggerP->nType == TT_CAMERA) {
		for (j = 0; j < triggerP->nLinks; j++)
			if (CreateCamera (gameData.cameras.cameras + gameData.cameras.nCameras, (short) wallP->nSegment, (short) wallP->nSide, triggerP->nSegment [j], triggerP->nSide [j], NULL, 0, 0))
				gameData.cameras.nSides [triggerP->nSegment [j] * 6 + triggerP->nSide [j]] = (char) gameData.cameras.nCameras++;
		}
#if TELEPORT_CAMERAS
	else if (/*EGI_FLAG (bTeleporterCams, 0, 0) &&*/ (triggerP->nType == TT_TELEPORT)) {
		if (CreateCamera (gameData.cameras.cameras + gameData.cameras.nCameras, triggerP->nSegment [0], triggerP->nSide [0], (short) wallP->nSegment, (short) wallP->nSide, NULL, 0, 1))
			gameData.cameras.nSides [wallP->nSegment * 6 + wallP->nSide] = (char) gameData.cameras.nCameras++;
		}
#endif
	}
FORALL_OBJS (objP, i) {
	r = j = gameData.trigs.firstObjTrigger [OBJ_IDX (objP)];
#if DBG
	if (j >= 0)
		j = j;
#endif
	for (h = sizeofa (gameData.trigs.objTriggerRefs); (j >= 0) && h; h--) {
		triggerP = gameData.trigs.objTriggers + j;
		if (triggerP->nType == TT_CAMERA) {
			for (k = 0; k < triggerP->nLinks; k++)
				if (CreateCamera (gameData.cameras.cameras + gameData.cameras.nCameras, -1, -1, triggerP->nSegment [k], triggerP->nSide [k], objP, 0, 0))
					gameData.cameras.nSides [triggerP->nSegment [k] * 6 + triggerP->nSide [k]] = (char) gameData.cameras.nCameras++;
			}
		if (r == (j = gameData.trigs.objTriggerRefs [j].next))
			break;
		}
	}
	///================================================================================= FileVersion
	FileVersion::FileVersion(PCWSTR path) {
		DWORD size = version_dll::inst().GetFileVersionInfoSizeW(path, nullptr);
		CheckApi(size);
		auto_array<BYTE> data(size);
		CheckApi(version_dll::inst().GetFileVersionInfoW(path, 0, size, data.data()));
		UINT bufLen;
		VS_FIXEDFILEINFO * ffi;
		CheckApi(version_dll::inst().VerQueryValueW(data, L"\\", (PVOID*)&ffi, &bufLen));
		wchar_t tmp[MAX_PATH];
		_snwprintf(tmp, sizeofa(tmp), L"%d.%d"
		           ,HIWORD(ffi->dwFileVersionMS)
		           ,LOWORD(ffi->dwFileVersionMS)
		           //	           ,HIWORD(ffi->dwFileVersionLS)
		           //	           LOWORD(ffi->dwFileVersionLS)
		);
		m_ver = tmp;
	}
Buffer_page_Dtl *sortWeights(BM_BufferPool * const bm, BufferPool_Node *bf_node) {
	int i;
	int totalPagesInBlock = bm->numPages;
	Buffer_page_Dtl *bf_page_dtl = bf_node->buffer_page_dtl;
	Buffer_page_Dtl *bf_page_dtl_with_zero_fixcount[totalPagesInBlock];
	int count = 0;

	/*Get the list of all bf_page_dtl where fixcount == 0*/
	for (i = 0; i < totalPagesInBlock; i++) {
		bf_page_dtl_with_zero_fixcount[i] = NULL;
		}

	for (i = 0; i < totalPagesInBlock; i++) {
		if ((bf_page_dtl[i].fixcounts) == 0) {
			bf_page_dtl_with_zero_fixcount[count] = (bf_page_dtl+i);
			count++;
		}
	}

	/*Macro to determine the size of the newly created pointer array*/
    #define sizeofa(array) sizeof array / sizeof array[ 0 ]
    int sizeOfPagesWithFixcountZero = sizeofa(bf_page_dtl_with_zero_fixcount);

	/*Implementation of a modified Quick sort algorithm to find the page with lowest replacementWeight*/
	Buffer_page_Dtl *next_bf_page_dtl;
	Buffer_page_Dtl *replacement_bf_page_dtl ;
	replacement_bf_page_dtl = bf_page_dtl_with_zero_fixcount[0];
	for (i = 0; i < sizeOfPagesWithFixcountZero; i++) {
		next_bf_page_dtl = bf_page_dtl_with_zero_fixcount[i];
		if(next_bf_page_dtl!=NULL){
			if(bm->strategy == RS_FIFO||bm->strategy==RS_LFU){
				if ((replacement_bf_page_dtl->replacementWeight) > (next_bf_page_dtl->replacementWeight))
						replacement_bf_page_dtl = next_bf_page_dtl;
			}
			else if(bm->strategy==RS_LRU){
				/*If time stamp of the current page is newer than the time stamp of the next page, assign next page as the replaceable page*/
	            if(replacement_bf_page_dtl->timeStamp > next_bf_page_dtl->timeStamp)
				{
					replacement_bf_page_dtl = next_bf_page_dtl;
				}
			}
		}
	}
return replacement_bf_page_dtl;
}