Changeset - r18373:0f178296b341
[Not reviewed]
master
0 6 0
rubidium - 13 years ago 2011-11-14 21:34:27
rubidium@openttd.org
(svn r23219) -Change: different directories for basesets and newgrfs. So data to baseset or newgrf, and gm to baseset
6 files changed with 31 insertions and 14 deletions:
0 comments (0 inline, 0 general)
src/base_media_base.h
Show inline comments
 
@@ -164,8 +164,9 @@ public:
 
	static uint FindSets()
 
	{
 
		BaseMedia<Tbase_set> fs;
 
		/* Searching in tars is only done in the sound and graphics base sets. */
 
		return fs.Scan(GetExtension(), Tbase_set::SEARCH_IN_TARS ? BASESET_DIR : GM_DIR, Tbase_set::SEARCH_IN_TARS);
 
		/* Searching in tars is only done in the old "data" directories basesets. */
 
		uint num = fs.Scan(GetExtension(), Tbase_set::SEARCH_IN_TARS ? OLD_DATA_DIR : OLD_GM_DIR, Tbase_set::SEARCH_IN_TARS);
 
		return num + fs.Scan(GetExtension(), BASESET_DIR, Tbase_set::SEARCH_IN_TARS);
 
	}
 

	
 
	static bool SetSet(const char *name);
src/base_media_func.h
Show inline comments
 
@@ -131,7 +131,7 @@ bool BaseSet<T, Tnum_files, Tsearch_in_t
 
			file->missing_warning = strdup(item->value);
 
		}
 

	
 
		switch (file->CheckMD5(Tsearch_in_tars ? BASESET_DIR : GM_DIR)) {
 
		switch (file->CheckMD5(BASESET_DIR)) {
 
			case MD5File::CR_MATCH:
 
				this->valid_files++;
 
				/* FALL THROUGH */
 
@@ -155,7 +155,7 @@ bool BaseMedia<Tbase_set>::AddFile(const
 

	
 
	Tbase_set *set = new Tbase_set();
 
	IniFile *ini = new IniFile();
 
	ini->LoadFromDisk(filename, Tbase_set::SEARCH_IN_TARS ? BASESET_DIR : GM_DIR);
 
	ini->LoadFromDisk(filename, BASESET_DIR);
 

	
 
	char *path = strdup(filename + basepath_length);
 
	char *psep = strrchr(path, PATHSEPCHAR);
src/fileio.cpp
Show inline comments
 
@@ -276,7 +276,8 @@ static const char * const _subdirs[] = {
 
	"scenario" PATHSEP "heightmap" PATHSEP,
 
	"gm" PATHSEP,
 
	"data" PATHSEP,
 
	"data" PATHSEP,
 
	"baseset" PATHSEP,
 
	"newgrf" PATHSEP,
 
	"lang" PATHSEP,
 
	"ai" PATHSEP,
 
	"ai" PATHSEP "library" PATHSEP,
 
@@ -501,7 +502,17 @@ FILE *FioFOpenFile(const char *filename,
 
	/* Sometimes a full path is given. To support
 
	 * the 'subdirectory' must be 'removed'. */
 
	if (f == NULL && subdir != NO_DIRECTORY) {
 
		f = FioFOpenFile(filename, mode, NO_DIRECTORY, filesize);
 
		switch (subdir) {
 
			case BASESET_DIR:
 
				f = FioFOpenFile(filename, mode, OLD_GM_DIR, filesize);
 
			case NEWGRF_DIR:
 
				f = FioFOpenFile(filename, mode, OLD_DATA_DIR, filesize);
 
				break;
 

	
 
			default:
 
				f = FioFOpenFile(filename, mode, NO_DIRECTORY, filesize);
 
				break;
 
		}
 
	}
 

	
 
	return f;
 
@@ -642,7 +653,9 @@ uint TarScanner::DoScan(Subdirectory sd)
 
{
 
	_tar_filelist[sd].clear();
 
	_tar_list[sd].clear();
 
	return this->Scan(".tar", sd, false);
 
	uint num = this->Scan(".tar", sd, false);
 
	if (sd == BASESET_DIR || sd == NEWGRF_DIR) num += this->Scan(".tar", OLD_DATA_DIR, false);
 
	return num;
 
}
 

	
 
/* static */ uint TarScanner::DoScan(TarScanner::Mode mode)
 
@@ -650,8 +663,10 @@ uint TarScanner::DoScan(Subdirectory sd)
 
	DEBUG(misc, 1, "Scanning for tars");
 
	TarScanner fs;
 
	uint num = 0;
 
	if (mode & (TarScanner::BASESET | TarScanner::NEWGRF)) {
 
	if (mode & TarScanner::BASESET) {
 
		num += fs.DoScan(BASESET_DIR);
 
	}
 
	if (mode & TarScanner::NEWGRF) {
 
		num += fs.DoScan(NEWGRF_DIR);
 
	}
 
	if (mode & TarScanner::AI) {
 
@@ -1181,7 +1196,7 @@ void DeterminePaths(const char *exe)
 
	FioCreateDirectory(_searchpaths[SP_AUTODOWNLOAD_DIR]);
 

	
 
	/* Create the directory for each of the types of content */
 
	const Subdirectory dirs[] = { SCENARIO_DIR, HEIGHTMAP_DIR, BASESET_DIR, NEWGRF_DIR, AI_DIR, AI_LIBRARY_DIR, GM_DIR };
 
	const Subdirectory dirs[] = { SCENARIO_DIR, HEIGHTMAP_DIR, BASESET_DIR, NEWGRF_DIR, AI_DIR, AI_LIBRARY_DIR };
 
	for (uint i = 0; i < lengthof(dirs); i++) {
 
		char *tmp = str_fmt("%s%s", _searchpaths[SP_AUTODOWNLOAD_DIR], _subdirs[dirs[i]]);
 
		FioCreateDirectory(tmp);
src/fileio_type.h
Show inline comments
 
@@ -23,7 +23,8 @@ enum Subdirectory {
 
	AUTOSAVE_DIR,  ///< Subdirectory of save for autosaves
 
	SCENARIO_DIR,  ///< Base directory for all scenarios
 
	HEIGHTMAP_DIR, ///< Subdirectory of scenario for heightmaps
 
	GM_DIR,        ///< Subdirectory for all music
 
	OLD_GM_DIR,    ///< Old subdirectory for the music
 
	OLD_DATA_DIR,  ///< Old subdirectory for the data.
 
	BASESET_DIR,   ///< Subdirectory for all base data (base sets, intro game)
 
	NEWGRF_DIR,    ///< Subdirectory for all NewGRFs
 
	LANG_DIR,      ///< Subdirectory for all translation files
src/music_gui.cpp
Show inline comments
 
@@ -178,7 +178,7 @@ static void MusicVolumeChanged(byte new_
 
static void DoPlaySong()
 
{
 
	char filename[MAX_PATH];
 
	FioFindFullPath(filename, lengthof(filename), GM_DIR,
 
	FioFindFullPath(filename, lengthof(filename), BASESET_DIR,
 
			BaseMusic::GetUsedSet()->files[_music_wnd_cursong - 1].filename);
 
	_music_driver->PlaySong(filename);
 
	SetWindowDirty(WC_MUSIC_WINDOW, 0);
 
@@ -200,7 +200,7 @@ static void SelectSongToPlay()
 
		const char *filename = BaseMusic::GetUsedSet()->files[_playlists[_settings_client.music.playlist][i] - 1].filename;
 
		/* We are now checking for the existence of that file prior
 
		 * to add it to the list of available songs */
 
		if (!StrEmpty(filename) && FioCheckFileExists(filename, GM_DIR)) {
 
		if (!StrEmpty(filename) && FioCheckFileExists(filename, BASESET_DIR)) {
 
			_cur_playlist[j] = _playlists[_settings_client.music.playlist][i];
 
			j++;
 
		}
src/network/network_content.cpp
Show inline comments
 
@@ -376,7 +376,7 @@ static char *GetFullFilename(const Conte
 
	switch (ci->type) {
 
		default: return NULL;
 
		case CONTENT_TYPE_BASE_GRAPHICS: dir = BASESET_DIR;    break;
 
		case CONTENT_TYPE_BASE_MUSIC:    dir = GM_DIR;         break;
 
		case CONTENT_TYPE_BASE_MUSIC:    dir = BASESET_DIR;    break;
 
		case CONTENT_TYPE_BASE_SOUNDS:   dir = BASESET_DIR;    break;
 
		case CONTENT_TYPE_NEWGRF:        dir = NEWGRF_DIR;     break;
 
		case CONTENT_TYPE_AI:            dir = AI_DIR;         break;
 
@@ -535,7 +535,7 @@ void ClientNetworkContentSocketHandler::
 

	
 
		if (this->curInfo->type == CONTENT_TYPE_BASE_MUSIC) {
 
			/* Music can't be in a tar. So extract the tar! */
 
			ExtractTar(GetFullFilename(this->curInfo, false), GM_DIR);
 
			ExtractTar(GetFullFilename(this->curInfo, false), BASESET_DIR);
 
			unlink(GetFullFilename(this->curInfo, false));
 
		}
 

	
0 comments (0 inline, 0 general)