Files
@ r17167:68f47a8db1b5
Branch filter:
Location: cpp/openttd-patchpack/source/src/newgrf_text.h - annotation
r17167:68f47a8db1b5
3.4 KiB
text/x-c
(svn r21916) -Fix [FS#4442]: the minimum speed needed for (realistic) acceleration to work properly can sometimes be more than the (temporary) maximum speed causing Clamp to "fail". Make sure that the minimum speed always overrules the maximum speed
r5475:3f5cd13d1b63 r10560:8bdfc4b8040a r12768:980ae0491352 r12768:980ae0491352 r12768:980ae0491352 r12768:980ae0491352 r12768:980ae0491352 r12768:980ae0491352 r12768:980ae0491352 r10560:8bdfc4b8040a r10560:8bdfc4b8040a r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r16473:ab4ba67dd531 r14248:a9050881acd7 r16474:f9eb86a38244 r14248:a9050881acd7 r16473:ab4ba67dd531 r16473:ab4ba67dd531 r16473:ab4ba67dd531 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r15579:ec523aee641f r8445:07810e0b20bf r6247:96e840dbefcc r11341:5f61a8391e15 r16468:bd946cf87952 r15579:ec523aee641f r15579:ec523aee641f r15579:ec523aee641f r15579:ec523aee641f r15579:ec523aee641f r5475:3f5cd13d1b63 r6873:011bb2269607 r6873:011bb2269607 r7750:5f71f85fde96 r7616:d6611d4fd004 r7750:5f71f85fde96 r7750:5f71f85fde96 r7750:5f71f85fde96 r16692:f5d38cba4303 r16692:f5d38cba4303 r16692:f5d38cba4303 r14951:e24469d4e684 r7616:d6611d4fd004 r13074:af9a4ec75dd0 r13074:af9a4ec75dd0 r16474:f9eb86a38244 r16474:f9eb86a38244 r16474:f9eb86a38244 r16474:f9eb86a38244 r16474:f9eb86a38244 r16474:f9eb86a38244 r16474:f9eb86a38244 r16474:f9eb86a38244 r16474:f9eb86a38244 r16474:f9eb86a38244 r16474:f9eb86a38244 r16474:f9eb86a38244 r16474:f9eb86a38244 r16474:f9eb86a38244 r16474:f9eb86a38244 r16474:f9eb86a38244 r16481:61e8cb639444 r16475:65a52dcc7b07 r16475:65a52dcc7b07 r16477:0f1fcd3c927b r16475:65a52dcc7b07 r16474:f9eb86a38244 r16474:f9eb86a38244 r5475:3f5cd13d1b63 | /* $Id$ */
/*
* This file is part of OpenTTD.
* OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
* OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
*/
/** @file newgrf_text.h Header of Action 04 "universal holder" structure and functions */
#ifndef NEWGRF_TEXT_H
#define NEWGRF_TEXT_H
#include "string_type.h"
#include "strings_type.h"
#include "core/smallvec_type.hpp"
/** This character, the thorn ('รพ'), indicates a unicode string to NFO. */
static const WChar NFO_UTF8_IDENTIFIER = 0x00DE;
StringID AddGRFString(uint32 grfid, uint16 stringid, byte langid, bool new_scheme, const char *text_to_add, StringID def_string);
StringID GetGRFStringID(uint32 grfid, uint16 stringid);
const char *GetGRFStringFromGRFText(const struct GRFText *text);
const char *GetGRFStringPtr(uint16 stringid);
void CleanUpStrings();
void SetCurrentGrfLangID(byte language_id);
char *TranslateTTDPatchCodes(uint32 grfid, uint8 language_id, const char *str, int *olen = NULL);
struct GRFText *DuplicateGRFText(struct GRFText *orig);
void AddGRFTextToList(struct GRFText **list, struct GRFText *text_to_add);
void AddGRFTextToList(struct GRFText **list, byte langid, uint32 grfid, const char *text_to_add);
void AddGRFTextToList(struct GRFText **list, const char *text_to_add);
void CleanUpGRFText(struct GRFText *grftext);
bool CheckGrfLangID(byte lang_id, byte grf_version);
void PrepareTextRefStackUsage(byte numEntries);
void StopTextRefStackUsage();
void SwitchToNormalRefStack();
void SwitchToErrorRefStack();
void RewindTextRefStack();
bool UsingNewGRFTextStack();
struct TextRefStack *CreateTextRefStackBackup();
void RestoreTextRefStackBackup(struct TextRefStack *backup);
uint RemapNewGRFStringControlCode(uint scc, char *buf_start, char **buff, const char **str, int64 *argv);
StringID TTDPStringIDToOTTDStringIDMapping(StringID string);
/** Mapping of language data between a NewGRF and OpenTTD. */
struct LanguageMap {
/** Mapping between NewGRF and OpenTTD IDs. */
struct Mapping {
byte newgrf_id; ///< NewGRF's internal ID for a case/gender.
byte openttd_id; ///< OpenTTD's internal ID for a case/gender.
};
/* We need a vector and can't use SmallMap due to the fact that for "setting" a
* gender of a string or requesting a case for a substring we want to map from
* the NewGRF's internal ID to OpenTTD's ID whereas for the choice lists we map
* the genders/cases/plural OpenTTD IDs to the NewGRF's internal IDs. In this
* case a NewGRF developer/translator might want a different translation for
* both cases. Thus we are basically implementing a multi-map. */
SmallVector<Mapping, 1> gender_map; ///< Mapping of NewGRF and OpenTTD IDs for genders.
SmallVector<Mapping, 1> case_map; ///< Mapping of NewGRF and OpenTTD IDs for cases.
int plural_form; ///< The plural form used for this language.
int GetMapping(int newgrf_id, bool gender) const;
int GetReverseMapping(int openttd_id, bool gender) const;
static const LanguageMap *GetLanguageMap(uint32 grfid, uint8 language_id);
};
#endif /* NEWGRF_TEXT_H */
|