src/road_cmd.cpp
changeset 6761 43c0425f9290
parent 6756 44f714e247ba
child 6764 d09d8d618a07
equal deleted inserted replaced
6760:3bd13f9bc39c 6761:43c0425f9290
   425 		}
   425 		}
   426 
   426 
   427 		case MP_STATION:
   427 		case MP_STATION:
   428 			if (!IsDriveThroughStopTile(tile)) return CMD_ERROR;
   428 			if (!IsDriveThroughStopTile(tile)) return CMD_ERROR;
   429 			if (HASBIT(GetRoadTypes(tile), rt)) return_cmd_error(STR_1007_ALREADY_BUILT);
   429 			if (HASBIT(GetRoadTypes(tile), rt)) return_cmd_error(STR_1007_ALREADY_BUILT);
       
   430 			/* Don't allow "upgrading" the roadstop when vehicles are already driving on it */
       
   431 			if (!EnsureNoVehicleOnGround(tile)) return CMD_ERROR;
   430 			break;
   432 			break;
   431 
   433 
   432 		case MP_TUNNELBRIDGE:
   434 		case MP_TUNNELBRIDGE:
   433 			if ((IsTunnel(tile) && GetTunnelTransportType(tile) != TRANSPORT_ROAD) ||
   435 			if ((IsTunnel(tile) && GetTunnelTransportType(tile) != TRANSPORT_ROAD) ||
   434 					(IsBridge(tile) && GetBridgeTransportType(tile) != TRANSPORT_ROAD)) return CMD_ERROR;
   436 					(IsBridge(tile) && GetBridgeTransportType(tile) != TRANSPORT_ROAD)) return CMD_ERROR;
   435 			if (HASBIT(GetRoadTypes(tile), rt)) return_cmd_error(STR_1007_ALREADY_BUILT);
   437 			if (HASBIT(GetRoadTypes(tile), rt)) return_cmd_error(STR_1007_ALREADY_BUILT);
       
   438 			/* Don't allow "upgrading" the bridge/tunnel when vehicles are already driving on it */
       
   439 			if (!EnsureNoVehicleOnGround(tile)) return CMD_ERROR;
   436 			break;
   440 			break;
   437 
   441 
   438 		default:
   442 		default:
   439 do_clear:;
   443 do_clear:;
   440 			ret = DoCommand(tile, 0, 0, flags, CMD_LANDSCAPE_CLEAR);
   444 			ret = DoCommand(tile, 0, 0, flags, CMD_LANDSCAPE_CLEAR);