Mercurial > hg > openttd
changeset 15084:d2731cec52ab draft
(svn r19710) -Codechange: deduplicate GUI code for starting/stopping vehicles
author | smatz <smatz@openttd.org> |
---|---|
date | Sat, 24 Apr 2010 14:29:30 +0000 |
parents | 68d1f9ea65c3 |
children | 2739f316cd5d |
files | src/depot_gui.cpp src/vehicle_gui.cpp src/vehicle_gui.h |
diffstat | 3 files changed, 15 insertions(+), 14 deletions(-) [+] |
line wrap: on
line diff
--- a/src/depot_gui.cpp +++ b/src/depot_gui.cpp @@ -508,18 +508,9 @@ ShowVehicleViewWindow(v); break; - case MODE_START_STOP: { // click start/stop flag - uint command; - - switch (this->type) { - case VEH_TRAIN: command = CMD_START_STOP_VEHICLE | CMD_MSG(STR_ERROR_CAN_T_STOP_START_TRAIN); break; - case VEH_ROAD: command = CMD_START_STOP_VEHICLE | CMD_MSG(STR_ERROR_CAN_T_STOP_START_ROAD_VEHICLE); break; - case VEH_SHIP: command = CMD_START_STOP_VEHICLE | CMD_MSG(STR_ERROR_CAN_T_STOP_START_SHIP); break; - case VEH_AIRCRAFT: command = CMD_START_STOP_VEHICLE | CMD_MSG(STR_ERROR_CAN_T_STOP_START_AIRCRAFT); break; - default: NOT_REACHED(); - } - DoCommandP(v->tile, v->index, 0, command); - } break; + case MODE_START_STOP: // click start/stop flag + StartStopVehicle(v); + break; default: NOT_REACHED(); }
--- a/src/vehicle_gui.cpp +++ b/src/vehicle_gui.cpp @@ -1868,6 +1868,16 @@ }, }; +/** + * Executes #CMD_START_STOP_VEHICLE for given vehicle. + * @param v Vehicle to start/stop + */ +void StartStopVehicle(const Vehicle *v) +{ + assert(v->IsPrimaryVehicle()); + DoCommandP(v->tile, v->index, 0, _vehicle_command_translation_table[VCT_CMD_START_STOP][v->type]); +} + /** Checks whether the vehicle may be refitted at the moment.*/ static bool IsVehicleRefitable(const Vehicle *v) { @@ -2119,8 +2129,7 @@ if (tile != INVALID_TILE) ScrollMainWindowToTile(tile); } else { /* Start/Stop */ - DoCommandP(v->tile, v->index, 0, - _vehicle_command_translation_table[VCT_CMD_START_STOP][v->type]); + StartStopVehicle(v); } break; case VVW_WIDGET_CENTER_MAIN_VIEH: {// center main view