changeset 4251:6037ece4af36 draft

(svn r5853) -Fix: [elrails] FS#178 Electric Trains can leave Conventional Depot now the user will get an error if he tries to start the train and the status bar will say "no power" instead of "stopped" Electric trains already driving in and out of non-electrified depots will still do so, but you can't start new ones
author bjarni <bjarni@openttd.org>
date Sat, 12 Aug 2006 10:41:29 +0000
parents 1a4acb92eecf
children 51688fb920d1
files lang/english.txt train_cmd.c train_gui.c
diffstat 3 files changed, 9 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/lang/english.txt
+++ b/lang/english.txt
@@ -2529,6 +2529,8 @@
 STR_TRAIN_STOPPING                                              :{RED}Stopping
 STR_TRAIN_STOPPING_VEL                                          :{RED}Stopping, {VELOCITY}
 STR_INCOMPATIBLE_RAIL_TYPES                                     :Incompatible rail types
+STR_TRAIN_NO_POWER                                              :{RED}No power
+STR_TRAIN_START_NO_CATENARY                                     :This track lacks catenary, so the train can't start
 
 ##id 0x9000
 STR_9000_ROAD_VEHICLE_IN_THE_WAY                                :{WHITE}Road vehicle in the way
--- a/train_cmd.c
+++ b/train_cmd.c
@@ -1243,6 +1243,8 @@
 		return_cmd_error(error);
 	}
 
+	if (v->vehstatus & VS_STOPPED && v->u.rail.cached_power == 0) return_cmd_error(STR_TRAIN_START_NO_CATENARY);
+
 	if (flags & DC_EXEC) {
 		if (v->vehstatus & VS_STOPPED && v->u.rail.track == 0x80) {
 			DeleteVehicleNews(p1, STR_8814_TRAIN_IS_WAITING_IN_DEPOT);
--- a/train_gui.c
+++ b/train_gui.c
@@ -954,7 +954,11 @@
 			str = STR_885C_BROKEN_DOWN;
 		} else if (v->vehstatus & VS_STOPPED) {
 			if (v->u.rail.last_speed == 0) {
-				str = STR_8861_STOPPED;
+				if (v->u.rail.cached_power == 0) {
+					str = STR_TRAIN_NO_POWER;
+				} else {
+					str = STR_8861_STOPPED;
+				}
 			} else {
 				SetDParam(0, v->u.rail.last_speed);
 				str = STR_TRAIN_STOPPING + _patches.vehicle_speed;