newgrf_engine.c
changeset 4056 7899dc230a12
parent 4055 582a469d6c5c
child 4057 863fce30596d
--- a/newgrf_engine.c	Thu Jun 22 21:03:19 2006 +0000
+++ b/newgrf_engine.c	Thu Jun 22 21:15:27 2006 +0000
@@ -660,7 +660,7 @@
 		case 0x1C: return v->y_pos;
 		case 0x1D: return v->y_pos & 0xFF;
 		case 0x1E: return v->z_pos;
-		case 0x1F: return v->direction;
+		case 0x1F: return object->info_view ? DIR_W : v->direction;
 		case 0x28: return v->cur_image;
 		case 0x29: return v->cur_image & 0xFF;
 		case 0x32: return v->vehstatus;
@@ -799,6 +799,8 @@
 	res->u.vehicle.self   = v;
 	res->u.vehicle.parent = (v != NULL && v->type == VEH_Train) ? GetFirstVehicleInChain(v) : v;
 
+	res->info_view = false;
+
 	res->callback        = 0;
 	res->callback_param1 = 0;
 	res->callback_param2 = 0;
@@ -842,7 +844,7 @@
 }
 
 
-SpriteID GetRotorOverrideSprite(EngineID engine, const Vehicle *v)
+SpriteID GetRotorOverrideSprite(EngineID engine, const Vehicle *v, bool info_view)
 {
 	const SpriteGroup *group;
 	ResolverObject object;
@@ -855,6 +857,8 @@
 
 	NewVehicleResolver(&object, v);
 
+	object.info_view = info_view;
+
 	group = heli_rotor_custom_sprites[engine - AIRCRAFT_ENGINES_INDEX];
 	group = Resolve(group, &object);
 
@@ -862,7 +866,7 @@
 
 	if (v == NULL) return group->g.result.sprite;
 
-	return group->g.result.sprite + (v->next->next->u.air.state % group->g.result.num_sprites);
+	return group->g.result.sprite + (info_view ? 0 : (v->next->next->u.air.state % group->g.result.num_sprites));
 }