(svn r11) Feature: Copy/share orders now works from ship depot window for ships and hangar window for aircraft
authordominik
Tue, 10 Aug 2004 16:54:34 +0000
changeset 10 c35ab8426202
parent 9 b1ecf90eb6da
child 11 836bc4b37b5b
(svn r11) Feature: Copy/share orders now works from ship depot window for ships and hangar window for aircraft
aircraft_gui.c
roadveh_gui.c
ship_gui.c
train_gui.c
--- a/aircraft_gui.c	Tue Aug 10 16:49:56 2004 +0000
+++ b/aircraft_gui.c	Tue Aug 10 16:54:34 2004 +0000
@@ -694,12 +694,16 @@
 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 @@
 		}
 		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;
 
--- a/roadveh_gui.c	Tue Aug 10 16:49:56 2004 +0000
+++ b/roadveh_gui.c	Tue Aug 10 16:54:34 2004 +0000
@@ -562,14 +562,16 @@
 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 @@
 		}
 		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;
 
--- a/ship_gui.c	Tue Aug 10 16:49:56 2004 +0000
+++ b/ship_gui.c	Tue Aug 10 16:54:34 2004 +0000
@@ -694,12 +694,16 @@
 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 @@
 		}
 		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;
 
--- a/train_gui.c	Tue Aug 10 16:49:56 2004 +0000
+++ b/train_gui.c	Tue Aug 10 16:54:34 2004 +0000
@@ -442,13 +442,14 @@
 	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 @@
 		}
 		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;
 	}