summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDarkvater <darkvater@openttd.org>2007-01-28 21:53:13 +0000
committerDarkvater <darkvater@openttd.org>2007-01-28 21:53:13 +0000
commit39a50e372361837b00a1a58f1cae697654194e14 (patch)
treebd54e16fa3f52c728a5bad9311a09b9621fdd4ca
parent00782c089d0a49f1fba31077d079894357926b8d (diff)
downloadopenttd-39a50e372361837b00a1a58f1cae697654194e14.tar.xz
(svn r8448) -Codechange/Fix (r2993): Also update the helicopter's rotor when loading the game. This can solve crashes when a game is loaded with missing GRF's
-rw-r--r--src/vehicle.cpp11
-rw-r--r--src/vehicle.h1
2 files changed, 11 insertions, 1 deletions
diff --git a/src/vehicle.cpp b/src/vehicle.cpp
index 5ccc1aebc..ab45f792f 100644
--- a/src/vehicle.cpp
+++ b/src/vehicle.cpp
@@ -234,7 +234,16 @@ void AfterLoadVehicles(void)
case VEH_Aircraft:
if (IsNormalAircraft(v)) {
v->cur_image = GetAircraftImage(v, v->direction);
- if (v->next != NULL) v->next->cur_image = v->cur_image;
+
+ /* The plane's shadow will have the same image as the plane */
+ Vehicle *shadow = v->next;
+ shadow->cur_image = v->cur_image;
+
+ /* In the case of a helicopter we will update the rotor sprites */
+ if (v->subtype == AIR_HELICOPTER) {
+ Vehicle *rotor = shadow->next;
+ rotor->cur_image = GetRotorImage(v);
+ }
}
break;
default: break;
diff --git a/src/vehicle.h b/src/vehicle.h
index 2b7773ced..8719ba91d 100644
--- a/src/vehicle.h
+++ b/src/vehicle.h
@@ -296,6 +296,7 @@ int GetTrainImage(const Vehicle* v, Direction direction);
int GetAircraftImage(const Vehicle* v, Direction direction);
int GetRoadVehImage(const Vehicle* v, Direction direction);
int GetShipImage(const Vehicle* v, Direction direction);
+SpriteID GetRotorImage(const Vehicle *v);
Vehicle *CreateEffectVehicle(int x, int y, int z, EffectVehicle type);
Vehicle *CreateEffectVehicleAbove(int x, int y, int z, EffectVehicle type);