//------------------------------------------------------------------------
int CVehicleUsableActionEnter::OnEvent(int eventType, SVehicleEventParams& eventParams)
{
    if (eventType == eVAE_IsUsable)
    {
        EntityId& userId = eventParams.entityId;

        for (TVehicleSeatIdVector::iterator ite = m_seatIds.begin(), end = m_seatIds.end(); ite != end; ++ite)
        {
            TVehicleSeatId seatId = *ite;
            IVehicleSeat* pSeat = m_pVehicle->GetSeatById(seatId);
            if (IsSeatAvailable(pSeat, userId))
            {
                eventParams.iParam = seatId;
                return 1;
            }
        }

        return 0;
    }
    else if (eventType == eVAE_OnUsed)
    {
        EntityId& userId = eventParams.entityId;

        IVehicleSeat* pSeat = m_pVehicle->GetSeatById(eventParams.iParam);

        if (IsSeatAvailable(pSeat, userId))
            return pSeat->Enter(userId);

        return -1;
    }

    return 0;
}
//------------------------------------------------------------------------
int CScriptBind_Vehicle::EnterVehicle(IFunctionHandler* pH, ScriptHandle actorHandle, int seatId, bool isAnimationEnabled)
{
	CVehicle* pVehicle = GetVehicle(pH);
	if (!pVehicle || !actorHandle.n)
		return pH->EndFunction(0);

	IVehicleSeat* pSeat = pVehicle->GetSeatById(seatId);

	bool ret = false;

	if (pSeat)
		ret = pSeat->Enter((EntityId)actorHandle.n, isAnimationEnabled);
	
	return pH->EndFunction(ret);
}