# HG changeset patch # User tron # Date 1136496954 0 # Node ID f25fb6ee397f1b875ed13dc2f74979aaea474578 # Parent b61038e1a75c07740b99a7a6fa30bfbe53422396 (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 diff -r b61038e1a75c -r f25fb6ee397f ai/default/default.c --- a/ai/default/default.c Thu Jan 05 16:51:10 2006 +0000 +++ b/ai/default/default.c Thu Jan 05 21:35:54 2006 +0000 @@ -311,7 +311,7 @@ AiRestoreVehicleOrders(GetVehicle(veh), orderbak); DoCommandByTile(0, veh, 0, DC_EXEC, CMD_START_STOP_TRAIN); - DoCommandByTile(0, veh, _ai_service_interval, DC_EXEC, CMD_CHANGE_TRAIN_SERVICE_INT); + DoCommandByTile(0, veh, _ai_service_interval, DC_EXEC, CMD_CHANGE_SERVICE_INT); } } } @@ -340,7 +340,7 @@ AiRestoreVehicleOrders(GetVehicle(veh), orderbak); DoCommandByTile(0, veh, 0, DC_EXEC, CMD_START_STOP_ROADVEH); - DoCommandByTile(0, veh, _ai_service_interval, DC_EXEC, CMD_CHANGE_TRAIN_SERVICE_INT); + DoCommandByTile(0, veh, _ai_service_interval, DC_EXEC, CMD_CHANGE_SERVICE_INT); } } } @@ -369,7 +369,7 @@ AiRestoreVehicleOrders(GetVehicle(veh), orderbak); DoCommandByTile(0, veh, 0, DC_EXEC, CMD_START_STOP_AIRCRAFT); - DoCommandByTile(0, veh, _ai_service_interval, DC_EXEC, CMD_CHANGE_TRAIN_SERVICE_INT); + DoCommandByTile(0, veh, _ai_service_interval, DC_EXEC, CMD_CHANGE_SERVICE_INT); } } } @@ -2450,7 +2450,7 @@ DoCommandByTile(0, loco_id, 0, DC_EXEC, CMD_START_STOP_TRAIN); - DoCommandByTile(0, loco_id, _ai_service_interval, DC_EXEC, CMD_CHANGE_TRAIN_SERVICE_INT); + DoCommandByTile(0, loco_id, _ai_service_interval, DC_EXEC, CMD_CHANGE_SERVICE_INT); if (p->ai.num_want_fullload != 0) p->ai.num_want_fullload--; @@ -3207,7 +3207,7 @@ } DoCommandByTile(0, loco_id, 0, DC_EXEC, CMD_START_STOP_ROADVEH); - DoCommandByTile(0, loco_id, _ai_service_interval, DC_EXEC, CMD_CHANGE_TRAIN_SERVICE_INT); + DoCommandByTile(0, loco_id, _ai_service_interval, DC_EXEC, CMD_CHANGE_SERVICE_INT); if (p->ai.num_want_fullload != 0) p->ai.num_want_fullload--; if (--p->ai.num_loco_to_build == 0) p->ai.state = AIS_0; @@ -3521,7 +3521,7 @@ DoCommandByTile(0, loco_id, 0, DC_EXEC, CMD_START_STOP_AIRCRAFT); - DoCommandByTile(0, loco_id, _ai_service_interval, DC_EXEC, CMD_CHANGE_TRAIN_SERVICE_INT); + DoCommandByTile(0, loco_id, _ai_service_interval, DC_EXEC, CMD_CHANGE_SERVICE_INT); if (p->ai.num_want_fullload != 0) p->ai.num_want_fullload--; diff -r b61038e1a75c -r f25fb6ee397f aircraft_cmd.c --- a/aircraft_cmd.c Thu Jan 05 16:51:10 2006 +0000 +++ b/aircraft_cmd.c Thu Jan 05 21:35:54 2006 +0000 @@ -452,29 +452,6 @@ return 0; } -/** Change the service interval for aircraft. - * @param x,y unused - * @param p1 vehicle ID that is being service-interval-changed - * @param p2 new service interval - */ -int32 CmdChangeAircraftServiceInt(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 != VEH_Aircraft || !CheckOwnership(v->owner)) return CMD_ERROR; - - if (flags & DC_EXEC) { - v->service_interval = serv_int; - InvalidateWindowWidget(WC_VEHICLE_DETAILS, v->index, 7); - } - - return 0; -} /** Refits an aircraft to the specified cargo type. * @param x,y unused diff -r b61038e1a75c -r f25fb6ee397f aircraft_gui.c --- a/aircraft_gui.c Thu Jan 05 16:51:10 2006 +0000 +++ b/aircraft_gui.c Thu Jan 05 21:35:54 2006 +0000 @@ -415,7 +415,7 @@ mod = GetServiceIntervalClamped(mod + v->service_interval); if (mod == v->service_interval) return; - DoCommandP(v->tile, v->index, mod, NULL, CMD_CHANGE_AIRCRAFT_SERVICE_INT | CMD_MSG(STR_018A_CAN_T_CHANGE_SERVICING)); + DoCommandP(v->tile, v->index, mod, NULL, CMD_CHANGE_SERVICE_INT | CMD_MSG(STR_018A_CAN_T_CHANGE_SERVICING)); break; } } break; diff -r b61038e1a75c -r f25fb6ee397f command.c --- a/command.c Thu Jan 05 16:51:10 2006 +0000 +++ b/command.c Thu Jan 05 21:35:54 2006 +0000 @@ -77,7 +77,7 @@ DEF_COMMAND(CmdSkipOrder); DEF_COMMAND(CmdDeleteOrder); DEF_COMMAND(CmdInsertOrder); -DEF_COMMAND(CmdChangeTrainServiceInt); +DEF_COMMAND(CmdChangeServiceInt); DEF_COMMAND(CmdRestoreOrderIndex); DEF_COMMAND(CmdBuildIndustry); @@ -103,7 +103,6 @@ DEF_COMMAND(CmdStartStopAircraft); DEF_COMMAND(CmdBuildAircraft); DEF_COMMAND(CmdSendAircraftToHangar); -DEF_COMMAND(CmdChangeAircraftServiceInt); DEF_COMMAND(CmdRefitAircraft); DEF_COMMAND(CmdPlaceSign); @@ -114,7 +113,6 @@ DEF_COMMAND(CmdSellRoadVeh); DEF_COMMAND(CmdSendRoadVehToDepot); DEF_COMMAND(CmdTurnRoadVeh); -DEF_COMMAND(CmdChangeRoadVehServiceInt); DEF_COMMAND(CmdPause); @@ -136,7 +134,6 @@ DEF_COMMAND(CmdSellShip); DEF_COMMAND(CmdBuildShip); DEF_COMMAND(CmdSendShipToDepot); -DEF_COMMAND(CmdChangeShipServiceInt); DEF_COMMAND(CmdRefitShip); DEF_COMMAND(CmdCloneOrder); @@ -212,7 +209,7 @@ {CmdDeleteOrder, 0}, /* 44 */ {CmdInsertOrder, 0}, /* 45 */ - {CmdChangeTrainServiceInt, 0}, /* 46 */ + {CmdChangeServiceInt, 0}, /* 46 */ {CmdBuildIndustry, 0}, /* 47 */ {CmdBuildCompanyHQ, 0}, /* 48 */ @@ -237,7 +234,7 @@ {CmdBuildAircraft, 0}, /* 61 */ {CmdSendAircraftToHangar, 0}, /* 62 */ - {CmdChangeAircraftServiceInt, 0}, /* 63 */ + {NULL, 0}, /* 63 */ {CmdRefitAircraft, 0}, /* 64 */ {CmdPlaceSign, 0}, /* 65 */ @@ -248,7 +245,7 @@ {CmdSellRoadVeh, 0}, /* 69 */ {CmdSendRoadVehToDepot, 0}, /* 70 */ {CmdTurnRoadVeh, 0}, /* 71 */ - {CmdChangeRoadVehServiceInt, 0}, /* 72 */ + {NULL, 0}, /* 72 */ {CmdPause, CMD_SERVER}, /* 73 */ @@ -271,7 +268,7 @@ {CmdSellShip, 0}, /* 87 */ {CmdBuildShip, 0}, /* 88 */ {CmdSendShipToDepot, 0}, /* 89 */ - {CmdChangeShipServiceInt, 0}, /* 90 */ + {NULL, 0}, /* 90 */ {CmdRefitShip, 0}, /* 91 */ {NULL, 0}, /* 92 */ diff -r b61038e1a75c -r f25fb6ee397f command.h --- a/command.h Thu Jan 05 16:51:10 2006 +0000 +++ b/command.h Thu Jan 05 21:35:54 2006 +0000 @@ -58,7 +58,7 @@ CMD_DELETE_ORDER = 44, CMD_INSERT_ORDER = 45, - CMD_CHANGE_TRAIN_SERVICE_INT = 46, + CMD_CHANGE_SERVICE_INT = 46, CMD_BUILD_INDUSTRY = 47, @@ -81,7 +81,6 @@ CMD_START_STOP_AIRCRAFT = 60, CMD_BUILD_AIRCRAFT = 61, CMD_SEND_AIRCRAFT_TO_HANGAR = 62, - CMD_CHANGE_AIRCRAFT_SERVICE_INT = 63, CMD_REFIT_AIRCRAFT = 64, CMD_PLACE_SIGN = 65, @@ -92,7 +91,6 @@ CMD_SELL_ROAD_VEH = 69, CMD_SEND_ROADVEH_TO_DEPOT = 70, CMD_TURN_ROADVEH = 71, - CMD_CHANGE_ROADVEH_SERVICE_INT = 72, CMD_PAUSE = 73, @@ -113,7 +111,6 @@ CMD_SELL_SHIP = 87, CMD_BUILD_SHIP = 88, CMD_SEND_SHIP_TO_DEPOT = 89, - CMD_CHANGE_SHIP_SERVICE_INT = 90, CMD_REFIT_SHIP = 91, CMD_CLONE_ORDER = 99, diff -r b61038e1a75c -r f25fb6ee397f roadveh_cmd.c --- a/roadveh_cmd.c Thu Jan 05 16:51:10 2006 +0000 +++ b/roadveh_cmd.c Thu Jan 05 21:35:54 2006 +0000 @@ -410,30 +410,6 @@ return 0; } -/** Change the service interval for road vehicles. - * @param x,y unused - * @param p1 vehicle ID that is being service-interval-changed - * @param p2 new service interval - */ -int32 CmdChangeRoadVehServiceInt(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 != VEH_Road || !CheckOwnership(v->owner)) return CMD_ERROR; - - if (flags & DC_EXEC) { - v->service_interval = serv_int; - InvalidateWindowWidget(WC_VEHICLE_DETAILS, v->index, 7); - } - - return 0; -} - static void MarkRoadVehDirty(Vehicle *v) { diff -r b61038e1a75c -r f25fb6ee397f roadveh_gui.c --- a/roadveh_gui.c Thu Jan 05 16:51:10 2006 +0000 +++ b/roadveh_gui.c Thu Jan 05 21:35:54 2006 +0000 @@ -169,7 +169,7 @@ mod = GetServiceIntervalClamped(mod + v->service_interval); if (mod == v->service_interval) return; - DoCommandP(v->tile, v->index, mod, NULL, CMD_CHANGE_ROADVEH_SERVICE_INT | CMD_MSG(STR_018A_CAN_T_CHANGE_SERVICING)); + DoCommandP(v->tile, v->index, mod, NULL, CMD_CHANGE_SERVICE_INT | CMD_MSG(STR_018A_CAN_T_CHANGE_SERVICING)); break; } } break; diff -r b61038e1a75c -r f25fb6ee397f ship_cmd.c --- a/ship_cmd.c Thu Jan 05 16:51:10 2006 +0000 +++ b/ship_cmd.c Thu Jan 05 21:35:54 2006 +0000 @@ -1008,29 +1008,6 @@ return 0; } -/** Change the service interval for ships. - * @param x,y unused - * @param p1 vehicle ID that is being service-interval-changed - * @param p2 new service interval - */ -int32 CmdChangeShipServiceInt(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 != VEH_Ship || !CheckOwnership(v->owner)) return CMD_ERROR; - - if (flags & DC_EXEC) { - v->service_interval = serv_int; - InvalidateWindowWidget(WC_VEHICLE_DETAILS, v->index, 7); - } - - return 0; -} /** Refits a ship to the specified cargo type. * @param x,y unused diff -r b61038e1a75c -r f25fb6ee397f ship_gui.c --- a/ship_gui.c Thu Jan 05 16:51:10 2006 +0000 +++ b/ship_gui.c Thu Jan 05 21:35:54 2006 +0000 @@ -246,7 +246,7 @@ mod = GetServiceIntervalClamped(mod + v->service_interval); if (mod == v->service_interval) return; - DoCommandP(v->tile, v->index, mod, NULL, CMD_CHANGE_SHIP_SERVICE_INT | CMD_MSG(STR_018A_CAN_T_CHANGE_SERVICING)); + DoCommandP(v->tile, v->index, mod, NULL, CMD_CHANGE_SERVICE_INT | CMD_MSG(STR_018A_CAN_T_CHANGE_SERVICING)); break; } } break; diff -r b61038e1a75c -r f25fb6ee397f train_cmd.c --- a/train_cmd.c Thu Jan 05 16:51:10 2006 +0000 +++ b/train_cmd.c Thu Jan 05 21:35:54 2006 +0000 @@ -1897,29 +1897,6 @@ return 0; } -/** Change the service interval for trains. - * @param x,y unused - * @param p1 vehicle ID that is being service-interval-changed - * @param p2 new service interval - */ -int32 CmdChangeTrainServiceInt(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 != VEH_Train || !CheckOwnership(v->owner)) return CMD_ERROR; - - if (flags & DC_EXEC) { - v->service_interval = serv_int; - InvalidateWindowWidget(WC_VEHICLE_DETAILS, v->index, 8); - } - - return 0; -} void OnTick_Train(void) { diff -r b61038e1a75c -r f25fb6ee397f train_gui.c --- a/train_gui.c Thu Jan 05 16:51:10 2006 +0000 +++ b/train_gui.c Thu Jan 05 21:35:54 2006 +0000 @@ -1254,7 +1254,7 @@ mod = GetServiceIntervalClamped(mod + v->service_interval); if (mod == v->service_interval) return; - DoCommandP(v->tile, v->index, mod, NULL, CMD_CHANGE_TRAIN_SERVICE_INT | CMD_MSG(STR_018A_CAN_T_CHANGE_SERVICING)); + DoCommandP(v->tile, v->index, mod, NULL, CMD_CHANGE_SERVICE_INT | CMD_MSG(STR_018A_CAN_T_CHANGE_SERVICING)); break; /* details buttons*/ case 9: // Cargo diff -r b61038e1a75c -r f25fb6ee397f vehicle.c --- a/vehicle.c Thu Jan 05 16:51:10 2006 +0000 +++ b/vehicle.c Thu Jan 05 21:35:54 2006 +0000 @@ -1844,6 +1844,30 @@ } +/** 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;