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