OpenTTD Source  1.11.2
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 */
SCC_NEWGRF_ROTATE_TOP_4_WORDS
@ SCC_NEWGRF_ROTATE_TOP_4_WORDS
86: Rotate the top 4 words of the stack (W4 W1 W2 W3)
Definition: control_codes.h:153
SCC_NEWGRF_FIRST
@ SCC_NEWGRF_FIRST
The next variables are part of a NewGRF subsystem for creating text strings.
Definition: control_codes.h:123
SCC_NEWGRF_STRINL
@ SCC_NEWGRF_STRINL
Inline another string at the current position, StringID is encoded in the string.
Definition: control_codes.h:156
SCC_NEWGRF_PRINT_WORD_SPEED
@ SCC_NEWGRF_PRINT_WORD_SPEED
84: Read 2 bytes from the stack as signed speed
Definition: control_codes.h:132
SCC_NEWGRF_PRINT_WORD_CARGO_SHORT
@ SCC_NEWGRF_PRINT_WORD_CARGO_SHORT
9A 1C: Read 2 + 2 bytes from the stack as cargo type (translated) and unsigned cargo amount
Definition: control_codes.h:147
SCC_MONOFONT
@ SCC_MONOFONT
Switch to monospaced font.
Definition: control_codes.h:32
SCC_BIGFONT
@ SCC_BIGFONT
Switch to large font.
Definition: control_codes.h:31
SCC_NEWGRF_PRINT_WORD_HEX
@ SCC_NEWGRF_PRINT_WORD_HEX
9A 07: Read 2 bytes from the stack and print it as hex
Definition: control_codes.h:138
SCC_NEWGRF_PRINT_DWORD_DATE_LONG
@ SCC_NEWGRF_PRINT_DWORD_DATE_LONG
9A 16: Read 4 bytes from the stack as base 0 date
Definition: control_codes.h:141
SCC_NEWGRF_DISCARD_WORD
@ SCC_NEWGRF_DISCARD_WORD
85: Discard the next two bytes
Definition: control_codes.h:152
SCC_NEWGRF_PUSH_WORD
@ SCC_NEWGRF_PUSH_WORD
9A 03: Pushes 2 bytes onto the stack
Definition: control_codes.h:150
SCC_NEWGRF_PRINT_WORD_STRING_ID
@ SCC_NEWGRF_PRINT_WORD_STRING_ID
81: Read 2 bytes from the stack as String ID
Definition: control_codes.h:129
SCC_TINYFONT
@ SCC_TINYFONT
Switch to small font.
Definition: control_codes.h:30
SCC_NEWGRF_PRINT_WORD_CARGO_NAME
@ SCC_NEWGRF_PRINT_WORD_CARGO_NAME
9A 1E: Read 2 bytes from the stack as cargo name
Definition: control_codes.h:149
SCC_NEWGRF_PRINT_WORD_CARGO_TINY
@ SCC_NEWGRF_PRINT_WORD_CARGO_TINY
9A 1D: Read 2 + 2 bytes from the stack as cargo type (translated) and unsigned cargo amount
Definition: control_codes.h:148
SCC_NEWGRF_PRINT_DWORD_SIGNED
@ SCC_NEWGRF_PRINT_DWORD_SIGNED
7B: Read 4 bytes from the stack
Definition: control_codes.h:124
SCC_NEWGRF_PRINT_WORD_STATION_NAME
@ SCC_NEWGRF_PRINT_WORD_STATION_NAME
9A 0C: Read 2 bytes from the stack as station name
Definition: control_codes.h:135
SCC_NEWGRF_PRINT_WORD_DATE_LONG
@ SCC_NEWGRF_PRINT_WORD_DATE_LONG
82: Read 2 bytes from the stack as base 1920 date
Definition: control_codes.h:130
SCC_NEWGRF_PRINT_QWORD_CURRENCY
@ SCC_NEWGRF_PRINT_QWORD_CURRENCY
9A 01: Read 8 bytes from the stack as currency
Definition: control_codes.h:136
StringControlCode
StringControlCode
List of string control codes used for string formatting, displaying, and by strgen to generate the la...
Definition: control_codes.h:17
SCC_NEWGRF_PRINT_WORD_SIGNED
@ SCC_NEWGRF_PRINT_WORD_SIGNED
7C: Read 2 bytes from the stack as signed value
Definition: control_codes.h:125
SCC_NEWGRF_PRINT_WORD_VOLUME_SHORT
@ SCC_NEWGRF_PRINT_WORD_VOLUME_SHORT
9A 19: Read 2 bytes from the stack as short signed volume
Definition: control_codes.h:144
SCC_NEWGRF_PRINT_QWORD_HEX
@ SCC_NEWGRF_PRINT_QWORD_HEX
9A 0B: Read 8 bytes from the stack and print it as hex
Definition: control_codes.h:140
SCC_NEWGRF_PRINT_DWORD_DATE_SHORT
@ SCC_NEWGRF_PRINT_DWORD_DATE_SHORT
9A 17: Read 4 bytes from the stack as base 0 date
Definition: control_codes.h:142
SCC_NEWGRF_PRINT_DWORD_CURRENCY
@ SCC_NEWGRF_PRINT_DWORD_CURRENCY
8F: Read 4 bytes from the stack as currency
Definition: control_codes.h:128
SCC_NEWGRF_PRINT_BYTE_HEX
@ SCC_NEWGRF_PRINT_BYTE_HEX
9A 06: Read 1 byte from the stack and print it as hex
Definition: control_codes.h:137
SCC_NEWGRF_PRINT_WORD_CARGO_LONG
@ SCC_NEWGRF_PRINT_WORD_CARGO_LONG
9A 1B: Read 2 + 2 bytes from the stack as cargo type (translated) and unsigned cargo amount
Definition: control_codes.h:146
SCC_NEWGRF_PRINT_WORD_DATE_SHORT
@ SCC_NEWGRF_PRINT_WORD_DATE_SHORT
83: Read 2 bytes from the stack as base 1920 date
Definition: control_codes.h:131
SCC_NEWGRF_PRINT_WORD_VOLUME_LONG
@ SCC_NEWGRF_PRINT_WORD_VOLUME_LONG
87: Read 2 bytes from the stack as long signed volume
Definition: control_codes.h:133
SCC_NEWGRF_PRINT_WORD_UNSIGNED
@ SCC_NEWGRF_PRINT_WORD_UNSIGNED
7E: Read 2 bytes from the stack as unsigned value
Definition: control_codes.h:127
SCC_NEWGRF_PRINT_WORD_WEIGHT_LONG
@ SCC_NEWGRF_PRINT_WORD_WEIGHT_LONG
9A 0D: Read 2 bytes from the stack as long unsigned weight
Definition: control_codes.h:134
SCC_NEWGRF_PRINT_DWORD_HEX
@ SCC_NEWGRF_PRINT_DWORD_HEX
9A 08: Read 4 bytes from the stack and print it as hex
Definition: control_codes.h:139
SCC_NEWGRF_PRINT_WORD_POWER
@ SCC_NEWGRF_PRINT_WORD_POWER
9A 18: Read 2 bytes from the stack as unsigned power
Definition: control_codes.h:143
SCC_NEWGRF_PRINT_BYTE_SIGNED
@ SCC_NEWGRF_PRINT_BYTE_SIGNED
7D: Read 1 byte from the stack as signed value
Definition: control_codes.h:126
SCC_NEWGRF_UNPRINT
@ SCC_NEWGRF_UNPRINT
9A 04: "Unprints" the given number of bytes from the string
Definition: control_codes.h:151
SCC_NORMALFONT
@ SCC_NORMALFONT
Switch to normal size font.
Definition: control_codes.h:29
SCC_NEWGRF_PRINT_WORD_WEIGHT_SHORT
@ SCC_NEWGRF_PRINT_WORD_WEIGHT_SHORT
9A 1A: Read 2 bytes from the stack as short unsigned weight
Definition: control_codes.h:145