(svn r5617) if cascade -> switch
authortron
Wed, 26 Jul 2006 10:50:46 +0000
changeset 4179 9e09dfdc1316
parent 4178 7c6b3c1bb93c
child 4180 72f8362401b6
(svn r5617) if cascade -> switch
roadveh_cmd.c
--- a/roadveh_cmd.c	Wed Jul 26 10:31:23 2006 +0000
+++ b/roadveh_cmd.c	Wed Jul 26 10:50:46 2006 +0000
@@ -641,40 +641,48 @@
 	}
 
 	v->current_order = *order;
-	v->dest_tile = 0;
 
-	if (order->type == OT_GOTO_STATION) {
-		const Station* st = GetStation(order->station);
-		const RoadStop* rs;
-		TileIndex dest;
-		uint mindist;
+	switch (order->type) {
+		case OT_GOTO_STATION: {
+			const RoadStop* rs;
 
-		if (order->station == v->last_station_visited) {
-			v->last_station_visited = INVALID_STATION;
+			if (order->station == v->last_station_visited) {
+				v->last_station_visited = INVALID_STATION;
+			}
+
+			rs = GetPrimaryRoadStop(
+				GetStation(order->station),
+				v->cargo_type == CT_PASSENGERS ? RS_BUS : RS_TRUCK
+			);
+
+			if (rs != NULL) {
+				TileIndex dest = rs->xy;
+				uint mindist = DistanceManhattan(v->tile, rs->xy);
+
+				for (rs = rs->next; rs != NULL; rs = rs->next) {
+					uint dist = DistanceManhattan(v->tile, rs->xy);
+
+					if (dist < mindist) {
+						mindist = dist;
+						dest = rs->xy;
+					}
+				}
+				v->dest_tile = dest;
+			} else {
+				// There is no stop left at the station, so don't even TRY to go there
+				v->cur_order_index++;
+				v->dest_tile = 0;
+			}
+			break;
 		}
 
-		rs = GetPrimaryRoadStop(st, v->cargo_type == CT_PASSENGERS ? RS_BUS : RS_TRUCK);
-
-		if (rs == NULL) {
-			// There is no stop left at the station, so don't even TRY to go there
-			v->cur_order_index++;
-			InvalidateVehicleOrder(v);
-			return;
-		}
+		case OT_GOTO_DEPOT:
+			v->dest_tile = GetDepot(order->station)->xy;
+			break;
 
-		dest = rs->xy;
-		mindist = DistanceManhattan(v->tile, rs->xy);
-		for (rs = rs->next; rs != NULL; rs = rs->next) {
-			uint dist = DistanceManhattan(v->tile, rs->xy);
-
-			if (dist < mindist) {
-				mindist = dist;
-				dest = rs->xy;
-			}
-		}
-		v->dest_tile = dest;
-	} else if (order->type == OT_GOTO_DEPOT) {
-		v->dest_tile = GetDepot(order->station)->xy;
+		default:
+			v->dest_tile = 0;
+			break;
 	}
 
 	InvalidateVehicleOrder(v);