Browse Source

Merge pull request #1096 from Azaezel/alpha41/aRigidScrubbing

cleanups for disablemove
Brian Roberts 2 years ago
parent
commit
f405666cbc
2 changed files with 9 additions and 30 deletions
  1. 9 3
      Engine/source/T3D/rigidShape.cpp
  2. 0 27
      Engine/source/T3D/vehicles/vehicle.cpp

+ 9 - 3
Engine/source/T3D/rigidShape.cpp

@@ -1103,7 +1103,7 @@ void RigidShape::updatePos(F32 dt)
 
 
    // Update collision information based on our current pos.
    // Update collision information based on our current pos.
    bool collided = false;
    bool collided = false;
-   if (!mRigid.atRest && !mDisableMove)
+   if (!mDisableMove)
    {
    {
       collided = updateCollision(dt);
       collided = updateCollision(dt);
 
 
@@ -1224,7 +1224,7 @@ void RigidShape::updateForces(F32 dt)
    mRigid.torque = torque;
    mRigid.torque = torque;
 
 
    // If we're still atRest, make sure we're not accumulating anything
    // If we're still atRest, make sure we're not accumulating anything
-   if (mRigid.atRest)
+   if ((force.lenSquared() < mDataBlock->contactTol)&& (force.lenSquared() < mDataBlock->contactTol))
       mRigid.setAtRest();
       mRigid.setAtRest();
 }
 }
 
 
@@ -1239,7 +1239,11 @@ bool RigidShape::updateCollision(F32 dt)
 {
 {
    PROFILE_SCOPE(RigidShape_updateCollision);
    PROFILE_SCOPE(RigidShape_updateCollision);
 
 
-   if (mRigid.atRest || mDisableMove || (getVelocity().lenSquared() < mDataBlock->contactTol * mDataBlock->contactTol)) return false;
+   if (mDisableMove)
+   {
+      mRigid.setAtRest();
+      return false;
+   }
 
 
    // Update collision information
    // Update collision information
    MatrixF mat,cmat;
    MatrixF mat,cmat;
@@ -1687,6 +1691,8 @@ void RigidShape::consoleInit()
 void RigidShape::initPersistFields()
 void RigidShape::initPersistFields()
 {
 {
    docsURL;
    docsURL;
+   addField("disableMove", TypeBool, Offset(mDisableMove, RigidShape),
+      "When this flag is set, the vehicle will ignore throttle changes.");
    Parent::initPersistFields();
    Parent::initPersistFields();
 }
 }
 
 

+ 0 - 27
Engine/source/T3D/vehicles/vehicle.cpp

@@ -931,36 +931,12 @@ void Vehicle::writePacketData(GameConnection *connection, BitStream *stream)
 {
 {
    Parent::writePacketData(connection, stream);
    Parent::writePacketData(connection, stream);
    mathWrite(*stream, mSteering);
    mathWrite(*stream, mSteering);
-
-   mathWrite(*stream, mRigid.linPosition);
-   mathWrite(*stream, mRigid.angPosition);
-   mathWrite(*stream, mRigid.linMomentum);
-   mathWrite(*stream, mRigid.angMomentum);
-   stream->writeFlag(mRigid.atRest);
-   stream->writeFlag(mContacts.getCount() == 0);
-
-   stream->writeFlag(mDisableMove);
-   stream->setCompressionPoint(mRigid.linPosition);
 }
 }
 
 
 void Vehicle::readPacketData(GameConnection *connection, BitStream *stream)
 void Vehicle::readPacketData(GameConnection *connection, BitStream *stream)
 {
 {
    Parent::readPacketData(connection, stream);
    Parent::readPacketData(connection, stream);
    mathRead(*stream, &mSteering);
    mathRead(*stream, &mSteering);
-
-   mathRead(*stream, &mRigid.linPosition);
-   mathRead(*stream, &mRigid.angPosition);
-   mathRead(*stream, &mRigid.linMomentum);
-   mathRead(*stream, &mRigid.angMomentum);
-   mRigid.atRest = stream->readFlag();
-   if (stream->readFlag())
-      mContacts.clear();
-   mRigid.updateInertialTensor();
-   mRigid.updateVelocity();
-   mRigid.updateCenterOfMass();
-
-   mDisableMove = stream->readFlag();
-   stream->setCompressionPoint(mRigid.linPosition);
 }
 }
 
 
 
 
@@ -1110,9 +1086,6 @@ void Vehicle::consoleInit()
 void Vehicle::initPersistFields()
 void Vehicle::initPersistFields()
 {
 {
    docsURL;
    docsURL;
-   addField( "disableMove", TypeBool, Offset(mDisableMove, Vehicle),
-      "When this flag is set, the vehicle will ignore throttle changes." );
-
    Parent::initPersistFields();
    Parent::initPersistFields();
 }
 }