From 959c94fcdf32b98d57ed113afffabde8c54a30b4 Mon Sep 17 00:00:00 2001 From: owomomo Date: Thu, 23 May 2019 18:59:30 +0800 Subject: [PATCH] Attempt to fix Issue #52 --- src/driver.h | 4 ++-- src/drivers/sdl/sdl.cpp | 2 ++ src/drivers/win/archive.cpp | 8 ++++---- src/drivers/win/archive.h | 4 ++-- src/drivers/win/ramwatch.cpp | 1 - src/fceu.cpp | 2 +- src/file.cpp | 2 +- src/file.h | 2 +- 8 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/driver.h b/src/driver.h index 29411760..372d9944 100644 --- a/src/driver.h +++ b/src/driver.h @@ -14,9 +14,9 @@ inline FILE *FCEUD_UTF8fopen(const std::string &n, const char *mode) { return FC EMUFILE_FILE* FCEUD_UTF8_fstream(const char *n, const char *m); inline EMUFILE_FILE* FCEUD_UTF8_fstream(const std::string &n, const char *m) { return FCEUD_UTF8_fstream(n.c_str(),m); } FCEUFILE* FCEUD_OpenArchiveIndex(ArchiveScanRecord& asr, std::string& fname, int innerIndex); -FCEUFILE* FCEUD_OpenArchiveIndex(ArchiveScanRecord& asr, std::string& fname, int innerIndex, bool* userCancel); +FCEUFILE* FCEUD_OpenArchiveIndex(ArchiveScanRecord& asr, std::string& fname, int innerIndex, int* userCancel); FCEUFILE* FCEUD_OpenArchive(ArchiveScanRecord& asr, std::string& fname, std::string* innerFilename); -FCEUFILE* FCEUD_OpenArchive(ArchiveScanRecord& asr, std::string& fname, std::string* innerFilename, bool* userCancel); +FCEUFILE* FCEUD_OpenArchive(ArchiveScanRecord& asr, std::string& fname, std::string* innerFilename, int* userCancel); ArchiveScanRecord FCEUD_ScanArchive(std::string fname); //mbg 7/23/06 diff --git a/src/drivers/sdl/sdl.cpp b/src/drivers/sdl/sdl.cpp index 7a1aa7ee..a4f7c5d8 100644 --- a/src/drivers/sdl/sdl.cpp +++ b/src/drivers/sdl/sdl.cpp @@ -1042,5 +1042,7 @@ void FCEUD_TurboOff (void) { NoWaiting&=~1; } void FCEUD_TurboToggle(void) { NoWaiting^= 1; } FCEUFILE* FCEUD_OpenArchiveIndex(ArchiveScanRecord& asr, std::string &fname, int innerIndex) { return 0; } FCEUFILE* FCEUD_OpenArchive(ArchiveScanRecord& asr, std::string& fname, std::string* innerFilename) { return 0; } +FCEUFILE* FCEUD_OpenArchiveIndex(ArchiveScanRecord& asr, std::string &fname, int innerIndex, int* userCancel) { return 0; } +FCEUFILE* FCEUD_OpenArchive(ArchiveScanRecord& asr, std::string& fname, std::string* innerFilename, int* userCancel) { return 0; } ArchiveScanRecord FCEUD_ScanArchive(std::string fname) { return ArchiveScanRecord(); } diff --git a/src/drivers/win/archive.cpp b/src/drivers/win/archive.cpp index 0c9cea92..845acfbc 100644 --- a/src/drivers/win/archive.cpp +++ b/src/drivers/win/archive.cpp @@ -486,7 +486,7 @@ extern HWND hAppWnd; //TODO - factor out the filesize and name extraction code from below (it is already done once above) -static FCEUFILE* FCEUD_OpenArchive(ArchiveScanRecord& asr, std::string& fname, std::string* innerFilename, int innerIndex, bool* userCancel) +static FCEUFILE* FCEUD_OpenArchive(ArchiveScanRecord& asr, std::string& fname, std::string* innerFilename, int innerIndex, int* userCancel) { FCEUFILE* fp = 0; @@ -561,7 +561,7 @@ static FCEUFILE* FCEUD_OpenArchive(ArchiveScanRecord& asr, std::string& fname, s } else { if(userCancel) - *userCancel = true; + *userCancel = 1; }//if returned a file from the fileselector } //if we opened the 7z correctly @@ -576,7 +576,7 @@ static FCEUFILE* FCEUD_OpenArchive(ArchiveScanRecord& asr, std::string& fname, s return FCEUD_OpenArchive(asr, fname, innerFilename, innerIndex, NULL); } -FCEUFILE* FCEUD_OpenArchiveIndex(ArchiveScanRecord& asr, std::string& fname, int innerIndex, bool* userCancel) +FCEUFILE* FCEUD_OpenArchiveIndex(ArchiveScanRecord& asr, std::string& fname, int innerIndex, int* userCancel) { return FCEUD_OpenArchive(asr, fname, 0, innerIndex, userCancel); } @@ -586,7 +586,7 @@ FCEUFILE* FCEUD_OpenArchiveIndex(ArchiveScanRecord& asr, std::string& fname, int return FCEUD_OpenArchive(asr, fname, 0, innerIndex); } -FCEUFILE* FCEUD_OpenArchive(ArchiveScanRecord& asr, std::string& fname, std::string* innerFilename, bool* userCancel) +FCEUFILE* FCEUD_OpenArchive(ArchiveScanRecord& asr, std::string& fname, std::string* innerFilename, int* userCancel) { return FCEUD_OpenArchive(asr, fname, innerFilename, -1, userCancel); } diff --git a/src/drivers/win/archive.h b/src/drivers/win/archive.h index 619f075d..c49612bb 100644 --- a/src/drivers/win/archive.h +++ b/src/drivers/win/archive.h @@ -11,10 +11,10 @@ void initArchiveSystem(); //if you want to autopilot this, pass in an innerfilename to try and automatically load FCEUFILE* FCEUD_OpenArchive(ArchiveScanRecord& asr, std::string& fname, std::string* innerFilename); -FCEUFILE* FCEUD_OpenArchive(ArchiveScanRecord& asr, std::string& fname, std::string* innerFilename, bool* userCancel); +FCEUFILE* FCEUD_OpenArchive(ArchiveScanRecord& asr, std::string& fname, std::string* innerFilename, int* userCancel); FCEUFILE* FCEUD_OpenArchiveIndex(ArchiveScanRecord& asr, std::string& fname, int innerIndex); -FCEUFILE* FCEUD_OpenArchiveIndex(ArchiveScanRecord& asr, std::string& fname, int innerIndex, bool* userCancel); +FCEUFILE* FCEUD_OpenArchiveIndex(ArchiveScanRecord& asr, std::string& fname, int innerIndex, int* userCancel); //scans a file to see if it is an archive you can handle ArchiveScanRecord FCEUD_ScanArchive(std::string fname); diff --git a/src/drivers/win/ramwatch.cpp b/src/drivers/win/ramwatch.cpp index 306c6406..11769cf1 100644 --- a/src/drivers/win/ramwatch.cpp +++ b/src/drivers/win/ramwatch.cpp @@ -1,4 +1,3 @@ - #include #include "common.h" #include "main.h" diff --git a/src/fceu.cpp b/src/fceu.cpp index ff950c9b..48e4cf35 100644 --- a/src/fceu.cpp +++ b/src/fceu.cpp @@ -415,7 +415,7 @@ FCEUGI *FCEUI_LoadGameVirtual(const char *name, int OverwriteVidMode, bool silen // indicator for if the operaton was canceled by user // currently there's only one situation: // the user clicked cancel form the open from archive dialog - bool userCancel = false; + int userCancel = 0; fp = FCEU_fopen(name, 0, "rb", 0, -1, romextensions, &userCancel); if (!fp) diff --git a/src/file.cpp b/src/file.cpp index 04d943f2..a75ca968 100644 --- a/src/file.cpp +++ b/src/file.cpp @@ -256,7 +256,7 @@ zpfail: return 0; } -FCEUFILE * FCEU_fopen(const char *path, const char *ipsfn, char *mode, char *ext, int index, const char** extensions, bool* userCancel) +FCEUFILE * FCEU_fopen(const char *path, const char *ipsfn, char *mode, char *ext, int index, const char** extensions, int* userCancel) { FILE *ipsfile=0; FCEUFILE *fceufp=0; diff --git a/src/file.h b/src/file.h index 3b85639f..3afb9967 100644 --- a/src/file.h +++ b/src/file.h @@ -122,7 +122,7 @@ struct ArchiveScanRecord }; -FCEUFILE *FCEU_fopen(const char *path, const char *ipsfn, char *mode, char *ext, int index=-1, const char** extensions = 0, bool* userCancel = NULL); +FCEUFILE *FCEU_fopen(const char *path, const char *ipsfn, char *mode, char *ext, int index=-1, const char** extensions = 0, int* userCancel = 0); bool FCEU_isFileInArchive(const char *path); int FCEU_fclose(FCEUFILE*); uint64 FCEU_fread(void *ptr, size_t size, size_t nmemb, FCEUFILE*);