summaryrefslogtreecommitdiff
path: root/src/newgrf.cpp
diff options
context:
space:
mode:
authorpeter1138 <peter1138@openttd.org>2009-01-06 14:45:38 +0000
committerpeter1138 <peter1138@openttd.org>2009-01-06 14:45:38 +0000
commitbd803696b3fafb44e3539510a7473cbc93b9e093 (patch)
treeb15421b827c35a0f165f46308277f43ad88ef9de /src/newgrf.cpp
parent4fcf28d9edc1f5d80d9b2eb8a27978083d5d8c91 (diff)
downloadopenttd-bd803696b3fafb44e3539510a7473cbc93b9e093.tar.xz
(svn r14869) -Feature: Allow road vehicles to move multiple steps in a tick (code based on train movement code) and add support for RV prop 15. This gives RVs a maximum speed of 318mph instead 79mph. This only implements higher speeds, not 'realistic acceleration'.
Diffstat (limited to 'src/newgrf.cpp')
-rw-r--r--src/newgrf.cpp14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/newgrf.cpp b/src/newgrf.cpp
index 13415f97b..e0cff5836 100644
--- a/src/newgrf.cpp
+++ b/src/newgrf.cpp
@@ -104,6 +104,7 @@ enum {
struct GRFTempEngineData {
uint16 cargo_allowed;
uint16 cargo_disallowed;
+ uint8 rv_max_speed; ///< Temporary storage of RV prop 15, maximum speed in mph/0.8
};
static GRFTempEngineData *_gted;
@@ -790,7 +791,6 @@ static ChangeInfoResult RoadVehicleChangeInfo(uint engine, int numinfo, int prop
case 0x13: // Power in 10hp
case 0x14: // Weight in 1/4 tons
- case 0x15: // Speed in mph*0.8
/** @todo Support for road vehicles realistic power
* computations (called rvpower in TTDPatch) is just
* missing in OTTD yet. --pasky */
@@ -798,6 +798,10 @@ static ChangeInfoResult RoadVehicleChangeInfo(uint engine, int numinfo, int prop
ret = CIR_UNHANDLED;
break;
+ case 0x15: // Speed in mph/0.8
+ _gted[e->index].rv_max_speed = grf_load_byte(&buf);
+ break;
+
case 0x16: // Cargos available for refitting
ei->refit_mask = grf_load_dword(&buf);
break;
@@ -6027,6 +6031,14 @@ static void AfterLoadGRFs()
/* Load old shore sprites in new position, if they were replaced by ActionA */
ActivateOldShore();
+ Engine *e;
+ FOR_ALL_ENGINES_OF_TYPE(e, VEH_ROAD) {
+ if (_gted[e->index].rv_max_speed != 0) {
+ /* Set RV maximum speed from the mph/0.8 unit value */
+ e->u.road.max_speed = _gted[e->index].rv_max_speed * 4;
+ }
+ }
+
/* Deallocate temporary loading data */
free(_gted);
_grm_sprites.clear();