Changeset - r24555:2c6c7ab83748
[Not reviewed]
master
0 3 0
Patric Stout - 3 years ago 2021-01-03 10:10:56
truebrain@openttd.org
Add: always set PERSONAL_DIR "/content_download" in search path (#8481)

This means that if you start OpenTTD with "-c" to indicate another
location to store files, it can still read the content you already
downloaded from your PERSONAL_DIR. This folder is, however,
read-only.

This is useful for situations where you downloaded OpenGFX via
the content-service, but want to run the regression or want to
run with a clean configuration. With this change, you no longer
need to download OpenGFX again.
3 files changed with 20 insertions and 3 deletions:
0 comments (0 inline, 0 general)
src/fileio.cpp
Show inline comments
 
@@ -1009,17 +1009,24 @@ void DetermineBasePaths(const char *exe)
 
		tmp += PATHSEP;
 
		tmp += PERSONAL_DIR[0] == '.' ? &PERSONAL_DIR[1] : PERSONAL_DIR;
 
		AppendPathSeparator(tmp);
 
		_searchpaths[SP_PERSONAL_DIR_XDG] = tmp;
 

	
 
		_searchpaths[SP_PERSONAL_DIR_XDG] = tmp;
 
		tmp += "content_download";
 
		AppendPathSeparator(tmp);
 
		_searchpaths[SP_AUTODOWNLOAD_PERSONAL_DIR_XDG] = tmp;
 
	} else if (!homedir.empty()) {
 
		tmp = homedir;
 
		tmp += PATHSEP ".local" PATHSEP "share" PATHSEP;
 
		tmp += PERSONAL_DIR[0] == '.' ? &PERSONAL_DIR[1] : PERSONAL_DIR;
 
		AppendPathSeparator(tmp);
 
		_searchpaths[SP_PERSONAL_DIR_XDG] = tmp;
 

	
 
		_searchpaths[SP_PERSONAL_DIR_XDG] = tmp;
 
		tmp += "content_download";
 
		AppendPathSeparator(tmp);
 
		_searchpaths[SP_AUTODOWNLOAD_PERSONAL_DIR_XDG] = tmp;
 
	} else {
 
		_searchpaths[SP_PERSONAL_DIR_XDG].clear();
 
		_searchpaths[SP_AUTODOWNLOAD_PERSONAL_DIR_XDG].clear();
 
	}
 
#endif
 

	
 
@@ -1031,10 +1038,14 @@ void DetermineBasePaths(const char *exe)
 
		tmp += PATHSEP;
 
		tmp += PERSONAL_DIR;
 
		AppendPathSeparator(tmp);
 
		_searchpaths[SP_PERSONAL_DIR] = tmp;
 

	
 
		_searchpaths[SP_PERSONAL_DIR] = tmp;
 
		tmp += "content_download";
 
		AppendPathSeparator(tmp);
 
		_searchpaths[SP_AUTODOWNLOAD_PERSONAL_DIR] = tmp;
 
	} else {
 
		_searchpaths[SP_PERSONAL_DIR].clear();
 
		_searchpaths[SP_AUTODOWNLOAD_PERSONAL_DIR].clear();
 
	}
 
#endif
 

	
src/fileio_type.h
Show inline comments
 
@@ -140,6 +140,8 @@ enum Searchpath : unsigned {
 
	SP_INSTALLATION_DIR,           ///< Search in the installation directory
 
	SP_APPLICATION_BUNDLE_DIR,     ///< Search within the application bundle
 
	SP_AUTODOWNLOAD_DIR,           ///< Search within the autodownload directory
 
	SP_AUTODOWNLOAD_PERSONAL_DIR,  ///< Search within the autodownload directory located in the personal directory
 
	SP_AUTODOWNLOAD_PERSONAL_DIR_XDG, ///< Search within the autodownload directory located in the personal directory (XDG variant)
 
	NUM_SEARCHPATHS
 
};
 

	
src/os/windows/win32.cpp
Show inline comments
 
@@ -466,6 +466,10 @@ void DetermineBasePaths(const char *exe)
 
		tmp += PERSONAL_DIR;
 
		AppendPathSeparator(tmp);
 
		_searchpaths[SP_PERSONAL_DIR] = tmp;
 

	
 
		tmp += "content_download";
 
		AppendPathSeparator(tmp);
 
		_searchpaths[SP_AUTODOWNLOAD_PERSONAL_DIR] = tmp;
 
	} else {
 
		_searchpaths[SP_PERSONAL_DIR].clear();
 
	}
0 comments (0 inline, 0 general)