Small bug fixes
[#] Fixed some engine traces failing. (some traces the engine uses to determent if you can unduck failed) [#] Fixed CheckCollision checking collisions even if collisions are disabled(IsCollisionEnabled = false) [#] JoltPhysicsObject::GetName() now returns a proper name instead of "NoName" In Gmod If you used tostring(Entity(1):GetPhysicsObject()) it returned NoName instead of player_stand or player_crouch.
This commit is contained in:
parent
50cef39716
commit
cc791dd311
|
@ -38,7 +38,8 @@ static ConVar vjolt_trace_debug_collidebox( "vjolt_trace_debug_collidebox", "0",
|
||||||
// Slart and I have not been able to determine the root cause of this problem and have tried for a long time...
|
// Slart and I have not been able to determine the root cause of this problem and have tried for a long time...
|
||||||
//
|
//
|
||||||
// Slart: Portal 2 probably passes in a bad winding order in the polyhedron or something, dunno if it affects Portal 1
|
// Slart: Portal 2 probably passes in a bad winding order in the polyhedron or something, dunno if it affects Portal 1
|
||||||
static ConVar vjolt_trace_portal_hack( "vjolt_trace_portal_hack", "0", FCVAR_NONE );
|
// RaphaelIT7: We this needs to always be enabled because else the traces the engine uses to determent if you can unduck fail.
|
||||||
|
// static ConVar vjolt_trace_portal_hack( "vjolt_trace_portal_hack", "0", FCVAR_NONE );
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------
|
||||||
//
|
//
|
||||||
|
@ -492,8 +493,8 @@ static void CastBoxVsShape( const Ray_t &ray, uint32 contentsMask, IConvexInfo *
|
||||||
//settings.mBackFaceModeTriangles = JPH::EBackFaceMode::CollideWithBackFaces;
|
//settings.mBackFaceModeTriangles = JPH::EBackFaceMode::CollideWithBackFaces;
|
||||||
// Josh: Had to re-enable CollideWithBackFaces to allow triggers for the Portal Environment to work.
|
// Josh: Had to re-enable CollideWithBackFaces to allow triggers for the Portal Environment to work.
|
||||||
// Come back here if we start getting stuck on things again...
|
// Come back here if we start getting stuck on things again...
|
||||||
if ( vjolt_trace_portal_hack.GetBool() )
|
// if ( vjolt_trace_portal_hack.GetBool() )
|
||||||
settings.mBackFaceModeConvex = JPH::EBackFaceMode::CollideWithBackFaces;
|
settings.mBackFaceModeConvex = JPH::EBackFaceMode::CollideWithBackFaces;
|
||||||
//settings.mCollisionTolerance = kCollisionTolerance;
|
//settings.mCollisionTolerance = kCollisionTolerance;
|
||||||
settings.mUseShrunkenShapeAndConvexRadius = true;
|
settings.mUseShrunkenShapeAndConvexRadius = true;
|
||||||
settings.mReturnDeepestPoint = true;
|
settings.mReturnDeepestPoint = true;
|
||||||
|
|
|
@ -157,6 +157,8 @@ bool JoltPhysicsPlayerController::WasFrozen()
|
||||||
|
|
||||||
static void CheckCollision( JoltPhysicsObject *pObject, JPH::CollideShapeCollector &ioCollector, JPH::BodyFilter &ioFilter )
|
static void CheckCollision( JoltPhysicsObject *pObject, JPH::CollideShapeCollector &ioCollector, JPH::BodyFilter &ioFilter )
|
||||||
{
|
{
|
||||||
|
if (!pObject->IsCollisionEnabled()) { return; } // If we have no collisions, we have nothing to check.
|
||||||
|
|
||||||
JPH::PhysicsSystem *pSystem = pObject->GetEnvironment()->GetPhysicsSystem();
|
JPH::PhysicsSystem *pSystem = pObject->GetEnvironment()->GetPhysicsSystem();
|
||||||
|
|
||||||
// TODO(Josh): Make a PLAYER ONLY layer that will only collide with MOVING ONLY annd
|
// TODO(Josh): Make a PLAYER ONLY layer that will only collide with MOVING ONLY annd
|
||||||
|
|
|
@ -31,6 +31,7 @@ JoltPhysicsObject::JoltPhysicsObject( JPH::Body *pBody, JoltPhysicsEnvironment *
|
||||||
, m_pGameData( pParams->pGameData )
|
, m_pGameData( pParams->pGameData )
|
||||||
, m_materialIndex( Max( nMaterialIndex, 0 ) ) // Sometimes we get passed -1.
|
, m_materialIndex( Max( nMaterialIndex, 0 ) ) // Sometimes we get passed -1.
|
||||||
, m_flVolume( pParams->volume )
|
, m_flVolume( pParams->volume )
|
||||||
|
, m_pName( pParams->pName )
|
||||||
{
|
{
|
||||||
// Josh:
|
// Josh:
|
||||||
// Assert that m_pGameData is the first element, some games
|
// Assert that m_pGameData is the first element, some games
|
||||||
|
@ -916,8 +917,7 @@ const CPhysCollide *JoltPhysicsObject::GetCollide() const
|
||||||
|
|
||||||
const char *JoltPhysicsObject::GetName() const
|
const char *JoltPhysicsObject::GetName() const
|
||||||
{
|
{
|
||||||
// Slart: Jolt used to store debug names in JPH::Body, but it was removed. So now everybody's NoName.
|
return m_pName;
|
||||||
return "NoName";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------
|
||||||
|
|
|
@ -239,6 +239,7 @@ private:
|
||||||
// remain un-named offset by the vtable to get to this
|
// remain un-named offset by the vtable to get to this
|
||||||
// instead of calling GetGameData().
|
// instead of calling GetGameData().
|
||||||
void *m_pGameData = nullptr;
|
void *m_pGameData = nullptr;
|
||||||
|
const char *m_pName = "NoName";
|
||||||
|
|
||||||
uint16 m_gameFlags = 0;
|
uint16 m_gameFlags = 0;
|
||||||
uint16 m_gameIndex = 0;
|
uint16 m_gameIndex = 0;
|
||||||
|
|
Loading…
Reference in New Issue