OpenTTD Source  1.11.0-beta2
base_media_func.h File Reference
#include "base_media_base.h"
#include "debug.h"
#include "ini_type.h"
#include "string_func.h"
#include "network/network_content.h"

Go to the source code of this file.

Macros

#define fetch_metadata(name)
 Try to read a single piece of metadata and return false if it doesn't exist. More...
 
#define INSTANTIATE_BASE_MEDIA_METHODS(repl_type, set_type)
 Force instantiation of methods so we don't get linker errors. More...
 

Functions

template<class Tbase_set >
const char * TryGetBaseSetFile (const ContentInfo *ci, bool md5sum, const Tbase_set *s)
 Check whether there's a base set matching some information. More...
 

Detailed Description

Generic function implementations for base data (graphics, sounds).

Note
You should never include this file due to the SET_TYPE define.

Definition in file base_media_func.h.

Macro Definition Documentation

◆ fetch_metadata

#define fetch_metadata (   name)
Value:
item = metadata->GetItem(name, false); \
if (item == nullptr || !item->value.has_value() || item->value->empty()) { \
DEBUG(grf, 0, "Base " SET_TYPE "set detail loading: %s field missing.", name); \
DEBUG(grf, 0, " Is %s readable for the user running OpenTTD?", full_filename); \
return false; \
}

Try to read a single piece of metadata and return false if it doesn't exist.

Parameters
namethe name of the item to fetch.

Definition at line 22 of file base_media_func.h.

◆ INSTANTIATE_BASE_MEDIA_METHODS

#define INSTANTIATE_BASE_MEDIA_METHODS (   repl_type,
  set_type 
)
Value:
template std::string repl_type::ini_set; \
template const char *repl_type::GetExtension(); \
template bool repl_type::AddFile(const std::string &filename, size_t pathlength, const std::string &tar_filename); \
template bool repl_type::HasSet(const struct ContentInfo *ci, bool md5sum); \
template bool repl_type::SetSet(const std::string &name); \
template char *repl_type::GetSetsList(char *p, const char *last); \
template int repl_type::GetNumSets(); \
template int repl_type::GetIndexOfUsedSet(); \
template const set_type *repl_type::GetSet(int index); \
template const set_type *repl_type::GetUsedSet(); \
template bool repl_type::DetermineBestSet(); \
template set_type *repl_type::GetAvailableSets(); \
template const char *TryGetBaseSetFile(const ContentInfo *ci, bool md5sum, const set_type *s);

Force instantiation of methods so we don't get linker errors.

Parameters
repl_typethe type of the BaseMedia to instantiate
set_typethe type of the BaseSet to instantiate

Definition at line 377 of file base_media_func.h.

Function Documentation

◆ TryGetBaseSetFile()

template<class Tbase_set >
const char* TryGetBaseSetFile ( const ContentInfo ci,
bool  md5sum,
const Tbase_set *  s 
)

Check whether there's a base set matching some information.

Parameters
ciThe content info to compare it to.
md5sumShould the MD5 checksum be tested as well?
sThe list with sets.
Returns
The filename of the first file of the base set, or nullptr if there is no match.

Definition at line 279 of file base_media_func.h.

References ContentInfo::md5sum, and ContentInfo::unique_id.

Referenced by BaseMedia< GraphicsSet >::HasSet().

SET_TYPE
#define SET_TYPE
The type of set we're replacing.
Definition: music.cpp:14
ContentInfo
Container for all important information about a piece of content.
Definition: tcp_content.h:54
TryGetBaseSetFile
const char * TryGetBaseSetFile(const ContentInfo *ci, bool md5sum, const Tbase_set *s)
Check whether there's a base set matching some information.
Definition: base_media_func.h:279