Files
@ r27835:eabfaa878ced
Branch filter:
Location: cpp/openttd-patchpack/source/src/strings_type.h - annotation
r27835:eabfaa878ced
4.2 KiB
text/x-c
Add: calendar date for Survey results
This means no heuristics is possible on around which date people
play the game.
This means no heuristics is possible on around which date people
play the game.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 | r12768:980ae0491352 r12768:980ae0491352 r12768:980ae0491352 r12768:980ae0491352 r12768:980ae0491352 r12768:980ae0491352 r12768:980ae0491352 r8114:866ed489ed98 r8114:866ed489ed98 r8114:866ed489ed98 r8114:866ed489ed98 r8114:866ed489ed98 r9773:820f87546490 r9773:820f87546490 r9773:820f87546490 r27737:728d55b97775 r22550:5a1c0341c400 r15173:a59afd6301a6 r16400:9ccc094247b7 r8114:866ed489ed98 r10249:a19adec3c686 r10249:a19adec3c686 r10249:a19adec3c686 r10249:a19adec3c686 r10249:a19adec3c686 r10249:a19adec3c686 r22549:21c2f1153122 r22549:21c2f1153122 r22549:21c2f1153122 r22549:21c2f1153122 r22549:21c2f1153122 r22549:21c2f1153122 r22549:21c2f1153122 r22549:21c2f1153122 r22549:21c2f1153122 r22549:21c2f1153122 r22549:21c2f1153122 r22551:c6bc232b7c99 r22551:c6bc232b7c99 r22551:c6bc232b7c99 r22549:21c2f1153122 r22549:21c2f1153122 r22548:e350bbe3b5af r22548:e350bbe3b5af r22548:e350bbe3b5af r22548:e350bbe3b5af r22548:e350bbe3b5af r22551:c6bc232b7c99 r22551:c6bc232b7c99 r22551:c6bc232b7c99 r22551:c6bc232b7c99 r22551:c6bc232b7c99 r22551:c6bc232b7c99 r9773:820f87546490 r8114:866ed489ed98 r8114:866ed489ed98 r11363:6906c490a00e r8114:866ed489ed98 r8114:866ed489ed98 r8114:866ed489ed98 r8114:866ed489ed98 r8114:866ed489ed98 r8114:866ed489ed98 r8114:866ed489ed98 r8114:866ed489ed98 r8114:866ed489ed98 r8114:866ed489ed98 r8114:866ed489ed98 r11699:bed6147a152d r8114:866ed489ed98 r8114:866ed489ed98 r8114:866ed489ed98 r8114:866ed489ed98 r8114:866ed489ed98 r8114:866ed489ed98 r8114:866ed489ed98 r8114:866ed489ed98 r8114:866ed489ed98 r8114:866ed489ed98 r8114:866ed489ed98 r8114:866ed489ed98 r18122:623505749ded r18122:623505749ded r18122:623505749ded r8114:866ed489ed98 r18122:623505749ded r8114:866ed489ed98 r8114:866ed489ed98 r8114:866ed489ed98 r8114:866ed489ed98 r27678:af4858e871bd r27678:af4858e871bd r27678:af4858e871bd r27678:af4858e871bd r27678:af4858e871bd r27678:af4858e871bd r27678:af4858e871bd r27678:af4858e871bd r27678:af4858e871bd r27678:af4858e871bd r27678:af4858e871bd r27678:af4858e871bd r27678:af4858e871bd r27678:af4858e871bd r27678:af4858e871bd r27678:af4858e871bd r27678:af4858e871bd r27678:af4858e871bd r27678:af4858e871bd r27678:af4858e871bd r27678:af4858e871bd r27678:af4858e871bd r27678:af4858e871bd r27678:af4858e871bd r27678:af4858e871bd r27678:af4858e871bd r27678:af4858e871bd r27678:af4858e871bd r27678:af4858e871bd r27678:af4858e871bd r8114:866ed489ed98 | /*
* 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 strings_type.h Types related to strings. */
#ifndef STRINGS_TYPE_H
#define STRINGS_TYPE_H
/**
* Numeric value that represents a string, independent of the selected language.
*/
typedef uint32_t StringID;
static const StringID INVALID_STRING_ID = 0xFFFF; ///< Constant representing an invalid string (16bit in case it is used in savegames)
static const int MAX_CHAR_LENGTH = 4; ///< Max. length of UTF-8 encoded unicode character
static const uint MAX_LANG = 0x7F; ///< Maximum number of languages supported by the game, and the NewGRF specs
/** Directions a text can go to */
enum TextDirection {
TD_LTR, ///< Text is written left-to-right by default
TD_RTL, ///< Text is written right-to-left by default
};
/** StringTabs to group StringIDs */
enum StringTab {
/* Tabs 0..1 for regular strings */
TEXT_TAB_TOWN = 4,
TEXT_TAB_INDUSTRY = 9,
TEXT_TAB_STATION = 12,
TEXT_TAB_SPECIAL = 14,
TEXT_TAB_OLD_CUSTOM = 15,
TEXT_TAB_VEHICLE = 16,
/* Tab 17 for regular strings */
TEXT_TAB_OLD_NEWGRF = 26,
TEXT_TAB_END = 32, ///< End of language files.
TEXT_TAB_GAMESCRIPT_START = 32, ///< Start of GameScript supplied strings.
TEXT_TAB_NEWGRF_START = 64, ///< Start of NewGRF supplied strings.
};
/** Number of bits for the StringIndex within a StringTab */
static const uint TAB_SIZE_BITS = 11;
/** Number of strings per StringTab */
static const uint TAB_SIZE = 1 << TAB_SIZE_BITS;
/** Number of strings for GameScripts */
static const uint TAB_SIZE_GAMESCRIPT = TAB_SIZE * 32;
/** Number of strings for NewGRFs */
static const uint TAB_SIZE_NEWGRF = TAB_SIZE * 256;
/** Special string constants */
enum SpecialStrings {
/* special strings for town names. the town name is generated dynamically on request. */
SPECSTR_TOWNNAME_START = 0x20C0,
SPECSTR_TOWNNAME_ENGLISH = SPECSTR_TOWNNAME_START,
SPECSTR_TOWNNAME_FRENCH,
SPECSTR_TOWNNAME_GERMAN,
SPECSTR_TOWNNAME_AMERICAN,
SPECSTR_TOWNNAME_LATIN,
SPECSTR_TOWNNAME_SILLY,
SPECSTR_TOWNNAME_SWEDISH,
SPECSTR_TOWNNAME_DUTCH,
SPECSTR_TOWNNAME_FINNISH,
SPECSTR_TOWNNAME_POLISH,
SPECSTR_TOWNNAME_SLOVAK,
SPECSTR_TOWNNAME_NORWEGIAN,
SPECSTR_TOWNNAME_HUNGARIAN,
SPECSTR_TOWNNAME_AUSTRIAN,
SPECSTR_TOWNNAME_ROMANIAN,
SPECSTR_TOWNNAME_CZECH,
SPECSTR_TOWNNAME_SWISS,
SPECSTR_TOWNNAME_DANISH,
SPECSTR_TOWNNAME_TURKISH,
SPECSTR_TOWNNAME_ITALIAN,
SPECSTR_TOWNNAME_CATALAN,
SPECSTR_TOWNNAME_LAST = SPECSTR_TOWNNAME_CATALAN,
/* special strings for company names on the form "TownName transport". */
SPECSTR_COMPANY_NAME_START = 0x70EA,
SPECSTR_COMPANY_NAME_LAST = SPECSTR_COMPANY_NAME_START + SPECSTR_TOWNNAME_LAST - SPECSTR_TOWNNAME_START,
SPECSTR_SILLY_NAME = 0x70E5,
SPECSTR_ANDCO_NAME = 0x70E6,
SPECSTR_PRESIDENT_NAME = 0x70E7,
};
/** Data that is to be stored when backing up StringParameters. */
struct StringParameterBackup {
uint64_t data; ///< The data field; valid *when* string has no value.
std::optional<std::string> string; ///< The string value.
/**
* Assign the numeric data with the given value, while clearing the stored string.
* @param data The new value of the data field.
* @return This object.
*/
StringParameterBackup &operator=(uint64_t data)
{
this->string.reset();
this->data = data;
return *this;
}
/**
* Assign a copy of the given string to the string field, while clearing the data field.
* @param string The new value of the string.
* @return This object.
*/
StringParameterBackup &operator=(const std::string_view string)
{
this->data = 0;
this->string.emplace(string);
return *this;
}
};
#endif /* STRINGS_TYPE_H */
|