(svn r11707) -Fix: do not allow refitting flooded (destroyed) vehicles
authorsmatz
Thu, 27 Dec 2007 14:10:47 +0000
changeset 8145 2116aa2c6263
parent 8144 65cec0877b78
child 8146 9641c9bd77ba
(svn r11707) -Fix: do not allow refitting flooded (destroyed) vehicles
src/aircraft_cmd.cpp
src/lang/english.txt
src/roadveh_cmd.cpp
src/ship_cmd.cpp
src/train_cmd.cpp
--- a/src/aircraft_cmd.cpp	Thu Dec 27 13:35:39 2007 +0000
+++ b/src/aircraft_cmd.cpp	Thu Dec 27 14:10:47 2007 +0000
@@ -640,6 +640,7 @@
 
 	if (v->type != VEH_AIRCRAFT || !CheckOwnership(v->owner)) return CMD_ERROR;
 	if (!v->IsStoppedInDepot()) return_cmd_error(STR_A01B_AIRCRAFT_MUST_BE_STOPPED);
+	if (v->vehstatus & VS_CRASHED) return_cmd_error(STR_CAN_T_REFIT_DESTROYED_VEHICLE);
 
 	/* Check cargo */
 	CargoID new_cid = GB(p2, 0, 8);
--- a/src/lang/english.txt	Thu Dec 27 13:35:39 2007 +0000
+++ b/src/lang/english.txt	Thu Dec 27 14:10:47 2007 +0000
@@ -2796,6 +2796,7 @@
 STR_NEW_VEHICLE_NOW_AVAILABLE_WITH_TYPE                         :{BLACK}New {STRING} now available!  -  {ENGINE}
 
 STR_CAN_T_SELL_DESTROYED_VEHICLE                                :{WHITE}Can't sell destroyed vehicle...
+STR_CAN_T_REFIT_DESTROYED_VEHICLE                               :{WHITE}Can't refit destroyed vehicle...
 
 STR_CAN_T_TIMETABLE_VEHICLE                                     :{WHITE}Can't timetable vehicle...
 STR_TIMETABLE_ONLY_WAIT_AT_STATIONS                             :{WHITE}Vehicles can only wait at stations.
--- a/src/roadveh_cmd.cpp	Thu Dec 27 13:35:39 2007 +0000
+++ b/src/roadveh_cmd.cpp	Thu Dec 27 14:10:47 2007 +0000
@@ -2134,6 +2134,7 @@
 
 	if (v->type != VEH_ROAD || !CheckOwnership(v->owner)) return CMD_ERROR;
 	if (!CheckRoadVehInDepotStopped(v)) return_cmd_error(STR_9013_MUST_BE_STOPPED_INSIDE);
+	if (v->vehstatus & VS_CRASHED) return_cmd_error(STR_CAN_T_REFIT_DESTROYED_VEHICLE);
 
 	if (new_cid >= NUM_CARGO) return CMD_ERROR;
 
--- a/src/ship_cmd.cpp	Thu Dec 27 13:35:39 2007 +0000
+++ b/src/ship_cmd.cpp	Thu Dec 27 14:10:47 2007 +0000
@@ -1067,10 +1067,8 @@
 	v = GetVehicle(p1);
 
 	if (v->type != VEH_SHIP || !CheckOwnership(v->owner)) return CMD_ERROR;
-
-	if (!v->IsStoppedInDepot()) {
-		return_cmd_error(STR_980B_SHIP_MUST_BE_STOPPED_IN);
-	}
+	if (!v->IsStoppedInDepot()) return_cmd_error(STR_980B_SHIP_MUST_BE_STOPPED_IN);
+	if (v->vehstatus & VS_CRASHED) return_cmd_error(STR_CAN_T_REFIT_DESTROYED_VEHICLE);
 
 	/* Check cargo */
 	if (!ShipVehInfo(v->engine_type)->refittable) return CMD_ERROR;
--- a/src/train_cmd.cpp	Thu Dec 27 13:35:39 2007 +0000
+++ b/src/train_cmd.cpp	Thu Dec 27 14:10:47 2007 +0000
@@ -1720,6 +1720,7 @@
 
 	if (v->type != VEH_TRAIN || !CheckOwnership(v->owner)) return CMD_ERROR;
 	if (CheckTrainStoppedInDepot(v) < 0) return_cmd_error(STR_TRAIN_MUST_BE_STOPPED);
+	if (v->vehstatus & VS_CRASHED) return_cmd_error(STR_CAN_T_REFIT_DESTROYED_VEHICLE);
 
 	/* Check cargo */
 	if (new_cid >= NUM_CARGO) return CMD_ERROR;