(svn r6858) - Fix (r6855): Handle rail vehicles with no capacity (N/A) by setting cargo type to CT_INVALID and handling it later. STR_8838_N_A is not a valid cargo type...
authorpeter1138
Fri, 20 Oct 2006 19:48:25 +0000
changeset 4898 68560c75ec28
parent 4897 6f09bae8a44f
child 4899 967420b8ebf7
(svn r6858) - Fix (r6855): Handle rail vehicles with no capacity (N/A) by setting cargo type to CT_INVALID and handling it later. STR_8838_N_A is not a valid cargo type...
engine_gui.c
strings.c
train_gui.c
--- a/engine_gui.c	Fri Oct 20 14:31:35 2006 +0000
+++ b/engine_gui.c	Fri Oct 20 19:48:25 2006 +0000
@@ -139,7 +139,7 @@
 		SetDParam(5, rvi->cargo_type);
 		SetDParam(6, rvi->capacity << multihead);
 	} else {
-		SetDParam(5, STR_8838_N_A);
+		SetDParam(5, CT_INVALID);
 	}
 	DrawStringMultiCenter(x, y, STR_VEHICLE_INFO_COST_WEIGHT_SPEED_POWER, maxw);
 }
--- a/strings.c	Fri Oct 20 14:31:35 2006 +0000
+++ b/strings.c	Fri Oct 20 19:48:25 2006 +0000
@@ -731,7 +731,8 @@
 				// Layout now is:
 				//   8bit   - cargo type
 				//   16-bit - cargo count
-				StringID cargo_str = _cargoc.names_long[GetInt32(&argv)];
+				CargoID cargo = GetInt32(&argv);
+				StringID cargo_str = (cargo == CT_INVALID) ? STR_8838_N_A : _cargoc.names_long[cargo];
 				buff = GetStringWithArgs(buff, cargo_str, argv++);
 				break;
 			}
--- a/train_gui.c	Fri Oct 20 14:31:35 2006 +0000
+++ b/train_gui.c	Fri Oct 20 19:48:25 2006 +0000
@@ -269,9 +269,10 @@
 	};
 
 	/* Cargo type + capacity, or N/A */
-	SetDParam(0, STR_8838_N_A);
-	SetDParam(2, STR_EMPTY);
-	if (rvi->capacity != 0) {
+	if (rvi->capacity == 0) {
+		SetDParam(0, CT_INVALID);
+		SetDParam(2, STR_EMPTY);
+	} else {
 		SetDParam(0, rvi->cargo_type);
 		SetDParam(1, (rvi->capacity * (CountArticulatedParts(engine_number) + 1)) << multihead);
 		SetDParam(2, STR_9842_REFITTABLE);
@@ -317,9 +318,10 @@
 	y += 10;
 
 	/* Cargo type + capacity, or N/A */
-	SetDParam(0, STR_8838_N_A);
-	SetDParam(2, STR_EMPTY);
-	if (rvi->capacity != 0) {
+	if (rvi->capacity == 0) {
+		SetDParam(0, CT_INVALID);
+		SetDParam(2, STR_EMPTY);
+	} else {
 		SetDParam(0, rvi->cargo_type);
 		SetDParam(1, rvi->capacity * (CountArticulatedParts(engine_number) + 1));
 		SetDParam(2, refittable ? STR_9842_REFITTABLE : STR_EMPTY);