(svn r2448) General cleanup of rail related code, more to follow.
* Add: rail.[ch] for rail-related enums and wrapper functions.
* Codechange: Removed dozens of magic numbers with below enums.
* Codechange: Rewrote CheckTrackCombination().
* Add: TILE_SIZE, TILE_PIXELS and TILE_HEIGHT constants.
* Add: enums RailTileType, RailTileSubtype, SignalType to mask against the map arrays.
* Add: enums Track, TrackBits, Trackdir, TrackdirBits for railway track data. (Note that the old RAIL_BIT constants are replaced by TRACK_BIT ones).
* Add: enums Direction and DiagDirection
* Codechange: Moved a bunch of track(dir) related lookup arrays from npf.[ch] to rail.[ch].
* Codechange: move RailType enum from tile.h to rail.h.
* Add: Wrapper functions for masking signal status in the map arrays: SignalAlongTrackdir, SignalAgainstTrackdir and SignalOnTrack.
* Add: Wrapper functions to access rail tiles, using above enums
* Add: Wrapper functions to modify tracks, trackdirs, directions, etc.
* Add: Wrapper functions for all lookup arrays in rail.[ch] (Arrays are still used in parts of the code)
* Codechange: Renamed some variables and arguments to better represent what they contain (railbit -> track, bits -> trackdirbits, etc.).
* Codechange: Don't use FindLandscapeHeight() in CmdRemoveSingleRail(), since it returns way too much info. Use GetTileSlope() instead.
* Codechange: [NPF] Removed some unused globals and code from npf.c.
#define TILE_SEQ_END() { 0x80, 0, 0, 0, 0, 0, 0 }
static const DrawTileUnmovableStruct _draw_tile_unmovable_data[] = {
{0xA29, 7,7, 2,2, 70, 0},
{0xA2A, 4,4, 7,7, 61, 0},
};
static const DrawTileSeqStruct _unmovable_display_datas_0[] = {
TILE_SEQ_END()
};
static const DrawTileSeqStruct _unmovable_display_datas_1[] = {
TILE_SEQ_END()
};
static const DrawTileSeqStruct _unmovable_display_datas_2[] = {
TILE_SEQ_END()
};
static const DrawTileSeqStruct _unmovable_display_datas_3[] = {
TILE_SEQ_END()
};
static const DrawTileSeqStruct _unmovable_display_datas_4[] = {
TILE_SEQ_END()
};
static const DrawTileSeqStruct _unmovable_display_datas_5[] = {
TILE_SEQ_END()
};
static const DrawTileSeqStruct _unmovable_display_datas_6[] = {
TILE_SEQ_END()
};
static const DrawTileSeqStruct _unmovable_display_datas_7[] = {
TILE_SEQ_END()
};
static const DrawTileSeqStruct _unmovable_display_datas_8[] = {
{ 0, 0, 0, 16, 16, 20, 0x8A34 },
TILE_SEQ_END()
};
static const DrawTileSeqStruct _unmovable_display_datas_9[] = {
{ 0, 0, 0, 16, 16, 20, 0x8A36 },
TILE_SEQ_END()
};
static const DrawTileSeqStruct _unmovable_display_datas_10[] = {
{ 0, 0, 0, 16, 16, 20, 0x8A38 },
TILE_SEQ_END()
};
static const DrawTileSeqStruct _unmovable_display_datas_11[] = {
TILE_SEQ_END()
};
static const DrawTileSeqStruct _unmovable_display_datas_12[] = {
{ 0, 0, 0, 16, 16, 50, 0x8A3B },
TILE_SEQ_END()
};
static const DrawTileSeqStruct _unmovable_display_datas_13[] = {
{ 0, 0, 0, 16, 16, 50, 0x8A3D },
TILE_SEQ_END()
};
static const DrawTileSeqStruct _unmovable_display_datas_14[] = {
{ 0, 0, 0, 16, 16, 50, 0x8A3F },
TILE_SEQ_END()
};
static const DrawTileSeqStruct _unmovable_display_datas_15[] = {
TILE_SEQ_END()
};
static const DrawTileSeqStruct _unmovable_display_datas_16[] = {
{ 0, 0, 0, 16, 16, 60, 0x8A42 },
TILE_SEQ_END()
};
static const DrawTileSeqStruct _unmovable_display_datas_17[] = {
{ 0, 0, 0, 16, 16, 60, 0x8A44 },
TILE_SEQ_END()
};
static const DrawTileSeqStruct _unmovable_display_datas_18[] = {
{ 0, 0, 0, 16, 16, 60, 0x8A46 },
TILE_SEQ_END()
};
static const DrawTileSeqStruct _unmovable_display_datas_19[] = {
TILE_SEQ_END()
};
static const DrawTileSprites _unmovable_display_datas[] = {
{ 0x8A2B, _unmovable_display_datas_0 },
{ 0x8A2C, _unmovable_display_datas_1 },
{ 0x8A2D, _unmovable_display_datas_2 },
{ 0x8A2E, _unmovable_display_datas_3 },
{ 0x8A2F, _unmovable_display_datas_4 },
{ 0x8A30, _unmovable_display_datas_5 },
{ 0x8A31, _unmovable_display_datas_6 },
{ 0x8A32, _unmovable_display_datas_7 },
{ 0x8A33, _unmovable_display_datas_8 },
{ 0x8A35, _unmovable_display_datas_9 },
{ 0x8A37, _unmovable_display_datas_10 },
{ 0x8A39, _unmovable_display_datas_11 },
{ 0x8A3A, _unmovable_display_datas_12 },
{ 0x8A3C, _unmovable_display_datas_13 },
{ 0x8A3E, _unmovable_display_datas_14 },
{ 0x8A40, _unmovable_display_datas_15 },
{ 0x8A41, _unmovable_display_datas_16 },
{ 0x8A43, _unmovable_display_datas_17 },
{ 0x8A45, _unmovable_display_datas_18 },
{ 0x8A47, _unmovable_display_datas_19 },
};