OpenTTD Source  20241108-master-g80f628063a
BaseSet< T, Tnum_files, Tsearch_in_tars > Struct Template Reference

Information about a single base set. More...

#include <base_media_base.h>

Public Types

typedef std::unordered_map< std::string, std::string > TranslatedStrings
 

Public Member Functions

 ~BaseSet ()
 Free everything we allocated.
 
int GetNumMissing () const
 Get the number of missing files. More...
 
int GetNumInvalid () const
 Get the number of invalid files. More...
 
bool FillSetDetails (const IniFile &ini, const std::string &path, const std::string &full_filename, bool allow_empty_filename=true)
 Read the set information from a loaded ini. More...
 
void CopyCompatibleConfig ([[maybe_unused]] const T &src)
 
const std::string & GetDescription (const std::string &isocode) const
 Get the description for the given ISO code. More...
 
std::string GetListLabel () const
 Get string to use when listing this set in the settings window. More...
 
std::optional< std::string > GetTextfile (TextfileType type) const
 Search a textfile file next to this base media. More...
 

Static Public Member Functions

static MD5File::ChecksumResult CheckMD5 (const MD5File *file, Subdirectory subdir)
 Calculate and check the MD5 hash of the supplied file. More...
 

Data Fields

std::string name
 The name of the base set.
 
std::string url
 URL for information about the base set.
 
TranslatedStrings description
 Description of the base set.
 
uint32_t shortname
 Four letter short variant of the name.
 
uint32_t version
 The version of this base set.
 
bool fallback
 This set is a fallback set, i.e. it should be used only as last resort.
 
MD5File files [NUM_FILES]
 All files part of this set.
 
uint found_files
 Number of the files that could be found.
 
uint valid_files
 Number of the files that could be found and are valid.
 
T * next
 The next base set in this list.
 

Static Public Attributes

static const size_t NUM_FILES = Tnum_files
 Number of files in this set.
 
static const bool SEARCH_IN_TARS = Tsearch_in_tars
 Whether to search in the tars or not.
 
static const char *const * file_names = _graphics_file_names
 Internal names of the files in this set. More...
 

Detailed Description

template<class T, size_t Tnum_files, bool Tsearch_in_tars>
struct BaseSet< T, Tnum_files, Tsearch_in_tars >

Information about a single base set.

Template Parameters
Tthe real class we're going to be
Tnum_filesthe number of files in the set
Tsearch_in_tarswhether to search in the tars or not

Definition at line 49 of file base_media_base.h.

Member Function Documentation

◆ CheckMD5()

template<class T , size_t Tnum_files, bool Tsearch_in_tars>
static MD5File::ChecksumResult BaseSet< T, Tnum_files, Tsearch_in_tars >::CheckMD5 ( const MD5File file,
Subdirectory  subdir 
)
inlinestatic

Calculate and check the MD5 hash of the supplied file.

Parameters
fileThe file get the hash of.
subdirThe sub directory to get the files from.
Returns
  • #CR_MATCH if the MD5 hash matches
  • #CR_MISMATCH if the MD5 does not match
  • #CR_NO_FILE if the file misses

Definition at line 149 of file base_media_base.h.

References MD5File::CheckMD5().

◆ FillSetDetails()

template<class T , size_t Tnum_files, bool Tsearch_in_tars>
bool BaseSet< T, Tnum_files, Tsearch_in_tars >::FillSetDetails ( const IniFile ini,
const std::string &  path,
const std::string &  full_filename,
bool  allow_empty_filename = true 
)

Read the set information from a loaded ini.

Parameters
inithe ini to read from
paththe path to this ini file (for filenames)
full_filenamethe full filename of the loaded file (for error reporting purposes)
allow_empty_filenameempty filenames are valid
Returns
true if loading was successful.

Definition at line 42 of file base_media_func.h.

References Debug, fetch_metadata, MD5File::filename, IniLoadFile::GetGroup(), IniGroup::GetItem(), IniGroup::items, IniItem::name, SET_TYPE, and IniItem::value.

◆ GetDescription()

template<class T , size_t Tnum_files, bool Tsearch_in_tars>
const std::string& BaseSet< T, Tnum_files, Tsearch_in_tars >::GetDescription ( const std::string &  isocode) const
inline

Get the description for the given ISO code.

It falls back to the first two characters of the ISO code in case no match could be made with the full ISO code. If even then the matching fails the default is returned.

Parameters
isocodethe isocode to search for
Returns
the description

Definition at line 110 of file base_media_base.h.

◆ GetListLabel()

template<class T , size_t Tnum_files, bool Tsearch_in_tars>
std::string BaseSet< T, Tnum_files, Tsearch_in_tars >::GetListLabel ( ) const
inline

Get string to use when listing this set in the settings window.

If there are no invalid files, then this is just the set name, otherwise a string is formatted including the number of invalid files.

Returns
the string to display.

Definition at line 131 of file base_media_base.h.

References BaseSet< T, Tnum_files, Tsearch_in_tars >::GetNumInvalid(), GetString(), BaseSet< T, Tnum_files, Tsearch_in_tars >::name, SetDParam(), and SetDParamStr().

◆ GetNumInvalid()

template<class T , size_t Tnum_files, bool Tsearch_in_tars>
int BaseSet< T, Tnum_files, Tsearch_in_tars >::GetNumInvalid ( ) const
inline

Get the number of invalid files.

Note
a missing file is invalid too!
Returns
the number

Definition at line 94 of file base_media_base.h.

References BaseSet< T, Tnum_files, Tsearch_in_tars >::valid_files.

Referenced by CheckExternalFiles(), and BaseSet< T, Tnum_files, Tsearch_in_tars >::GetListLabel().

◆ GetNumMissing()

template<class T , size_t Tnum_files, bool Tsearch_in_tars>
int BaseSet< T, Tnum_files, Tsearch_in_tars >::GetNumMissing ( ) const
inline

Get the number of missing files.

Returns
the number

Definition at line 84 of file base_media_base.h.

References BaseSet< T, Tnum_files, Tsearch_in_tars >::found_files.

◆ GetTextfile()

template<class T , size_t Tnum_files, bool Tsearch_in_tars>
std::optional<std::string> BaseSet< T, Tnum_files, Tsearch_in_tars >::GetTextfile ( TextfileType  type) const
inline

Search a textfile file next to this base media.

Parameters
typeThe type of the textfile to search for.
Returns
The filename for the textfile.

Definition at line 159 of file base_media_base.h.

References BASESET_DIR.

Field Documentation

◆ file_names

template<class T , size_t Tnum_files, bool Tsearch_in_tars>
const char *const * BaseSet< T, Tnum_files, Tsearch_in_tars >::file_names = _graphics_file_names
static

Internal names of the files in this set.

Make sure we aren't messing things up.

Implementation.

Definition at line 59 of file base_media_base.h.


The documentation for this struct was generated from the following files: