diff options
-rw-r--r-- | src/autoreplace_gui.cpp | 3 | ||||
-rw-r--r-- | src/roadveh_cmd.cpp | 3 | ||||
-rw-r--r-- | src/tunnelbridge_cmd.cpp | 6 |
3 files changed, 10 insertions, 2 deletions
diff --git a/src/autoreplace_gui.cpp b/src/autoreplace_gui.cpp index 9a0e1467e..e1925e7d0 100644 --- a/src/autoreplace_gui.cpp +++ b/src/autoreplace_gui.cpp @@ -160,6 +160,9 @@ static void GenerateReplaceVehList(Window *w, bool draw_left) /* 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) } diff --git a/src/roadveh_cmd.cpp b/src/roadveh_cmd.cpp index a331c430f..9a00a6af4 100644 --- a/src/roadveh_cmd.cpp +++ b/src/roadveh_cmd.cpp @@ -957,6 +957,9 @@ static void RoadVehCheckOvertake(Vehicle *v, Vehicle *u) 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 */ diff --git a/src/tunnelbridge_cmd.cpp b/src/tunnelbridge_cmd.cpp index ce5803f75..4be63214b 100644 --- a/src/tunnelbridge_cmd.cpp +++ b/src/tunnelbridge_cmd.cpp @@ -1048,6 +1048,10 @@ void DrawBridgeMiddle(const TileInfo* ti) 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 @@ void DrawBridgeMiddle(const TileInfo* ti) 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 */ |