Changeset - r22912:55c82c991a10
[Not reviewed]
master
0 3 0
Niels Martin Hansen - 6 years ago 2018-06-07 19:34:24
nielsm@indvikleren.dk
Fix: Don't complain if CAT music files are missing entirely

Just complain if an index into a CAT file that exists is invalid.
3 files changed with 7 insertions and 3 deletions:
0 comments (0 inline, 0 general)
src/base_media_base.h
Show inline comments
 
@@ -26,6 +26,7 @@ struct ContentInfo;
 
struct MD5File {
 
	/** The result of a checksum check */
 
	enum ChecksumResult {
 
		CR_UNKNOWN,  ///< The file has not been checked yet
 
		CR_MATCH,    ///< The file did exist and the md5 checksum did match
 
		CR_MISMATCH, ///< The file did exist, just the md5 checksum did not match
 
		CR_NO_FILE,  ///< The file did not exist
 
@@ -34,6 +35,7 @@ struct MD5File {
 
	const char *filename;        ///< filename
 
	uint8 hash[16];              ///< md5 sum of the file
 
	const char *missing_warning; ///< warning when this file is missing
 
	ChecksumResult check_result; ///< cached result of md5 check
 

	
 
	ChecksumResult CheckMD5(Subdirectory subdir, size_t max_size) const;
 
};
src/base_media_func.h
Show inline comments
 
@@ -129,7 +129,8 @@ bool BaseSet<T, Tnum_files, Tsearch_in_t
 
			file->missing_warning = stredup(item->value);
 
		}
 

	
 
		switch (T::CheckMD5(file, BASESET_DIR)) {
 
		file->check_result = T::CheckMD5(file, BASESET_DIR);
 
		switch (file->check_result) {
 
			case MD5File::CR_MATCH:
 
				this->valid_files++;
 
				this->found_files++;
src/music.cpp
Show inline comments
 
@@ -128,7 +128,7 @@ bool MusicSet::FillSetDetails(IniFile *i
 
		IniGroup *timingtrim = ini->GetGroup("timingtrim");
 
		for (uint i = 0, j = 1; i < lengthof(this->songinfo); i++) {
 
			const char *filename = this->files[i].filename;
 
			if (names == NULL || StrEmpty(filename)) {
 
			if (names == NULL || StrEmpty(filename) || this->files[i].check_result == MD5File::CR_NO_FILE) {
 
				this->songinfo[i].songname[0] = '\0';
 
				continue;
 
			}
 
@@ -143,7 +143,8 @@ bool MusicSet::FillSetDetails(IniFile *i
 
				char *songname = GetMusicCatEntryName(filename, this->songinfo[i].cat_index);
 
				if (songname == NULL) {
 
					DEBUG(grf, 0, "Base music set song missing from CAT file: %s/%d", filename, this->songinfo[i].cat_index);
 
					return false;
 
					this->songinfo[i].songname[0] = '\0';
 
					continue;
 
				}
 
				strecpy(this->songinfo[i].songname, songname, lastof(this->songinfo[i].songname));
 
				free(songname);
0 comments (0 inline, 0 general)