(svn r9919) -Codechange: prepare some more places for more road types.
authorrubidium
Fri, 25 May 2007 11:01:44 +0000
changeset 7183 23b20a982228
parent 7182 644a1d06f2be
child 7184 0bb4f20ec012
(svn r9919) -Codechange: prepare some more places for more road types.
src/autoreplace_gui.cpp
src/roadveh_cmd.cpp
src/tunnelbridge_cmd.cpp
--- a/src/autoreplace_gui.cpp	Fri May 25 08:47:40 2007 +0000
+++ b/src/autoreplace_gui.cpp	Fri May 25 11:01:44 2007 +0000
@@ -160,6 +160,9 @@
 			/* This is for engines we can replace to and they should depend on what we selected to replace from */
 			if (!IsEngineBuildable(e, type, _local_player)) continue; // we need to be able to build the engine
 			if (!EnginesGotCargoInCommon(e, WP(w, replaceveh_d).sel_engine[0])) continue; // the engines needs to be able to carry the same cargo
+
+			/* Road vehicles can't be replaced by trams and vice-versa */
+			if (type == VEH_ROAD && HASBIT(EngInfo(WP(w, replaceveh_d).sel_engine[0])->misc_flags, EF_ROAD_TRAM) != HASBIT(EngInfo(e)->misc_flags, EF_ROAD_TRAM)) continue;
 			if (e == WP(w, replaceveh_d).sel_engine[0]) continue; // we can't replace an engine into itself (that would be autorenew)
 		}
 
--- a/src/roadveh_cmd.cpp	Fri May 25 08:47:40 2007 +0000
+++ b/src/roadveh_cmd.cpp	Fri May 25 11:01:44 2007 +0000
@@ -957,6 +957,9 @@
 		return;
 	}
 
+	/* Trams can't overtake other trams */
+	if (v->u.road.roadtype == ROADTYPE_TRAM) return;
+
 	if (v->direction != u->direction || !(v->direction & 1)) return;
 
 	/* Check if vehicle is in a road stop, depot, tunnel or bridge or not on a straight road */
--- a/src/tunnelbridge_cmd.cpp	Fri May 25 08:47:40 2007 +0000
+++ b/src/tunnelbridge_cmd.cpp	Fri May 25 11:01:44 2007 +0000
@@ -1048,6 +1048,10 @@
 		pal = psid->pal;
 	}
 
+	if (GetRailType(rampsouth) == RAILTYPE_ELECTRIC) {
+		DrawCatenary(ti);
+	}
+
 	/* draw roof, the component of the bridge which is logically between the vehicle and the camera */
 	if (axis == AXIS_X) {
 		y += 12;
@@ -1057,8 +1061,6 @@
 		if (image & SPRITE_MASK) AddSortableSpriteToDraw(image, pal, x, y, 1, 16, 0x28, z);
 	}
 
-	if (GetRailType(rampsouth) == RAILTYPE_ELECTRIC) DrawCatenary(ti);
-
 	psid++;
 	if (ti->z + 5 == z) {
 		/* draw poles below for small bridges */