summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordominik <dominik@openttd.org>2004-08-10 16:54:34 +0000
committerdominik <dominik@openttd.org>2004-08-10 16:54:34 +0000
commitee4511a83604e0f9f3fff8ad36bd433f6262106c (patch)
tree62c3efe79026cbadc27ac04ef2264056019d4d69
parent39267dbad5a5846b614c688e453c54ef24af4224 (diff)
downloadopenttd-ee4511a83604e0f9f3fff8ad36bd433f6262106c.tar.xz
(svn r11) Feature: Copy/share orders now works from ship depot window for ships and hangar window for aircraft
-rw-r--r--aircraft_gui.c12
-rw-r--r--roadveh_gui.c18
-rw-r--r--ship_gui.c14
-rw-r--r--train_gui.c9
4 files changed, 32 insertions, 21 deletions
diff --git a/aircraft_gui.c b/aircraft_gui.c
index 2f0c5d446..7a13ec15a 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 c4122a173..5dd4147a4 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 26dfab5f1..8bf48c417 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 ac093459f..c89a37b13 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;
}