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); }
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; }
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); } }
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; }
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)); }
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); }
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; }
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)¶ms); 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); }
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; }
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); } }
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); }
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; }