DIFF

ActionAnimateMotorbikeSeat.c

class ActionAnimateMotorbikeSeat : ActionAnimateSeats
{
	void ActionAnimateMotorbikeSeat()
	{
		m_Text = "#move_seat";
	}
	
	override void CreateConditionComponents()  
	{
		m_ConditionItem		= new CCINone();
		m_ConditionTarget	= new CCTCursor(UAMaxDistances.SMALL);
	}

	override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
	{
		if(!target)
			return false;

		MotorbikeScript bike;
		if (Class.CastTo(bike, target.GetObject()))
		{
			if (bike.CrewMember(DayZPlayerConstants.VEHICLESEAT_DRIVER))
				return false;

			TStringArray selections = new TStringArray();
			bike.GetActionComponentNameList(target.GetComponentIndex(), selections, LOD.NAME_VIEW);

			vector playerPosition =  player.GetPosition();
			foreach (string selection : selections)
			{
				if (bike.CanReachSeatFromDoors(selection, playerPosition, 1.0))
				{
					m_AnimSource = bike.GetAnimSourceFromSelection(selection);
					if (m_AnimSource != "" && m_AnimSource == "SeatDriver")
						return true;
				}
			}
		}

		return false;
	}
	
	override bool CanBeUsedInVehicle()
	{
		return false;
	}
}