//------------------------------------------------------------------------
void CVehicleMovementWarrior::Collapsed(bool collapsed)
{
	if(collapsed && !m_collapsed)
	{
		m_collapsed = true;
		EnableMovementProcessing(false);
		m_bEngineAlwaysOn = false;

		SGameObjectEvent event(eCGE_Event_Collapsed, eGOEF_ToScriptSystem);
		m_pVehicle->GetGameObject()->SendEvent(event);

	}
	else if(!collapsed && m_collapsed)
	{
		m_collapsed = false;
		m_collapseTimer = -1.f;
		m_platformDown = false;

		// just reset damage for now
		m_damage = 0.f;
		m_thrustersDamaged = 0;

		ResetThrusters();

		for(std::vector<SExhaustStatus>::iterator it = m_paStats.exhaustStats.begin(); it != m_paStats.exhaustStats.end(); ++it)
		{
			it->enabled = 1;
		}

		m_pVehicle->GetGameObject()->DisableUpdateSlot(m_pVehicle, IVehicle::eVUS_EnginePowered);
		EnableMovementProcessing(true);
	}
}
Exemple #2
0
void LEM::SeparateStage (UINT stage)

{
	ResetThrusters();

	VESSELSTATUS vs1;
	VECTOR3 ofs1 = _V(0,-5,0);
	VECTOR3 vel1 = _V(0,0,0);

	if (stage == 1)	{
	    GetStatus (vs1);
		vs1.eng_main = vs1.eng_hovr = 0.0;
		VECTOR3 rofs1, rvel1 = {vs1.rvel.x, vs1.rvel.y, vs1.rvel.z};
		Local2Global (ofs1, vs1.rpos);
		GlobalRot (vel1, rofs1);
		vs1.rvel.x = rvel1.x+rofs1.x;
		vs1.rvel.y = rvel1.y+rofs1.y;
		vs1.rvel.z = rvel1.z+rofs1.z;
	    vs1.vrot.x = 0.0;	
		vs1.vrot.y = 0.0;
		vs1.vrot.z = 0.0;
		GetStatus (vs1);
		// Wrong sound, is Saturn staging
		// StageS.play(NOLOOP, 150);

		char VName[256];
		strcpy (VName, GetName()); strcat (VName, "-DESCENTSTG");
		hdsc = oapiCreateVessel(VName, "ProjectApollo/sat5LMDSC", vs1);

		SetLmAscentHoverStage();
	}
}
//------------------------------------------------------------------------
void CVehicleMovementWarrior::Reset()
{
	CVehicleMovementHovercraft::Reset();

	if(IsCollapsing() || IsCollapsed())
	{
		m_pVehicle->GetGameObject()->DisableUpdateSlot(m_pVehicle, IVehicle::eVUS_EnginePowered);
	}

	if(IsCollapsing())
	{
		m_bEngineAlwaysOn = false;
	}

	m_thrustersDamaged = 0;
	m_collapseTimer = -1.f;
	m_platformDown = false;
	m_collapsed = false;

	ResetThrusters();
}