(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.
static const SpriteID _landscape_clear_sprites[8] = {
0xFA0,
0xFB3,
0xFB4,
0xFB5,
0xFB6,
0xFA0,
0xFB3,
0xFB4,
};
static const byte _fence_mod_by_tileh[32] = {
0,2,4,0,0,2,4,0,
0,2,4,0,0,2,4,0,
0,2,4,0,0,2,4,4,
0,2,4,2,0,2,4,0,
};
static const byte _fence_mod_by_tileh_2[32] = {
1,1,5,5,3,3,1,1,
1,1,5,5,3,3,1,1,
1,1,5,5,3,3,1,5,
1,1,5,5,3,3,3,1,
};
static const SpriteID _clear_land_fence_sprites_1[7] = {
0xFFA,
0x1000,
0x1006,
0x100C,
0x1012,
0x1018,
};
static const SpriteID _clear_land_sprites_1[16] = {
0x101E,
0x1031,
0x1044,
0x1057,
0x106A,
0x107D,
0x1090,
0x10A3,
0x10B6,
};
static const SpriteID _clear_land_sprites_2[8] = {
0x118D,
0x11A0,
0x11B3,
0x11C6,
};
static const SpriteID _clear_land_sprites_3[8] = {
0x118D,
0x11A0,
0x11B3,
0x11C6,
};