//------------------------------------------------------------------------ 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); }