(svn r3388) - NewGRF: Allow train running cost class to differ from engine class. Also fix typo in r3384.
authorpeter1138
Sat, 07 Jan 2006 16:47:59 +0000
changeset 2840 d68a605b2087
parent 2839 665d7c92448b
child 2841 29df91f741d9
(svn r3388) - NewGRF: Allow train running cost class to differ from engine class. Also fix typo in r3384.
engine.h
engine_gui.c
newgrf.c
table/engines.h
train_cmd.c
train_gui.c
--- a/engine.h	Sat Jan 07 16:30:49 2006 +0000
+++ b/engine.h	Sat Jan 07 16:47:59 2006 +0000
@@ -16,6 +16,7 @@
 	uint16 power;
 	uint16 weight;
 	byte running_cost_base;
+	byte running_cost_class;
 	byte engclass; // 0: steam, 1: diesel, 2: electric
 	byte capacity;
 	byte cargo_type;
--- a/engine_gui.c	Sat Jan 07 16:30:49 2006 +0000
+++ b/engine_gui.c	Sat Jan 07 16:47:59 2006 +0000
@@ -131,7 +131,7 @@
 	SetDParam(3, rvi->power << multihead);
 	SetDParam(1, rvi->weight << multihead);
 
-	SetDParam(4, rvi->running_cost_base * _price.running_rail[rvi->engclass] >> 8 << multihead);
+	SetDParam(4, rvi->running_cost_base * _price.running_rail[rvi->running_cost_class] >> 8 << multihead);
 
 	if (rvi->capacity != 0) {
 		SetDParam(5, _cargoc.names_long[rvi->cargo_type]);
--- a/newgrf.c	Sat Jan 07 16:30:49 2006 +0000
+++ b/newgrf.c	Sat Jan 07 16:47:59 2006 +0000
@@ -262,9 +262,9 @@
 				uint32 base = grf_load_dword(&buf);
 
 				switch (base) {
-					case 0x4C30: rvi[i].engclass = 0; break;
-					case 0x4C36: rvi[i].engclass = 1; break;
-					case 0x4C3C: rvi[i].engclass = 2; break;
+					case 0x4C30: rvi[i].running_cost_class = 0; break;
+					case 0x4C36: rvi[i].running_cost_class = 1; break;
+					case 0x4C3C: rvi[i].running_cost_class = 2; break;
 				}
 				dewagonize(base, engine + i);
 			}
@@ -291,7 +291,7 @@
 					if (rvi[i].flags & RVI_MULTIHEAD) {
 						// adjust power and running cost if needed
 						rvi[i].power *= 2;
-						rvi[i].running_cost_base /= 2;
+						rvi[i].running_cost_base *= 2;
 					}
 					rvi[i].flags &= ~RVI_MULTIHEAD;
 				}
--- a/table/engines.h	Sat Jan 07 16:30:49 2006 +0000
+++ b/table/engines.h	Sat Jan 07 16:47:59 2006 +0000
@@ -311,126 +311,126 @@
 #define W RVI_WAGON
 const RailVehicleInfo orig_rail_vehicle_info[NUM_TRAIN_ENGINES] = {
 	// image_index  max_speed (kph)      running_cost_base                 callbackmask    shortened factor
-	// |  flags     |        power (hp)  |    running_cost_class           |   powered wagons power
-	// |  |    base_cost     |    weight      |    capacity                |   |   powered wagons weight
-	// |  |    |    |        |    |      |    |    |    cargo_type         |   |   |   visual effects
-	// |  |    |    |        |    |      |    |    |    |                  |   |   |   |   |
-	{  2, 0,   7,  64,     300,  47,    50,   0,   0,   0               ,  0,  0,  0,  0,  0 }, /*   0 */
-	{ 19, 0,   8,  80,     600,  65,    65,   1,   0,   0               ,  0,  0,  0,  0,  0 }, /*   1 */
-	{  2, 0,  10,  72,     400,  85,    90,   0,   0,   0               ,  0,  0,  0,  0,  0 }, /*   2 */
-	{  0, 0,  15,  96,     900, 130,   130,   0,   0,   0               ,  0,  0,  0,  0,  0 }, /*   3 */
-	{  1, 0,  19, 112,    1000, 140,   145,   0,   0,   0               ,  0,  0,  0,  0,  0 }, /*   4 */
-	{ 12, 0,  16, 120,    1400,  95,   125,   1,   0,   0               ,  0,  0,  0,  0,  0 }, /*   5 */
-	{ 14, 0,  20, 152,    2000, 120,   135,   1,   0,   0               ,  0,  0,  0,  0,  0 }, /*   6 */
-	{  3, 0,  14,  88,    1100, 145,   130,   0,   0,   0               ,  0,  0,  0,  0,  0 }, /*   7 */
-	{  0, 0,  13, 112,    1000, 131,   120,   0,   0,   0               ,  0,  0,  0,  0,  0 }, /*   8 */
-	{  1, 0,  19, 128,    1200, 162,   140,   0,   0,   0               ,  0,  0,  0,  0,  0 }, /*   9 */
-	{  0, 0,  22, 144,    1600, 170,   130,   0,   0,   0               ,  0,  0,  0,  0,  0 }, /*  10 */
-	{  8, M,  11, 112,   600/2,32/2,  85/2,   1,  38,   CT_PASSENGERS   ,  0,  0,  0,  0,  0 }, /*  11 */
-	{ 10, M,  14, 120,   700/2,38/2,  70/2,   1,  40,   CT_PASSENGERS   ,  0,  0,  0,  0,  0 }, /*  12 */
-	{  4, 0,  15, 128,    1250,  72,    95,   1,   0,   0               ,  0,  0,  0,  0,  0 }, /*  13 */
-	{  5, 0,  17, 144,    1750, 101,   120,   1,   0,   0               ,  0,  0,  0,  0,  0 }, /*  14 */
-	{  4, 0,  18, 160,    2580, 112,   140,   1,   0,   0               ,  0,  0,  0,  0,  0 }, /*  15 */
-	{ 14, 0,  23,  96,    4000, 150,   135,   1,   0,   0               ,  0,  0,  0,  0,  0 }, /*  16 */
-	{ 12, 0,  16, 112,    2400, 120,   105,   1,   0,   0               ,  0,  0,  0,  0,  0 }, /*  17 */
-	{ 13, 0,  30, 112,    6600, 207,   155,   1,   0,   0               ,  0,  0,  0,  0,  0 }, /*  18 */
-	{ 15, 0,  18, 104,    1500, 110,   105,   1,   0,   0               ,  0,  0,  0,  0,  0 }, /*  19 */
-	{ 16, M,  35, 160,  3500/2,95/2, 205/2,   1,   0,   0               ,  0,  0,  0,  0,  0 }, /*  20 */
-	{ 18, 0,  21, 104,    2200, 120,   145,   1,   0,   0               ,  0,  0,  0,  0,  0 }, /*  21 */
-	{  6, M,  20, 200,  4500/2,70/2, 190/2,   1,   4,   CT_MAIL         ,  0,  0,  0,  0,  0 }, /*  22 */
-	{ 20, 0,  26, 160,    3600,  84,   180,   2,   0,   0               ,  0,  0,  0,  0,  0 }, /*  23 */
-	{ 20, 0,  30, 176,    5000,  82,   205,   2,   0,   0               ,  0,  0,  0,  0,  0 }, /*  24 */
-	{ 21, M,  40, 240,  7000/2,90/2, 240/2,   2,   0,   0               ,  0,  0,  0,  0,  0 }, /*  25 */
-	{ 23, M,  43, 264,  8000/2,95/2, 250/2,   2,   0,   0               ,  0,  0,  0,  0,  0 }, /*  26 */
-	{ 33, W, 247,   0,       0,  25,     0,   0,  40,   CT_PASSENGERS   ,  0,  0,  0,  0,  0 }, /*  27 */
-	{ 35, W, 228,   0,       0,  21,     0,   0,  30,   CT_MAIL         ,  0,  0,  0,  0,  0 }, /*  28 */
-	{ 34, W, 176,   0,       0,  18,     0,   0,  30,   CT_COAL         ,  0,  0,  0,  0,  0 }, /*  29 */
-	{ 36, W, 200,   0,       0,  24,     0,   0,  30,   CT_OIL          ,  0,  0,  0,  0,  0 }, /*  30 */
-	{ 37, W, 192,   0,       0,  20,     0,   0,  25,   CT_LIVESTOCK    ,  0,  0,  0,  0,  0 }, /*  31 */
-	{ 38, W, 190,   0,       0,  21,     0,   0,  25,   CT_GOODS        ,  0,  0,  0,  0,  0 }, /*  32 */
-	{ 39, W, 182,   0,       0,  19,     0,   0,  30,   CT_GRAIN        ,  0,  0,  0,  0,  0 }, /*  33 */
-	{ 40, W, 181,   0,       0,  16,     0,   0,  30,   CT_WOOD         ,  0,  0,  0,  0,  0 }, /*  34 */
-	{ 41, W, 179,   0,       0,  19,     0,   0,  30,   CT_IRON_ORE     ,  0,  0,  0,  0,  0 }, /*  35 */
-	{ 42, W, 196,   0,       0,  18,     0,   0,  20,   CT_STEEL        ,  0,  0,  0,  0,  0 }, /*  36 */
-	{ 43, W, 255,   0,       0,  30,     0,   0,  20,   CT_VALUABLES    ,  0,  0,  0,  0,  0 }, /*  37 */
-	{ 44, W, 191,   0,       0,  22,     0,   0,  25,   CT_FOOD         ,  0,  0,  0,  0,  0 }, /*  38 */
-	{ 45, W, 196,   0,       0,  18,     0,   0,  20,   CT_PAPER        ,  0,  0,  0,  0,  0 }, /*  39 */
-	{ 46, W, 179,   0,       0,  19,     0,   0,  30,   CT_COPPER_ORE   ,  0,  0,  0,  0,  0 }, /*  40 */
-	{ 47, W, 199,   0,       0,  25,     0,   0,  25,   CT_WATER        ,  0,  0,  0,  0,  0 }, /*  41 */
-	{ 48, W, 182,   0,       0,  18,     0,   0,  25,   CT_FRUIT        ,  0,  0,  0,  0,  0 }, /*  42 */
-	{ 49, W, 185,   0,       0,  19,     0,   0,  21,   CT_RUBBER       ,  0,  0,  0,  0,  0 }, /*  43 */
-	{ 50, W, 176,   0,       0,  19,     0,   0,  30,   CT_SUGAR        ,  0,  0,  0,  0,  0 }, /*  44 */
-	{ 51, W, 178,   0,       0,  20,     0,   0,  30,   CT_COTTON_CANDY ,  0,  0,  0,  0,  0 }, /*  45 */
-	{ 52, W, 192,   0,       0,  20,     0,   0,  30,   CT_TOFFEE       ,  0,  0,  0,  0,  0 }, /*  46 */
-	{ 53, W, 190,   0,       0,  21,     0,   0,  20,   CT_BUBBLES      ,  0,  0,  0,  0,  0 }, /*  47 */
-	{ 54, W, 182,   0,       0,  24,     0,   0,  25,   CT_COLA         ,  0,  0,  0,  0,  0 }, /*  48 */
-	{ 55, W, 181,   0,       0,  21,     0,   0,  25,   CT_CANDY        ,  0,  0,  0,  0,  0 }, /*  49 */
-	{ 56, W, 183,   0,       0,  21,     0,   0,  20,   CT_TOYS         ,  0,  0,  0,  0,  0 }, /*  50 */
-	{ 57, W, 196,   0,       0,  18,     0,   0,  22,   CT_BATTERIES    ,  0,  0,  0,  0,  0 }, /*  51 */
-	{ 58, W, 193,   0,       0,  18,     0,   0,  25,   CT_FIZZY_DRINKS ,  0,  0,  0,  0,  0 }, /*  52 */
-	{ 59, W, 191,   0,       0,  18,     0,   0,  30,   CT_PLASTIC      ,  0,  0,  0,  0,  0 }, /*  53 */
-	{ 25, 0,  52, 304,    9000,  95,   230,   2,   0,   0               ,  0,  0,  0,  0,  0 }, /*  54 */
-	{ 26, M,  60, 336, 10000/2,85/2, 240/2,   2,  25,   CT_PASSENGERS   ,  0,  0,  0,  0,  0 }, /*  55 */
-	{ 26, 0,  53, 320,    5000,  95,   230,   2,   0,   0               ,  0,  0,  0,  0,  0 }, /*  56 */
-	{ 60, W, 247,   0,       0,  25,     0,   0,  45,   CT_PASSENGERS   ,  0,  0,  0,  0,  0 }, /*  57 */
-	{ 62, W, 228,   0,       0,  21,     0,   0,  35,   CT_MAIL         ,  0,  0,  0,  0,  0 }, /*  58 */
-	{ 61, W, 176,   0,       0,  18,     0,   0,  35,   CT_COAL         ,  0,  0,  0,  0,  0 }, /*  59 */
-	{ 63, W, 200,   0,       0,  24,     0,   0,  35,   CT_OIL          ,  0,  0,  0,  0,  0 }, /*  60 */
-	{ 64, W, 192,   0,       0,  20,     0,   0,  30,   CT_LIVESTOCK    ,  0,  0,  0,  0,  0 }, /*  61 */
-	{ 65, W, 190,   0,       0,  21,     0,   0,  30,   CT_GOODS        ,  0,  0,  0,  0,  0 }, /*  62 */
-	{ 66, W, 182,   0,       0,  19,     0,   0,  35,   CT_GRAIN        ,  0,  0,  0,  0,  0 }, /*  63 */
-	{ 67, W, 181,   0,       0,  16,     0,   0,  35,   CT_WOOD         ,  0,  0,  0,  0,  0 }, /*  64 */
-	{ 68, W, 179,   0,       0,  19,     0,   0,  35,   CT_IRON_ORE     ,  0,  0,  0,  0,  0 }, /*  65 */
-	{ 69, W, 196,   0,       0,  18,     0,   0,  25,   CT_STEEL        ,  0,  0,  0,  0,  0 }, /*  66 */
-	{ 70, W, 255,   0,       0,  30,     0,   0,  25,   CT_VALUABLES    ,  0,  0,  0,  0,  0 }, /*  67 */
-	{ 71, W, 191,   0,       0,  22,     0,   0,  30,   CT_FOOD         ,  0,  0,  0,  0,  0 }, /*  68 */
-	{ 72, W, 196,   0,       0,  18,     0,   0,  25,   CT_PAPER        ,  0,  0,  0,  0,  0 }, /*  69 */
-	{ 73, W, 179,   0,       0,  19,     0,   0,  35,   CT_COPPER_ORE   ,  0,  0,  0,  0,  0 }, /*  70 */
-	{ 47, W, 199,   0,       0,  25,     0,   0,  30,   CT_WATER        ,  0,  0,  0,  0,  0 }, /*  71 */
-	{ 48, W, 182,   0,       0,  18,     0,   0,  30,   CT_FRUIT        ,  0,  0,  0,  0,  0 }, /*  72 */
-	{ 49, W, 185,   0,       0,  19,     0,   0,  26,   CT_RUBBER       ,  0,  0,  0,  0,  0 }, /*  73 */
-	{ 50, W, 176,   0,       0,  19,     0,   0,  35,   CT_SUGAR        ,  0,  0,  0,  0,  0 }, /*  74 */
-	{ 51, W, 178,   0,       0,  20,     0,   0,  35,   CT_COTTON_CANDY ,  0,  0,  0,  0,  0 }, /*  75 */
-	{ 52, W, 192,   0,       0,  20,     0,   0,  35,   CT_TOFFEE       ,  0,  0,  0,  0,  0 }, /*  76 */
-	{ 53, W, 190,   0,       0,  21,     0,   0,  25,   CT_BUBBLES      ,  0,  0,  0,  0,  0 }, /*  77 */
-	{ 54, W, 182,   0,       0,  24,     0,   0,  30,   CT_COLA         ,  0,  0,  0,  0,  0 }, /*  78 */
-	{ 55, W, 181,   0,       0,  21,     0,   0,  30,   CT_CANDY        ,  0,  0,  0,  0,  0 }, /*  79 */
-	{ 56, W, 183,   0,       0,  21,     0,   0,  25,   CT_TOYS         ,  0,  0,  0,  0,  0 }, /*  80 */
-	{ 57, W, 196,   0,       0,  18,     0,   0,  27,   CT_BATTERIES    ,  0,  0,  0,  0,  0 }, /*  81 */
-	{ 58, W, 193,   0,       0,  18,     0,   0,  30,   CT_FIZZY_DRINKS ,  0,  0,  0,  0,  0 }, /*  82 */
-	{ 59, W, 191,   0,       0,  18,     0,   0,  35,   CT_PLASTIC      ,  0,  0,  0,  0,  0 }, /*  83 */
-	{ 28, 0,  70, 400,   10000, 105,   250,   2,   0,   0               ,  0,  0,  0,  0,  0 }, /*  84 */
-	{ 29, 0,  74, 448,   12000, 120,   253,   2,   0,   0               ,  0,  0,  0,  0,  0 }, /*  85 */
-	{ 30, 0,  82, 480,   15000, 130,   254,   2,   0,   0               ,  0,  0,  0,  0,  0 }, /*  86 */
-	{ 31, M,  95, 640, 20000/2,150/2,255/2,   2,   0,   0               ,  0,  0,  0,  0,  0 }, /*  87 */
-	{ 28, 0,  70, 480,   10000, 120,   250,   2,   0,   0               ,  0,  0,  0,  0,  0 }, /*  88 */
-	{ 60, W, 247,   0,       0,  25,     0,   0,  47,   CT_PASSENGERS   ,  0,  0,  0,  0,  0 }, /*  89 */
-	{ 62, W, 228,   0,       0,  21,     0,   0,  37,   CT_MAIL         ,  0,  0,  0,  0,  0 }, /*  90 */
-	{ 61, W, 176,   0,       0,  18,     0,   0,  37,   CT_COAL         ,  0,  0,  0,  0,  0 }, /*  91 */
-	{ 63, W, 200,   0,       0,  24,     0,   0,  37,   CT_OIL          ,  0,  0,  0,  0,  0 }, /*  92 */
-	{ 64, W, 192,   0,       0,  20,     0,   0,  32,   CT_LIVESTOCK    ,  0,  0,  0,  0,  0 }, /*  93 */
-	{ 65, W, 190,   0,       0,  21,     0,   0,  32,   CT_GOODS        ,  0,  0,  0,  0,  0 }, /*  94 */
-	{ 66, W, 182,   0,       0,  19,     0,   0,  37,   CT_GRAIN        ,  0,  0,  0,  0,  0 }, /*  95 */
-	{ 67, W, 181,   0,       0,  16,     0,   0,  37,   CT_WOOD         ,  0,  0,  0,  0,  0 }, /*  96 */
-	{ 68, W, 179,   0,       0,  19,     0,   0,  37,   CT_IRON_ORE     ,  0,  0,  0,  0,  0 }, /*  97 */
-	{ 69, W, 196,   0,       0,  18,     0,   0,  27,   CT_STEEL        ,  0,  0,  0,  0,  0 }, /*  98 */
-	{ 70, W, 255,   0,       0,  30,     0,   0,  27,   CT_VALUABLES    ,  0,  0,  0,  0,  0 }, /*  99 */
-	{ 71, W, 191,   0,       0,  22,     0,   0,  32,   CT_FOOD         ,  0,  0,  0,  0,  0 }, /* 100 */
-	{ 72, W, 196,   0,       0,  18,     0,   0,  27,   CT_PAPER        ,  0,  0,  0,  0,  0 }, /* 101 */
-	{ 73, W, 179,   0,       0,  19,     0,   0,  37,   CT_COPPER_ORE   ,  0,  0,  0,  0,  0 }, /* 102 */
-	{ 47, W, 199,   0,       0,  25,     0,   0,  32,   CT_WATER        ,  0,  0,  0,  0,  0 }, /* 103 */
-	{ 48, W, 182,   0,       0,  18,     0,   0,  32,   CT_FRUIT        ,  0,  0,  0,  0,  0 }, /* 104 */
-	{ 49, W, 185,   0,       0,  19,     0,   0,  28,   CT_RUBBER       ,  0,  0,  0,  0,  0 }, /* 105 */
-	{ 50, W, 176,   0,       0,  19,     0,   0,  37,   CT_SUGAR        ,  0,  0,  0,  0,  0 }, /* 106 */
-	{ 51, W, 178,   0,       0,  20,     0,   0,  37,   CT_COTTON_CANDY ,  0,  0,  0,  0,  0 }, /* 107 */
-	{ 52, W, 192,   0,       0,  20,     0,   0,  37,   CT_TOFFEE       ,  0,  0,  0,  0,  0 }, /* 108 */
-	{ 53, W, 190,   0,       0,  21,     0,   0,  27,   CT_BUBBLES      ,  0,  0,  0,  0,  0 }, /* 109 */
-	{ 54, W, 182,   0,       0,  24,     0,   0,  32,   CT_COLA         ,  0,  0,  0,  0,  0 }, /* 110 */
-	{ 55, W, 181,   0,       0,  21,     0,   0,  32,   CT_CANDY        ,  0,  0,  0,  0,  0 }, /* 111 */
-	{ 56, W, 183,   0,       0,  21,     0,   0,  27,   CT_TOYS         ,  0,  0,  0,  0,  0 }, /* 112 */
-	{ 57, W, 196,   0,       0,  18,     0,   0,  29,   CT_BATTERIES    ,  0,  0,  0,  0,  0 }, /* 113 */
-	{ 58, W, 193,   0,       0,  18,     0,   0,  32,   CT_FIZZY_DRINKS ,  0,  0,  0,  0,  0 }, /* 114 */
-	{ 59, W, 191,   0,       0,  18,     0,   0,  37,   CT_PLASTIC      ,  0,  0,  0,  0,  0 }, /* 115 */
+	// |  flags     |        power (hp)  |  running_cost_class             |   powered wagons power
+	// |  |    base_cost     |    weight |  |  engclass                    |   |   powered wagons weight
+	// |  |    |    |        |    |      |  |  |   capacity                |   |   |   visual effects
+	// |  |    |    |        |    |      |  |  |   |    cargo_type         |   |   |   |   |
+	{  2, 0,   7,  64,     300,  47,    50, 0, 0,  0,   0               ,  0,  0,  0,  0,  0 }, /*   0 */
+	{ 19, 0,   8,  80,     600,  65,    65, 1, 1,  0,   0               ,  0,  0,  0,  0,  0 }, /*   1 */
+	{  2, 0,  10,  72,     400,  85,    90, 0, 0,  0,   0               ,  0,  0,  0,  0,  0 }, /*   2 */
+	{  0, 0,  15,  96,     900, 130,   130, 0, 0,  0,   0               ,  0,  0,  0,  0,  0 }, /*   3 */
+	{  1, 0,  19, 112,    1000, 140,   145, 0, 0,  0,   0               ,  0,  0,  0,  0,  0 }, /*   4 */
+	{ 12, 0,  16, 120,    1400,  95,   125, 1, 1,  0,   0               ,  0,  0,  0,  0,  0 }, /*   5 */
+	{ 14, 0,  20, 152,    2000, 120,   135, 1, 1,  0,   0               ,  0,  0,  0,  0,  0 }, /*   6 */
+	{  3, 0,  14,  88,    1100, 145,   130, 0, 0,  0,   0               ,  0,  0,  0,  0,  0 }, /*   7 */
+	{  0, 0,  13, 112,    1000, 131,   120, 0, 0,  0,   0               ,  0,  0,  0,  0,  0 }, /*   8 */
+	{  1, 0,  19, 128,    1200, 162,   140, 0, 0,  0,   0               ,  0,  0,  0,  0,  0 }, /*   9 */
+	{  0, 0,  22, 144,    1600, 170,   130, 0, 0,  0,   0               ,  0,  0,  0,  0,  0 }, /*  10 */
+	{  8, M,  11, 112,   600/2,32/2,  85/2, 1, 1, 38,   CT_PASSENGERS   ,  0,  0,  0,  0,  0 }, /*  11 */
+	{ 10, M,  14, 120,   700/2,38/2,  70/2, 1, 1, 40,   CT_PASSENGERS   ,  0,  0,  0,  0,  0 }, /*  12 */
+	{  4, 0,  15, 128,    1250,  72,    95, 1, 1,  0,   0               ,  0,  0,  0,  0,  0 }, /*  13 */
+	{  5, 0,  17, 144,    1750, 101,   120, 1, 1,  0,   0               ,  0,  0,  0,  0,  0 }, /*  14 */
+	{  4, 0,  18, 160,    2580, 112,   140, 1, 1,  0,   0               ,  0,  0,  0,  0,  0 }, /*  15 */
+	{ 14, 0,  23,  96,    4000, 150,   135, 1, 1,  0,   0               ,  0,  0,  0,  0,  0 }, /*  16 */
+	{ 12, 0,  16, 112,    2400, 120,   105, 1, 1,  0,   0               ,  0,  0,  0,  0,  0 }, /*  17 */
+	{ 13, 0,  30, 112,    6600, 207,   155, 1, 1,  0,   0               ,  0,  0,  0,  0,  0 }, /*  18 */
+	{ 15, 0,  18, 104,    1500, 110,   105, 1, 1,  0,   0               ,  0,  0,  0,  0,  0 }, /*  19 */
+	{ 16, M,  35, 160,  3500/2,95/2, 205/2, 1, 1,  0,   0               ,  0,  0,  0,  0,  0 }, /*  20 */
+	{ 18, 0,  21, 104,    2200, 120,   145, 1, 1,  0,   0               ,  0,  0,  0,  0,  0 }, /*  21 */
+	{  6, M,  20, 200,  4500/2,70/2, 190/2, 1, 1,  4,   CT_MAIL         ,  0,  0,  0,  0,  0 }, /*  22 */
+	{ 20, 0,  26, 160,    3600,  84,   180, 2, 2,  0,   0               ,  0,  0,  0,  0,  0 }, /*  23 */
+	{ 20, 0,  30, 176,    5000,  82,   205, 2, 2,  0,   0               ,  0,  0,  0,  0,  0 }, /*  24 */
+	{ 21, M,  40, 240,  7000/2,90/2, 240/2, 2, 2,  0,   0               ,  0,  0,  0,  0,  0 }, /*  25 */
+	{ 23, M,  43, 264,  8000/2,95/2, 250/2, 2, 2,  0,   0               ,  0,  0,  0,  0,  0 }, /*  26 */
+	{ 33, W, 247,   0,       0,  25,     0, 0, 0, 40,   CT_PASSENGERS   ,  0,  0,  0,  0,  0 }, /*  27 */
+	{ 35, W, 228,   0,       0,  21,     0, 0, 0, 30,   CT_MAIL         ,  0,  0,  0,  0,  0 }, /*  28 */
+	{ 34, W, 176,   0,       0,  18,     0, 0, 0, 30,   CT_COAL         ,  0,  0,  0,  0,  0 }, /*  29 */
+	{ 36, W, 200,   0,       0,  24,     0, 0, 0, 30,   CT_OIL          ,  0,  0,  0,  0,  0 }, /*  30 */
+	{ 37, W, 192,   0,       0,  20,     0, 0, 0, 25,   CT_LIVESTOCK    ,  0,  0,  0,  0,  0 }, /*  31 */
+	{ 38, W, 190,   0,       0,  21,     0, 0, 0, 25,   CT_GOODS        ,  0,  0,  0,  0,  0 }, /*  32 */
+	{ 39, W, 182,   0,       0,  19,     0, 0, 0, 30,   CT_GRAIN        ,  0,  0,  0,  0,  0 }, /*  33 */
+	{ 40, W, 181,   0,       0,  16,     0, 0, 0, 30,   CT_WOOD         ,  0,  0,  0,  0,  0 }, /*  34 */
+	{ 41, W, 179,   0,       0,  19,     0, 0, 0, 30,   CT_IRON_ORE     ,  0,  0,  0,  0,  0 }, /*  35 */
+	{ 42, W, 196,   0,       0,  18,     0, 0, 0, 20,   CT_STEEL        ,  0,  0,  0,  0,  0 }, /*  36 */
+	{ 43, W, 255,   0,       0,  30,     0, 0, 0, 20,   CT_VALUABLES    ,  0,  0,  0,  0,  0 }, /*  37 */
+	{ 44, W, 191,   0,       0,  22,     0, 0, 0, 25,   CT_FOOD         ,  0,  0,  0,  0,  0 }, /*  38 */
+	{ 45, W, 196,   0,       0,  18,     0, 0, 0, 20,   CT_PAPER        ,  0,  0,  0,  0,  0 }, /*  39 */
+	{ 46, W, 179,   0,       0,  19,     0, 0, 0, 30,   CT_COPPER_ORE   ,  0,  0,  0,  0,  0 }, /*  40 */
+	{ 47, W, 199,   0,       0,  25,     0, 0, 0, 25,   CT_WATER        ,  0,  0,  0,  0,  0 }, /*  41 */
+	{ 48, W, 182,   0,       0,  18,     0, 0, 0, 25,   CT_FRUIT        ,  0,  0,  0,  0,  0 }, /*  42 */
+	{ 49, W, 185,   0,       0,  19,     0, 0, 0, 21,   CT_RUBBER       ,  0,  0,  0,  0,  0 }, /*  43 */
+	{ 50, W, 176,   0,       0,  19,     0, 0, 0, 30,   CT_SUGAR        ,  0,  0,  0,  0,  0 }, /*  44 */
+	{ 51, W, 178,   0,       0,  20,     0, 0, 0, 30,   CT_COTTON_CANDY ,  0,  0,  0,  0,  0 }, /*  45 */
+	{ 52, W, 192,   0,       0,  20,     0, 0, 0, 30,   CT_TOFFEE       ,  0,  0,  0,  0,  0 }, /*  46 */
+	{ 53, W, 190,   0,       0,  21,     0, 0, 0, 20,   CT_BUBBLES      ,  0,  0,  0,  0,  0 }, /*  47 */
+	{ 54, W, 182,   0,       0,  24,     0, 0, 0, 25,   CT_COLA         ,  0,  0,  0,  0,  0 }, /*  48 */
+	{ 55, W, 181,   0,       0,  21,     0, 0, 0, 25,   CT_CANDY        ,  0,  0,  0,  0,  0 }, /*  49 */
+	{ 56, W, 183,   0,       0,  21,     0, 0, 0, 20,   CT_TOYS         ,  0,  0,  0,  0,  0 }, /*  50 */
+	{ 57, W, 196,   0,       0,  18,     0, 0, 0, 22,   CT_BATTERIES    ,  0,  0,  0,  0,  0 }, /*  51 */
+	{ 58, W, 193,   0,       0,  18,     0, 0, 0, 25,   CT_FIZZY_DRINKS ,  0,  0,  0,  0,  0 }, /*  52 */
+	{ 59, W, 191,   0,       0,  18,     0, 0, 0, 30,   CT_PLASTIC      ,  0,  0,  0,  0,  0 }, /*  53 */
+	{ 25, 0,  52, 304,    9000,  95,   230, 2, 2,  0,   0               ,  0,  0,  0,  0,  0 }, /*  54 */
+	{ 26, M,  60, 336, 10000/2,85/2, 240/2, 2, 2, 25,   CT_PASSENGERS   ,  0,  0,  0,  0,  0 }, /*  55 */
+	{ 26, 0,  53, 320,    5000,  95,   230, 2, 2,  0,   0               ,  0,  0,  0,  0,  0 }, /*  56 */
+	{ 60, W, 247,   0,       0,  25,     0, 0, 0, 45,   CT_PASSENGERS   ,  0,  0,  0,  0,  0 }, /*  57 */
+	{ 62, W, 228,   0,       0,  21,     0, 0, 0, 35,   CT_MAIL         ,  0,  0,  0,  0,  0 }, /*  58 */
+	{ 61, W, 176,   0,       0,  18,     0, 0, 0, 35,   CT_COAL         ,  0,  0,  0,  0,  0 }, /*  59 */
+	{ 63, W, 200,   0,       0,  24,     0, 0, 0, 35,   CT_OIL          ,  0,  0,  0,  0,  0 }, /*  60 */
+	{ 64, W, 192,   0,       0,  20,     0, 0, 0, 30,   CT_LIVESTOCK    ,  0,  0,  0,  0,  0 }, /*  61 */
+	{ 65, W, 190,   0,       0,  21,     0, 0, 0, 30,   CT_GOODS        ,  0,  0,  0,  0,  0 }, /*  62 */
+	{ 66, W, 182,   0,       0,  19,     0, 0, 0, 35,   CT_GRAIN        ,  0,  0,  0,  0,  0 }, /*  63 */
+	{ 67, W, 181,   0,       0,  16,     0, 0, 0, 35,   CT_WOOD         ,  0,  0,  0,  0,  0 }, /*  64 */
+	{ 68, W, 179,   0,       0,  19,     0, 0, 0, 35,   CT_IRON_ORE     ,  0,  0,  0,  0,  0 }, /*  65 */
+	{ 69, W, 196,   0,       0,  18,     0, 0, 0, 25,   CT_STEEL        ,  0,  0,  0,  0,  0 }, /*  66 */
+	{ 70, W, 255,   0,       0,  30,     0, 0, 0, 25,   CT_VALUABLES    ,  0,  0,  0,  0,  0 }, /*  67 */
+	{ 71, W, 191,   0,       0,  22,     0, 0, 0, 30,   CT_FOOD         ,  0,  0,  0,  0,  0 }, /*  68 */
+	{ 72, W, 196,   0,       0,  18,     0, 0, 0, 25,   CT_PAPER        ,  0,  0,  0,  0,  0 }, /*  69 */
+	{ 73, W, 179,   0,       0,  19,     0, 0, 0, 35,   CT_COPPER_ORE   ,  0,  0,  0,  0,  0 }, /*  70 */
+	{ 47, W, 199,   0,       0,  25,     0, 0, 0, 30,   CT_WATER        ,  0,  0,  0,  0,  0 }, /*  71 */
+	{ 48, W, 182,   0,       0,  18,     0, 0, 0, 30,   CT_FRUIT        ,  0,  0,  0,  0,  0 }, /*  72 */
+	{ 49, W, 185,   0,       0,  19,     0, 0, 0, 26,   CT_RUBBER       ,  0,  0,  0,  0,  0 }, /*  73 */
+	{ 50, W, 176,   0,       0,  19,     0, 0, 0, 35,   CT_SUGAR        ,  0,  0,  0,  0,  0 }, /*  74 */
+	{ 51, W, 178,   0,       0,  20,     0, 0, 0, 35,   CT_COTTON_CANDY ,  0,  0,  0,  0,  0 }, /*  75 */
+	{ 52, W, 192,   0,       0,  20,     0, 0, 0, 35,   CT_TOFFEE       ,  0,  0,  0,  0,  0 }, /*  76 */
+	{ 53, W, 190,   0,       0,  21,     0, 0, 0, 25,   CT_BUBBLES      ,  0,  0,  0,  0,  0 }, /*  77 */
+	{ 54, W, 182,   0,       0,  24,     0, 0, 0, 30,   CT_COLA         ,  0,  0,  0,  0,  0 }, /*  78 */
+	{ 55, W, 181,   0,       0,  21,     0, 0, 0, 30,   CT_CANDY        ,  0,  0,  0,  0,  0 }, /*  79 */
+	{ 56, W, 183,   0,       0,  21,     0, 0, 0, 25,   CT_TOYS         ,  0,  0,  0,  0,  0 }, /*  80 */
+	{ 57, W, 196,   0,       0,  18,     0, 0, 0, 27,   CT_BATTERIES    ,  0,  0,  0,  0,  0 }, /*  81 */
+	{ 58, W, 193,   0,       0,  18,     0, 0, 0, 30,   CT_FIZZY_DRINKS ,  0,  0,  0,  0,  0 }, /*  82 */
+	{ 59, W, 191,   0,       0,  18,     0, 0, 0, 35,   CT_PLASTIC      ,  0,  0,  0,  0,  0 }, /*  83 */
+	{ 28, 0,  70, 400,   10000, 105,   250, 2, 2,  0,   0               ,  0,  0,  0,  0,  0 }, /*  84 */
+	{ 29, 0,  74, 448,   12000, 120,   253, 2, 2,  0,   0               ,  0,  0,  0,  0,  0 }, /*  85 */
+	{ 30, 0,  82, 480,   15000, 130,   254, 2, 2,  0,   0               ,  0,  0,  0,  0,  0 }, /*  86 */
+	{ 31, M,  95, 640, 20000/2,150/2,255/2, 2, 2,  0,   0               ,  0,  0,  0,  0,  0 }, /*  87 */
+	{ 28, 0,  70, 480,   10000, 120,   250, 2, 2,  0,   0               ,  0,  0,  0,  0,  0 }, /*  88 */
+	{ 60, W, 247,   0,       0,  25,     0, 0, 0, 47,   CT_PASSENGERS   ,  0,  0,  0,  0,  0 }, /*  89 */
+	{ 62, W, 228,   0,       0,  21,     0, 0, 0, 37,   CT_MAIL         ,  0,  0,  0,  0,  0 }, /*  90 */
+	{ 61, W, 176,   0,       0,  18,     0, 0, 0, 37,   CT_COAL         ,  0,  0,  0,  0,  0 }, /*  91 */
+	{ 63, W, 200,   0,       0,  24,     0, 0, 0, 37,   CT_OIL          ,  0,  0,  0,  0,  0 }, /*  92 */
+	{ 64, W, 192,   0,       0,  20,     0, 0, 0, 32,   CT_LIVESTOCK    ,  0,  0,  0,  0,  0 }, /*  93 */
+	{ 65, W, 190,   0,       0,  21,     0, 0, 0, 32,   CT_GOODS        ,  0,  0,  0,  0,  0 }, /*  94 */
+	{ 66, W, 182,   0,       0,  19,     0, 0, 0, 37,   CT_GRAIN        ,  0,  0,  0,  0,  0 }, /*  95 */
+	{ 67, W, 181,   0,       0,  16,     0, 0, 0, 37,   CT_WOOD         ,  0,  0,  0,  0,  0 }, /*  96 */
+	{ 68, W, 179,   0,       0,  19,     0, 0, 0, 37,   CT_IRON_ORE     ,  0,  0,  0,  0,  0 }, /*  97 */
+	{ 69, W, 196,   0,       0,  18,     0, 0, 0, 27,   CT_STEEL        ,  0,  0,  0,  0,  0 }, /*  98 */
+	{ 70, W, 255,   0,       0,  30,     0, 0, 0, 27,   CT_VALUABLES    ,  0,  0,  0,  0,  0 }, /*  99 */
+	{ 71, W, 191,   0,       0,  22,     0, 0, 0, 32,   CT_FOOD         ,  0,  0,  0,  0,  0 }, /* 100 */
+	{ 72, W, 196,   0,       0,  18,     0, 0, 0, 27,   CT_PAPER        ,  0,  0,  0,  0,  0 }, /* 101 */
+	{ 73, W, 179,   0,       0,  19,     0, 0, 0, 37,   CT_COPPER_ORE   ,  0,  0,  0,  0,  0 }, /* 102 */
+	{ 47, W, 199,   0,       0,  25,     0, 0, 0, 32,   CT_WATER        ,  0,  0,  0,  0,  0 }, /* 103 */
+	{ 48, W, 182,   0,       0,  18,     0, 0, 0, 32,   CT_FRUIT        ,  0,  0,  0,  0,  0 }, /* 104 */
+	{ 49, W, 185,   0,       0,  19,     0, 0, 0, 28,   CT_RUBBER       ,  0,  0,  0,  0,  0 }, /* 105 */
+	{ 50, W, 176,   0,       0,  19,     0, 0, 0, 37,   CT_SUGAR        ,  0,  0,  0,  0,  0 }, /* 106 */
+	{ 51, W, 178,   0,       0,  20,     0, 0, 0, 37,   CT_COTTON_CANDY ,  0,  0,  0,  0,  0 }, /* 107 */
+	{ 52, W, 192,   0,       0,  20,     0, 0, 0, 37,   CT_TOFFEE       ,  0,  0,  0,  0,  0 }, /* 108 */
+	{ 53, W, 190,   0,       0,  21,     0, 0, 0, 27,   CT_BUBBLES      ,  0,  0,  0,  0,  0 }, /* 109 */
+	{ 54, W, 182,   0,       0,  24,     0, 0, 0, 32,   CT_COLA         ,  0,  0,  0,  0,  0 }, /* 110 */
+	{ 55, W, 181,   0,       0,  21,     0, 0, 0, 32,   CT_CANDY        ,  0,  0,  0,  0,  0 }, /* 111 */
+	{ 56, W, 183,   0,       0,  21,     0, 0, 0, 27,   CT_TOYS         ,  0,  0,  0,  0,  0 }, /* 112 */
+	{ 57, W, 196,   0,       0,  18,     0, 0, 0, 29,   CT_BATTERIES    ,  0,  0,  0,  0,  0 }, /* 113 */
+	{ 58, W, 193,   0,       0,  18,     0, 0, 0, 32,   CT_FIZZY_DRINKS ,  0,  0,  0,  0,  0 }, /* 114 */
+	{ 59, W, 191,   0,       0,  18,     0, 0, 0, 37,   CT_PLASTIC      ,  0,  0,  0,  0,  0 }, /* 115 */
 };
 #undef W
 #undef M
--- a/train_cmd.c	Sat Jan 07 16:30:49 2006 +0000
+++ b/train_cmd.c	Sat Jan 07 16:47:59 2006 +0000
@@ -3601,9 +3601,9 @@
 
 	do {
 		const RailVehicleInfo *rvi = RailVehInfo(v->engine_type);
-		if (rvi->running_cost_base)
-			cost += rvi->running_cost_base * _price.running_rail[rvi->engclass];
-	} while ( (v=v->next) != NULL );
+		if (rvi->running_cost_base > 0)
+			cost += rvi->running_cost_base * _price.running_rail[rvi->running_cost_class];
+	} while ((v = v->next) != NULL);
 
 	return cost;
 }
--- a/train_gui.c	Sat Jan 07 16:30:49 2006 +0000
+++ b/train_gui.c	Sat Jan 07 16:47:59 2006 +0000
@@ -48,7 +48,7 @@
 	y += 10;
 
 	/* Running cost */
-	SetDParam(0, (rvi->running_cost_base * _price.running_rail[rvi->engclass] >> 8) << multihead);
+	SetDParam(0, (rvi->running_cost_base * _price.running_rail[rvi->running_cost_class] >> 8) << multihead);
 	DrawString(x,y, STR_PURCHASE_INFO_RUNNINGCOST, 0);
 	y += 10;