OpenTTD
control_codes.h
Go to the documentation of this file.
1 /*
2  * This file is part of OpenTTD.
3  * 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.
4  * 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.
5  * 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/>.
6  */
7 
10 #ifndef CONTROL_CODES_H
11 #define CONTROL_CODES_H
12 
18  SCC_CONTROL_START = 0xE000,
19  SCC_CONTROL_END = 0xE1FF,
20 
21  SCC_SPRITE_START = 0xE200,
22  SCC_SPRITE_END = SCC_SPRITE_START + 0xFF,
23 
24  /* This must be the first entry. It's encoded in strings that are saved. */
25  SCC_ENCODED = SCC_CONTROL_START,
26 
27  /* Font selection codes, must be in same order as FontSize enum */
28  SCC_FIRST_FONT,
29  SCC_NORMALFONT = SCC_FIRST_FONT,
33  SCC_LAST_FONT = SCC_MONOFONT,
34 
35  /* Formatting control codes */
36  SCC_REVISION,
37  SCC_COMPANY_NUM,
38  SCC_STATION_FEATURES,
39  SCC_INDUSTRY_NAME,
40  SCC_WAYPOINT_NAME,
41  SCC_STATION_NAME,
42  SCC_DEPOT_NAME,
43  SCC_TOWN_NAME,
44  SCC_GROUP_NAME,
45  SCC_VEHICLE_NAME,
46  SCC_SIGN_NAME,
47  SCC_COMPANY_NAME,
48  SCC_PRESIDENT_NAME,
49  SCC_ENGINE_NAME,
50 
51  SCC_CURRENCY_SHORT,
52  SCC_CURRENCY_LONG,
53 
54  SCC_CARGO_LONG,
55  SCC_CARGO_SHORT,
56  SCC_CARGO_TINY,
57  SCC_CARGO_LIST,
58  SCC_POWER,
59  SCC_VOLUME_LONG,
60  SCC_VOLUME_SHORT,
61  SCC_WEIGHT_LONG,
62  SCC_WEIGHT_SHORT,
63  SCC_FORCE,
64  SCC_VELOCITY,
65  SCC_HEIGHT,
66 
67  SCC_DATE_TINY,
68  SCC_DATE_SHORT,
69  SCC_DATE_LONG,
70  SCC_DATE_ISO,
71 
72  /* Must be consecutive */
73  SCC_STRING1,
74  SCC_STRING2,
75  SCC_STRING3,
76  SCC_STRING4,
77  SCC_STRING5,
78  SCC_STRING6,
79  SCC_STRING7,
80 
81 
82  SCC_STRING,
83  SCC_COMMA,
84  SCC_DECIMAL,
85  SCC_NUM,
86  SCC_ZEROFILL_NUM,
87  SCC_HEX,
88  SCC_BYTES,
89 
90  SCC_RAW_STRING_POINTER,
91  SCC_PLURAL_LIST,
92  SCC_GENDER_LIST,
93  SCC_GENDER_INDEX,
94  SCC_ARG_INDEX,
95  SCC_SET_CASE,
96  SCC_SWITCH_CASE,
97 
98  /* Colour codes */
99  SCC_BLUE,
100  SCC_SILVER,
101  SCC_GOLD,
102  SCC_RED,
103  SCC_PURPLE,
104  SCC_LTBROWN,
105  SCC_ORANGE,
106  SCC_GREEN,
107  SCC_YELLOW,
108  SCC_DKGREEN,
109  SCC_CREAM,
110  SCC_BROWN,
111  SCC_WHITE,
112  SCC_LTBLUE,
113  SCC_GRAY,
114  SCC_DKBLUE,
115  SCC_BLACK,
116  SCC_PUSH_COLOUR,
117  SCC_POP_COLOUR,
118 
154  SCC_NEWGRF_LAST = SCC_NEWGRF_ROTATE_TOP_4_WORDS,
155 
157 
158  /* Special printable symbols.
159  * These are mapped to the original glyphs */
160  SCC_LESS_THAN = SCC_SPRITE_START + 0x3C,
161  SCC_GREATER_THAN = SCC_SPRITE_START + 0x3E,
162  SCC_UP_ARROW = SCC_SPRITE_START + 0xA0,
163  SCC_DOWN_ARROW = SCC_SPRITE_START + 0xAA,
164  SCC_CHECKMARK = SCC_SPRITE_START + 0xAC,
165  SCC_CROSS = SCC_SPRITE_START + 0xAD,
166  SCC_RIGHT_ARROW = SCC_SPRITE_START + 0xAF,
167  SCC_TRAIN = SCC_SPRITE_START + 0xB4,
168  SCC_LORRY = SCC_SPRITE_START + 0xB5,
169  SCC_BUS = SCC_SPRITE_START + 0xB6,
170  SCC_PLANE = SCC_SPRITE_START + 0xB7,
171  SCC_SHIP = SCC_SPRITE_START + 0xB8,
172  SCC_SUPERSCRIPT_M1 = SCC_SPRITE_START + 0xB9,
173  SCC_SMALL_UP_ARROW = SCC_SPRITE_START + 0xBC,
174  SCC_SMALL_DOWN_ARROW = SCC_SPRITE_START + 0xBD,
175 };
176 
177 #endif /* CONTROL_CODES_H */
9A 17: Read 4 bytes from the stack as base 0 date
9A 03: Pushes 2 bytes onto the stack
Inline another string at the current position, StringID is encoded in the string. ...
StringControlCode
List of string control codes used for string formatting, displaying, and by strgen to generate the la...
Definition: control_codes.h:17
83: Read 2 bytes from the stack as base 1920 date
86: Rotate the top 4 words of the stack (W4 W1 W2 W3)
Switch to large font.
Definition: control_codes.h:31
82: Read 2 bytes from the stack as base 1920 date
9A 1C: Read 2 + 2 bytes from the stack as cargo type (translated) and unsigned cargo amount ...
9A 04: "Unprints" the given number of bytes from the string
The next variables are part of a NewGRF subsystem for creating text strings.
9A 0C: Read 2 bytes from the stack as station name
9A 07: Read 2 bytes from the stack and print it as hex
Switch to monospaced font.
Definition: control_codes.h:32
9A 1B: Read 2 + 2 bytes from the stack as cargo type (translated) and unsigned cargo amount ...
9A 18: Read 2 bytes from the stack as unsigned power
9A 1A: Read 2 bytes from the stack as short unsigned weight
81: Read 2 bytes from the stack as String ID
87: Read 2 bytes from the stack as long signed volume
9A 08: Read 4 bytes from the stack and print it as hex
9A 0B: Read 8 bytes from the stack and print it as hex
9A 1E: Read 2 bytes from the stack as cargo name
7C: Read 2 bytes from the stack as signed value
85: Discard the next two bytes
9A 16: Read 4 bytes from the stack as base 0 date
7D: Read 1 byte from the stack as signed value
7B: Read 4 bytes from the stack
Switch to normal size font.
Definition: control_codes.h:29
8F: Read 4 bytes from the stack as currency
9A 01: Read 8 bytes from the stack as currency
84: Read 2 bytes from the stack as signed speed
9A 0D: Read 2 bytes from the stack as long unsigned weight
9A 06: Read 1 byte from the stack and print it as hex
7E: Read 2 bytes from the stack as unsigned value
9A 19: Read 2 bytes from the stack as short signed volume
Switch to small font.
Definition: control_codes.h:30
9A 1D: Read 2 + 2 bytes from the stack as cargo type (translated) and unsigned cargo amount ...