Public Types | Public Member Functions | Static Public Member Functions | Data Fields | Static Public Attributes

# 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 SmallMap< const char *, const char * > | TranslatedStrings
## Public Member Functions
| ~BaseSet ()
| Free everything we allocated.
int | GetNumMissing () const
| Get the number of missing files.
int | GetNumInvalid () const
| Get the number of invalid files.
bool | FillSetDetails (IniFile *ini, const char *path, const char *full_filename, bool allow_empty_filename=true)
| Read the set information from a loaded ini.
const char * | GetDescription (const char *isocode=NULL) const
| Get the description for the given ISO code.
const char * | GetTextfile (TextfileType type) const
| Search a textfile file next to this base media.
## Static Public Member Functions
static MD5File::ChecksumResult | CheckMD5 (const MD5File *file, Subdirectory subdir)
| Calculate and check the MD5 hash of the supplied file.
## Data Fields
const char * | name
| The name of the base set.
TranslatedStrings | description
| Description of the base set.
uint32 | shortname
| Four letter short variant of the name.
uint32 | 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.

## 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:

  | T | the real class we're going to be
  | Tnum_files | the number of files in the set
  | Tsearch_in_tars | whether to search in the tars or not

Definition at line 48 of file base_media_base.h.

## Member Function Documentation

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 |
| ) |  |  | `[inline, static]`

Calculate and check the MD5 hash of the supplied file.

Parameters:

  | file | The file get the hash of.
  | subdir | The 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

Reimplemented in GraphicsSet.

Definition at line 144 of file base_media_base.h.

template<class T , size_t Tnum_files, bool Tsearch_in_tars>

bool BaseSet< T, Tnum_files, Tsearch_in_tars >::FillSetDetails | ( | IniFile * | ini,
|  | const char * | path,
|  | const char * | full_filename,
|  | bool | allow_empty_filename = `true` |
| ) |  |  |

Read the set information from a loaded ini.

Parameters:

  | ini | the ini to read from
  | path | the path to this ini file (for filenames)
  | full_filename | the full filename of the loaded file (for error reporting purposes)
  | allow_empty_filename | empty filenames are valid

Returns:
  true if loading was successful.

Definition at line 46 of file base_media_func.h.

References BASESET_DIR, MD5File::CR_MATCH, MD5File::CR_MISMATCH, MD5File::CR_NO_FILE, DEBUG, BaseSet< T, Tnum_files, Tsearch_in_tars >::description, BaseSet< T, Tnum_files, Tsearch_in_tars >::fallback, fetch_metadata, MD5File::filename, BaseSet< T, Tnum_files, Tsearch_in_tars >::files, BaseSet< T, Tnum_files, Tsearch_in_tars >::found_files, IniLoadFile::GetGroup(), IniGroup::GetItem(), MD5File::hash, IniGroup::item, MD5File::missing_warning, IniItem::name, BaseSet< T, Tnum_files, Tsearch_in_tars >::name, IniItem::next, SET_TYPE, BaseSet< T, Tnum_files, Tsearch_in_tars >::shortname, str_fmt(), BaseSet< T, Tnum_files, Tsearch_in_tars >::valid_files, IniItem::value, and BaseSet< T, Tnum_files, Tsearch_in_tars >::version.

template<class T, size_t Tnum_files, bool Tsearch_in_tars>

const char* BaseSet< T, Tnum_files, Tsearch_in_tars >::GetDescription | ( | const char * | isocode = `NULL` | ) | 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:

  | isocode | the isocode to search for

Returns:
  the description

Definition at line 119 of file base_media_base.h.

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 104 of file base_media_base.h.

Referenced by CheckExternalFiles(), GameOptionsWindow::OnInvalidateData(), and GameOptionsWindow::UpdateWidgetSize().

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 94 of file base_media_base.h.

Referenced by GameOptionsWindow::OnInvalidateData().

template<class T, size_t Tnum_files, bool Tsearch_in_tars>

const char* BaseSet< T, Tnum_files, Tsearch_in_tars >::GetTextfile | ( | TextfileType | type | ) | const`[inline]`

Search a textfile file next to this base media.

Parameters:

  | type | The type of the textfile to search for.

Returns:
  The filename for the textfile, `NULL` otherwise.

Definition at line 154 of file base_media_base.h.

Referenced by BaseSet< GraphicsSet, MAX_GFT, true >::GetTextfile().

## Field Documentation

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.

Implementation.

Definition at line 58 of file base_media_base.h.

template<class T, size_t Tnum_files, bool Tsearch_in_tars>

const bool BaseSet< T, Tnum_files, Tsearch_in_tars >::SEARCH_IN_TARS = Tsearch_in_tars`[static]`

Whether to search in the tars or not.

Definition at line 55 of file base_media_base.h.

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

- src/base_media_base.h
- src/base_media_func.h
- src/gfxinit.cpp
- src/music.cpp
- src/sound.cpp