OpenTTD Source 20241224-master-gee860a5c8e
game_text.cpp File Reference

Implementation of handling translated strings. More...

#include "../stdafx.h"
#include "../strgen/strgen.h"
#include "../debug.h"
#include "../fileio_func.h"
#include "../tar_type.h"
#include "../script/squirrel_class.hpp"
#include "../strings_func.h"
#include "game_text.hpp"
#include "game.hpp"
#include "game_info.hpp"
#include "table/strings.h"
#include "table/strgen_tables.h"
#include "../safeguards.h"

Go to the source code of this file.

Data Structures

struct  StringListReader
 A reader that simply reads using fopen. More...
 
struct  TranslationWriter
 Class for writing an encoded language. More...
 
struct  StringNameWriter
 Class for writing the string IDs. More...
 
class  LanguageScanner
 Scanner to find language files in a GameScript directory. More...
 

Functions

void CDECL StrgenWarningI (const std::string &msg)
 
void CDECL StrgenErrorI (const std::string &msg)
 
void CDECL StrgenFatalI (const std::string &msg)
 
LanguageStrings ReadRawLanguageStrings (const std::string &file)
 Read all the raw language strings from the given file.
 
GameStringsLoadTranslations ()
 Load all translations that we know of.
 
static StringParam::ParamType GetParamType (const CmdStruct *cs)
 
static void ExtractStringParams (const StringData &data, StringParamsList &params)
 
const char * GetGameStringPtr (uint id)
 Get the string pointer of a particular game string.
 
const StringParams & GetGameStringParams (uint id)
 Get the string parameters of a particular game string.
 
const std::string & GetGameStringName (uint id)
 Get the name of a particular game string.
 
void RegisterGameTranslation (Squirrel *engine)
 Register the current translation to the Squirrel engine.
 
void ReconsiderGameScriptLanguage ()
 Reconsider the game script language, so we use the right one.
 

Variables

GameStrings_current_data = nullptr
 The currently loaded game strings.
 

Detailed Description

Implementation of handling translated strings.

Definition in file game_text.cpp.

Function Documentation

◆ ExtractStringParams()

static void ExtractStringParams ( const StringData data,
StringParamsList &  params 
)
static

Definition at line 260 of file game_text.cpp.

◆ GetGameStringName()

const std::string & GetGameStringName ( uint  id)

Get the name of a particular game string.

Parameters
idThe ID of the game string.
Returns
The name of the string.

Definition at line 343 of file game_text.cpp.

References _current_data, and GameStrings::string_names.

◆ GetGameStringParams()

const StringParams & GetGameStringParams ( uint  id)

Get the string parameters of a particular game string.

Parameters
idThe ID of the game string.
Returns
The string parameters.

Definition at line 329 of file game_text.cpp.

References _current_data, and GameStrings::string_params.

◆ GetGameStringPtr()

const char * GetGameStringPtr ( uint  id)

Get the string pointer of a particular game string.

Parameters
idThe ID of the game string.
Returns
The encoded string.

Definition at line 318 of file game_text.cpp.

References _current_data, GameStrings::cur_language, and LanguageStrings::lines.

Referenced by GetStringWithArgs().

◆ GetParamType()

static StringParam::ParamType GetParamType ( const CmdStruct cs)
static

Definition at line 253 of file game_text.cpp.

◆ LoadTranslations()

GameStrings * LoadTranslations ( )

Load all translations that we know of.

Returns
Container with all (compiled) translations.

Definition at line 202 of file game_text.cpp.

References LanguageScanner::AddFile(), GameStrings::Compile(), FioCheckFileExists(), GAME_DIR, Game::GetInfo(), ScriptInfo::GetMainScript(), ScriptInfo::GetTarFile(), GameStrings::raw_strings, ReadRawLanguageStrings(), and LanguageScanner::Scan().

Referenced by RegisterGameTranslation().

◆ ReadRawLanguageStrings()

LanguageStrings ReadRawLanguageStrings ( const std::string &  file)

Read all the raw language strings from the given file.

Parameters
fileThe file to read from.
Returns
The raw strings, or nullptr upon error.

Definition at line 49 of file game_text.cpp.

References FioFOpenFile(), GAME_DIR, and LanguageStrings::lines.

Referenced by LanguageScanner::AddFile(), and LoadTranslations().

◆ ReconsiderGameScriptLanguage()

void ReconsiderGameScriptLanguage ( )

Reconsider the game script language, so we use the right one.

Definition at line 383 of file game_text.cpp.

References _current_data, _current_language, GameStrings::compiled_strings, GameStrings::cur_language, LanguageMetadata::file, and FS2OTTD().

Referenced by GSTRChunkHandler::Load(), ReadLanguagePack(), and RegisterGameTranslation().

◆ RegisterGameTranslation()

void RegisterGameTranslation ( Squirrel engine)

Register the current translation to the Squirrel engine.

Parameters
engineThe engine to update/

Definition at line 356 of file game_text.cpp.

References _current_data, Squirrel::GetVM(), LoadTranslations(), ReconsiderGameScriptLanguage(), and GameStrings::string_names.

Referenced by GameInstance::RegisterAPI().

◆ StrgenErrorI()

void CDECL StrgenErrorI ( const std::string &  msg)

Definition at line 32 of file game_text.cpp.

◆ StrgenFatalI()

void CDECL StrgenFatalI ( const std::string &  msg)

Definition at line 38 of file game_text.cpp.

◆ StrgenWarningI()

void CDECL StrgenWarningI ( const std::string &  msg)

Definition at line 26 of file game_text.cpp.

Variable Documentation

◆ _current_data