Cache the result of GetImage() in Vehicle::UpdateViewport() where possible.

Sprite number is not cached if callback is made, or a variable access
outside a whitelist occurs.
Invalidate cached sprite number when direction or cargo changes,
or vehicle is marked dirty.
This commit is contained in:
Jonathan G Rennison
2016-07-08 19:07:25 +01:00
parent 9ae057b8bf
commit 3ac94e97c8
9 changed files with 65 additions and 1 deletions

View File

@@ -108,6 +108,7 @@ void GroundVehicle<T, Type>::CargoChanged()
weight += current_weight;
/* Slope steepness is in percent, result in N. */
u->gcache.cached_slope_resistance = current_weight * u->GetSlopeSteepness() * 100;
u->cur_image_valid_dir = INVALID_DIR;
}
/* Store consist weight in cache. */