void CMissionData::ReadFromMessage(ILTCSBase *pInterface, HMESSAGEREAD hMessage)
{
	if (!hMessage) return;

	// Clear our data...

	Clear();

	// Read in the new data...

    m_nMission = (int) pInterface->ReadFromMessageFloat(hMessage);
    m_nLevel   = (int) pInterface->ReadFromMessageFloat(hMessage);

    int nSize = (int) pInterface->ReadFromMessageDWord(hMessage);

    int i;
	CWeaponData Weapon;
    for (i = 0; i < nSize; i++)
	{
        Weapon.ReadFromMessage(pInterface, hMessage);
		AddWeapon(Weapon.m_nID);
	}

    nSize = (int) pInterface->ReadFromMessageDWord(hMessage);

	CAmmoData Ammo;
	for (i = 0; i < nSize; i++)
	{
        Ammo.ReadFromMessage(pInterface, hMessage);
		AddAmmo(Ammo.m_nID, Ammo.m_nCount);
	}

    nSize = (int) pInterface->ReadFromMessageDWord(hMessage);

	CModData Mod;
	for (i = 0; i < nSize; i++)
	{
        Mod.ReadFromMessage(pInterface, hMessage);
		AddMod(Mod.m_nID);
	}

    nSize = (int) pInterface->ReadFromMessageDWord(hMessage);

	CGearData Gear;
	for (i = 0; i < nSize; i++)
	{
        Gear.ReadFromMessage(pInterface, hMessage);
		AddGear(Gear.m_nID);
	}
}
Пример #2
0
void StandardJoints (DemoEntityManager* const scene)
{
    scene->CreateSkyBox();

    // customize the scene after loading
    // set a user friction variable in the body for variable friction demos
    // later this will be done using LUA script
    dMatrix offsetMatrix (dGetIdentityMatrix());

    CreateLevelMesh (scene, "flatPlane.ngd", 1);

    dVector location (0.0f, 0.0f, 0.0f, 0.0f);
    dVector size (1.5f, 2.0f, 2.0f, 0.0f);

//	AddPoweredRagDoll (scene, dVector (-20.0f, 0.0f, -15.0f));
	AddDistance (scene, dVector (-20.0f, 0.0f, -25.0f));
	AddLimitedBallAndSocket (scene, dVector (-20.0f, 0.0f, -20.0f));
//	AddPoweredRagDoll (scene, dVector (-20.0f, 0.0f, -15.0f));
	AddBallAndSockectWithFriction (scene, dVector (-20.0f, 0.0f, -10.0f));
	Add6DOF (scene, dVector (-20.0f, 0.0f, -5.0f));
	AddHinge (scene, dVector (-20.0f, 0.0f, 0.0f));

	AddSlider (scene, dVector (-20.0f, 0.0f, 5.0f));
	AddCylindrical (scene, dVector (-20.0f, 0.0f, 10.0f));
	AddUniversal (scene, dVector (-20.0f, 0.0f, 15.0f));
	//just to show up add some relational joints example 
	AddGear (scene, dVector (-20.0f, 0.0f, 20.0f));
	AddPulley (scene, dVector (-20.0f, 0.0f, 25.0f));
	AddGearAndRack (scene, dVector (-20.0f, 0.0f, 30.0f));
	AddSlidingContact (scene, dVector (-20.0f, 0.0f, 35.0f));

//	AddPathFollow (scene, dVector (20.0f, 0.0f, 0.0f));


    // place camera into position
    dMatrix camMatrix (dGetIdentityMatrix());
    dQuaternion rot (camMatrix);
    dVector origin (-40.0f, 5.0f, 0.0f, 0.0f);
    scene->SetCameraMatrix(rot, origin);
}