OpenTTD Source 20241224-master-gf74b0cf984
BaseMedia< Tbase_set > Class Template Reference

Base for all base media (graphics, sounds) More...

#include <base_media_base.h>

Inheritance diagram for BaseMedia< Tbase_set >:
FileScanner

Static Public Member Functions

static bool DetermineBestSet ()
 Determine the graphics pack that has to be used.
 
static uint FindSets ()
 Do the scan for files.
 
static Tbase_set * GetAvailableSets ()
 Return the available sets.
 
static bool SetSet (const Tbase_set *set)
 Set the set to be used.
 
static bool SetSetByName (const std::string &name)
 Set the set to be used.
 
static bool SetSetByShortname (uint32_t shortname)
 Set the set to be used.
 
static void GetSetsList (std::back_insert_iterator< std::string > &output_iterator)
 Returns a list with the sets.
 
static int GetNumSets ()
 Count the number of available graphics sets.
 
static int GetIndexOfUsedSet ()
 Get the index of the currently active graphics set.
 
static const Tbase_set * GetSet (int index)
 Get the name of the graphics set at the specified index.
 
static const Tbase_set * GetUsedSet ()
 Return the used set.
 
static bool HasSet (const ContentInfo *ci, bool md5sum)
 Check whether we have an set with the exact characteristics as ci.
 

Protected Member Functions

bool AddFile (const std::string &filename, size_t basepath_length, const std::string &tar_filename) override
 Add a file with the given filename.
 

Static Protected Member Functions

static const char * GetExtension ()
 Get the extension that is used to identify this set.
 

Static Protected Attributes

static Tbase_set * available_sets
 All available sets.
 
static Tbase_set * duplicate_sets
 All sets that aren't available, but needed for not downloading base sets when a newer version than the one on BaNaNaS is loaded.
 
static const Tbase_set * used_set
 The currently used set.
 

Additional Inherited Members

- Private Member Functions inherited from FileScanner
virtual ~FileScanner ()=default
 Destruct the proper one...
 
uint Scan (std::string_view extension, Subdirectory sd, bool tars=true, bool recursive=true)
 Scan for files with the given extension in the given search path.
 
uint Scan (std::string_view extension, const std::string &directory, bool recursive=true)
 Scan for files with the given extension in the given search path.
 
- Private Attributes inherited from FileScanner
Subdirectory subdir
 The current sub directory we are searching through.
 

Detailed Description

template<class Tbase_set>
class BaseMedia< Tbase_set >

Base for all base media (graphics, sounds)

Template Parameters
Tbase_setthe real set we're going to be

Definition at line 176 of file base_media_base.h.

Member Function Documentation

◆ AddFile()

template<class Tbase_set >
bool BaseMedia< Tbase_set >::AddFile ( const std::string &  filename,
size_t  basepath_length,
const std::string &  tar_filename 
)
overrideprotectedvirtual

Add a file with the given filename.

Parameters
filenamethe full path to the file to read
basepath_lengthamount of characters to chop of before to get a filename relative to the search path.
tar_filenamethe name of the tar file the file is read from.
Returns
true if the file is added.

Implements FileScanner.

Definition at line 164 of file base_media_func.h.

References BASESET_DIR, Debug, and IniLoadFile::LoadFromDisk().

◆ DetermineBestSet()

template<class Tbase_set >
bool BaseMedia< Tbase_set >::DetermineBestSet ( )
static

Determine the graphics pack that has to be used.

The one with the most correct files wins.

Returns
true if a best set has been found.

Definition at line 466 of file gfxinit.cpp.

References PAL_DOS.

◆ FindSets()

template<class Tbase_set >
static uint BaseMedia< Tbase_set >::FindSets ( )
inlinestatic

Do the scan for files.

Definition at line 198 of file base_media_base.h.

References BASESET_DIR, BaseMedia< Tbase_set >::GetExtension(), OLD_DATA_DIR, OLD_GM_DIR, and FileScanner::Scan().

◆ GetAvailableSets()

template<class Tbase_set >
Tbase_set * BaseMedia< Tbase_set >::GetAvailableSets ( )
static

Return the available sets.

Returns
The available sets.

Definition at line 404 of file base_media_func.h.

◆ GetExtension()

template<class Tbase_set >
const char * BaseMedia< Tbase_set >::GetExtension ( )
staticprotected

Get the extension that is used to identify this set.

Returns
the extension

Definition at line 490 of file gfxinit.cpp.

Referenced by BaseMedia< Tbase_set >::FindSets().

◆ GetIndexOfUsedSet()

template<class Tbase_set >
int BaseMedia< Tbase_set >::GetIndexOfUsedSet ( )
static

Get the index of the currently active graphics set.

Returns
the current set's index

Definition at line 363 of file base_media_func.h.

◆ GetNumSets()

template<class Tbase_set >
int BaseMedia< Tbase_set >::GetNumSets ( )
static

Count the number of available graphics sets.

Returns
the number of sets

Definition at line 348 of file base_media_func.h.

◆ GetSet()

template<class Tbase_set >
const Tbase_set * BaseMedia< Tbase_set >::GetSet ( int  index)
static

Get the name of the graphics set at the specified index.

Returns
the name of the set

Definition at line 379 of file base_media_func.h.

◆ GetSetsList()

template<class Tbase_set >
void BaseMedia< Tbase_set >::GetSetsList ( std::back_insert_iterator< std::string > &  output_iterator)
static

Returns a list with the sets.

Parameters
output_iteratorThe iterator to write the string to.

Definition at line 297 of file base_media_func.h.

◆ GetUsedSet()

template<class Tbase_set >
const Tbase_set * BaseMedia< Tbase_set >::GetUsedSet ( )
static

Return the used set.

Returns
the used set.

Definition at line 394 of file base_media_func.h.

◆ HasSet()

template<class Tbase_set >
bool BaseMedia< Tbase_set >::HasSet ( const ContentInfo ci,
bool  md5sum 
)
static

Check whether we have an set with the exact characteristics as ci.

Parameters
cithe characteristics to search on (shortname and md5sum)
md5sumwhether to check the MD5 checksum
Returns
true iff we have an set matching.

Definition at line 337 of file base_media_func.h.

References TryGetBaseSetFile().

◆ SetSet()

template<class Tbase_set >
bool BaseMedia< Tbase_set >::SetSet ( const Tbase_set *  set)
static

Set the set to be used.

Parameters
setthe set to use
Returns
true if it could be loaded

Definition at line 241 of file base_media_func.h.

References CheckExternalFiles().

◆ SetSetByName()

template<class Tbase_set >
bool BaseMedia< Tbase_set >::SetSetByName ( const std::string &  name)
static

Set the set to be used.

Parameters
nameof the set to use
Returns
true if it could be loaded

Definition at line 258 of file base_media_func.h.

◆ SetSetByShortname()

template<class Tbase_set >
bool BaseMedia< Tbase_set >::SetSetByShortname ( uint32_t  shortname)
static

Set the set to be used.

Parameters
shortnameof the set to use
Returns
true if it could be loaded

Definition at line 278 of file base_media_func.h.

Field Documentation

◆ available_sets

template<class Tbase_set >
Tbase_set * BaseMedia< Tbase_set >::available_sets
staticprotected

All available sets.

Definition at line 178 of file base_media_base.h.

◆ duplicate_sets

template<class Tbase_set >
Tbase_set * BaseMedia< Tbase_set >::duplicate_sets
staticprotected

All sets that aren't available, but needed for not downloading base sets when a newer version than the one on BaNaNaS is loaded.

Definition at line 179 of file base_media_base.h.

◆ used_set

template<class Tbase_set >
const Tbase_set * BaseMedia< Tbase_set >::used_set
staticprotected

The currently used set.

Definition at line 180 of file base_media_base.h.


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