OpenTTD Source: src/base_media_func.h File Reference

OpenTTD Source 13.1

Macros | Functions
base_media_func.h File Reference
`#include "base_media_base.h"`
`#include "debug.h"`
`#include "ini_type.h"`
`#include "string_func.h"`
`#include "network/core/tcp_content_type.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: {} field missing.", name); \
Debug(grf, 0, " Is {} 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

  name | the 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_type | the type of the BaseMedia to instantiate
  set_type | the 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

  ci | The content info to compare it to.
  md5sum | Should the MD5 checksum be tested as well?
  s | The 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_type.h:50
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