WaypointFileType DetermineWaypointFileType(const TCHAR *path) { // If WinPilot waypoint file -> save type and return true if (MatchesExtension(path, _T(".dat")) || MatchesExtension(path, _T(".xcw"))) return WaypointFileType::WINPILOT; // If SeeYou waypoint file -> save type and return true if (MatchesExtension(path, _T(".cup"))) return WaypointFileType::SEEYOU; // If Zander waypoint file -> save type and return true if (MatchesExtension(path, _T(".wpz"))) return WaypointFileType::ZANDER; // If FS waypoint file -> save type and return true if (MatchesExtension(path, _T(".wpt"))) { std::unique_ptr<TLineReader> reader(OpenTextFile(path)); if (reader && WaypointReaderFS::VerifyFormat(*reader)) return WaypointFileType::FS; reader.reset(OpenTextFile(path)); if (reader && WaypointReaderOzi::VerifyFormat(*reader)) return WaypointFileType::OZI_EXPLORER; reader.reset(OpenTextFile(path)); if (reader && WaypointReaderCompeGPS::VerifyFormat(*reader)) return WaypointFileType::COMPE_GPS; } return WaypointFileType::UNKNOWN; }
bool WaypointReaderBase::Parse(Waypoints &way_points, OperationEnvironment &operation) { // If no file loaded yet -> return false if (file[0] == 0) return false; std::unique_ptr<TLineReader> reader(OpenTextFile(file, ConvertLineReader::AUTO)); if (!reader) return false; Parse(way_points, *reader, operation); return true; }
bool _HYConsoleWindow::_ProcessMenuSelection (long msel) { switch (msel) { case HY_WINDOW_MENU_ID_FILE+1: SaveConsole (); return true; case 14: _DoPrint (); return true; case 16: ((_HYTextBox*)GetObject(0))->_DoUndo(true); return true; case 17: ((_HYTextBox*)GetObject(0))->_DoCut(true); return true; case 18: ((_HYTextBox*)GetObject(0))->_DoCopy(true); return true; case HY_WINDOW_MENU_ID_EDIT+5: ((_HYTextBox*)GetObject(0))->_DoSelectAll(true); return true; case 21: SetStatusLine ("Canceling"); terminateExecution = true; return true; case 22: { GtkWidget * suspendItem = gtk_item_factory_get_widget_by_action(menu_items,22); if (!isSuspended) { isSuspended = true; SetStatusLine (empty,empty,empty,-1,HY_SL_SUSPEND); gtk_label_set_text (GTK_LABEL (gtk_bin_get_child(GTK_BIN(suspendItem))), "Resume"); updateTimer = false; while (isSuspended) { gtk_main_iteration_do(true); } } else { isSuspended = false; SetStatusLine (empty,empty,empty,-1,HY_SL_RESUME); gtk_label_set_text (GTK_LABEL (gtk_bin_get_child(GTK_BIN(suspendItem))), "Suspend execution"); timerStart += clock()-lastTimer; updateTimer = true; } return true; } case 23: ShowMessagesLog(); return true; case 24: RunStandardAnalyses(); return true; case 25: displayAbout(false); return true; case HY_WINDOW_MENU_ID_EDIT+4: ((_HYTextBox*)GetObject(0))->_DoClear (true,true); return true; case 27: HandlePreferences (globalPreferencesList,"HYPHY Preferences"); return true; case 29: //WinExec ("hh HYPHY HELP.chm",SW_SHOWNORMAL); return true; case 30: if (OpenBatchFile (false)) { ExecuteBatchFile(); PopFilePath(); } return true; case 31: ((_HYTextBox*)GetObject(0))->_DoRedo(true); return true; case 15: postWindowCloseEvent (GetID()); gtk_main_quit (); return true; case 60: // expression calculator if (calculatorMode) { _HYTextBox *ib = (_HYTextBox*)hyphyConsoleWindow->GetObject(1); ib->SetText ("exit"); hyphyConsoleWindow->ProcessEvent (generateTextEditChangeEvent(ib->GetID(),2)); calculatorMode = false; //ib->SetText (empty); } else { calculatorMode = true; while(calculatorMode&&ExpressionCalculator()) {} calculatorMode = false; } return true; case 61: { // execute selection ExecuteSelection(); return true; } case 70: // New Tree NewTreeWindow(-1); return true; case 71: // New Model NewModel(nil); return true; case 72: // New Chart NewChartWindow(); return true; case 73: // New Genetic Code NewGeneticCodeTable(0); return true; case 74: // New Database NewDatabaseFile(0); return true; case 80: // Open Batch File if (OpenBatchFile()) { ExecuteBatchFile (); } return true; case 81: // Open Data File OpenDataFile(); return true; case 82: // Open Tree OpenTreeFile(); return true; case 83: // Open Text OpenTextFile(); return true; case 84: // Open Table OpenTable (); return true; case 85: // Open SQLite database OpenDatabaseFile (nil); return true; case HY_WINDOW_MENU_ID_FILE-2: ShowObjectInspector (); return true; default: { msel -= 1000; if (msel<availablePostProcessors.lLength) { ExecuteAPostProcessor (*(_String*)(*(_List*)availablePostProcessors(msel))(1)); return 0; } msel-=1000; if (msel<(long)recentPaths.lLength) { if (msel == -1) { for (long mi=0; mi<recentFiles.lLength; mi++) { GtkWidget * recFile = gtk_item_factory_get_widget_by_action(hyphyConsoleWindow->menu_items,2000+mi); if (recFile) { gtk_item_factory_delete_item(hyphyConsoleWindow->menu_items,gtk_item_factory_path_from_widget(recFile)); } } recentPaths.Clear(); recentFiles.Clear(); } else { if (argFileName) { *argFileName = *(_String*)recentPaths(msel); } else { argFileName = new _String (*(_String*)recentPaths(msel)); } if (OpenBatchFile(false)) { ExecuteBatchFile (); } } return true; } return true; } } return _HYTWindow::_ProcessMenuSelection(msel); }
/* ./show_file [-s Size] [-f freetype_font_file] [-h HZK] <text_file> */ int main(int argc, char **argv) { int iError; unsigned int dwFontSize = 16; char acHzkFile[128]; char acFreetypeFile[128]; char acTextFile[128]; char acDisplay[128]; char cOpr; int bList = 0; acHzkFile[0] = '\0'; acFreetypeFile[0] = '\0'; acTextFile[0] = '\0'; strcpy(acDisplay, "fb"); while ((iError = getopt(argc, argv, "ls:f:h:d:")) != -1) { /* СЎПо : ./show_file -l */ switch(iError) { case 'l': { bList = 1; break; } case 's': { dwFontSize = strtoul(optarg, NULL, 0); break; } case 'f': { strncpy(acFreetypeFile, optarg, 128); acFreetypeFile[127] = '\0'; break; } case 'h': { strncpy(acHzkFile, optarg, 128); acHzkFile[127] = '\0'; break; } case 'd': { strncpy(acDisplay, optarg, 128); acDisplay[127] = '\0'; break; } default: { printf("Usage: %s [-s Size] [-d display] [-f font_file] [-h HZK] <text_file>\n", argv[0]); printf("Usage: %s -l\n", argv[0]); return -1; break; } } } if (!bList && (optind >= argc)) { printf("Usage: %s [-s Size] [-d display] [-f font_file] [-h HZK] <text_file>\n", argv[0]); printf("Usage: %s -l\n", argv[0]); return -1; } iError = DrawInit(); if (iError) { printf("DrawInit error!\n"); return -1; } if (bList) { printf("supported display:\n"); ShowDispOpr(); printf("supported font:\n"); ShowFontOpr(); printf("supported encoding:\n"); ShowEncodingOpr(); return 0; } strncpy(acTextFile, argv[optind], 128); acTextFile[127] = '\0'; iError = OpenTextFile(acTextFile); if (iError) { printf("OpenTextFile error!\n"); return -1; } iError = SetFontsDetail(acHzkFile, acFreetypeFile, dwFontSize); if (iError) { printf("SetFontsDetail error!\n"); return -1; } DBG_PRINTF("%s %s %d\n", __FILE__, __FUNCTION__, __LINE__); iError = SelectAndInitDisplay(acDisplay); if (iError) { printf("SelectAndInitDisplay error!\n"); return -1; } DBG_PRINTF("%s %s %d\n", __FILE__, __FUNCTION__, __LINE__); iError = ShowNextPage(); DBG_PRINTF("%s %s %d\n", __FILE__, __FUNCTION__, __LINE__); if (iError) { printf("Error to show first page\n"); return -1; } while (1) { printf("Enter 'n' to show next page, 'u' to show previous page, 'q' to exit: "); do { cOpr = getchar(); } while ((cOpr != 'n') && (cOpr != 'u') && (cOpr != 'q')); if (cOpr == 'n') { ShowNextPage(); } else if (cOpr == 'u') { ShowPrePage(); } else { ExitDisplay(); return 0; } } return 0; }
/* ./show_file [-s Size] [-f freetype_font_file] [-h HZK] <text_file> */ int main(int argc, char **argv) { int iError; unsigned int dwFontSize = 16; char acHzkFile[128]; char acFreetypeFile[128]; char acTextFile[128]; char cOpr; acHzkFile[0] = '\0'; acFreetypeFile[0] = '\0'; acTextFile[0] = '\0'; while ((iError = getopt(argc, argv, "s:f:h:")) != -1) { /*СЎПо*/ switch(iError) { case 's': { dwFontSize = strtoul(optarg, NULL, 0); break; } case 'f': { strncpy(acFreetypeFile, optarg, 128); acFreetypeFile[127] = '\0'; break; } case 'h': { strncpy(acHzkFile, optarg, 128); acHzkFile[127] = '\0'; break; } default: { printf("Usage: %s [-s Size] [-f font_file] [-h HZK] <text_file>\n", argv[0]); return -1; break; } } } if (optind >= argc) { printf("Usage: %s [-s Size] [-f font_file] [-h HZK] <text_file>\n", argv[0]); return -1; } strncpy(acTextFile, argv[optind], 128); acTextFile[127] = '\0'; iError = DisplayInit(); if (iError) { DBG_PRINTF("DisplayInit error!\n"); return -1; } iError = FontsInit(); if (iError) { DBG_PRINTF("FontsInit error!\n"); return -1; } iError = EncodingInit(); if (iError) { DBG_PRINTF("EncodingInit error!\n"); return -1; } iError = OpenTextFile(acTextFile); if (iError) { DBG_PRINTF("OpenTextFile error!\n"); return -1; } iError = SetTextDetail(acHzkFile, acFreetypeFile, dwFontSize); if (iError) { DBG_PRINTF("SetTextDetail error!\n"); return -1; } iError = SelectAndInitDisplay("fb"); if (iError) { DBG_PRINTF("SelectAndInitDisplay error!\n"); return -1; } iError = ShowNextPage(); if (iError) { DBG_PRINTF("Error to show first page\n"); return -1; } while (1) { printf("Enter 'n' to show next page, 'u' to show previous page, 'q' to exit: "); do { cOpr = getchar(); } while ((cOpr != 'n') && (cOpr != 'u') && (cOpr != 'q')); if (cOpr == 'n') { ShowNextPage(); } else if (cOpr == 'u') { ShowPrePage(); } else { return 0; } } return 0; }
char *HookText(char *input, int id) { if(parsed == 0) ParseArchive(); #if LOGCHOICES == 1 if(input[0] == '\x12') { int len = strlen(input); unsigned int hash = GenHash(input, HASHKEY, len); FILE *filelog = NULL; CreateDirectory("output", NULL); filelog = fopen("output\\log.dat", "ab"); fseek(filelog, 0, SEEK_END); fwrite(&hash,1, 4, filelog); fwrite(&len,1, 4, filelog); fwrite(input,1, len, filelog); fclose(filelog); } #endif #if DUMPMEM == 1 if(dump != NULL) { fclose(dump); fclose(scrlog); dump = NULL; } #endif #if SKIPTEXT == 1 if(input[0] != '\x12') { return "\x05\x00"; } #endif if(entrycount == 0) { return input; } else { int i = 0, found = 0, len = strlen(input); for(i = 0; i < entrycount; i++) { /* { FILE *txtlog = fopen("txtdbg2.txt","a+"); fprintf(txtlog,"file[%08x] id[%08x] buffer[%08x] buffer2[%08x] %s\n",entry[i].context,entry[i].id,entry[i].buffer,entry[i].buffer2,entry[i].str); fclose(txtlog); } */ if(((id & 0x00ffffff) == entry[i].id && ((entry[i].buffer == 0 && entry[i].context == readFile) || (entry[i].buffer != 0 && entry[i].buffer == input))) || (entry[i].id == GenHash(input, HASHKEY, len))) { // proof of concept code for loading a notepad at a certain part of a script // replace the context with the file and the id with the id where you want the txt to load at #if GAME == MUVLUVALT OpenTextFile(0x55c43c48, 0x000023b4, "Coup d'etat Arc Ending Speech.txt"); OpenTextFile(0x5f4cf75e, 0x00002008, "Early Sadogashima Arc Congratulatory Letter.txt"); OpenTextFile(0x5fd145f8, 0x0000062d, "Yuuko's Voice-only Line Before Operation Cherry Blossom.txt"); #endif entry[i].buffer = input; found = 1; break; } } if(found == 0) { #if DEBUGIDS { FILE *txtlog = fopen("txtdbg.txt","a+"); fprintf(txtlog,"file[%08x] id[%08x] buffer[%08x] %s\n",readFile,id&0x00ffffff,(int)input,input); fclose(txtlog); } #endif return input; } else { return entry[i].str; } found = 0; } return input; }
/* ./show_file [-s Size] [-f freetype_font_file] [-h HZK] <text_file> */ int main(int argc, char **argv) { int iError; unsigned int dwFontSize = 16; char acHzkFile[128]; char acFreetypeFile[128]; char acTextFile[128]; char acDisplay[128]; char cOpr; int bList = 0; T_InputEvent tInputEvent; acHzkFile[0] = '\0'; acFreetypeFile[0] = '\0'; acTextFile[0] = '\0'; strcpy(acDisplay, "fb"); while ((iError = getopt(argc, argv, "ls:f:h:d:")) != -1) { switch(iError) { case 'l': { bList = 1; break; } case 's': { dwFontSize = strtoul(optarg, NULL, 0); break; } case 'f': { strncpy(acFreetypeFile, optarg, 128); acFreetypeFile[127] = '\0'; break; } case 'h': { strncpy(acHzkFile, optarg, 128); acHzkFile[127] = '\0'; break; } case 'd': { strncpy(acDisplay, optarg, 128); acDisplay[127] = '\0'; break; } default: { printf("Usage: %s [-s Size] [-d display] [-f font_file] [-h HZK] <text_file>\n", argv[0]); printf("Usage: %s -l\n", argv[0]); return -1; break; } } } if (!bList && (optind >= argc)) { printf("Usage: %s [-s Size] [-d display] [-f font_file] [-h HZK] <text_file>\n", argv[0]); printf("Usage: %s -l\n", argv[0]); return -1; } iError = DisplayInit(); if (iError) { printf("DisplayInit error!\n"); return -1; } iError = FontsInit(); if (iError) { printf("FontsInit error!\n"); return -1; } iError = EncodingInit(); if (iError) { printf("EncodingInit error!\n"); return -1; } iError = InputInit(); if (iError) { printf("InputInit error!\n"); return -1; } if (bList) { printf("supported display:\n"); ShowDispOpr(); printf("supported font:\n"); ShowFontOpr(); printf("supported encoding:\n"); ShowEncodingOpr(); printf("supported input:\n"); ShowInputOpr(); return 0; } strncpy(acTextFile, argv[optind], 128); acTextFile[127] = '\0'; iError = OpenTextFile(acTextFile); if (iError) { printf("OpenTextFile error!\n"); return -1; } iError = SetTextDetail(acHzkFile, acFreetypeFile, dwFontSize); if (iError) { printf("SetTextDetail error!\n"); return -1; } DBG_PRINTF("%s %s %d\n", __FILE__, __FUNCTION__, __LINE__); iError = SelectAndInitDisplay(acDisplay); if (iError) { printf("SelectAndInitDisplay error!\n"); return -1; } iError = AllInputDevicesInit(); if (iError) { DBG_PRINTF("Error AllInputDevicesInit\n"); return -1; } DBG_PRINTF("%s %s %d\n", __FILE__, __FUNCTION__, __LINE__); iError = ShowNextPage(); DBG_PRINTF("%s %s %d\n", __FILE__, __FUNCTION__, __LINE__); if (iError) { printf("Error to show first page\n"); return -1; } printf("Enter 'n' to show next page, 'u' to show previous page, 'q' to exit: "); while (1) { if (0 == GetInputEvent(&tInputEvent)) { if (tInputEvent.iVal == INPUT_VALUE_DOWN) { ShowNextPage(); } else if (tInputEvent.iVal == INPUT_VALUE_UP) { ShowPrePage(); } else if (tInputEvent.iVal == INPUT_VALUE_EXIT) { return 0; } } } return 0; }
ArchiveTextFile* openTextFile(const char* filename) { return OpenTextFile(filename); }