OpenTTD Source  20240919-master-gdf0233f4c2
train_sprites.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 static const SpriteID _engine_sprite_base[] = {
11 0x0B59, 0x0B61, 0x0B69, 0x0BE1, 0x0B71, 0x0B75, 0x0B7D, 0x0B7D,
12 0x0B85, 0x0B85, 0x0B8D, 0x0B8D, 0x0BC9, 0x0BD1, 0x0BD9, 0x0BE9,
13 0x0BED, 0x0BED, 0x0BF5, 0x0BF9, 0x0B79, 0x0B9D, 0x0B9D, 0x0B95,
14 0x0B95, 0x0BA5, 0x0BA9, 0x0BA9, 0x0BC1, 0x0BC5, 0x0BB1, 0x0BB9,
15 0x0BB9, 0x0AAD, 0x0AB1, 0x0AB5, 0x0AB9, 0x0ABD, 0x0AC1, 0x0AC9,
16 0x0ACD, 0x0AD5, 0x0AD1, 0x0AD9, 0x0AC5, 0x0AD1, 0x0AD5, 0x0AF9,
17 0x0AFD, 0x0B05, 0x0AB9, 0x0AC1, 0x0AC9, 0x0AD1, 0x0AD9, 0x0AE1,
18 0x0AE5, 0x0AE9, 0x0AF1, 0x0AF9, 0x0B0D, 0x0B11, 0x0B15, 0x0B19,
19 0x0B1D, 0x0B21, 0x0B29, 0x0B2D, 0x0B35, 0x0B31, 0x0B39, 0x0B25,
20 0x0B31, 0x0B35,
21 };
22 
23 /* For how many directions do we have sprites? (8 or 4; if 4, the other 4
24  * directions are symmetric. */
25 static const uint8_t _engine_sprite_and[] = {
26 7, 7, 7, 7, 3, 3, 7, 7,
27 7, 7, 7, 7, 7, 7, 7, 3,
28 7, 7, 3, 7, 3, 7, 7, 7,
29 7, 3, 7, 7, 3, 3, 7, 7,
30 7, 3, 3, 3, 3, 3, 3, 3,
31 3, 3, 3, 3, 3, 3, 3, 3,
32 3, 3, 3, 3, 3, 3, 3, 3,
33 3, 3, 3, 3, 3, 3, 3, 3,
34 3, 3, 3, 3, 3, 3, 3, 3,
35 3, 3,
36 };
37 
38 /* Non-zero for multihead trains. */
39 static const uint8_t _engine_sprite_add[] = {
40 0, 0, 0, 0, 0, 0, 0, 4,
41 0, 4, 0, 4, 0, 0, 0, 0,
42 0, 4, 0, 0, 0, 0, 4, 0,
43 4, 0, 0, 4, 0, 0, 0, 0,
44 4, 0, 0, 0, 0, 0, 0, 0,
45 0, 0, 0, 0, 0, 0, 0, 0,
46 0, 0, 0, 0, 0, 0, 0, 0,
47 0, 0, 0, 0, 0, 0, 0, 0,
48 0, 0, 0, 0, 0, 0, 0, 0,
49 0, 0,
50 };
51 
52 
53 static const uint8_t _wagon_full_adder[] = {
54  0, 0, 0, 0, 0, 0, 0, 0,
55  0, 0, 0, 0, 0, 0, 0, 0,
56  0, 0, 0, 0, 0, 0, 0, 0,
57  0, 0, 0, 0, 0, 0, 0, 0,
58  0, 0, 44, 0, 0, 0, 0, 24,
59  24, 24, 24, 0, 0, 32, 32, 0,
60  4, 4, 4, 4, 4, 4, 4, 0,
61  0, 4, 4, 4, 0, 44, 0, 0,
62  0, 0, 24, 24, 24, 24, 0, 0,
63  32, 32
64 };
65 
66 static_assert(lengthof(_engine_sprite_base) == lengthof(_engine_sprite_and));
67 static_assert(lengthof(_engine_sprite_base) == lengthof(_engine_sprite_add));
68 static_assert(lengthof(_engine_sprite_base) == lengthof(_wagon_full_adder));
lengthof
#define lengthof(array)
Return the length of an fixed size array.
Definition: stdafx.h:280
SpriteID
uint32_t SpriteID
The number of a sprite, without mapping bits and colourtables.
Definition: gfx_type.h:18