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