Files
@ r4346:fa4ac6b6f852
Branch filter:
Location: cpp/openttd-patchpack/source/table/autorail.h - annotation
r4346:fa4ac6b6f852
3.8 KiB
text/x-c
(svn r6047) -Codechange: FOR_ALL now _only_ loops valid items, and skips invalid ones
-Codechange: use IsValidXXX where ever possible
Note: both changes to prepare for new pool system, which needs those changes.
For every pool there are 2 ugly lines, which will be removed when done
implementing new pool system.
Based on FS#13 by blathijs, partly implemented.
-Codechange: use IsValidXXX where ever possible
Note: both changes to prepare for new pool system, which needs those changes.
For every pool there are 2 ugly lines, which will be removed when done
implementing new pool system.
Based on FS#13 by blathijs, partly implemented.
r2186:5ee653b1b5e1 r2186:5ee653b1b5e1 r1070:7d6110393535 r1070:7d6110393535 r1070:7d6110393535 r1070:7d6110393535 r1070:7d6110393535 r1070:7d6110393535 r1070:7d6110393535 r1070:7d6110393535 r1070:7d6110393535 r1070:7d6110393535 r1070:7d6110393535 r1070:7d6110393535 r1070:7d6110393535 r2752:65f0a677c814 r1070:7d6110393535 r1070:7d6110393535 r1070:7d6110393535 r1070:7d6110393535 r1070:7d6110393535 r1070:7d6110393535 r1070:7d6110393535 r1070:7d6110393535 r1070:7d6110393535 r1070:7d6110393535 r1070:7d6110393535 r2710:84abacdb8c06 r1070:7d6110393535 r1070:7d6110393535 r1070:7d6110393535 r1070:7d6110393535 r1070:7d6110393535 r1070:7d6110393535 r1070:7d6110393535 r1070:7d6110393535 r1070:7d6110393535 r1070:7d6110393535 r1070:7d6110393535 r1070:7d6110393535 r4253:3a466f02bf1e r1070:7d6110393535 r1070:7d6110393535 r1070:7d6110393535 r4253:3a466f02bf1e r1070:7d6110393535 r4253:3a466f02bf1e r4253:3a466f02bf1e r1070:7d6110393535 r1070:7d6110393535 r1070:7d6110393535 r1070:7d6110393535 r1070:7d6110393535 r1070:7d6110393535 r2752:65f0a677c814 r1070:7d6110393535 r1070:7d6110393535 r1070:7d6110393535 r1070:7d6110393535 r1070:7d6110393535 r1070:7d6110393535 r1070:7d6110393535 r1070:7d6110393535 r1070:7d6110393535 r1070:7d6110393535 r1070:7d6110393535 r1070:7d6110393535 r1070:7d6110393535 r1070:7d6110393535 r1070:7d6110393535 r1070:7d6110393535 r1070:7d6110393535 | /* $Id$ */
/* Rail selection types (directions):
/ \ / \ / \ / \ / \ / \
/ /\ /\ \ /===\ / \ /| \ / |\
\/ / \ \/ \ / \===/ \| / \ |/
\ / \ / \ / \ / \ / \ /
0 1 2 3 4 5
*/
// mark invalid tiles red
#define RED(c) c | PALETTE_SEL_TILE_RED
// table maps each of the six rail directions and tileh combinations to a sprite
// invalid entries are required to make sure that this array can be quickly accessed
static const int _AutorailTilehSprite[][6] = {
// type 0 1 2 3 4 5
{ 0, 8, 16, 25, 34, 42 }, // tileh = 0
{ 5, 13, RED(22), RED(31), 35, 42 }, // tileh = 1
{ 5, 10, 16, 26, RED(38), RED(46) }, // tileh = 2
{ 5, 9, RED(23), 26, 35, RED(46) }, // tileh = 3
{ 2, 10, RED(19), RED(28), 34, 43 }, // tileh = 4
{ 1, 9, 17, 26, 35, 43 }, // tileh = 5
{ 1, 10, RED(20), 26, RED(38), 43 }, // tileh = 6
{ 1, 9, 17, 26, 35, 43 }, // tileh = 7
{ 2, 13, 17, 25, RED(40), RED(48) }, // tileh = 8
{ 1, 13, 17, RED(32), 35, RED(48) }, // tileh = 9
{ 1, 9, 17, 26, 35, 43 }, // tileh = 10
{ 1, 9, 17, 26, 35, 43 }, // tileh = 11
{ 2, 9, 17, RED(29), RED(40), 43 }, // tileh = 12
{ 1, 9, 17, 26, 35, 43 }, // tileh = 13
{ 1, 9, 17, 26, 35, 43 }, // tileh = 14
{ 0, 1, 2, 3, 4, 5 }, // invalid (15)
{ 0, 1, 2, 3, 4, 5 }, // invalid (16)
{ 0, 1, 2, 3, 4, 5 }, // invalid (17)
{ 0, 1, 2, 3, 4, 5 }, // invalid (18)
{ 0, 1, 2, 3, 4, 5 }, // invalid (19)
{ 0, 1, 2, 3, 4, 5 }, // invalid (20)
{ 0, 1, 2, 3, 4, 5 }, // invalid (21)
{ 0, 1, 2, 3, 4, 5 }, // invalid (22)
{ 6, 11, 17, 27, RED(39), RED(47) }, // tileh = 23
{ 0, 1, 2, 3, 4, 5 }, // invalid (24)
{ 0, 1, 2, 3, 4, 5 }, // invalid (25)
{ 0, 1, 2, 3, 4, 5 }, // invalid (26)
{ 7, 15, RED(24), RED(33), 36, 44 }, // tileh = 27
{ 0, 1, 2, 3, 4, 5 }, // invalid (28)
{ 3, 14, 18, 26, RED(41), RED(49) }, // tileh = 29
{ 4, 12, RED(21), RED(30), 37, 45 } // tileh = 30
};
#undef RED
// maps each pixel of a tile (16x16) to a selection type
// (0,0) is the top corner, (16,16) the bottom corner
static const byte _AutorailPiece[][16] = {
{ 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5 },
{ 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5 },
{ 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5 },
{ 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5 },
{ 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5 },
{ 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5 },
{ 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1 },
{ 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3 },
{ 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3 },
{ 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3 },
{ 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3 },
{ 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3 },
{ 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3 }
};
|