diff options
author | tron <tron@openttd.org> | 2006-01-05 21:35:54 +0000 |
---|---|---|
committer | tron <tron@openttd.org> | 2006-01-05 21:35:54 +0000 |
commit | 2053685fb5776afbd2fe25e2d03a560fe437d346 (patch) | |
tree | 36adc599aa918a785fc38a75ba97172dcddffef5 /vehicle.c | |
parent | 9b87635c1f446541dc32bf9275fdbdcddbaf2af9 (diff) | |
download | openttd-2053685fb5776afbd2fe25e2d03a560fe437d346.tar.xz |
(svn r3367) Unify the 4 distinct CMD_CHANGE_{AIRCRAFT,ROADVEH,SHIP,TRAIN}_SERVICE_INT commands into one CMD_CHANGE_SERVICE_INT command.
As side effect this is a
-Fix: The default AI tried to change the service intervals of vehicles via the CMD_CHANGE_TRAIN_SERVICE_INT command - regardless of the type of the vehicle - which of course failed for non-trains
Diffstat (limited to 'vehicle.c')
-rw-r--r-- | vehicle.c | 24 |
1 files changed, 24 insertions, 0 deletions
@@ -1844,6 +1844,30 @@ int32 CmdNameVehicle(int x, int y, uint32 flags, uint32 p1, uint32 p2) } +/** Change the service interval of a vehicle + * @param x,y unused + * @param p1 vehicle ID that is being service-interval-changed + * @param p2 new service interval + */ +int32 CmdChangeServiceInt(int x, int y, uint32 flags, uint32 p1, uint32 p2) +{ + Vehicle* v; + uint16 serv_int = GetServiceIntervalClamped(p2); /* Double check the service interval from the user-input */ + + if (serv_int != p2 || !IsVehicleIndex(p1)) return CMD_ERROR; + + v = GetVehicle(p1); + + if (v->type == 0 || !CheckOwnership(v->owner)) return CMD_ERROR; + + if (flags & DC_EXEC) { + v->service_interval = serv_int; + InvalidateWindow(WC_VEHICLE_DETAILS, v->index); + } + + return 0; +} + static Rect _old_vehicle_coords; |