Merge pull request #1096 from Azaezel/alpha41/aRigidScrubbing

cleanups for disablemove
This commit is contained in:
Brian Roberts 2023-09-23 09:03:25 -05:00 committed by GitHub
commit f405666cbc
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 9 additions and 30 deletions

View file

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

View file

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