File diff r1537:060bed3865f5 → r1538:9b83bdd8ee42
engine.c
Show inline comments
 
@@ -558,24 +558,26 @@ static RealSpriteGroup *TriggerVehicleSp
 
			&veh->waiting_triggers
 
		);
 
	}
 

	
 
	return ResolveVehicleSpriteGroup(spritegroup, veh, callback);
 
}
 

	
 
static void DoTriggerVehicle(Vehicle *veh, VehicleTrigger trigger, byte base_random_bits, bool first)
 
{
 
	RealSpriteGroup *rsg;
 
	byte new_random_bits;
 

	
 
	assert(_current_player >= MAX_PLAYERS);
 

	
 
	_vsg_random_triggers = trigger;
 
	_vsg_bits_to_reseed = 0;
 
	rsg = TriggerVehicleSpriteGroup(GetVehicleSpriteGroup(veh->engine_type, veh), veh,
 
	                                (resolve_callback) TriggerVehicleSpriteGroup);
 
	if (rsg->sprites_per_set == 0 && veh->cargo_type != 29) { /* XXX magic number */
 
		// This group turned out to be empty but perhaps there'll be a default one.
 
		rsg = TriggerVehicleSpriteGroup(&_engine_custom_sprites[veh->engine_type][29], veh,
 
						(resolve_callback) TriggerVehicleSpriteGroup);
 
	}
 
	new_random_bits = Random();
 
	veh->random_bits &= ~_vsg_bits_to_reseed;
 
	veh->random_bits |= (first ? new_random_bits : base_random_bits) & _vsg_bits_to_reseed;