Changeset - r3253:e837257ca698
[Not reviewed]
master
0 2 0
tron - 19 years ago 2006-03-18 09:06:07
tron@openttd.org
(svn r3941) Get rid of RAIL_TYPE_SPECIAL
2 files changed with 14 insertions and 32 deletions:
rail.h
16
rail_cmd.c
14
16
0 comments (0 inline, 0 general)
rail.h
Show inline comments
 
@@ -9,22 +9,6 @@
 
#include "rail_map.h"
 
#include "tile.h"
 

	
 
/*
 
 * Some enums for accesing the map bytes for rail tiles
 
 */
 

	
 
enum { /* DEPRECATED TODO: Rewrite all uses of this */
 
	RAIL_TYPE_SPECIAL = 0x80, /* This used to say "If this bit is set, then it's
 
														 * not a regular track.", but currently, you
 
														 * should rather view map5[6..7] as one type,
 
														 * containing a value from RailTileTypes above.
 
														 * This value is only maintained for backwards
 
														 * compatibility */
 

	
 
	/* There used to be RAIL_BIT_* enums here, they moved to (for now) npf.c as
 
	 * TRACK_BIT_* */
 
};
 

	
 

	
 
/** These are a combination of tracks and directions. Values are 0-5 in one
 
direction (corresponding to the Track enum) and 8-13 in the other direction. */
rail_cmd.c
Show inline comments
 
@@ -315,7 +315,7 @@ int32 CmdBuildSingleRail(int x, int y, u
 
					!EnsureNoVehicle(tile)) {
 
				return CMD_ERROR;
 
			}
 
			if (m5 & RAIL_TYPE_SPECIAL ||
 
			if (GetRailTileType(tile) == RAIL_TYPE_DEPOT_WAYPOINT ||
 
					!IsTileOwner(tile, _current_player) ||
 
					GetRailType(tile) != p1) {
 
				// Get detailed error message
 
@@ -1038,8 +1038,9 @@ static int32 ClearTile_Track(TileIndex t
 
	m5 = _m[tile].m5;
 

	
 
	if (flags & DC_AUTO) {
 
		if (m5 & RAIL_TYPE_SPECIAL)
 
		if (GetRailTileType(tile) == RAIL_TYPE_DEPOT_WAYPOINT) {
 
			return_cmd_error(STR_2004_BUILDING_MUST_BE_DEMOLISHED);
 
		}
 

	
 
		if (!IsTileOwner(tile, _current_player))
 
			return_cmd_error(STR_1024_AREA_IS_OWNED_BY_ANOTHER);
 
@@ -1349,7 +1350,7 @@ static void DrawTile_Track(TileInfo *ti)
 
	_drawtile_track_palette = SPRITE_PALETTE(PLAYER_SPRITE_COLOR(GetTileOwner(ti->tile)));
 

	
 
	m5 = (byte)ti->map5;
 
	if (!(m5 & RAIL_TYPE_SPECIAL)) {
 
	if (GetRailTileType(ti->tile) != RAIL_TYPE_DEPOT_WAYPOINT) {
 
		bool earth = (_m[ti->tile].m2 & RAIL_MAP2LO_GROUND_MASK) == RAIL_GROUND_BROWN;
 
		bool snow = (_m[ti->tile].m2 & RAIL_MAP2LO_GROUND_MASK) == RAIL_GROUND_ICE_DESERT;
 

	
 
@@ -1360,8 +1361,7 @@ static void DrawTile_Track(TileInfo *ti)
 
		}
 

	
 
		/* draw signals also? */
 
		if (!(ti->map5 & RAIL_TYPE_SIGNALS))
 
			return;
 
		if (GetRailTileType(ti->tile) != RAIL_TYPE_SIGNALS) return;
 

	
 
		{
 
			byte m23;
 
@@ -1404,12 +1404,6 @@ static void DrawTile_Track(TileInfo *ti)
 
		const DrawTrackSeqStruct *drss;
 
		byte type = m5 & 0x3F; // 0-3: depots, 4-5: waypoints
 

	
 
		if (!(m5 & (RAIL_TILE_TYPE_MASK&~RAIL_TYPE_SPECIAL)))
 
			/* XXX: There used to be "return;" here, but since I could not find out
 
			 * why this would ever occur, I put assert(0) here. Let's see if someone
 
			 * complains about it. If not, we'll remove this check. (Matthijs). */
 
			 assert(0);
 

	
 
		if (ti->tileh != 0) DrawFoundation(ti, ti->tileh);
 

	
 
		if (IsRailWaypoint(ti->tile) && HASBIT(_m[ti->tile].m3, 4)) {
 
@@ -1855,7 +1849,11 @@ static void TileLoop_Track(TileIndex til
 
	byte old_ground;
 
	byte new_ground;
 

	
 
	old_ground = _m[tile].m5 & RAIL_TYPE_SPECIAL ? GB(_m[tile].m4, 0, 4) : GB(_m[tile].m2, 0, 4);
 
	if (GetRailType(tile) == RAIL_TYPE_DEPOT_WAYPOINT) {
 
		old_ground = GB(_m[tile].m4, 0, 4);
 
	} else {
 
		old_ground = GB(_m[tile].m2, 0, 4);
 
	}
 

	
 
	switch (_opt.landscape) {
 
		case LT_HILLY:
 
@@ -1874,7 +1872,7 @@ static void TileLoop_Track(TileIndex til
 
	}
 

	
 
	// Don't continue tile loop for depots
 
	if (_m[tile].m5 & RAIL_TYPE_SPECIAL) return;
 
	if (GetRailType(tile) == RAIL_TYPE_DEPOT_WAYPOINT) return;
 

	
 
	new_ground = RAIL_GROUND_GREEN;
 

	
 
@@ -1956,7 +1954,7 @@ static void TileLoop_Track(TileIndex til
 
modify_me:;
 
	/* tile changed? */
 
	if (old_ground != new_ground) {
 
		if (_m[tile].m5 & RAIL_TYPE_SPECIAL) {
 
		if (GetRailTileType(tile) == RAIL_TYPE_DEPOT_WAYPOINT) {
 
			SB(_m[tile].m4, 0, 4, new_ground);
 
		} else {
 
			SB(_m[tile].m2, 0, 4, new_ground);
 
@@ -1976,9 +1974,9 @@ static uint32 GetTileTrackStatus_Track(T
 

	
 
	m5 = _m[tile].m5;
 

	
 
	if (!(m5 & RAIL_TYPE_SPECIAL)) {
 
	if (GetRailType(tile) != RAIL_TYPE_DEPOT_WAYPOINT) {
 
		ret = (m5 | (m5 << 8)) & 0x3F3F;
 
		if (!(m5 & RAIL_TYPE_SIGNALS)) {
 
		if (GetRailType(tile) != RAIL_TYPE_SIGNALS) {
 
			if ( (ret & 0xFF) == 3)
 
			/* Diagonal crossing? */
 
				ret |= 0x40;
0 comments (0 inline, 0 general)