diff --git a/src/base_media_base.h b/src/base_media_base.h --- a/src/base_media_base.h +++ b/src/base_media_base.h @@ -31,7 +31,7 @@ struct BaseSet { static const size_t NUM_FILES = Tnum_files; /** Internal names of the files in this set. */ - static const char *file_names[Tnum_files]; + static const char **file_names; const char *name; ///< The name of the base set const char *description; ///< Description of the base set diff --git a/src/gfxinit.cpp b/src/gfxinit.cpp --- a/src/gfxinit.cpp +++ b/src/gfxinit.cpp @@ -106,7 +106,7 @@ void CheckExternalFiles() char *add_pos = error_msg; const char *last = lastof(error_msg); - for (uint i = 0; i < lengthof(used_set->files); i++) { + for (uint i = 0; i < MAX_GFT; i++) { if (!used_set->files[i].CheckMD5()) { add_pos += seprintf(add_pos, last, "Your '%s' file is corrupted or missing! %s\n", used_set->files[i].filename, used_set->files[i].missing_warning); } @@ -231,8 +231,11 @@ bool MD5File::CheckMD5() const } /** Names corresponding to the GraphicsFileType */ +const char *_graphics_file_names[] = { "base", "logos", "arctic", "tropical", "toyland", "extra" }; + +/** Implementation */ template -/* static */ const char *BaseSet::file_names[Tnum_files] = { "base", "logos", "arctic", "tropical", "toyland", "extra" }; +/* static */ const char **BaseSet::file_names = _graphics_file_names; extern void UpdateNewGRFConfigPalette(); diff --git a/src/sound.cpp b/src/sound.cpp --- a/src/sound.cpp +++ b/src/sound.cpp @@ -260,8 +260,11 @@ void SndPlayFx(SoundID sound) INSTANTIATE_BASE_MEDIA_METHODS(BaseMedia, SoundsSet) /** Names corresponding to the sound set's files */ +const char *_sound_file_names[] = { "samples" }; + + template -/* static */ const char *BaseSet::file_names[Tnum_files] = { "samples" }; +/* static */ const char **BaseSet::file_names = _sound_file_names; template /* static */ const char *BaseMedia::GetExtension()