Index: src/lang/english.txt =================================================================== --- src/lang/english.txt (revision 11226) +++ src/lang/english.txt (working copy) @@ -2782,6 +2782,8 @@ STR_NEW_VEHICLE_TYPE :{BLACK}{BIGFONT}{ENGINE} STR_NEW_VEHICLE_NOW_AVAILABLE_WITH_TYPE :{BLACK}New {STRING} now available! - {ENGINE} +STR_VEHICLE_IS_DESTROYED :{WHITE}Vehicle is destroyed + STR_CAN_T_TIMETABLE_VEHICLE :{WHITE}Can't timetable vehicle... STR_TIMETABLE_ONLY_WAIT_AT_STATIONS :{WHITE}Vehicles can only wait at stations. STR_TIMETABLE_NOT_STOPPING_HERE :{WHITE}This vehicle is not stopping at this station. Index: src/ship_cmd.cpp =================================================================== --- src/ship_cmd.cpp (revision 11226) +++ src/ship_cmd.cpp (working copy) @@ -911,6 +911,8 @@ if (v->type != VEH_SHIP || !CheckOwnership(v->owner)) return CMD_ERROR; + if (HASBITS(v->vehstatus, VS_CRASHED)) return_cmd_error(STR_VEHICLE_IS_DESTROYED); + SET_EXPENSES_TYPE(EXPENSES_NEW_VEHICLES); if (!v->IsStoppedInDepot()) { Index: src/train_cmd.cpp =================================================================== --- src/train_cmd.cpp (revision 11226) +++ src/train_cmd.cpp (working copy) @@ -1216,6 +1216,8 @@ if (v->type != VEH_TRAIN || !CheckOwnership(v->owner)) return CMD_ERROR; + if (HASBITS(v->vehstatus, VS_CRASHED)) return_cmd_error(STR_VEHICLE_IS_DESTROYED); + SET_EXPENSES_TYPE(EXPENSES_NEW_VEHICLES); while (IsArticulatedPart(v)) v = v->Previous(); Index: src/roadveh_cmd.cpp =================================================================== --- src/roadveh_cmd.cpp (revision 11226) +++ src/roadveh_cmd.cpp (working copy) @@ -359,6 +359,8 @@ if (v->type != VEH_ROAD || !CheckOwnership(v->owner)) return CMD_ERROR; + if (HASBITS(v->vehstatus, VS_CRASHED)) return_cmd_error(STR_VEHICLE_IS_DESTROYED); + SET_EXPENSES_TYPE(EXPENSES_NEW_VEHICLES); if (!CheckRoadVehInDepotStopped(v)) { Index: src/aircraft_cmd.cpp =================================================================== --- src/aircraft_cmd.cpp (revision 11226) +++ src/aircraft_cmd.cpp (working copy) @@ -487,6 +487,8 @@ if (v->type != VEH_AIRCRAFT || !CheckOwnership(v->owner)) return CMD_ERROR; if (!v->IsStoppedInDepot()) return_cmd_error(STR_A01B_AIRCRAFT_MUST_BE_STOPPED); + if (HASBITS(v->vehstatus, VS_CRASHED)) return_cmd_error(STR_VEHICLE_IS_DESTROYED); + SET_EXPENSES_TYPE(EXPENSES_NEW_VEHICLES); if (flags & DC_EXEC) {