summaryrefslogtreecommitdiff
path: root/src/train_cmd.cpp
diff options
context:
space:
mode:
authorrubidium <rubidium@openttd.org>2009-03-04 23:32:23 +0000
committerrubidium <rubidium@openttd.org>2009-03-04 23:32:23 +0000
commitc0d71b84f983070462a83cc60a17083d5ede4e50 (patch)
tree6aadaed591e7438c99bc3a02917a8c6e577ee422 /src/train_cmd.cpp
parent890c5e3ae42bd7d9f904ba6c69f3c4ac3649cdf5 (diff)
downloadopenttd-c0d71b84f983070462a83cc60a17083d5ede4e50.tar.xz
(svn r15617) -Change [FS#2694]: vehicle variables 40-43 weren't cached (though spec stated they are). Caching these variables can yield a 10+% speed increase when those vehicle variables are queried often.
Diffstat (limited to 'src/train_cmd.cpp')
-rw-r--r--src/train_cmd.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/train_cmd.cpp b/src/train_cmd.cpp
index 008cbfb42..d327c3f3a 100644
--- a/src/train_cmd.cpp
+++ b/src/train_cmd.cpp
@@ -257,11 +257,13 @@ void TrainConsistChanged(Vehicle *v, bool same_length)
/* Set user defined data to its default value */
u->u.rail.user_def_data = rvi_u->user_def_data;
+ u->cache_valid = 0;
}
for (Vehicle *u = v; u != NULL; u = u->Next()) {
/* Update user defined data (must be done before other properties) */
u->u.rail.user_def_data = GetVehicleProperty(u, 0x25, u->u.rail.user_def_data);
+ u->cache_valid = 0;
}
for (Vehicle *u = v; u != NULL; u = u->Next()) {
@@ -347,6 +349,7 @@ void TrainConsistChanged(Vehicle *v, bool same_length)
if (!same_length) u->u.rail.cached_veh_length = veh_len;
v->u.rail.cached_total_length += u->u.rail.cached_veh_length;
+ u->cache_valid = 0;
}
/* store consist weight/max speed in cache */