diff --git a/src/drivers/win/directories.cpp b/src/drivers/win/directories.cpp index d72cc462..352db5bb 100644 --- a/src/drivers/win/directories.cpp +++ b/src/drivers/win/directories.cpp @@ -78,8 +78,7 @@ void CloseDirectoriesDialog(HWND hwndDlg) } } - - initDirectories(); + //initDirectories(); //adelikat 03/02/09 - commenting out. This function fills in empty directory overrides, which is not what we want, we want the user to have the option of leaving them blank CreateDirs(); // Create needed directories. SetDirs(); // Set the directories in the core. diff --git a/src/drivers/win/main.cpp b/src/drivers/win/main.cpp index 95542580..cbac9abb 100644 --- a/src/drivers/win/main.cpp +++ b/src/drivers/win/main.cpp @@ -534,6 +534,8 @@ void do_exit() } //Puts the default directory names into the elements of the directory_names array that aren't already defined. +//adelikat: commenting out this function, we don't need this. This turns the idea of directory overrides to directory assignment +/* void initDirectories() { for (unsigned int i = 0; i < NUMBER_OF_DEFAULT_DIRECTORIES; i++) @@ -558,6 +560,7 @@ void initDirectories() strcpy(directory_names[NUMBER_OF_DIRECTORIES - 1], BaseDirectory.c_str()); } } +*/ #include "x6502.h" int main(int argc,char *argv[]) { @@ -596,11 +599,13 @@ int main(int argc,char *argv[]) if (ConfigToLoad) cfgFile.assign(ConfigToLoad); + //initDirectories(); + // Load the config information sprintf(TempArray,"%s\\%s",BaseDirectory.c_str(),cfgFile.c_str()); LoadConfig(TempArray); - initDirectories(); + //Bleh, need to find a better place for this. { diff --git a/src/drivers/win/main.h b/src/drivers/win/main.h index 5d4801a1..3eca8d9d 100644 --- a/src/drivers/win/main.h +++ b/src/drivers/win/main.h @@ -118,6 +118,6 @@ void DoPriority(); void RemoveDirs(); void CreateDirs(); void SetDirs(); -void initDirectories(); +//void initDirectories(); //adelikat 03/02/09 - commenting out reference to a directory that I commented out #endif diff --git a/src/drivers/win/window.cpp b/src/drivers/win/window.cpp index f8f25ad0..d5be47a1 100644 --- a/src/drivers/win/window.cpp +++ b/src/drivers/win/window.cpp @@ -865,9 +865,13 @@ void LoadNewGamey(HWND hParent, const char *initialdir) ofn.lpstrFile=nameo; ofn.nMaxFile=256; ofn.Flags=OFN_EXPLORER|OFN_FILEMUSTEXIST|OFN_HIDEREADONLY; //OFN_EXPLORER|OFN_ENABLETEMPLATE|OFN_ENABLEHOOK; - std::string stdinitdir =FCEU_GetPath(FCEUMKF_ROMS); - ofn.lpstrInitialDir = initialdir ? initialdir : stdinitdir.c_str(); - + string stdinitdir =FCEU_GetPath(FCEUMKF_ROMS); + + if (initialdir) //adelikat: If a directory is specified in the function parameter, it should take priority + ofn.lpstrInitialDir = initialdir; + else //adelikat: Else just use the override, if no override it will default to 0 - last directory used. + ofn.lpstrInitialDir = stdinitdir.c_str(); + // Show the Open File dialog if(GetOpenFileName(&ofn)) { @@ -1913,7 +1917,7 @@ void FCEUD_AviRecordTo(void) std::string aviDirectory = FCEU_GetPath(21); //21 = FCEUMKF_AVI if (aviDirectory.find_last_of("\\") != (aviDirectory.size()-1)) - aviDirectory.append("\\"); //if directory override has no / then add one + aviDirectory.append("\\"); //if directory override has no \ then add one //if we are playing a movie, construct the filename from the current movie. if(FCEUMOV_Mode(MOVIEMODE_PLAY|MOVIEMODE_RECORD)) diff --git a/src/file.cpp b/src/file.cpp index 7e194054..0fbd6272 100644 --- a/src/file.cpp +++ b/src/file.cpp @@ -505,7 +505,7 @@ void FCEUI_SetDirOverride(int which, char *n) } #endif -std::string FCEU_GetPath(int type) +std::string FCEU_GetPath(int type) { char ret[FILENAME_MAX]; switch(type) @@ -526,8 +526,10 @@ std::string FCEU_GetPath(int type) if(odirs[FCEUIOD_MEMW]) return (odirs[FCEUIOD_MEMW]); else - return BaseDirectory + PSS + "tools"; + return ""; //adelikat: 03/02/09 - return null so it defaults to last directory used + //return BaseDirectory + PSS + "tools"; break; + //adelikat: TODO: this no longer exist and could be removed (but that would require changing a lot of other directory arrays case FCEUMKF_BBOT: if(odirs[FCEUIOD_BBOT]) return (odirs[FCEUIOD_BBOT]); @@ -538,7 +540,7 @@ std::string FCEU_GetPath(int type) if(odirs[FCEUIOD_ROMS]) return (odirs[FCEUIOD_ROMS]); else - return BaseDirectory; + return ""; //adelikat: removing base directory return, should return null it goes to last used directory break; case FCEUMKF_INPUT: if(odirs[FCEUIOD_INPUT]) @@ -548,7 +550,8 @@ std::string FCEU_GetPath(int type) break; case FCEUMKF_LUA: if(odirs[FCEUIOD_LUA]) - return (odirs[FCEUIOD_LUA]); + return ""; //adelikat: 03/02/09 - return null so it defaults to last directory used + //return (odirs[FCEUIOD_LUA]); else return BaseDirectory + PSS + "tools"; break; @@ -556,7 +559,8 @@ std::string FCEU_GetPath(int type) if(odirs[FCEUIOD_AVI]) return (odirs[FCEUIOD_AVI]); else - return BaseDirectory + PSS + "tools"; + return ""; //adelikat - 03/02/09 - if no override, should return null and allow the last directory to be used intead + //return BaseDirectory + PSS + "tools"; break; }