From d3a925af42e8e5ce01a63a57dfd57c0ed99a6c96 Mon Sep 17 00:00:00 2001 From: rubidium Date: Wed, 25 Nov 2009 22:58:28 +0000 Subject: (svn r18290) -Codechange: be more strict about what vehicles may use timetables --- src/timetable_cmd.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/timetable_cmd.cpp b/src/timetable_cmd.cpp index 66e2da480..e8018a0ca 100644 --- a/src/timetable_cmd.cpp +++ b/src/timetable_cmd.cpp @@ -67,7 +67,7 @@ CommandCost CmdChangeTimetable(TileIndex tile, DoCommandFlag flags, uint32 p1, u VehicleID veh = GB(p1, 0, 16); Vehicle *v = Vehicle::GetIfValid(veh); - if (v == NULL || !CheckOwnership(v->owner)) return CMD_ERROR; + if (v == NULL || !CheckOwnership(v->owner) || !v->IsPrimaryVehicle()) return CMD_ERROR; VehicleOrderID order_number = GB(p1, 16, 8); Order *order = v->GetOrder(order_number); @@ -127,10 +127,11 @@ CommandCost CmdSetVehicleOnTime(TileIndex tile, DoCommandFlag flags, uint32 p1, VehicleID veh = GB(p1, 0, 16); Vehicle *v = Vehicle::GetIfValid(veh); - if (v == NULL || !CheckOwnership(v->owner)) return CMD_ERROR; + if (v == NULL || !CheckOwnership(v->owner) || !v->IsPrimaryVehicle()) return CMD_ERROR; if (flags & DC_EXEC) { v->lateness_counter = 0; + SetWindowDirty(WC_VEHICLE_TIMETABLE, v->index); } return CommandCost(); @@ -156,7 +157,7 @@ CommandCost CmdAutofillTimetable(TileIndex tile, DoCommandFlag flags, uint32 p1, VehicleID veh = GB(p1, 0, 16); Vehicle *v = Vehicle::GetIfValid(veh); - if (v == NULL || !CheckOwnership(v->owner)) return CMD_ERROR; + if (v == NULL || !CheckOwnership(v->owner) || !v->IsPrimaryVehicle()) return CMD_ERROR; if (flags & DC_EXEC) { if (HasBit(p2, 0)) { -- cgit v1.2.3-70-g09d2