(svn r4164) Use acessor functions
authortron
Thu, 30 Mar 2006 09:08:43 +0000
changeset 3367 3f82c99d42af
parent 3366 f182d594964b
child 3368 57034dcd7978
(svn r4164) Use acessor functions
elrail.c
openttd.c
road_cmd.c
tunnelbridge_cmd.c
--- a/elrail.c	Thu Mar 30 00:48:45 2006 +0000
+++ b/elrail.c	Thu Mar 30 09:08:43 2006 +0000
@@ -45,6 +45,7 @@
 
 #include "stdafx.h"
 #include "openttd.h"
+#include "station_map.h"
 #include "tile.h"
 #include "viewport.h"
 #include "functions.h" /* We should REALLY get rid of this goddamn file, as it is butt-ugly */
@@ -83,7 +84,7 @@
 			if (IsTunnel(t)) {
 				if (GetRailType(t) != RAILTYPE_ELECTRIC) return 0;
 				if (override != NULL) *override = 1 << GetTunnelDirection(t);
-				return (_m[t].m5 & 1) ? TRACK_BIT_Y : TRACK_BIT_X;
+				return DiagDirToAxis(GetTunnelDirection(t)) == AXIS_X ? TRACK_BIT_X : TRACK_BIT_Y;
 			} else {
 				if (GetRailType(t) != RAILTYPE_ELECTRIC) return 0;
 				if (
@@ -98,11 +99,11 @@
 				}
 			}
 		case MP_STREET:
-			if ((_m[t].m4 & 0xF) != RAILTYPE_ELECTRIC) return 0;
+			if (GetRailTypeCrossing(t) != RAILTYPE_ELECTRIC) return 0;
 			return GetCrossingRailBits(t);
 		case MP_STATION:
 			if (GetRailType(t) != RAILTYPE_ELECTRIC) return 0;
-			return _m[t].m5 & 1 ? TRACK_BIT_Y : TRACK_BIT_X;
+			return GetRailStationTrack(t);
 		default:
 			return 0;
 	}
--- a/openttd.c	Thu Mar 30 00:48:45 2006 +0000
+++ b/openttd.c	Thu Mar 30 09:08:43 2006 +0000
@@ -13,6 +13,7 @@
 
 #define VARDEF
 #include "openttd.h"
+#include "bridge_map.h"
 #include "functions.h"
 #include "mixer.h"
 #include "spritecache.h"
@@ -20,6 +21,8 @@
 #include "gfxinit.h"
 #include "gui.h"
 #include "station.h"
+#include "station_map.h"
+#include "tunnel_map.h"
 #include "vehicle.h"
 #include "viewport.h"
 #include "window.h"
@@ -1274,23 +1277,25 @@
 					break;
 
 				case MP_STATION:
-					if (_m[t].m5 < 8 && (GB(_m[t].m3, 0, 4) > RAILTYPE_RAIL || make_elrail)) AB(_m[t].m3, 0, 4, 1);
+					if (IsRailwayStation(t) && (GB(_m[t].m3, 0, 4) > RAILTYPE_RAIL || make_elrail)) AB(_m[t].m3, 0, 4, 1);
 					break;
 
 				case MP_TUNNELBRIDGE:
-					if (GB(_m[t].m5, 4, 4) == 0) { // tunnel?
-						if (GB(_m[t].m5, 2, 2) == 0) { // railway tunnel?
+					if (IsTunnel(t)) {
+						if (GetTunnelTransportType(t) == TRANSPORT_RAIL) {
 							if (GB(_m[t].m3, 0, 4) > RAILTYPE_RAIL || make_elrail) AB(_m[t].m3, 0, 4, 1);
 						}
 					} else {
-						if (GB(_m[t].m5, 1, 2) == 0) { // railway bridge?
-							if (GB(_m[t].m5, 6, 1) == 0) { // bridge ending?
+						if (GetBridgeTransportType(t) == TRANSPORT_RAIL) {
+							if (IsBridgeRamp(t)) {
 								if (GB(_m[t].m3, 0, 4) > RAILTYPE_RAIL || make_elrail) AB(_m[t].m3, 0, 4, 1);
 							} else {
 								if (GB(_m[t].m3, 4, 4) > RAILTYPE_RAIL || make_elrail) AB(_m[t].m3, 4, 4, 1);
 							}
 						}
-						if ((_m[t].m5 & 0xF8) == 0xE0) { // bridge middle part with rails below?
+						if (IsBridgeMiddle(t) &&
+								IsTransportUnderBridge(t) &&
+								GetTransportTypeUnderBridge(t) == TRANSPORT_RAIL) {
 							if (GB(_m[t].m3, 0, 4) > RAILTYPE_RAIL || make_elrail) AB(_m[t].m3, 0, 4, 1);
 						}
 					}
--- a/road_cmd.c	Thu Mar 30 00:48:45 2006 +0000
+++ b/road_cmd.c	Thu Mar 30 09:08:43 2006 +0000
@@ -787,7 +787,7 @@
 			}
 
 			DrawGroundSprite(image);
-			if (GB(_m[ti->tile].m4, 0, 4) == RAILTYPE_ELECTRIC) DrawCatenary(ti);
+			if (GetRailTypeCrossing(ti->tile) == RAILTYPE_ELECTRIC) DrawCatenary(ti);
 			break;
 		}
 
@@ -1014,9 +1014,9 @@
 						0 : _road_trackbits[GetRoadBits(tile)] * 0x101;
 
 				case ROAD_CROSSING: {
-					uint32 r = (GetCrossingRoadAxis(tile) == AXIS_X ? TRACK_BIT_X : TRACK_BIT_Y) * 0x101;
+					uint32 r = GetCrossingRailBits(tile) * 0x101;
 
-					if (_m[tile].m5 & 4) r *= 0x10001;
+					if (IsCrossingBarred(tile)) r *= 0x10001;
 					return r;
 				}
 
--- a/tunnelbridge_cmd.c	Thu Mar 30 00:48:45 2006 +0000
+++ b/tunnelbridge_cmd.c	Thu Mar 30 09:08:43 2006 +0000
@@ -1252,14 +1252,14 @@
 			return DiagDirToAxis(GetTunnelDirection(tile)) == AXIS_X ? 0x101 : 0x202;
 		}
 	} else if (IsBridge(tile)) { // XXX is this necessary?
-		/* This is a bridge */
-		result = 0;
-		if (GetBridgeTransportType(tile) == mode) {
-			/* Transport over the bridge is compatible */
-			result = (GetBridgeAxis(tile) == AXIS_X ? 0x101 : 0x202);
-		}
-		if (IsBridgeMiddle(tile)) {
-			/* Bridge middle part */
+		if (IsBridgeRamp(tile)) {
+			if (GetBridgeTransportType(tile) != mode) return 0;
+			return (DiagDirToAxis(GetBridgeRampDirection(tile)) == AXIS_X ? TRACK_BIT_X : TRACK_BIT_Y) * 0x101;
+		} else {
+			result = 0;
+			if (GetBridgeTransportType(tile) == mode) {
+				result = (GetBridgeAxis(tile) == AXIS_X ? TRACK_BIT_X : TRACK_BIT_Y) * 0x101;
+			}
 			if (IsTransportUnderBridge(tile)) {
 				if (GetTransportTypeUnderBridge(tile) != mode) return result;
 			} else {