void CVTOLVehicleManager::RespawnVTOL(IVehicle* pVehicle, SVTOLInfo& info) { CryLog("CVTOLVehicleManager::RespawnVTOL()"); //Reset parts and component damage int numComponents = pVehicle->GetComponentCount(); for(int c = 0; c < numComponents; ++c) { IVehicleComponent* pComponent = pVehicle->GetComponent(c); int numParts = pComponent->GetPartCount(); for(int p = 0; p < numParts; ++p) { pComponent->GetPart(p)->Reset(); } pComponent->SetDamageRatio(0.f); } if (IVehicleMovement* pMovement = pVehicle->GetMovement()) { pMovement->Reset(); } SVehicleStatus& status = const_cast<SVehicleStatus&>(pVehicle->GetStatus()); status.Reset(); //Activate flowgraph Respawn output IScriptTable* pScriptTable = pVehicle->GetEntity()->GetScriptTable(); Script::CallMethod(pScriptTable, "Respawn", pScriptTable, 0); info.state = EVS_Normal; info.stateTime = 0.f; pVehicle->GetEntity()->Hide(false); LockSeats(pVehicle, false); SetupMovement(info.entityId); //Add to HUD Radar SHUDEvent hudEvent(eHUDEvent_AddEntity); hudEvent.AddData((int)info.entityId); CHUDEventDispatcher::CallEvent(hudEvent); }
//------------------------------------------------------------------------ void CVehiclePartLight::PostInit() { m_pHelper = m_pVehicle->GetHelper(m_pSharedParameters->m_helperPosName.c_str()); // get Components this Part belongs to. // currently that's only needed for Lights. for (int i=0,nComps=m_pVehicle->GetComponentCount(); i<nComps; ++i) { IVehicleComponent* pComponent = m_pVehicle->GetComponent(i); for (int j=0,nParts=pComponent->GetPartCount(); j<nParts; ++j) { if (pComponent->GetPart(j) == this) { m_components.push_back(pComponent); break; } } } if (VehicleCVars().v_lights_enable_always) ToggleLight(true); }