diff --git a/aircraft_gui.c b/aircraft_gui.c index 2f0c5d4469..7a13ec15a3 100644 --- a/aircraft_gui.c +++ b/aircraft_gui.c @@ -694,12 +694,16 @@ static int GetVehicleFromAircraftDepotWndPt(Window *w, int x, int y, Vehicle **v static void AircraftDepotClickAircraft(Window *w, int x, int y) { Vehicle *v; + int mode = GetVehicleFromAircraftDepotWndPt(w, x, y, &v); - switch(GetVehicleFromAircraftDepotWndPt(w, x, y, &v)) { + // share / copy orders + if (_thd.place_mode && mode <= 0) { _place_clicked_vehicle = v; return; } + + switch(mode) { case 1: return; - case 0: + case 0: // start dragging of vehicle if (v != NULL) { WP(w,traindepot_d).sel = v->index; SetWindowDirty(w); @@ -707,11 +711,11 @@ static void AircraftDepotClickAircraft(Window *w, int x, int y) } break; - case -1: + case -1: // show info window ShowAircraftViewWindow(v); break; - case -2: + case -2: // click start/stop flag DoCommandP(v->tile, v->index, 0, NULL, CMD_START_STOP_AIRCRAFT | CMD_MSG(STR_A016_CAN_T_STOP_START_AIRCRAFT)); break; diff --git a/roadveh_gui.c b/roadveh_gui.c index c4122a173c..5dd4147a4b 100644 --- a/roadveh_gui.c +++ b/roadveh_gui.c @@ -562,14 +562,16 @@ static int GetVehicleFromRoadDepotWndPt(Window *w, int x, int y, Vehicle **veh) static void RoadDepotClickVeh(Window *w, int x, int y) { Vehicle *v; - int r; + int mode; - r = GetVehicleFromRoadDepotWndPt(w, x, y, &v); - if (r > 0) return; + mode = GetVehicleFromRoadDepotWndPt(w, x, y, &v); + if (mode > 0) return; - if (_thd.place_mode) { _place_clicked_vehicle = v; return; } - switch (r) { - case 0: + // share / copy orders + if (_thd.place_mode && mode <= 0) { _place_clicked_vehicle = v; return; } + + switch (mode) { + case 0: // start dragging of vehicle if (v != NULL) { WP(w,traindepot_d).sel = v->index; SetWindowDirty(w); @@ -577,11 +579,11 @@ static void RoadDepotClickVeh(Window *w, int x, int y) } break; - case -1: + case -1: // show info window ShowRoadVehViewWindow(v); break; - case -2: + case -2: // click start/stop flag DoCommandP(v->tile, v->index, 0, NULL, CMD_START_STOP_ROADVEH | CMD_MSG(STR_9015_CAN_T_STOP_START_ROAD_VEHICLE)); break; diff --git a/ship_gui.c b/ship_gui.c index 26dfab5f1f..8bf48c4177 100644 --- a/ship_gui.c +++ b/ship_gui.c @@ -694,12 +694,16 @@ static int GetVehicleFromShipDepotWndPt(Window *w, int x, int y, Vehicle **veh) static void ShipDepotClick(Window *w, int x, int y) { Vehicle *v; + int mode = GetVehicleFromShipDepotWndPt(w, x, y, &v); - switch (GetVehicleFromShipDepotWndPt(w, x, y, &v)) { - case 1: + // share / copy orders + if (_thd.place_mode && mode <= 0) { _place_clicked_vehicle = v; return; } + + switch (mode) { + case 1: // invalid return; - case 0: + case 0: // start dragging of vehicle if (v != NULL) { WP(w,traindepot_d).sel = v->index; SetWindowDirty(w); @@ -708,11 +712,11 @@ static void ShipDepotClick(Window *w, int x, int y) } break; - case -1: + case -1: // show info window ShowShipViewWindow(v); break; - case -2: + case -2: // click start/stop flag DoCommandP(v->tile, v->index, 0, NULL, CMD_START_STOP_SHIP | CMD_MSG(STR_9818_CAN_T_STOP_START_SHIP)); break; diff --git a/train_gui.c b/train_gui.c index ac093459fa..c89a37b132 100644 --- a/train_gui.c +++ b/train_gui.c @@ -442,13 +442,14 @@ static void TrainDepotClickTrain(Window *w, int x, int y) Vehicle *v; mode = GetVehicleFromTrainDepotWndPt(w, x, y, &gdvp); - + + // share / copy orders if (_thd.place_mode && mode <= 0) { _place_clicked_vehicle = gdvp.head; return; } v = gdvp.wagon; switch(mode) { - case 0: + case 0: // start dragging of vehicle sel = (int16)WP(w,traindepot_d).sel; if (sel != -1) { WP(w,traindepot_d).sel = INVALID_VEHICLE; @@ -460,11 +461,11 @@ static void TrainDepotClickTrain(Window *w, int x, int y) } break; - case -1: + case -1: // show info window ShowTrainViewWindow(v); break; - case -2: + case -2: // click start/stop flag DoCommandP(v->tile, v->index, 0, NULL, CMD_START_STOP_TRAIN | CMD_MSG(STR_883B_CAN_T_STOP_START_TRAIN)); break; }