mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2025-02-03 21:06:58 +00:00
(svn r19710) -Codechange: deduplicate GUI code for starting/stopping vehicles
This commit is contained in:
parent
f56ebd81c3
commit
4a9ef6ce60
@ -508,18 +508,9 @@ struct DepotWindow : Window {
|
||||
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();
|
||||
}
|
||||
|
@ -1868,6 +1868,16 @@ static const uint32 _vehicle_command_translation_table[][4] = {
|
||||
},
|
||||
};
|
||||
|
||||
/**
|
||||
* 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 @@ public:
|
||||
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
|
||||
|
@ -108,6 +108,7 @@ static inline WindowClass GetWindowClassForVehicleType(VehicleType vt)
|
||||
|
||||
/* Unified window procedure */
|
||||
void ShowVehicleViewWindow(const Vehicle *v);
|
||||
void StartStopVehicle(const Vehicle *v);
|
||||
|
||||
Vehicle *CheckClickOnVehicle(const struct ViewPort *vp, int x, int y);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user