Allow ctrl-clicking other company trains on own track to start/stop

See: #392
This commit is contained in:
Jonathan G Rennison 2022-05-30 00:58:57 +01:00
parent 74eaa77538
commit d6015194c1
2 changed files with 3 additions and 2 deletions

View File

@ -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);

View File

@ -111,6 +111,7 @@
#include "blitter/32bpp_base.hpp"
#include "object_map.h"
#include "newgrf_object.h"
#include "infrastructure_func.h"
#include <map>
#include <vector>
@ -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);