# HG changeset patch # User dominik # Date 2004-08-10 16:54:34 # Node ID 6cb1c9bf87be7686b4ca0eeb3d2945303e2c4cce # Parent c2dff97ecab0ec77a300ef1cae394ac97db5fb08 (svn r11) Feature: Copy/share orders now works from ship depot window for ships and hangar window for aircraft diff --git a/aircraft_gui.c b/aircraft_gui.c --- a/aircraft_gui.c +++ b/aircraft_gui.c @@ -694,12 +694,16 @@ static int GetVehicleFromAircraftDepotWn 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(W } 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 --- a/roadveh_gui.c +++ b/roadveh_gui.c @@ -562,14 +562,16 @@ static int GetVehicleFromRoadDepotWndPt( static void RoadDepotClickVeh(Window *w, int x, int y) { Vehicle *v; - int r; + int mode; + + mode = GetVehicleFromRoadDepotWndPt(w, x, y, &v); + if (mode > 0) return; - r = GetVehicleFromRoadDepotWndPt(w, x, y, &v); - if (r > 0) return; + // share / copy orders + if (_thd.place_mode && mode <= 0) { _place_clicked_vehicle = v; return; } - if (_thd.place_mode) { _place_clicked_vehicle = v; return; } - switch (r) { - case 0: + 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, } 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 --- a/ship_gui.c +++ b/ship_gui.c @@ -694,12 +694,16 @@ static int GetVehicleFromShipDepotWndPt( 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, in } 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 --- a/train_gui.c +++ b/train_gui.c @@ -442,13 +442,14 @@ static void TrainDepotClickTrain(Window 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 } 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; }