summaryrefslogtreecommitdiff
path: root/newgrf.c
diff options
context:
space:
mode:
authorpeter1138 <peter1138@openttd.org>2005-10-20 15:15:58 +0000
committerpeter1138 <peter1138@openttd.org>2005-10-20 15:15:58 +0000
commit3931d8ef5c2282433c6b17fdd4e0e7de010f102e (patch)
tree0e3fed2e5e5d9fbef35e73fb6f09afb9b8093d97 /newgrf.c
parent16f1af429bb6f825cec7bc538ebb8b609a88d9a8 (diff)
downloadopenttd-3931d8ef5c2282433c6b17fdd4e0e7de010f102e.tar.xz
(svn r3071) -NewGRF: Add support for rail vehicle weight greater than 255 tons.
Diffstat (limited to 'newgrf.c')
-rw-r--r--newgrf.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/newgrf.c b/newgrf.c
index 93905ed23..65dbb5316 100644
--- a/newgrf.c
+++ b/newgrf.c
@@ -311,7 +311,7 @@ static bool RailVehicleChangeInfo(uint engine, int numinfo, int prop, byte **buf
FOR_EACH_OBJECT {
uint8 weight = grf_load_byte(&buf);
- rvi[i].weight = weight;
+ SB(rvi[i].weight, 0, 8, weight);
}
} break;
case 0x17: { /* Cost factor */
@@ -390,13 +390,23 @@ static bool RailVehicleChangeInfo(uint engine, int numinfo, int prop, byte **buf
rvi[i].pow_wag_weight = wag_weight;
}
} break;
+ case 0x24: { /* High byte of vehicle weight */
+ FOR_EACH_OBJECT {
+ byte weight = grf_load_byte(&buf);
+
+ if (weight < 4) {
+ grfmsg(GMS_NOTICE, "RailVehicleChangeInfo: Nonsensical weight of %d tons, ignoring.", weight << 8);
+ } else {
+ SB(rvi[i].weight, 8, 8, weight);
+ }
+ }
+ } break;
/* TODO */
/* Fall-through for unimplemented one byte long properties. */
case 0x1A: /* Sort order */
case 0x1C: /* Refit cost */
case 0x1F: /* Tractive effort */
case 0x20: /* Air drag */
- case 0x24: /* High byte of vehicle weight */
case 0x25: /* User-defined bit mask to set when checking veh. var. 42 */
case 0x26: /* Retire vehicle early */
{