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 
8 /** @file train_cmd.h Sprites to use for trains. */
9 
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 byte _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 byte _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 byte _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));
69