EFI_INPUT_KEY ReadKey(void) { WaitKey(); EFI_INPUT_KEY key = {0}; ST->ConIn->ReadKeyStroke(ST->ConIn, &key); return key; }
int PrinterBLTest() { int i, ret=0; CHAR PrintBuff[100]; char buff[64]; int num; Clear(); SetScrFont(FONT20, WHITE); TextOut(0, 2, ALIGN_CENTER, "打印测试"); TextOut(0, 4, ALIGN_LEFT, "请输入打印张数:(1-999)"); memset(buff, 0, sizeof(buff)); SetScrFont(FONT20, RED); ret = Input(22, 4, buff, 3, IME_NUMBER, BLACK, GREEN, FALSE, FALSE, FALSE); if(ret != OK) { FailBeep(); ClearLine(1, 9); SetScrFont(FONT20, WHITE); TextOut(0, 4, ALIGN_CENTER, "打印失败"); WaitKey(2000); return ERROR; } num = atoi(buff); DebugOut("打印张数:[%d]\n", num); for (i = 0; i < num; i ++) { START_PRINT: if(CheckPrinter() != TRUE) goto end1; printf("启动黑标打印功能\n"); ret = BmSwitch(1); printf("ret = %d\n", ret); if (0 != ret) { printf("启动失败\n"); return 0; } MoveDotLine(4000); // 或者直接两个黑标之间的距离 //清空打印缓冲区 ClearPrintBuff(); //设置打印字体大小 SetPrintFont(48); memset(PrintBuff, 0x00, sizeof(PrintBuff)); strcpy(PrintBuff, "ABCDEFGHIJKLMNOPQRSTUVWX"); ret = FillPrintBuff(PrintBuff); if(ret < 0) goto end1; SetPrintFont(48); memset(PrintBuff, 0x00, sizeof(PrintBuff)); strcpy(PrintBuff, "123456789012345678"); ret = FillPrintBuff(PrintBuff); if(ret < 0) goto end1; ret = FillPrintBuff("PL"); if(ret < 0) goto end1; SetPrintIndent(0); //开始打印 ret =StartPrint(); DebugOut("print error code:[%d]\n", ret); if(ret != 0) { if(ret == -1) goto START_PRINT; else if(ret == -2) goto end2; else if(ret == -3) goto end1; } } if(ret==0) { ClearLine(1, 9); TextOut(0, 4, ALIGN_CENTER, "打印成功"); WaitKey(1000); } else { ClearLine(1, 9); TextOut(0, 4, ALIGN_CENTER, "打印失败"); WaitKey(1000); } OkBeep(); return OK; end1: FailBeep(); ClearLine(1, 9); TextOut(0, 3, ALIGN_CENTER, "请检查打印机"); TextOut(0, 4, ALIGN_CENTER, "打印失败"); WaitKey(2000); return ERROR; end2: FailBeep(); ClearLine(1, 9); TextOut(0, 3, ALIGN_CENTER, "电量不足"); TextOut(0, 4, ALIGN_CENTER, "无法执行打印"); WaitKey(2000); return ERROR; }
int FileViewer::ProcessKey(int Key) { if (RedrawTitle && (((unsigned int)Key & 0x00ffffff) < KEY_END_FKEY || IS_INTERNAL_KEY_REAL((unsigned int)Key & 0x00ffffff))) ShowConsoleTitle(); if (Key!=KEY_F3 && Key!=KEY_IDLE) F3KeyOnly=false; switch (Key) { #if 0 /* $ 30.05.2003 SVS Фича :-) Shift-F4 в редакторе/вьювере позволяет открывать другой редактор/вьювер Пока закомментим */ case KEY_SHIFTF4: { if (!Opt.OnlyEditorViewerUsed) CtrlObject->Cp()->ActivePanel->ProcessKey(Key); return TRUE; } #endif /* $ 22.07.2000 tran + выход по ctrl-f10 с установкой курсора на файл */ case KEY_CTRLF10: { if (View.isTemporary()) { return TRUE; } SaveScreen Sc; FARString strFileName; View.GetFileName(strFileName); CtrlObject->Cp()->GoToFile(strFileName); RedrawTitle = TRUE; return (TRUE); } // $ 15.07.2000 tran + CtrlB switch KeyBar case KEY_CTRLB: Opt.ViOpt.ShowKeyBar=!Opt.ViOpt.ShowKeyBar; if (Opt.ViOpt.ShowKeyBar) ViewKeyBar.Show(); else ViewKeyBar.Hide0(); // 0 mean - Don't purge saved screen Show(); KeyBarVisible = Opt.ViOpt.ShowKeyBar; return (TRUE); case KEY_CTRLSHIFTB: { Opt.ViOpt.ShowTitleBar=!Opt.ViOpt.ShowTitleBar; TitleBarVisible = Opt.ViOpt.ShowTitleBar; Show(); return (TRUE); } case KEY_CTRLO: if (!Opt.OnlyEditorViewerUsed) { if (FrameManager->ShowBackground()) { SetCursorType(FALSE,0); WaitKey(); FrameManager->RefreshFrame(); } } return TRUE; case KEY_F3: case KEY_NUMPAD5: case KEY_SHIFTNUMPAD5: if (F3KeyOnly) return TRUE; case KEY_ESC: case KEY_F10: FrameManager->DeleteFrame(); return TRUE; case KEY_F6: if (!DisableEdit) { UINT cp=View.VM.CodePage; FARString strViewFileName; View.GetFileName(strViewFileName); File Edit; if(!Edit.Open(strViewFileName, GENERIC_READ, FILE_SHARE_READ|(Opt.EdOpt.EditOpenedForWrite?FILE_SHARE_WRITE:0), nullptr, OPEN_EXISTING, FILE_FLAG_SEQUENTIAL_SCAN)) { Message(MSG_WARNING|MSG_ERRORTYPE,1,MSG(MEditTitle),MSG(MEditCannotOpen),strViewFileName,MSG(MOk)); return TRUE; } Edit.Close(); // Если переключаемся в редактор, то удалять файл уже не нужно SetTempViewName(L""); SetExitCode(0); int64_t FilePos=View.GetFilePos(); /* $ 07.07.2006 IS Тут косяк, замеченный при чтении warnings - FilePos теряет информацию при преобразовании int64_t -> int Надо бы поправить FileEditor на этот счет. */ FileEditor *ShellEditor = new FileEditor(strViewFileName, cp, (GetCanLoseFocus()?FFILEEDIT_ENABLEF6:0)|(SaveToSaveAs?FFILEEDIT_SAVETOSAVEAS:0)|(DisableHistory?FFILEEDIT_DISABLEHISTORY:0),-2, static_cast<int>(FilePos), nullptr); ShellEditor->SetEnableF6(TRUE); /* $ 07.05.2001 DJ сохраняем NamesList */ ShellEditor->SetNamesList(View.GetNamesList()); FrameManager->DeleteFrame(this); // Insert уже есть внутри конструктора ShowTime(2); } return TRUE; // Печать файла с использованием плагина PrintMan case KEY_ALTF5: { if (Opt.UsePrintManager && CtrlObject->Plugins.FindPlugin(SYSID_PRINTMANAGER)) CtrlObject->Plugins.CallPlugin(SYSID_PRINTMANAGER,OPEN_VIEWER,0); // printman return TRUE; } case KEY_ALTSHIFTF9: // Работа с локальной копией ViewerOptions ViewerOptions ViOpt; ViOpt.TabSize=View.GetTabSize(); ViOpt.AutoDetectCodePage=View.GetAutoDetectCodePage(); ViOpt.ShowScrollbar=View.GetShowScrollbar(); ViOpt.ShowArrows=View.GetShowArrows(); ViOpt.PersistentBlocks=View.GetPersistentBlocks(); ViewerConfig(ViOpt,true); View.SetTabSize(ViOpt.TabSize); View.SetAutoDetectCodePage(ViOpt.AutoDetectCodePage); View.SetShowScrollbar(ViOpt.ShowScrollbar); View.SetShowArrows(ViOpt.ShowArrows); View.SetPersistentBlocks(ViOpt.PersistentBlocks); if (Opt.ViOpt.ShowKeyBar) ViewKeyBar.Show(); View.Show(); return TRUE; case KEY_ALTF11: if (GetCanLoseFocus()) CtrlObject->CmdLine->ShowViewEditHistory(); return TRUE; default: // Этот кусок - на будущее (по аналогии с редактором :-) // if (CtrlObject->Macro.IsExecuting() || !View.ProcessViewerInput(&ReadRec)) { /* $ 22.03.2001 SVS Это помогло от залипания :-) */ if (!CtrlObject->Macro.IsExecuting()) if (Opt.ViOpt.ShowKeyBar) ViewKeyBar.Show(); if (!ViewKeyBar.ProcessKey(Key)) { if (AutoClose) { if (Key == (KEY_MSWHEEL_DOWN | KEY_CTRL | KEY_SHIFT) ) Key = KEY_MSWHEEL_DOWN; else if (Key == (KEY_MSWHEEL_UP | KEY_CTRL | KEY_SHIFT) ) Key = KEY_MSWHEEL_UP; if (Key == KEY_MSWHEEL_DOWN || Key == (KEY_MSWHEEL_DOWN | KEY_ALT)) { int64_t FilePosBefore = View.GetFilePos(); BOOL rv = View.ProcessKey(Key); if (FilePosBefore == View.GetFilePos()) ProcessKey(KEY_ESC); return rv; } } return View.ProcessKey(Key); } } return TRUE; } }
int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int){ SetMainWindowText("Slalom_Simurator_01"); ChangeWindowMode(TRUE); SetGraphMode(640,480,32); if(DxLib_Init() == -1) { return -1; } int count_draw,count; float angle[1000]; float angle_accel=2000; float angle_vel=0; float velocity_right=500; float velocity_left=500; float x[1000]; float y[1000]; angle[0]=0; for(count_draw = 1; count_draw<=999;count_draw++){ if((angle[count_draw-1]<ang1)&&(velocity_right>=150)){ angle_accel=ANGLE_ACCEL; } if(((angle[count_draw-1]>=ang1)&&(angle[count_draw-1]<=ang2))||(velocity_right<150)){ angle_accel=0; if(velocity_right<150){ velocity_right = 150; } } if((angle[count_draw-1]<=ang3)&&(angle[count_draw-1]>=ang2)&&(velocity_left>=500)){ angle_accel=(-ANGLE_ACCEL); } if(angle[count_draw-1]>=ang3){ angle_vel = 0.0; angle_accel = 0.0; break; } angle_vel = angle_vel + angle_accel*0.001; angle[count_draw]=angle[count_draw-1] + angle_vel*0.001; velocity_left= 500 -(angle_vel*LENGTH_TREAD_LEFT*PAI)/360; velocity_right=500 +(angle_vel*LENGTH_TREAD_LEFT*PAI)/360; } x[0]=0; y[0]=0; for(count=1;count<count_draw;count++){ x[count] =x[count-1]+500*0.001*sin((angle[count]*PAI)/180); y[count] =y[count-1]+500*0.001*cos((angle[count]*PAI)/180); } DrawLine(186,280,186,280-PRE,GetColor(255,0,0)); for(count=1;count<count_draw;count++){ DrawLine(186+x[count-1],(280-PRE-y[count]),186+x[count],(280-PRE-y[count-1]),GetColor(255,0,0)); } DrawLine(186+x[count],280-PRE-y[count],186+x[count]+FOL,280-PRE-y[count],GetColor(255,0,0)); DrawBox(100,100,112,280,GetColor(255,12,0),TRUE); DrawBox(280,100,292,280,GetColor(255,12,0),FALSE); DrawBox(112,88,280,100,GetColor(255,12,0),TRUE); DrawBox(100,280,112,292,GetColor(198,60,0),TRUE); DrawBox(280,280,292,292,GetColor(198,60,0),TRUE); DrawBox(100,88,112,100,GetColor(198,60,0),TRUE); DrawBox(280,88,292,100,GetColor(198,60,0),TRUE); WaitKey(); // キー入力待ち DxLib_End(); // DXライブラリ終了処理konnitiha return 0; }
void InitTerm() { //初始化各变量 memset(&gTerm, 0, sizeof(T_TERM)); //通讯信息 strcpy(gTerm.szTPDU, "0180"); strcpy(gTerm.szTelNo, "812"); gTerm.uiModemDataNum = 193; gTerm.uiGprsDataNum = 193; gTerm.uiEthDataNum = 193; gTerm.uiWifiDataNum = 193; strcpy(gTerm.tEthernet.szServerIP, "192.168.8.180"); strcpy(gTerm.tEthernet.szServerPort, "8181"); strcpy(gTerm.tEthernet.szLocalIP, "192.168.1.168"); strcpy(gTerm.tEthernet.szMask, "255.255.255.0"); strcpy(gTerm.tEthernet.szGateway, "192.168.1.1"); strcpy(gTerm.szGprsServerIP, "124.205.159.130"); strcpy(gTerm.szGprsServerPort, "7979"); strcpy(gTerm.szMemKey, "FFFFFF"); strcpy(gTerm.szM1KeyA, "FFFFFFFFFFFF"); strcpy(gTerm.szM1KeyB, "FFFFFFFFFFFF"); gTerm.t_Wifi.nChannelNum = 1; memset(gTerm.t_Wifi.szBssid, 0, sizeof(gTerm.t_Wifi.szBssid)); memcpy(gTerm.t_Wifi.szBssid, "d85d4c3c3a88", 12); memset(gTerm.t_Wifi.szSsid, 0, sizeof(gTerm.t_Wifi.szSsid)); memcpy(gTerm.t_Wifi.szSsid, "huanhong", 8); gTerm.t_Wifi.nDatalink = 0x00; memset(gTerm.t_Wifi.szEquipmentIP, 0, sizeof(gTerm.t_Wifi.szEquipmentIP)); memcpy(gTerm.t_Wifi.szEquipmentIP, "192.168.1.116", 13); memset(gTerm.t_Wifi.szServerMask, 0, sizeof(gTerm.t_Wifi.szServerMask)); memcpy(gTerm.t_Wifi.szServerMask, "255.255.255.0", 13); memset(gTerm.t_Wifi.szServerGateway, 0, sizeof(gTerm.t_Wifi.szServerGateway)); memcpy(gTerm.t_Wifi.szServerGateway, "192.168.1.1", 11); memset(gTerm.t_Wifi.szServerIP, 0, sizeof(gTerm.t_Wifi.szServerIP)); memcpy(gTerm.t_Wifi.szServerIP, "192.168.1.100", 13); memset(gTerm.t_Wifi.szEquipmentPort, 0, sizeof(gTerm.t_Wifi.szEquipmentPort)); memcpy(gTerm.t_Wifi.szEquipmentPort, "9191", 4); gTerm.t_Wifi.nEncrypType = 1; memset(&gTerm.t_Wifi.key_wep, 0, sizeof(KEY_WEP)); gTerm.t_Wifi.key_wep.KeyLength = 0; gTerm.t_Wifi.key_wep.KeyIndex = 0; memcpy(gTerm.t_Wifi.key_wep.Group, "\0x1\0x1\0x1\0x1\0x1", 5); gTerm.bIsDC = TRUE; //保存 if(!WriteData("test-term.dat", (char *)(&gTerm), sizeof(T_TERM), 0)) { Clear(); SetScrFont(FONT24, RED); TextOut(0, 2, ALIGN_CENTER, "机器硬件出错"); TextOut(0, 3, ALIGN_CENTER, "请更换设备"); FailBeep(); WaitKey(2000); return; } }
//***************************************************************************** // Function : GetListFile // Description : Get list file from host. // Input : N/A // Return : 0/-1; // 0 => Success // // -1 => Error // Note : N/A // Globals Changed : N/A //***************************************************************************** static int GetListFile(void) { int retry; int len, rx_len; int i, state, line_idx; DWORD getfile_mark, rx_mark, which; TBuffers.gRxBuf = MallocMW(COMM_BUFF_SIZE); // buffer de recepcion de datos TBuffers.gTxBuf = MallocMW(COMM_BUFF_SIZE); // buffer de recepcion de datos memset(TBuffers.gRxBuf,0x00,COMM_BUFF_SIZE); memset(TBuffers.gTxBuf,0x00,COMM_BUFF_SIZE); for (retry=0; retry<NUM_OF_RETRY; retry++) { FlushAll (); which = MW_FTP_DATA_CHNL; IOCtlMW(gFtpHandle, IO_FTP_DISCONNECT, &which); FlushAll (); graphicWindow("DESCARGANDO INFO"); printf("\n\nArchivo %s",STR_LIST_FILE_NAME); //SprintfMW ((char *)gTxBuf, "\x12\x1b\x20""Dnld %s..\x5", STR_LIST_FILE_NAME); //PrintfMW(gTxBuf); SprintfMW ((char *)TBuffers.gTxBuf, "GET I /%s%s", STR_TEST_DIR_NAME, STR_LIST_FILE_NAME); if (IOCtlMW(gFtpHandle, IO_FTP_CMD_SEND, TBuffers.gTxBuf) == FALSE) { // ShowMsgWait("GET:Command Fail.", TRUE); break; } if (WaitStatus(MW_FTP_STAT_DATA_CONNED, TIMEOUT_STATUS) < 0) { // centerS(5,1,21,"Fallo de datos"); DispLineMW("Fallo de datos",MW_LINE4,MW_CLRDISP|MW_CENTER|MW_SMFONT); // getch(0); WaitKey(300,1); break; } gNumOfFiles = 0; gRxSpeed = 0; rx_len = 0; getfile_mark = FreeRunMark(); while (1) { DWORD timeout=0; int ret; ret = GetCmdResp(); if (ret >= 400) { PrintfMW("\x1B\xE0\x1CGET:%d\x05\x1D", ret); break; } state = S_IDLE; line_idx = 0; rx_mark = FreeRunMark(); do { len = ReadMW(gFtpHandle, TBuffers.gRxBuf, COMM_BUFF_SIZE); if (len) { for (i=0; i<len; i++) { // Process data if ((TBuffers.gRxBuf[i] == 0x0d) || (TBuffers.gRxBuf[i] == 0x0a)) { if (line_idx) { gLineBuf[line_idx] = 0; line_idx = 0; TrimLineBuf(); state = ProcGetListFileState(state); } } else if (line_idx < SIZE_LINE) { gLineBuf[line_idx] = TBuffers.gRxBuf[i]; line_idx++; } } break; } if (WaitStatus(MW_FTP_STAT_DATA_CONNED, 1) < 0) { timeout = TIMEOUT_READ_BLOCK; break; } if (GetCharMW() == MWKEY_CANCL) break; //SleepMW(); } while ((timeout = FreeRunElapsed(rx_mark)) < TIMEOUT_READ_BLOCK); if (timeout >= TIMEOUT_READ_BLOCK) // End ? break; rx_len += len; printf("\fRx: %3d.%d K.bytes",rx_len/1000,(rx_len%1000)/100); //dumpMemory(TBuffers.gRxBuf,rx_len,1); //printf("\f%s",TBuffers.gRxBuf);getch(0); //PrintfMW("\x1B\x80""RXed %d bytes\x05\n\x05", rx_len); if (GetCharMW() == MWKEY_CANCL) break; } if (rx_len == 0) { graphicWindow("ERROR FTP"); //clear_area_screen(2,2,7,20,FALSE); // centerS(4,1,21,"RX Timeout."); WaitKey(300,1); continue; } which = MW_FTP_DATA_CHNL; IOCtlMW(gFtpHandle, IO_FTP_DISCONNECT, &which); // Close Data channel gRxSpeed = (rx_len/(FreeRunElapsed(getfile_mark)/1000)); //PrintfMW("\x1B\xA0Rx Spd:%d Bps\n", gRxSpeed); FreeMW(TBuffers.gRxBuf); FreeMW(TBuffers.gRxBuf); return 0; } FreeMW(TBuffers.gTxBuf); FreeMW(TBuffers.gTxBuf); return -1; }
void Dungeon::GoForward() { time += option->move_speed; if (time >= 60 && !flaging) //一方通行の時に壁が見えてしまうので応急処置 { flaging++; switch (muki) { case 0: pos_z++; break; case 1: pos_x++; break; case 2: pos_z--; break; case 3: pos_x--; break; default: break; } } if (time < 100) { switch (muki) { case 0: target_camera.z += option->move_speed; player_camera.z += option->move_speed; break; case 1: target_camera.x += option->move_speed; player_camera.x += option->move_speed; break; case 2: target_camera.z -= option->move_speed; player_camera.z -= option->move_speed; break; case 3: target_camera.x -= option->move_speed; player_camera.x -= option->move_speed; break; default: DrawString(0, 0, "Error! Dungeon.cpp have missing muki.", GetColor(255, 0, 0)); WaitKey(); break; } } else { switch (muki) { case 0: target_camera.z = pos_z * 100 + 100; player_camera.z = pos_z * 100; break; case 1: target_camera.x = pos_x * 100 + 100; player_camera.x = pos_x * 100; break; case 2: target_camera.z = pos_z * 100; player_camera.z = pos_z * 100 + 100; break; case 3: target_camera.x = pos_x * 100; player_camera.x = pos_x * 100 + 100; break; default: DrawString(0, 0, "Error! Dungeon.cpp have missing muki.", GetColor(255, 0, 0)); WaitKey(); break; } flaging = 0; state = 0; time = 0; } }
//----------------------------------------------------- void ServiceSetTimeHappy(void){ unsigned char time_out; PlayServiceFile(PLAY_SERVICE,SERVICE_SET_TIME_FILE); while(1){ PlayServiceFile(PLAY_SERVICE,SERVICE_SELECT_TIME); time_out = WaitKey(PREV,NEXT,-1,EXIT); if(time_out == false){ SystemReload(); } PlayBeep(); if(KEY == EXIT){CLEAR_KEYPAD();break;} if(KEY == PREV){ // set minute CLEAR_KEYPAD(); PlayServiceFile(PLAY_SERVICE,SERVICE_CHANGE_MINUTE); while(1){ time_out = WaitKey(PREV,NEXT,-1,EXIT); if(time_out == false){ SystemReload(); } PlayBeep(); if(KEY == EXIT){ CLEAR_KEYPAD(); break; } if(KEY == PREV){ // minute++ CLEAR_KEYPAD(); if(++AlarmHappy.minute == 60){ AlarmHappy.minute = 0; } } if(KEY == NEXT){ // minute-- CLEAR_KEYPAD();//clear KEY value if(AlarmHappy.minute == 0){ AlarmHappy.minute = 59; }else{ AlarmHappy.minute--; } } // PLAY CURRENT MINUTE PlayServiceFile(PLAY_MINUTE,AlarmHappy.minute); } } if(KEY == NEXT){ // set hour CLEAR_KEYPAD(); PlayServiceFile(PLAY_SERVICE,SERVICE_CHANGE_HOUR); while(1){ time_out = WaitKey(PREV,NEXT,-1,EXIT); if(time_out == false){ SystemReload(); } PlayBeep(); if(KEY == EXIT){ CLEAR_KEYPAD(); break; } if(KEY == PREV){ // hour++ CLEAR_KEYPAD(); if(++AlarmHappy.hour == 24){ AlarmHappy.hour = 0; } } if(KEY == NEXT){ // hour-- CLEAR_KEYPAD(); if(AlarmHappy.hour == 0){ AlarmHappy.hour = 23; }else{ AlarmHappy.hour--; } } // PLAY CURRENT HOUR PlayServiceFile(PLAY_HOUR,AlarmHappy.hour); } } } return; }
int Manager::ProcessKey(DWORD Key) { int ret=FALSE; if (CurrentFrame) { DWORD KeyM=(Key&(~KEY_CTRLMASK)); if (!((KeyM >= KEY_MACRO_BASE && KeyM <= KEY_MACRO_ENDBASE) || (KeyM >= KEY_OP_BASE && KeyM <= KEY_OP_ENDBASE))) // пропустим макро-коды { switch (CurrentFrame->GetType()) { case MODALTYPE_PANELS: { _ALGO(CleverSysLog clv(L"Manager::ProcessKey()")); _ALGO(SysLog(L"Key=%s",_FARKEY_ToName(Key))); #ifndef NO_WRAPPER if (CtrlObject->Cp()->ActivePanel->GetMode() == PLUGIN_PANEL) { PluginHandle *ph=(PluginHandle*)CtrlObject->Cp()->ActivePanel->GetPluginHandle(); if (ph && ph->pPlugin->IsOemPlugin()) if (CtrlObject->Cp()->ActivePanel->SendKeyToPlugin(Key,TRUE)) return TRUE; } #endif // NO_WRAPPER break; } #if 0 case MODALTYPE_VIEWER: //if(((FileViewer*)CurrentFrame)->ProcessViewerInput(FrameManager->GetLastInputRecord())) // return TRUE; break; case MODALTYPE_EDITOR: //if(((FileEditor*)CurrentFrame)->ProcessEditorInput(FrameManager->GetLastInputRecord())) // return TRUE; break; case MODALTYPE_DIALOG: //((Dialog*)CurrentFrame)->CallDlgProc(DN_KEY,((Dialog*)CurrentFrame)->GetDlgFocusPos(),Key); break; case MODALTYPE_VMENU: case MODALTYPE_HELP: case MODALTYPE_COMBOBOX: case MODALTYPE_USER: case MODALTYPE_FINDFOLDER: default: break; #endif } } #if defined(FAR_ALPHA_VERSION) // сей код для проверки исключатор, просьба не трогать :-) if (Key == KEY_CTRLALTAPPS || Key == KEY_RCTRLRALTAPPS || Key == KEY_CTRLRALTAPPS || Key == KEY_RCTRLALTAPPS) { struct __ECODE { NTSTATUS Code; const wchar_t *Name; } ECode[]= { {EXCEPTION_ACCESS_VIOLATION,L"Access Violation (Read)"}, {EXCEPTION_ACCESS_VIOLATION,L"Access Violation (Write)"}, {EXCEPTION_INT_DIVIDE_BY_ZERO,L"Divide by zero"}, {EXCEPTION_ILLEGAL_INSTRUCTION,L"Illegal instruction"}, {EXCEPTION_STACK_OVERFLOW,L"Stack Overflow"}, {EXCEPTION_FLT_DIVIDE_BY_ZERO,L"Floating-point divide by zero"}, {EXCEPTION_BREAKPOINT,L"Breakpoint"}, #ifdef _M_IA64 {EXCEPTION_DATATYPE_MISALIGNMENT,L"Alignment fault (IA64 specific)",}, #endif /* {EXCEPTION_FLT_OVERFLOW,"EXCEPTION_FLT_OVERFLOW"}, {EXCEPTION_SINGLE_STEP,"EXCEPTION_SINGLE_STEP",}, {EXCEPTION_ARRAY_BOUNDS_EXCEEDED,"EXCEPTION_ARRAY_BOUNDS_EXCEEDED",}, {EXCEPTION_FLT_DENORMAL_OPERAND,"EXCEPTION_FLT_DENORMAL_OPERAND",}, {EXCEPTION_FLT_INEXACT_RESULT,"EXCEPTION_FLT_INEXACT_RESULT",}, {EXCEPTION_FLT_INVALID_OPERATION,"EXCEPTION_FLT_INVALID_OPERATION",}, {EXCEPTION_FLT_STACK_CHECK,"EXCEPTION_FLT_STACK_CHECK",}, {EXCEPTION_FLT_UNDERFLOW,"EXCEPTION_FLT_UNDERFLOW",}, {EXCEPTION_INT_OVERFLOW,"EXCEPTION_INT_OVERFLOW",0}, {EXCEPTION_PRIV_INSTRUCTION,"EXCEPTION_PRIV_INSTRUCTION",0}, {EXCEPTION_IN_PAGE_ERROR,"EXCEPTION_IN_PAGE_ERROR",0}, {EXCEPTION_NONCONTINUABLE_EXCEPTION,"EXCEPTION_NONCONTINUABLE_EXCEPTION",0}, {EXCEPTION_INVALID_DISPOSITION,"EXCEPTION_INVALID_DISPOSITION",0}, {EXCEPTION_GUARD_PAGE,"EXCEPTION_GUARD_PAGE",0}, {EXCEPTION_INVALID_HANDLE,"EXCEPTION_INVALID_HANDLE",0}, */ }; static union { int i; int *iptr; double d; } zero_const; //, refers; zero_const.i=0L; MenuItemEx ModalMenuItem; ModalMenuItem.Clear(); VMenu2 ModalMenu(L"Test Exceptions",nullptr,0,ScrY-4); ModalMenu.SetFlags(VMENU_WRAPMODE); ModalMenu.SetPosition(-1,-1,0,0); for (size_t I=0; I<ARRAYSIZE(ECode); I++) { ModalMenuItem.strName = ECode[I].Name; ModalMenu.AddItem(&ModalMenuItem); } int ExitCode=ModalMenu.Run(); switch (ExitCode) { case -1: return TRUE; case 0: zero_const.i=*zero_const.iptr; break; case 1: *zero_const.iptr = 0; break; case 2: zero_const.i=1/zero_const.i; break; case 3: #if defined(_MSC_VER) #ifdef _M_IA64 #define __REG_IA64_IntR0 1024 __setReg(__REG_IA64_IntR0, 666); #else __ud2(); #endif #elif defined(__GNUC__) asm("ud2"); #else #error "Unsupported compiler" #endif break; case 4: Test_EXCEPTION_STACK_OVERFLOW(nullptr); break; case 5: //refers.d = 1.0/zero_const.d; break; case 6: DebugBreak(); break; #ifdef _M_IA64 case 7: { BYTE temp[10]={}; double* val; val = (double*)(&temp[3]); printf("%lf\n", *val); } #endif } Message(MSG_WARNING, 1, L"Test Exceptions failed", L"", ECode[ExitCode].Name, L"", MSG(MOk)); return TRUE; } #endif /*** БЛОК ПРИВЕЛЕГИРОВАННЫХ КЛАВИШ ! ***/ /*** КОТОРЫЕ НЕЛЬЗЯ НАМАКРОСИТЬ ***/ switch (Key) { case KEY_ALT|KEY_NUMPAD0: case KEY_RALT|KEY_NUMPAD0: case KEY_ALTINS: case KEY_RALTINS: { RunGraber(); return TRUE; } case KEY_CONSOLE_BUFFER_RESIZE: Sleep(1); ResizeAllFrame(); return TRUE; } /*** А вот здесь - все остальное! ***/ if (!Global->IsProcessAssignMacroKey) // в любом случае если кому-то не нужны все клавиши или { bool scrollable = false; if ( Global->Opt->WindowMode ) { int frame_type = CurrentFrame->GetType(); scrollable = frame_type != MODALTYPE_EDITOR && frame_type != MODALTYPE_VIEWER; }; switch (Key) { // <Удалить после появления макрофункции Scroll> case KEY_CTRLALTUP: case KEY_RCTRLRALTUP: case KEY_CTRLRALTUP: case KEY_RCTRLALTUP: if(scrollable) { Global->Console->ScrollWindow(-1); return TRUE; } break; case KEY_CTRLALTDOWN: case KEY_RCTRLRALTDOWN: case KEY_CTRLRALTDOWN: case KEY_RCTRLALTDOWN: if(scrollable) { Global->Console->ScrollWindow(1); return TRUE; } break; case KEY_CTRLALTPGUP: case KEY_RCTRLRALTPGUP: case KEY_CTRLRALTPGUP: case KEY_RCTRLALTPGUP: if(scrollable) { Global->Console->ScrollWindow(-ScrY); return TRUE; } break; case KEY_CTRLALTHOME: case KEY_RCTRLRALTHOME: case KEY_CTRLRALTHOME: case KEY_RCTRLALTHOME: if(scrollable) { while(Global->Console->ScrollWindow(-ScrY)); return TRUE; } break; case KEY_CTRLALTPGDN: case KEY_RCTRLRALTPGDN: case KEY_CTRLRALTPGDN: case KEY_RCTRLALTPGDN: if(scrollable) { Global->Console->ScrollWindow(ScrY); return TRUE; } break; case KEY_CTRLALTEND: case KEY_RCTRLRALTEND: case KEY_CTRLRALTEND: case KEY_RCTRLALTEND: if(scrollable) { while(Global->Console->ScrollWindow(ScrY)); return TRUE; } break; // </Удалить после появления макрофункции Scroll> case KEY_CTRLW: case KEY_RCTRLW: ShowProcessList(); return TRUE; case KEY_F11: PluginsMenu(); FrameManager->RefreshFrame(); //_MANAGER(SysLog(-1)); return TRUE; case KEY_ALTF9: case KEY_RALTF9: { //_MANAGER(SysLog(1,"Manager::ProcessKey, KEY_ALTF9 pressed...")); Sleep(1); SetVideoMode(); Sleep(1); /* В процессе исполнения Alt-F9 (в нормальном режиме) в очередь консоли попадает WINDOW_BUFFER_SIZE_EVENT, формируется в ChangeVideoMode(). В режиме исполнения макросов ЭТО не происходит по вполне понятным причинам. */ if (CtrlObject->Macro.IsExecuting()) { int PScrX=ScrX; int PScrY=ScrY; Sleep(1); GetVideoMode(CurSize); if (PScrX+1 == CurSize.X && PScrY+1 == CurSize.Y) { //_MANAGER(SysLog(-1,"GetInputRecord(WINDOW_BUFFER_SIZE_EVENT); return KEY_NONE")); return TRUE; } else { PrevScrX=PScrX; PrevScrY=PScrY; //_MANAGER(SysLog(-1,"GetInputRecord(WINDOW_BUFFER_SIZE_EVENT); return KEY_CONSOLE_BUFFER_RESIZE")); Sleep(1); return ProcessKey(KEY_CONSOLE_BUFFER_RESIZE); } } //_MANAGER(SysLog(-1)); return TRUE; } case KEY_F12: { int TypeFrame=FrameManager->GetCurrentFrame()->GetType(); if (TypeFrame != MODALTYPE_HELP && TypeFrame != MODALTYPE_DIALOG) { DeactivateFrame(FrameMenu(),0); //_MANAGER(SysLog(-1)); return TRUE; } break; // отдадим F12 дальше по цепочке } case KEY_CTRLALTSHIFTPRESS: case KEY_RCTRLALTSHIFTPRESS: { if (!(Global->Opt->CASRule&1) && Key == KEY_CTRLALTSHIFTPRESS) break; if (!(Global->Opt->CASRule&2) && Key == KEY_RCTRLALTSHIFTPRESS) break; if (!Global->Opt->OnlyEditorViewerUsed) { if (CurrentFrame->FastHide()) { int isPanelFocus=CurrentFrame->GetType() == MODALTYPE_PANELS; if (isPanelFocus) { int LeftVisible=CtrlObject->Cp()->LeftPanel->IsVisible(); int RightVisible=CtrlObject->Cp()->RightPanel->IsVisible(); int CmdLineVisible=CtrlObject->CmdLine->IsVisible(); int KeyBarVisible=CtrlObject->Cp()->MainKeyBar.IsVisible(); CtrlObject->CmdLine->ShowBackground(); CtrlObject->Cp()->LeftPanel->Hide0(); CtrlObject->Cp()->RightPanel->Hide0(); switch (Global->Opt->PanelCtrlAltShiftRule) { case 0: CtrlObject->CmdLine->Show(); CtrlObject->Cp()->MainKeyBar.Show(); break; case 1: CtrlObject->Cp()->MainKeyBar.Show(); break; } WaitKey(Key==KEY_CTRLALTSHIFTPRESS?KEY_CTRLALTSHIFTRELEASE:KEY_RCTRLALTSHIFTRELEASE); if (LeftVisible) CtrlObject->Cp()->LeftPanel->Show(); if (RightVisible) CtrlObject->Cp()->RightPanel->Show(); if (CmdLineVisible) CtrlObject->CmdLine->Show(); if (KeyBarVisible) CtrlObject->Cp()->MainKeyBar.Show(); } else { ImmediateHide(); WaitKey(Key==KEY_CTRLALTSHIFTPRESS?KEY_CTRLALTSHIFTRELEASE:KEY_RCTRLALTSHIFTRELEASE); } FrameManager->RefreshFrame(); } return TRUE; } break; } case KEY_CTRLTAB: case KEY_RCTRLTAB: case KEY_CTRLSHIFTTAB: case KEY_RCTRLSHIFTTAB: if (CurrentFrame->GetCanLoseFocus()) { DeactivateFrame(CurrentFrame,(Key==KEY_CTRLTAB||Key==KEY_RCTRLTAB)?1:-1); } _MANAGER(SysLog(-1)); return TRUE; } } CurrentFrame->UpdateKeyBar(); CurrentFrame->ProcessKey(Key); } _MANAGER(SysLog(-1)); return ret; }
void Dungeon::LoadDungeon(int floor) //行く予定の階層の情報を読み込むかつ初期化 { switch (floor) { case 1: fp = fopen("./dungeon/dungeon1/floor1/map.cns", "r"); strcpy(dungeon_name, "dungeon1/floor1"); break; case 2: fp = fopen("./dungeon/dungeon1/floor2/map.cns", "r"); strcpy(dungeon_name, "dungeon1/floor2"); break; case 3: fp = fopen("./dungeon/dungeon1/floor3/map.cns", "r"); strcpy(dungeon_name, "dungeon1/floor3"); break; } floors = floor; //GraphFilter(kabe_handle, DX_GRAPH_FILTER_GAUSS, 32, 55600); if (fp == NULL) //エラーチェック { DrawString(0, 0, "Error!", GetColor(255, 0, 0)); WaitKey(); } fscanf(fp, "%d,%d", &x_max, &z_max); for (int i = 0; i < z_max; i++) { for (int i2 = 0; i2 < x_max; i2++) { fscanf(fp, "%d,", &map_data[i][i2]); //fscanf(fp, "%c"); } } fscanf(fp, "%d,%d", &start_x, &start_z); fscanf(fp, "%d", &feel_flag); fscanf(fp, "%s", kabe_name); fscanf(fp, "%d,%d,%d", &fog_r, &fog_g, &fog_b); fscanf(fp, "%f,%f", &fog_start, &fog_goal); SetTransColor(255, 255, 255); //白を透過色に kabe_handle = LoadGraph(kabe_name); SetTransColor(0, 0, 0); //一応戻す if (kabe_handle == -1) //エラーチェック { DrawString(0, 0, "Error!", GetColor(255, 0, 0)); WaitKey(); } if (feel_flag) { int keep = 0; for (int i = 0; i < z_max / 2; i++) { for (int i2 = 0; i2 < x_max; i2++) { keep = map_data[i][i2]; map_data[i][i2] = map_data[z_max - i - 1][i2]; map_data[z_max - i - 1][i2] = keep; } } } //情報の初期化 pos_x = start_x; pos_z = start_z; state = 0; time = 0; muki = 0; nowchoose = 0; state = 0; minimap_flag = 1; //カメラの初期化 target_camera = VGet(pos_x * 100 + 50, 50, pos_z * 100 + 100); player_camera = VGet(pos_x * 100 + 50, 50, pos_z * 100); //フォグの設定 SetFogEnable(TRUE); SetFogColor(fog_r, fog_g, fog_b); SetFogStartEnd(fog_start, fog_goal); }
//----------------------------------------------------- void ServiceSetDateRTC(void){ unsigned char time_out; PlayServiceFile(PLAY_SERVICE,SERVICE_SET_DATE_FILE); while(1){ PlayServiceFile(PLAY_SERVICE,SERVICE_DATE_YEAR_CHANGE); time_out = WaitKey(PREV,NEXT,PLAY,EXIT); if(time_out == false){ break; } PlayBeep(); if(KEY == EXIT){ CLEAR_KEYPAD(); break; } if(KEY == PREV){ // set month CLEAR_KEYPAD(); PlayServiceFile(PLAY_SERVICE,SERVICE_CHANGE_MONTH); while(1){ time_out = WaitKey(PREV,NEXT,-1,EXIT); if(time_out == false){ break; } PlayBeep(); if(KEY == EXIT){CLEAR_KEYPAD();break;} if(KEY == PREV){ // month++ CLEAR_KEYPAD(); if(++DS_CALENDAR.Month == 13) DS_CALENDAR.Month = 1; } if(KEY == NEXT){ // month-- CLEAR_KEYPAD(); if(--DS_CALENDAR.Month == 0) DS_CALENDAR.Month = 12; } // PLAY CURRENT MONTH PlayServiceFile(PLAY_MONTH,(DS_CALENDAR.Month-1)); } } if(KEY == NEXT){ // set date CLEAR_KEYPAD(); PlayServiceFile(PLAY_SERVICE,SERVICE_CHANGE_DAY); while(1){ time_out = WaitKey(PREV,NEXT,-1,EXIT); if(time_out == false){ break; } PlayBeep(); if(KEY == EXIT){CLEAR_KEYPAD();break;} if(KEY == PREV){ // date++ CLEAR_KEYPAD(); if(++DS_CALENDAR.Date == 29){ if((DS_CALENDAR.Date == 2) && (not_leap())){ DS_CALENDAR.Date = 1; } } if( DS_CALENDAR.Date == 31){ if((DS_CALENDAR.Date==4)||(DS_CALENDAR.Date==6)||(DS_CALENDAR.Date==9)||(DS_CALENDAR.Date==11)){ DS_CALENDAR.Date = 1; } } if( DS_CALENDAR.Date == 32){ DS_CALENDAR.Date = 1; } } if(KEY == NEXT){ // date-- CLEAR_KEYPAD(); if(--DS_CALENDAR.Date==0){ if((DS_CALENDAR.Date==4)||(DS_CALENDAR.Date==6)||(DS_CALENDAR.Date==9)||(DS_CALENDAR.Date==11)){ DS_CALENDAR.Date=30; }else{ DS_CALENDAR.Date=31; } if(DS_CALENDAR.Date == 2){ DS_CALENDAR.Date=29; } if((DS_CALENDAR.Date == 2) && (not_leap())){ DS_CALENDAR.Date=28; } } } // PLAY CURRENT DATE PlayServiceFile(PLAY_DATE,(DS_CALENDAR.Date-1)); } } if(KEY == PLAY){ // set year CLEAR_KEYPAD(); PlayServiceFile(PLAY_SERVICE,SERVICE_CHANGE_YEAR); while(1){ time_out = WaitKey(PREV,NEXT,-1,EXIT); if(time_out == false){ break; } PlayBeep(); if(KEY == EXIT){ CLEAR_KEYPAD(); break; } if(KEY == PREV){ // year++ CLEAR_KEYPAD(); if(++DS_CALENDAR.Year > 20){ DS_CALENDAR.Year = 0x09; } } if(KEY == NEXT){ // year-- CLEAR_KEYPAD(); if(--DS_CALENDAR.Year < 9){ DS_CALENDAR.Year = 0x20; } } // PLAY CURRENT DATY PlayServiceFile(PLAY_YEAR,(DS_CALENDAR.Year-9)); } } } return; }
//----------------------------------------------------- void ServiceSetTimeRTC(void){ unsigned char time_out; PlayServiceFile(PLAY_SERVICE,SERVICE_SET_TIME_FILE); PlayTimeRTC(); while(1){ PlayServiceFile(PLAY_SERVICE,SERVICE_TIME_CHANGE); time_out = WaitKey(PREV,NEXT,-1,EXIT); if(time_out == false) break; PlayBeep(); if(KEY == EXIT){CLEAR_KEYPAD();break;} if(KEY == PREV){ // set minute CLEAR_KEYPAD(); PlayServiceFile(PLAY_SERVICE,SERVICE_CHANGE_MINUTE); while(1){ time_out = WaitKey(PREV,NEXT,-1,EXIT); if(time_out == false){ break; } PlayBeep(); if(KEY == EXIT){ CLEAR_KEYPAD(); break; } if(KEY == PREV){ // minute++ CLEAR_KEYPAD(); if(++DS_CALENDAR.Minutes == 60) DS_CALENDAR.Minutes = 0; } if(KEY == NEXT){ // minute-- CLEAR_KEYPAD();//clear KEY value if(DS_CALENDAR.Minutes == 0){ DS_CALENDAR.Minutes = 59; }else{ DS_CALENDAR.Minutes--; } } // PLAY CURRENT MINUTE PlayServiceFile(PLAY_MINUTE,DS_CALENDAR.Minutes); } } if(KEY == NEXT){ // set hour CLEAR_KEYPAD(); PlayServiceFile(PLAY_SERVICE,SERVICE_CHANGE_HOUR); while(1){ time_out = WaitKey(PREV,NEXT,-1,EXIT); if(time_out == false){ break; } PlayBeep(); if(KEY == EXIT){ CLEAR_KEYPAD(); break; } if(KEY == PREV){ // hour++ CLEAR_KEYPAD(); if(++DS_CALENDAR.Hour == 24) DS_CALENDAR.Hour = 0; } if(KEY == NEXT){ // hour-- CLEAR_KEYPAD();//clear KEY value if(DS_CALENDAR.Hour == 0){ DS_CALENDAR.Hour = 23; }else{ DS_CALENDAR.Hour--; } } // PLAY CURRENT HOUR PlayServiceFile(PLAY_HOUR,DS_CALENDAR.Hour); } } } return; }
//----------------------------------------------------- void ServiceSystem(void){ unsigned char time_out; PlayServiceFile(PLAY_SERVICE,SERVICE_SERVICE_FILE); while(1){ PlayServiceFile(PLAY_SERVICE,SERVICE_SETTING_FILE); time_out = WaitKey(PREV,NEXT,PLAY,EXIT); if(time_out == false) break; PlayBeep(); if(KEY == EXIT){ CLEAR_KEYPAD(); break; } if(KEY == PREV){ //--SET DATE/TIME THE RTC-- CLEAR_KEYPAD(); ReadDsRtcTime(); // Read date/time RTC from DS3231 while(1){ PlayServiceFile(PLAY_SERVICE,SERVICE_DATE_TIME_FILE); time_out = WaitKey(PREV,NEXT,-1,EXIT); if(time_out == false) break; PlayBeep(); if(KEY == EXIT){ CLEAR_KEYPAD(); WriteDsRtcTime(); //Save date/time RTC to DS3231 break; } if(KEY == PREV){ //Set DATE RTC CLEAR_KEYPAD(); ServiceSetDateRTC(); } if(KEY == NEXT){ //Set TIME RTC CLEAR_KEYPAD(); ServiceSetTimeRTC(); } } } if(KEY == NEXT){ //SET VOLUME CLEAR_KEYPAD(); ServiceSetVolume(); } if(KEY == PLAY){ //SET HAPPY and ALARM CLEAR_KEYPAD(); while(1){ PlayServiceFile(PLAY_SERVICE,SERVICE_HAPPY_ALARM_FILE); time_out = WaitKey(PREV,NEXT,-1,EXIT); if(time_out == false) break; PlayBeep(); if(KEY == EXIT){ CLEAR_KEYPAD(); break; } if(KEY == NEXT){ // SET ALARM CLEAR_KEYPAD(); ServiceSetAlarm(); } if(KEY == PREV){ // SET DATE/TIME THE HAPPY CLEAR_KEYPAD(); //LOAD_BIRTHDAY();//read current data/time the BIRTHDAY from eeprom //PlayFile(PLAY_SERVICE,SET_BIRTHDAY,0x00); //PlayFile(PLAY_SERVICE,CURRENT_BIRTHDAY,0x00); //PlayTimeBIRTHDAY(); //PlayDateBIRTHDAY(); while(1){ PlayServiceFile(PLAY_SERVICE,SERVICE_SET_DATE_TIME_FILE); time_out = WaitKey(PREV,NEXT,-1,EXIT); if(time_out == false) break; PlayBeep(); if(KEY == EXIT){ CLEAR_KEYPAD(); //SAVE_BIRTHDAY();//save current date/time the BIRTHDAY to eeprom break; } if(KEY == PREV){//Set DATE HAPPY CLEAR_KEYPAD(); ServiceSetDateHappy(); } if(KEY == PREV){ //Set TIME HAPPY CLEAR_KEYPAD(); ServiceSetTimeHappy(); } } } } } } }
void PrintLog(char *Title, char *Msg) { int ret; char PrintBuff[1024]; START_PRINT: if(CheckPrinter() != TRUE) goto end1; //清空打印缓冲区 ClearPrintBuff(); SetPrintFont(24); ret = FillPrintBuff("PL"); if(ret < 0) goto end1; memset(PrintBuff, 0x00, sizeof(PrintBuff)); strcpy(PrintBuff, Title); ret = FillPrintBuff(PrintBuff); if(ret < 0) goto end1; ret = FillPrintBuff("PL"); if(ret < 0) goto end1; SetPrintIndent(0); memset(PrintBuff, 0, sizeof(PrintBuff)); strcpy(PrintBuff, Msg); ret = FillPrintBuff(PrintBuff); if(ret < 0) goto end1; ret = FillPrintBuff("PL"); if(ret < 0) goto end1; //开始打印 ret =StartPrint(); DebugOut("print error code:[%d]\n", ret); if(ret != 0) { if(ret == -1) goto START_PRINT; else if(ret == -2) goto end2; else if(ret == -3) goto end1; } return; end1: FailBeep(); ClearLine(1, 9); TextOut(0, 3, ALIGN_CENTER, "请检查打印机"); TextOut(0, 4, ALIGN_CENTER, "打印失败"); WaitKey(2000); return; end2: FailBeep(); ClearLine(1, 9); TextOut(0, 3, ALIGN_CENTER, "电量不足"); TextOut(0, 4, ALIGN_CENTER, "无法执行打印"); WaitKey(2000); }
void Dungeon::GoBack() { time += option->move_speed; if (time < 100) { switch (muki) { case 0: target_camera.z -= option->move_speed; player_camera.z -= option->move_speed; break; case 1: target_camera.x -= option->move_speed; player_camera.x -= option->move_speed; break; case 2: target_camera.z += option->move_speed; player_camera.z += option->move_speed; break; case 3: target_camera.x += option->move_speed; player_camera.x += option->move_speed; break; default: DrawString(0, 0, "Error! Dungeon.cpp have missing muki.", GetColor(255, 0, 0)); WaitKey(); break; } } else { //調整 switch (muki) { case 0: pos_z--; target_camera.z = pos_z * 100 + 100; player_camera.z = pos_z * 100; break; case 1: pos_x--; target_camera.x = pos_x * 100 + 100; player_camera.x = pos_x * 100; break; case 2: pos_z++; target_camera.z = pos_z * 100; player_camera.z = pos_z * 100 + 100; break; case 3: pos_x++; target_camera.x = pos_x * 100; player_camera.x = pos_x * 100 + 100; break; default: DrawString(0, 0, "Error! Dungeon.cpp have missing muki.", GetColor(255, 0, 0)); WaitKey(); break; } flaging = 0; state = 0; time = 0; } }
int PrinterNormalTest() { int i, ret=0; CHAR PrintBuff[100]; char buff[64]; int num; Clear(); SetScrFont(FONT20, WHITE); TextOut(0, 2, ALIGN_CENTER, "打印测试"); TextOut(0, 4, ALIGN_LEFT, "请输入打印张数:(1-999)"); memset(buff, 0, sizeof(buff)); SetScrFont(FONT20, RED); ret = Input(22, 4, buff, 3, IME_NUMBER, BLACK, GREEN, FALSE, FALSE, FALSE); if(ret != OK) { FailBeep(); ClearLine(1, 9); SetScrFont(FONT20, WHITE); TextOut(0, 4, ALIGN_CENTER, "打印失败"); WaitKey(2000); return ERROR; } num = atoi(buff); DebugOut("打印张数:[%d]\n", num); for (i = 0; i < num; i ++) { START_PRINT: if(CheckPrinter() != TRUE) goto end1; //清空打印缓冲区 ClearPrintBuff(); //设置打印字体大小 // ret = FillPrintBuff("PL"); // if(ret < 0) // goto end1; SetPrintIndent(0); //SetPrintFont(64); SetPrintFont(48); memset(PrintBuff, 0x00, sizeof(PrintBuff)); strcpy(PrintBuff, "************"); ret = FillPrintBuff(PrintBuff); if(ret < 0) goto end1; // ret = FillPrintBuff("PL"); // if(ret < 0) // goto end1; SetPrintIndent(0); SetPrintIndent(0); //SetPrintFont(16); SetPrintFont(24); memset(PrintBuff, 0x00, sizeof(PrintBuff)); strcpy(PrintBuff, "<TYPE24>"); ret = FillPrintBuff(PrintBuff); if(ret < 0) goto end1; // ret = FillPrintBuff("PL"); // if(ret < 0) // goto end1; SetPrintIndent(0); //SetPrintFont(16); SetPrintFont(24); memset(PrintBuff, 0x00, sizeof(PrintBuff)); strcpy(PrintBuff, "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUV"); ret = FillPrintBuff(PrintBuff); if(ret < 0) goto end1; // ret = FillPrintBuff("PL"); // if(ret < 0) // goto end1; SetPrintIndent(0); //SetPrintFont(16); SetPrintFont(24); memset(PrintBuff, 0x00, sizeof(PrintBuff)); strcpy(PrintBuff, "123456789012345678901234567890123456789012345678"); ret = FillPrintBuff(PrintBuff); if(ret < 0) goto end1; // ret = FillPrintBuff("PL"); // if(ret < 0) // goto end1; SetPrintIndent(0); //SetPrintFont(16); SetPrintFont(24); memset(PrintBuff, 0x00, sizeof(PrintBuff)); strcpy(PrintBuff, "测试程序, 当前正测试机型TYPE :D620D"); ret = FillPrintBuff(PrintBuff); if(ret < 0) goto end1; // ret = FillPrintBuff("PL"); // if(ret < 0) // goto end1; SetPrintIndent(0); //////////////////// //SetPrintFont(64); SetPrintFont(48); memset(PrintBuff, 0x00, sizeof(PrintBuff)); strcpy(PrintBuff, "************"); ret = FillPrintBuff(PrintBuff); if(ret < 0) goto end1; // ret = FillPrintBuff("PL"); // if(ret < 0) // goto end1; SetPrintIndent(0); SetPrintIndent(0); SetPrintFont(24); memset(PrintBuff, 0x00, sizeof(PrintBuff)); strcpy(PrintBuff, "<TYPE24>"); ret = FillPrintBuff(PrintBuff); if(ret < 0) goto end1; // ret = FillPrintBuff("PL"); // if(ret < 0) // goto end1; SetPrintIndent(0); SetPrintFont(24); memset(PrintBuff, 0x00, sizeof(PrintBuff)); strcpy(PrintBuff, "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEF"); ret = FillPrintBuff(PrintBuff); if(ret < 0) goto end1; // ret = FillPrintBuff("PL"); // if(ret < 0) // goto end1; SetPrintIndent(0); SetPrintIndent(0); SetPrintFont(24); memset(PrintBuff, 0x00, sizeof(PrintBuff)); strcpy(PrintBuff, "abcdefghijklmnopqrstuvwxyzabcde"); ret = FillPrintBuff(PrintBuff); if(ret < 0) goto end1; // ret = FillPrintBuff("PL"); // if(ret < 0) // goto end1; SetPrintIndent(0); SetPrintFont(24); memset(PrintBuff, 0x00, sizeof(PrintBuff)); strcpy(PrintBuff, "12345678901234567890123456789012"); ret = FillPrintBuff(PrintBuff); if(ret < 0) goto end1; // ret = FillPrintBuff("PL"); // if(ret < 0) // goto end1; SetPrintIndent(0); SetPrintFont(24); memset(PrintBuff, 0x00, sizeof(PrintBuff)); strcpy(PrintBuff, "1234.5678.9012.3456.7890.1234.56"); ret = FillPrintBuff(PrintBuff); if(ret < 0) goto end1; // ret = FillPrintBuff("PL"); // if(ret < 0) // goto end1; SetPrintIndent(0); SetPrintFont(24); memset(PrintBuff, 0x00, sizeof(PrintBuff)); strcpy(PrintBuff, "~!@#$%^&*()_+-=/|,.?<>;:'{}[]-·"); ret = FillPrintBuff(PrintBuff); if(ret < 0) goto end1; // ret = FillPrintBuff("PL"); // if(ret < 0) // goto end1; SetPrintIndent(0); SetPrintFont(24); memset(PrintBuff, 0x00, sizeof(PrintBuff)); strcpy(PrintBuff, "测试程序 TYPE: D620D"); ret = FillPrintBuff(PrintBuff); if(ret < 0) goto end1; // ret = FillPrintBuff("PL"); // if(ret < 0) // goto end1; SetPrintIndent(0); //SetPrintFont(64); SetPrintFont(48); memset(PrintBuff, 0x00, sizeof(PrintBuff)); strcpy(PrintBuff, "************"); ret = FillPrintBuff(PrintBuff); if(ret < 0) goto end1; // ret = FillPrintBuff("PL"); // if(ret < 0) // goto end1; SetPrintIndent(0); SetPrintIndent(0); SetPrintFont(32); memset(PrintBuff, 0x00, sizeof(PrintBuff)); strcpy(PrintBuff, "<TYPE32>"); ret = FillPrintBuff(PrintBuff); if(ret < 0) goto end1; // ret = FillPrintBuff("PL"); // if(ret < 0) // goto end1; SetPrintIndent(0); SetPrintFont(32); memset(PrintBuff, 0x00, sizeof(PrintBuff)); strcpy(PrintBuff, "ABCDEFGHIJKLMNOPQRSTUVWX"); ret = FillPrintBuff(PrintBuff); if(ret < 0) goto end1; // ret = FillPrintBuff("PL"); // if(ret < 0) // goto end1; SetPrintIndent(0); SetPrintIndent(0); SetPrintFont(32); memset(PrintBuff, 0x00, sizeof(PrintBuff)); strcpy(PrintBuff, "abcdefghijklmnopqrstuvwx"); ret = FillPrintBuff(PrintBuff); if(ret < 0) goto end1; // ret = FillPrintBuff("PL"); // if(ret < 0) // goto end1; SetPrintIndent(0); SetPrintFont(32); memset(PrintBuff, 0x00, sizeof(PrintBuff)); strcpy(PrintBuff, "123456789012345678901234"); ret = FillPrintBuff(PrintBuff); if(ret < 0) goto end1; // ret = FillPrintBuff("PL"); // if(ret < 0) // goto end1; SetPrintIndent(0); SetPrintFont(32); memset(PrintBuff, 0x00, sizeof(PrintBuff)); strcpy(PrintBuff, "1234.5678.9012.3456.7890"); ret = FillPrintBuff(PrintBuff); if(ret < 0) goto end1; // ret = FillPrintBuff("PL"); // if(ret < 0) // goto end1; SetPrintIndent(0); SetPrintFont(32); memset(PrintBuff, 0x00, sizeof(PrintBuff)); strcpy(PrintBuff, "~!@#$%^&*()_+-=/|,.?<>;"); ret = FillPrintBuff(PrintBuff); if(ret < 0) goto end1; // ret = FillPrintBuff("PL"); // if(ret < 0) // goto end1; SetPrintIndent(0); SetPrintFont(32); memset(PrintBuff, 0x00, sizeof(PrintBuff)); strcpy(PrintBuff, "测试程序D620D"); ret = FillPrintBuff(PrintBuff); if(ret < 0) goto end1; // ret = FillPrintBuff("PL"); // if(ret < 0) // goto end1; SetPrintIndent(0); //开始打印 ret =StartPrint(); if(ret != 0) { if(ret == -1) goto START_PRINT; else if(ret == -2) goto end2; else if(ret == -3) goto end1; } //清空打印缓冲区 ClearPrintBuff(); //SetPrintFont(64); SetPrintIndent(0); SetPrintFont(48); memset(PrintBuff, 0x00, sizeof(PrintBuff)); strcpy(PrintBuff, "************"); ret = FillPrintBuff(PrintBuff); if(ret < 0) goto end1; /// ret = FillPrintBuff("PL"); // if(ret < 0) // goto end1; SetPrintIndent(0); SetPrintFont(48); memset(PrintBuff, 0x00, sizeof(PrintBuff)); strcpy(PrintBuff, "<TYPE48>"); ret = FillPrintBuff(PrintBuff); if(ret < 0) goto end1; //ret = FillPrintBuff("PL"); //if(ret<0)goto end1; SetPrintIndent(0); SetPrintFont(48); memset(PrintBuff, 0x00, sizeof(PrintBuff)); strcpy(PrintBuff, "ABCDEFGHIJKLMNOPQRSTUVWX"); ret = FillPrintBuff(PrintBuff); if(ret < 0) goto end1; //ret = FillPrintBuff("PL"); // if(ret < 0) // goto end1; SetPrintIndent(0); SetPrintIndent(0); SetPrintFont(48); memset(PrintBuff, 0x00, sizeof(PrintBuff)); strcpy(PrintBuff, "abcdefghijklmnop"); ret = FillPrintBuff(PrintBuff); if(ret < 0) goto end1; // ret = FillPrintBuff("PL"); // if(ret < 0) // goto end1; SetPrintIndent(0); SetPrintFont(48); memset(PrintBuff, 0x00, sizeof(PrintBuff)); strcpy(PrintBuff, "1234567890123456"); ret = FillPrintBuff(PrintBuff); if(ret < 0) goto end1; // ret = FillPrintBuff("PL"); // if(ret < 0) // goto end1; SetPrintIndent(0); SetPrintFont(48); memset(PrintBuff, 0x00, sizeof(PrintBuff)); strcpy(PrintBuff, "1234.5678.9012.3"); ret = FillPrintBuff(PrintBuff); if(ret < 0) goto end1; // ret = FillPrintBuff("PL"); // if(ret < 0) // goto end1; SetPrintIndent(0); SetPrintFont(48); memset(PrintBuff, 0x00, sizeof(PrintBuff)); strcpy(PrintBuff, "~!@#$%^&*()_+-=/"); ret = FillPrintBuff(PrintBuff); if(ret < 0) goto end1; // ret = FillPrintBuff("PL"); // if(ret < 0) // goto end1; SetPrintIndent(0); SetPrintFont(48); memset(PrintBuff, 0x00, sizeof(PrintBuff)); strcpy(PrintBuff, "测试程序D620D"); ret = FillPrintBuff(PrintBuff); if(ret < 0) goto end1; // ret = FillPrintBuff("PL"); // if(ret < 0) // goto end1; SetPrintIndent(0); //SetPrintFont(64); SetPrintFont(48); memset(PrintBuff, 0x00, sizeof(PrintBuff)); strcpy(PrintBuff, "************"); ret = FillPrintBuff(PrintBuff); if(ret < 0) goto end1; // ret = FillPrintBuff("PL"); // if(ret < 0) // goto end1; SetPrintIndent(0); SetPrintIndent(0); //SetPrintFont(64); SetPrintFont(48); memset(PrintBuff, 0x00, sizeof(PrintBuff)); strcpy(PrintBuff, "<TYPE48>"); ret = FillPrintBuff(PrintBuff); if(ret < 0) goto end1; // ret = FillPrintBuff("PL"); // if(ret < 0) // goto end1; SetPrintIndent(0); //SetPrintFont(64); SetPrintFont(48); memset(PrintBuff, 0x00, sizeof(PrintBuff)); strcpy(PrintBuff, "ABCDEFGHIJKLMNOPQRSTUVWX"); ret = FillPrintBuff(PrintBuff); if(ret < 0) goto end1; // ret = FillPrintBuff("PL"); // if(ret < 0) // goto end1; SetPrintIndent(0); SetPrintIndent(0); //SetPrintFont(64); SetPrintFont(48); memset(PrintBuff, 0x00, sizeof(PrintBuff)); strcpy(PrintBuff, "abcdefghijkl"); ret = FillPrintBuff(PrintBuff); if(ret < 0) goto end1; // ret = FillPrintBuff("PL"); // if(ret < 0) // goto end1; SetPrintIndent(0); //SetPrintFont(64); SetPrintFont(48); memset(PrintBuff, 0x00, sizeof(PrintBuff)); strcpy(PrintBuff, "123456789012"); ret = FillPrintBuff(PrintBuff); if(ret < 0) goto end1; // ret = FillPrintBuff("PL"); // if(ret < 0) // goto end1; SetPrintIndent(0); //SetPrintFont(64); SetPrintFont(48); memset(PrintBuff, 0x00, sizeof(PrintBuff)); strcpy(PrintBuff, "1234.5678.90"); ret = FillPrintBuff(PrintBuff); if(ret < 0) goto end1; // ret = FillPrintBuff("PL"); // if(ret < 0) // goto end1; SetPrintIndent(0); //SetPrintFont(64); SetPrintFont(48); memset(PrintBuff, 0x00, sizeof(PrintBuff)); strcpy(PrintBuff, "测试程序"); ret = FillPrintBuff(PrintBuff); if(ret < 0) goto end1; // ret = FillPrintBuff("PL"); // if(ret < 0) // goto end1; SetPrintIndent(0); //SetPrintFont(64); SetPrintFont(48); memset(PrintBuff, 0x00, sizeof(PrintBuff)); strcpy(PrintBuff, "************"); ret = FillPrintBuff(PrintBuff); if(ret < 0) goto end1; //设置打印字体大小 //SetPrintFont(64); SetPrintFont(48); ret = FillPrintBuff("PL"); if(ret < 0) goto end1; ret = FillPrintBuff("PL"); if(ret < 0) goto end1; ret = FillPrintBuff("PL"); if(ret < 0) goto end1; ret = FillPrintBuff("PL"); if(ret < 0) goto end1; SetPrintIndent(0); //开始打印 ret =StartPrint(); DebugOut("print error code:[%d]\n", ret); if(ret != 0) { if(ret == -1) goto START_PRINT; else if(ret == -2) goto end2; else if(ret == -3) goto end1; } } if(ret==0) { ClearLine(1, 9); TextOut(0, 4, ALIGN_CENTER, "打印成功"); WaitKey(1000); } else { ClearLine(1, 9); TextOut(0, 4, ALIGN_CENTER, "打印失败"); WaitKey(1000); } OkBeep(); return OK; end1: FailBeep(); ClearLine(1, 9); TextOut(0, 3, ALIGN_CENTER, "请检查打印机"); TextOut(0, 4, ALIGN_CENTER, "打印失败"); WaitKey(2000); return ERROR; end2: FailBeep(); ClearLine(1, 9); TextOut(0, 3, ALIGN_CENTER, "电量不足"); TextOut(0, 4, ALIGN_CENTER, "无法执行打印"); WaitKey(2000); return ERROR; }
int FileViewer::ProcessKey(int Key) { if (RedrawTitle && (((unsigned int)Key & 0x00ffffff) < KEY_END_FKEY || IsInternalKeyReal((unsigned int)Key & 0x00ffffff))) ShowConsoleTitle(); if (Key!=KEY_F3 && Key!=KEY_IDLE) F3KeyOnly=false; switch (Key) { #if 0 /* $ 30.05.2003 SVS Фича :-) Shift-F4 в редакторе/вьювере позволяет открывать другой редактор/вьювер Пока закомментим */ case KEY_SHIFTF4: { if (!Opt.OnlyEditorViewerUsed) CtrlObject->Cp()->ActivePanel->ProcessKey(Key); return TRUE; } #endif /* $ 22.07.2000 tran + выход по ctrl-f10 с установкой курсора на файл */ case KEY_CTRLF10: case KEY_RCTRLF10: { if (View.isTemporary()) { return TRUE; } SaveScreen Sc; string strFileName; View.GetFileName(strFileName); CtrlObject->Cp()->GoToFile(strFileName); RedrawTitle = TRUE; return (TRUE); } // $ 15.07.2000 tran + CtrlB switch KeyBar case KEY_CTRLB: case KEY_RCTRLB: Opt.ViOpt.ShowKeyBar=!Opt.ViOpt.ShowKeyBar; if (Opt.ViOpt.ShowKeyBar) ViewKeyBar.Show(); else ViewKeyBar.Hide0(); // 0 mean - Don't purge saved screen Show(); KeyBarVisible = Opt.ViOpt.ShowKeyBar; return (TRUE); case KEY_CTRLSHIFTB: case KEY_RCTRLSHIFTB: { Opt.ViOpt.ShowTitleBar=!Opt.ViOpt.ShowTitleBar; TitleBarVisible = Opt.ViOpt.ShowTitleBar; Show(); return (TRUE); } case KEY_CTRLO: case KEY_RCTRLO: if (!Opt.OnlyEditorViewerUsed) { if (FrameManager->ShowBackground()) { SetCursorType(FALSE,0); WaitKey(); FrameManager->RefreshFrame(); } } return TRUE; case KEY_F3: case KEY_NUMPAD5: case KEY_SHIFTNUMPAD5: if (F3KeyOnly) return TRUE; case KEY_ESC: case KEY_F10: FrameManager->DeleteFrame(); return TRUE; case KEY_F6: if (!DisableEdit) { UINT cp=View.VM.CodePage; string strViewFileName; View.GetFileName(strViewFileName); File Edit; while(!Edit.Open(strViewFileName, FILE_READ_DATA, FILE_SHARE_READ|(Opt.EdOpt.EditOpenedForWrite?FILE_SHARE_WRITE:0), nullptr, OPEN_EXISTING, FILE_FLAG_SEQUENTIAL_SCAN)) { if(!OperationFailed(strViewFileName, MEditTitle, MSG(MEditCannotOpen), false)) continue; else return TRUE; } Edit.Close(); __int64 FilePos=View.GetFilePos(); DWORD flags = (GetCanLoseFocus()?FFILEEDIT_ENABLEF6:0)|(SaveToSaveAs?FFILEEDIT_SAVETOSAVEAS:0)|(DisableHistory?FFILEEDIT_DISABLEHISTORY:0); FileEditor *ShellEditor = new FileEditor( strViewFileName, cp, flags, -2, static_cast<int>(FilePos), // TODO: Editor StartChar should be __int64 str_title.IsEmpty() ? nullptr: &str_title, -1,-1, -1, -1, delete_on_close ); ShellEditor->SetEnableF6(TRUE); /* $ 07.05.2001 DJ сохраняем NamesList */ ShellEditor->SetNamesList(View.GetNamesList()); // Если переключаемся в редактор, то удалять файл уже не нужно SetTempViewName(L""); SetExitCode(0); FrameManager->DeleteFrame(this); // Insert уже есть внутри конструктора ShowTime(2); } return TRUE; case KEY_ALTSHIFTF9: case KEY_RALTSHIFTF9: // Работа с локальной копией ViewerOptions ViewerConfig(View.ViOpt, true); if (Opt.ViOpt.ShowKeyBar) ViewKeyBar.Show(); View.Show(); return TRUE; case KEY_ALTF11: case KEY_RALTF11: if (GetCanLoseFocus()) CtrlObject->CmdLine->ShowViewEditHistory(); return TRUE; default: // Этот кусок - на будущее (по аналогии с редактором :-) // if (CtrlObject->Macro.IsExecuting() || !View.ProcessViewerInput(&ReadRec)) { /* $ 22.03.2001 SVS Это помогло от залипания :-) */ if (!CtrlObject->Macro.IsExecuting()) if (Opt.ViOpt.ShowKeyBar) ViewKeyBar.Show(); if (!ViewKeyBar.ProcessKey(Key)) return(View.ProcessKey(Key)); } return TRUE; } }
//----------------------------------------------------- void ServiceSetDateHappy(void){ unsigned char time_out; ReadDsRtcTime(); // for month ans date happy PlayServiceFile(PLAY_SERVICE,SERVICE_SET_DATE_FILE); while(1){ PlayServiceFile(PLAY_SERVICE,SERVICE_SELECT_DATE); time_out = WaitKey(PREV,NEXT,PLAY,EXIT); if(time_out == false){ SystemReload(); } PlayBeep(); if(KEY == EXIT){ CLEAR_KEYPAD(); break; } if(KEY == PREV){ // set month CLEAR_KEYPAD(); PlayServiceFile(PLAY_SERVICE,SERVICE_CHANGE_MONTH); while(1){ time_out = WaitKey(PREV,NEXT,-1,EXIT); if(time_out == false){ SystemReload(); } PlayBeep(); if(KEY == EXIT){ CLEAR_KEYPAD();break; } if(KEY == PREV){ // month++ CLEAR_KEYPAD(); if(++AlarmHappy.month == 13){ AlarmHappy.month = 1; } } if(KEY == NEXT){ // month-- CLEAR_KEYPAD(); if(--AlarmHappy.month == 0){ AlarmHappy.month = 12; } } // PLAY CURRENT MONTH PlayServiceFile(PLAY_MONTH,(AlarmHappy.month-1)); } } if(KEY == NEXT){ // set date CLEAR_KEYPAD(); PlayServiceFile(PLAY_SERVICE,SERVICE_CHANGE_DAY); while(1){ time_out = WaitKey(PREV,NEXT,-1,EXIT); if(time_out == false){ SystemReload(); } PlayBeep(); if(KEY == EXIT){CLEAR_KEYPAD();break;} if(KEY == PREV){ // date++ CLEAR_KEYPAD(); if(++AlarmHappy.date == 29){ if((AlarmHappy.month == 2) && (not_leap())){ AlarmHappy.date = 1; } } if(AlarmHappy.date == 31){ if((AlarmHappy.month==4)||(AlarmHappy.month==6)||(AlarmHappy.month==9)||(AlarmHappy.month==11)){ AlarmHappy.date = 1; } } if(AlarmHappy.date == 32){ AlarmHappy.date = 1; } } if(KEY == NEXT){ // date-- CLEAR_KEYPAD(); if(--AlarmHappy.date==0){ if((AlarmHappy.month==4)||(AlarmHappy.month==6)||(AlarmHappy.month==9)||(AlarmHappy.month==11)){ AlarmHappy.date=30; }else{ AlarmHappy.date=31; } if(AlarmHappy.month == 2){ AlarmHappy.date=29; } if((AlarmHappy.month == 2) && (not_leap())){ AlarmHappy.date=28; } } } // PLAY CURRENT DATE PlayServiceFile(PLAY_DATE,(AlarmHappy.date-1)); } } } return; }
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { ChangeWindowMode(TRUE); SetDrawScreen( DX_SCREEN_BACK); if(DxLib_Init()==-1) // DXライブラリ初期化処理 { return -1 ; // エラーが起きたら直ちに終了 } //デバック用にコンソールを出現させる AllocConsole(); freopen("CONOUT$","w",stdout); freopen("CONIN$","r",stdin); Mode gamemode=OPENING; AI_T ai[AI_NUM]; int death[AI_NUM]={0}; Tagger tagger[TAGGER_NUM]; int tagger_num = 0; int STAGE[WIDTH][HEIGHT]={0}; int round=0; int end=0; while(ProcessMessage()!=-1){ switch(gamemode){ case OPENING: intro(); gamemode=SETTING; break; case SETTING: make_Stage(STAGE);//マップ構成 tagger_num = init_Tagger(tagger,STAGE);//鬼の初期化 //tagger_numは鬼の要素番号 //for(int i=0;i<AI_NUM;i++){//AIの初期化 //henteko : aiをすべてinit_Aiに渡す init_Ai(ai,STAGE); //} round++; gamemode=RUNNING; break; case RUNNING: if(tagger[tagger_num].step==0){ //tagger[tagger_num].act=next_Tagger(tagger[tagger_num],STAGE,ai); tagger[tagger_num].act=tagger[tagger_num].moveFunc(tagger[tagger_num].x,tagger[tagger_num].y,STAGE,ai); //AIと一緒で、moveFunc使う } for(int i=0;i<AI_NUM;i++){ if(ai[i].step==0){ setview_Ai(&ai[i],STAGE); //ai[i].act=next_Ai(ai[i].view); //henteko : 下のmoveFunc()を使うためコメントアウト ai[i].act = ai[i].moveFunc(ai[i].view); } } update_Tagger(&tagger[tagger_num],STAGE); for(int i=0;i<AI_NUM;i++){ update_Ai(&ai[i],STAGE); } update_stage(STAGE,ai,tagger[tagger_num]); ClearDrawScreen(); draw(STAGE,ai,tagger[tagger_num]); DrawFormatString(30,30,GetColor(0,255,255),"ROUND%d",round); if(tagger[tagger_num].step==0){ for(int i=0;i<AI_NUM;i++){ if(death_Ai(ai[i],tagger[tagger_num])==1){ death[i]++; const char* str = strcat(ai[i].name , "がつかまりました"); //文字列連結 DrawString(100,240,str,GetColor(255,0,0)); WaitTimer(3000); if(round>=ROUND_MAX){ gamemode=ENDING; } else{ gamemode=SETTING; } break; } } } if(CheckHitKey(KEY_INPUT_R)==1){ gamemode=SETTING; } break; case ENDING: result(ai,death); WaitKey(); end=1; break; default: break; } if(end==1 || CheckHitKey(KEY_INPUT_ESCAPE))break; ScreenFlip(); } DxLib_End() ; // DXライブラリ使用の終了処理 return 0 ; // ソフトの終了 }
int computeFS () { uint refresh = 2,key; int index = 0,i,hcs; char ch; double ht,hz,v,bh,hd; double value[4] = {0.0,0.0,0.0,0.0}; const char * context[] = {"","","",""}; while(1){ if (refresh == REFRESH_ALL){ refresh = REFRESH_PART; Bdisp_AllClr_VRAM(); SetMyFont(&stHz12x12,&stAsc6x12); //¶¨Òå×ÖÌå´óС DispStr(2,1, "Ïß "); DispStr(2,12,"· "); DispStr(2,25,"·´ "); DispStr(2,38,"Ëã "); ShowTitle(TITLE); DispStr(17,0, "×ø±êX: "); DispStr(17,13,"×ø±êY: "); DispStr(17,26,"×ø±êZ: "); //DispStr(17,39,"×ø±êZ: "); for (i=0;i<4;++i){ PrintXY(50,2+i*12,(uchar*)context[i],0); } PrintIcon (0,"Rou",0); PrintIcon (1,"Set",0); PrintIcon (2,"Disp",0); PrintIcon (3,"=0=",1); PrintIcon (4,"Save",1); PrintIcon (5,"?",0); } if (refresh == REFRESH_PART){ for (i=0;i<4;++i){ PrintFloat(value[i],48,0+i*12,index==i,4); //ÊäÈë¿òλÖà } refresh = 0; } GetKey(&key); switch(key){ case KEY_CTRL_F1 : SET(); refresh=REFRESH_ALL; break; case KEY_CTRL_F2 : ZSSET(); refresh=REFRESH_ALL; break; case KEY_CTRL_F3 : RestoreDisp(SAVEDISP_PAGE1);refresh=REFRESH_ALL;WaitKey();break; case KEY_CTRL_F4 : case KEY_CTRL_F5 : Nodata(); refresh=REFRESH_ALL; break; case KEY_CTRL_F6 : About(); refresh=REFRESH_ALL; break; case KEY_CTRL_UP : refresh=REFRESH_PART; --index; break; case KEY_CTRL_DOWN : refresh=REFRESH_PART; ++index; break; case KEY_CTRL_EXE: if (index<3){ refresh = REFRESH_PART; index++; }else{ yscs.x1 = value[0]; yscs.y1 = value[1]; hz = value[2]; ht = value[3]; refresh=REFRESH_ALL; //yscs.k=0.0; yscs.k=xy_to_sdSrd( yscs.x1, yscs.y1, 0); yscs.d=xy_to_sdSrd( yscs.x1, yscs.y1, 1); //yscs.k=xy_to_sd( yscs.x1, yscs.y1, 0); //yscs.d=xy_to_sd( yscs.x1, yscs.y1, 1); //FS(); GC(); HP(); if (yscs.d<0) hcs=-1; //Æ«¾à×ó²à if (yscs.d>=0) hcs=1; //Æ«¾àÓÒ²à if (yscs.d*hcs<=zfset.zsp) hd=0; // if (zfset.zsh==0) hd=0; if (yscs.d*hcs>zfset.zsp && yscs.d*hcs-zfset.zsp<zfset.zsh) hd=(yscs.d*hcs-zfset.zsp)*hcs; if (yscs.d*hcs-zfset.zsp>=zfset.zsh) hd=zfset.zsh*hcs; bh=yscs.gch+(yscs.hpd*hd)-ht; Bdisp_AllClr_VRAM(); DispStr(2,0, "¼Æ "); DispStr(2,12,"Ëã "); DispStr(2,26,"½á "); DispStr(2,39,"¹û "); ShowTitle(TITLE); DispStr(17,0,"×®ºÅ "); DispStr(17,13,"Æ«¾à "); DispStr(17,26,"ÌîÍÚ: "); DispStr(17,39,"»ù¸ß: "); PrintfXY (48,2.5,0,"%.4f",yscs.k); PrintfXY (48,15,0,"%.4f",yscs.d); PrintfXY (48,28,0,"%.4f",yscs.gch); PrintfXY (48,42,0,"%.4f",yscs.hpd); //PrintfXY (22,40,0," H= %.3f",bh); //PrintfXY (22,48,0," H-Z= %.3f",hz-bh); SaveDisp(SAVEDISP_PAGE1); WaitKey(); ++index; }break; case KEY_CTRL_EXIT: return 0; default: if ((ch=GetPressNumChar(key))!=0){ char buf[14]; int r; refresh = REFRESH_PART; buf[0] = ch; buf[1] = '\0'; r = InputString (48,0+index*12,buf,0,12); //ÊäÈë¿òλÖà if (r != KEY_CTRL_EXIT){ value[index] = atof(buf); if (r==KEY_CTRL_DOWN) ++index; if (r==KEY_CTRL_UP) --index; if (r==KEY_CTRL_EXE && index<3) ++index; } break; } } if (index >=4) index = 2; if (index < 0) index = 3; } }
//于主地图行走 void InMap() { char* aaa[] = { "過招嗎?", "過招", "罷了" }; printf("%s\n", ShowYesNoBox(aaa) ? "過招" : "罷了"); uint32 next_time = SDL_GetTicks() + 3000; g_inGame = EmInGameMap; g_mStep = 0; g_mRest = 0; g_mShip = 0; CmdScreenFadeIn(NULL); WaitKey(); //PlayMp3(16, -1); //事件轮询(并非等待) SDL_EnableKeyRepeat(KEY_REPEAT_DELAY, KEY_REPEAT); while (TRUE) { //如果当前处于标题画面, 则退出, 用于战斗失败 //*********** int mx = g_mx; int my = g_my; switch (g_mFace) { case 0: mx--; break; case 1: my++; break; case 2: my--; break; case 3: mx++; break; default: break; } if (GoIn(mx, my)) { CmdScreenFadeOut(NULL); InScence(g_entrances[mx][my], EmInScenceEnter); g_inGame = EmInGameMap; g_mStep = 0; g_mRest = 0; g_mShip = 0; CmdScreenFadeIn(NULL); } //主地图动态效果, 实际仅有主角的动作 uint32 now = SDL_GetTicks(); if (g_mStep) { g_mRest = 0; next_time = now + 3000; } else if (now > next_time) { if (++g_mRest >= REST_PIC_NUM + 1) { g_mRest = 0; next_time = now + 3000; } else { next_time = now + 500; } } DrawMap(); int key = PollKey(); switch (key) { case KEYUP: g_mStep = 0; g_mShip = 0; break; case SDLK_UP: g_mFace = 0; if (++g_mStep >= WALK_PIC_NUM) g_mStep = 1; if (++g_mShip >= SHIP_PIC_NUM) g_mShip = 1; if (GoThroughMap(g_mx - 1, g_my)) { g_mx--; } break; case SDLK_RIGHT: g_mFace = 1; if (++g_mStep >= WALK_PIC_NUM) g_mStep = 1; if (++g_mShip >= SHIP_PIC_NUM) g_mShip = 1; if (GoThroughMap(g_mx, g_my + 1)) { g_my++; } break; case SDLK_LEFT: g_mFace = 2; if (++g_mStep >= WALK_PIC_NUM) g_mStep = 1; if (++g_mShip >= SHIP_PIC_NUM) g_mShip = 1; if (GoThroughMap(g_mx, g_my - 1)) { g_my--; } break; case SDLK_DOWN: g_mFace = 3; if (++g_mStep >= WALK_PIC_NUM) g_mStep = 1; if (++g_mShip >= SHIP_PIC_NUM) g_mShip = 1; if (GoThroughMap(g_mx + 1, g_my)) { g_mx++; } break; case SDLK_ESCAPE: //***MenuEsc; break; default: break; } } }
int FarAppMain(int argc, char **argv) { Opt.IsUserAdmin = (geteuid()==0); _OT(SysLog(L"[[[[[[[[New Session of FAR]]]]]]]]]")); FARString strEditName; FARString strViewName; FARString DestNames[2]; int StartLine=-1,StartChar=-1; int CntDestName=0; // количество параметров-имен каталогов /*$ 18.04.2002 SKV Попользуем floating point что бы проинициализировался vc-ный fprtl. */ #ifdef _MSC_VER float x=1.1f; wchar_t buf[15]; swprintf(buf,L"%f",x); #endif // если под дебагером, то отключаем исключения однозначно, // иначе - смотря что указал юзвер. #if defined(_DEBUGEXC) Opt.ExceptRules=-1; #else Opt.ExceptRules=-1;//IsDebuggerPresent()?0:-1; #endif // Opt.ExceptRules=-1; #ifdef __GNUC__ Opt.ExceptRules=0; #endif //_SVS(SysLog(L"Opt.ExceptRules=%d",Opt.ExceptRules)); SetRegRootKey(HKEY_CURRENT_USER); Opt.strRegRoot = L"Software/Far2"; // По умолчанию - брать плагины из основного каталога Opt.LoadPlug.MainPluginDir=TRUE; Opt.LoadPlug.PluginsPersonal=TRUE; Opt.LoadPlug.PluginsCacheOnly=FALSE; g_strFarPath = g_strFarModuleName; bool translated = TranslateFarString<TranslateInstallPath_Bin2Share>(g_strFarPath); CutToSlash(g_strFarPath, true); if (translated) { // /usr/bin/something -> /usr/share/far2l g_strFarPath+= L"/" FAR_BASENAME; } WINPORT(SetEnvironmentVariable)(L"FARHOME", g_strFarPath); AddEndSlash(g_strFarPath); // don't inherit from parent process in any case WINPORT(SetEnvironmentVariable)(L"FARUSER", nullptr); WINPORT(SetEnvironmentVariable)(L"FARADMINMODE", Opt.IsUserAdmin?L"1":nullptr); // макросы не дисаблим Opt.Macro.DisableMacro=0; for (int I=1; I<argc; I++) { std::wstring arg_w = MB2Wide(argv[I]); if ((arg_w[0]==L'/' || arg_w[0]==L'-') && arg_w[1]) { switch (Upper(arg_w[1])) { case L'A': switch (Upper(arg_w[2])) { case 0: Opt.CleanAscii=TRUE; break; case L'G': if (!arg_w[3]) Opt.NoGraphics=TRUE; break; } break; case L'E': if (iswdigit(arg_w[2])) { StartLine=_wtoi((const wchar_t *)&arg_w[2]); wchar_t *ChPtr=wcschr((wchar_t *)&arg_w[2],L':'); if (ChPtr) StartChar=_wtoi(ChPtr+1); } if (I+1<argc) { strEditName = argv[I+1]; I++; } break; case L'V': if (I+1<argc) { strViewName = argv[I+1]; I++; } break; case L'M': switch (Upper(arg_w[2])) { case 0: Opt.Macro.DisableMacro|=MDOL_ALL; break; case L'A': if (!arg_w[3]) Opt.Macro.DisableMacro|=MDOL_AUTOSTART; break; } break; case L'I': Opt.SmallIcon=TRUE; break; case L'X': Opt.ExceptRules=0; #if defined(_DEBUGEXC) if (Upper(arg_w[2])==L'D' && !arg_w[3]) Opt.ExceptRules=1; #endif break; case L'C': if (Upper(arg_w[2])==L'O' && !arg_w[3]) { Opt.LoadPlug.PluginsCacheOnly=TRUE; Opt.LoadPlug.PluginsPersonal=FALSE; } break; case L'?': case L'H': ControlObject::ShowCopyright(1); show_help(); return 0; #ifdef DIRECT_RT case L'D': if (Upper(arg_w[2])==L'O' && !arg_w[3]) DirectRT=1; break; #endif case L'W': { Opt.WindowMode=TRUE; } break; } } else // простые параметры. Их может быть max две штукА. { if (CntDestName < 2) { if (IsPluginPrefixPath((const wchar_t *)arg_w.c_str())) { DestNames[CntDestName++] = (const wchar_t *)arg_w.c_str(); } else { apiExpandEnvironmentStrings((const wchar_t *)arg_w.c_str(), DestNames[CntDestName]); Unquote(DestNames[CntDestName]); ConvertNameToFull(DestNames[CntDestName],DestNames[CntDestName]); if (apiGetFileAttributes(DestNames[CntDestName]) != INVALID_FILE_ATTRIBUTES) CntDestName++; //??? } } } } //Настройка OEM сортировки. Должна быть после CopyGlobalSettings и перед InitKeysArray! //LocalUpperInit(); //InitLCIDSort(); //Инициализация массива клавиш. Должна быть после CopyGlobalSettings! InitKeysArray(); //WaitForInputIdle(GetCurrentProcess(),0); std::set_new_handler(nullptr); if (!Opt.LoadPlug.MainPluginDir) //если есть ключ /p то он отменяет /co Opt.LoadPlug.PluginsCacheOnly=FALSE; if (Opt.LoadPlug.PluginsCacheOnly) { Opt.LoadPlug.strCustomPluginsPath.Clear(); Opt.LoadPlug.MainPluginDir=FALSE; Opt.LoadPlug.PluginsPersonal=FALSE; } InitConsole(); GetRegKey(L"Language",L"Main",Opt.strLanguage,L"English"); if (!Lang.Init(g_strFarPath,true,MNewFileName)) { ControlObject::ShowCopyright(1); LPCWSTR LngMsg; switch(Lang.GetLastError()) { case LERROR_BAD_FILE: LngMsg = L"\nError: language data is incorrect or damaged.\n\nPress any key to exit..."; break; case LERROR_FILE_NOT_FOUND: LngMsg = L"\nError: cannot find language data.\n\nPress any key to exit..."; break; default: LngMsg = L"\nError: cannot load language data.\n\nPress any key to exit..."; break; } Console.Write(LngMsg,StrLength(LngMsg)); Console.FlushInputBuffer(); WaitKey(); // А стоит ли ожидать клавишу??? Стоит return 1; } WINPORT(SetEnvironmentVariable)(L"FARLANG",Opt.strLanguage); SetHighlighting(); initMacroVarTable(1); if (Opt.ExceptRules == -1) { GetRegKey(L"System",L"ExceptRules",Opt.ExceptRules,1); } //ErrorMode=SEM_FAILCRITICALERRORS|SEM_NOOPENFILEERRORBOX|(Opt.ExceptRules?SEM_NOGPFAULTERRORBOX:0)|(GetRegKey(L"System/Exception", L"IgnoreDataAlignmentFaults", 0)?SEM_NOALIGNMENTFAULTEXCEPT:0); //SetErrorMode(ErrorMode); int Result=MainProcessSEH(strEditName,strViewName,DestNames[0],DestNames[1],StartLine,StartChar); EmptyInternalClipboard(); doneMacroVarTable(1); VTShell_Shutdown();//ensure VTShell deinitialized before statics destructors called _OT(SysLog(L"[[[[[Exit of FAR]]]]]]]]]")); return Result; }
//----------------------------------------------------- void ServiceSetTrackAlarm(unsigned char number_alarm){ unsigned char time_out; unsigned char track; unsigned char ret_code; track = 0; PlayServiceFile(PLAY_SERVICE,SERVICE_ALARM_SELECT_MELODY_FILE); PlayServiceFile(PLAY_SERVICE,SERVICE_ALARM_SELECT_MELODY); while(1){ ret_code = PlayAlarmFile(track); if(ret_code == 0){ time_out = WaitKey(PREV,NEXT,PLAY,EXIT); if(time_out == false){ SystemReload(); } PlayBeep(); if(KEY == EXIT){ CLEAR_KEYPAD(); break; } // save alarm melody if(KEY == PLAY){ CLEAR_KEYPAD(); Alarm[number_alarm].track = track; } // next alarm melody if(KEY == PREV){ CLEAR_KEYPAD(); track++; if(track >= MAX_ALARM_TRACK){ track = 0; } } // prev alarm melody if(KEY == NEXT){ CLEAR_KEYPAD(); if(track == 0){ track = (unsigned char)(MAX_ALARM_TRACK - 1); }else{ track--; } } }else{ // exit if(ret_code == 1){ break; } switch(ret_code){ case 2 : // save Alarm[number_alarm].track = track; break; case 3 : // next track++; if(track >= MAX_ALARM_TRACK){ track = 0; } break; case 4 : // prev if(track == 0){ track = (unsigned char)(MAX_ALARM_TRACK - 1); }else{ track--; } break; } } } return; }