diff --git a/src/vehicle_gui.cpp b/src/vehicle_gui.cpp index 530b009169..3a31932178 100644 --- a/src/vehicle_gui.cpp +++ b/src/vehicle_gui.cpp @@ -3426,7 +3426,7 @@ void CcStartStopVehicle(const CommandCost &result, TileIndex tile, uint32 p1, ui if (result.Failed()) return; const Vehicle *v = Vehicle::GetIfValid(p1); - if (v == nullptr || !v->IsPrimaryVehicle() || v->owner != _local_company) return; + if (v == nullptr || !v->IsPrimaryVehicle()) return; StringID msg = (v->vehstatus & VS_STOPPED) ? STR_VEHICLE_COMMAND_STOPPED : STR_VEHICLE_COMMAND_STARTED; Point pt = RemapCoords(v->x_pos, v->y_pos, v->z_pos); diff --git a/src/viewport.cpp b/src/viewport.cpp index 761c10a299..ae62788c45 100644 --- a/src/viewport.cpp +++ b/src/viewport.cpp @@ -111,6 +111,7 @@ #include "blitter/32bpp_base.hpp" #include "object_map.h" #include "newgrf_object.h" +#include "infrastructure_func.h" #include #include @@ -4557,7 +4558,7 @@ HandleViewportClickedResult HandleViewportClicked(const Viewport *vp, int x, int if (IsCompanyBuildableVehicleType(v)) { v = v->First(); WindowClass wc = _thd.GetCallbackWnd()->window_class; - if (_ctrl_pressed && v->owner == _local_company) { + if (_ctrl_pressed && IsVehicleControlAllowed(v, _local_company)) { StartStopVehicle(v, true); } else if (wc != WC_CREATE_TEMPLATE && wc != WC_TEMPLATEGUI_MAIN) { ShowVehicleViewWindow(v);