From ee6a6d0b370515beead9eff4fa32766872894f61 Mon Sep 17 00:00:00 2001 From: nillerusr Date: Mon, 16 Oct 2023 07:54:56 +0300 Subject: [PATCH] revert me after --- game/server/ai_basenpc.cpp | 6 +++++- game/shared/physics_shared.cpp | 6 +++--- game/shared/physics_shared.h | 2 ++ game/shared/ragdoll_shared.cpp | 2 ++ 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/game/server/ai_basenpc.cpp b/game/server/ai_basenpc.cpp index 0acc458f..81c73487 100644 --- a/game/server/ai_basenpc.cpp +++ b/game/server/ai_basenpc.cpp @@ -6586,7 +6586,7 @@ void CAI_BaseNPC::SetupVPhysicsHull() #endif IPhysicsShadowController *pController = pPhysObj->GetShadowController(); float avgsize = (WorldAlignSize().x + WorldAlignSize().y) * 0.5; - pController->SetTeleportDistance( avgsize * 0.5 ); + //pController->SetTeleportDistance( avgsize * 0.5 ); m_bCheckContacts = true; } } @@ -6598,6 +6598,8 @@ void CAI_BaseNPC::SetupVPhysicsHull() ConVar ai_auto_contact_solver( "ai_auto_contact_solver", "1" ); void CAI_BaseNPC::CheckPhysicsContacts() { + return; + if ( gpGlobals->frametime <= 0.0f || !ai_auto_contact_solver.GetBool() ) return; @@ -6616,6 +6618,8 @@ void CAI_BaseNPC::CheckPhysicsContacts() while ( pSnapshot->IsValid() ) { IPhysicsObject *pOther = pSnapshot->GetObject(1); + if( !pOther ) + continue; pOtherEntity = static_cast(pOther->GetGameData()); if ( pOtherEntity && pGroundEntity != pOtherEntity ) diff --git a/game/shared/physics_shared.cpp b/game/shared/physics_shared.cpp index ba5e0d2a..1725b1c8 100644 --- a/game/shared/physics_shared.cpp +++ b/game/shared/physics_shared.cpp @@ -603,7 +603,7 @@ IPhysicsObject *PhysCreateWorld_Shared( CBaseEntity *pWorld, vcollide_t *pWorldC pWorldCollide->solids[0], surfaceData, vec3_origin, vec3_angle, ¶ms ); // hint - saves vphysics some work - pWorldPhysics->SetCallbackFlags( pWorldPhysics->GetCallbackFlags() | CALLBACK_NEVER_DELETED ); + //pWorldPhysics->SetCallbackFlags( pWorldPhysics->GetCallbackFlags() | CALLBACK_NEVER_DELETED ); //PhysCheckAdd( world, "World" ); // walk the world keys in case there are some fluid volumes to create @@ -667,8 +667,8 @@ IPhysicsObject *PhysCreateWorld_Shared( CBaseEntity *pWorld, vcollide_t *pWorldC IPhysicsObject *pWater = physenv->CreatePolyObjectStatic( pWorldCollide->solids[fluid.index], surfaceData, vec3_origin, vec3_angle, &solid.params ); - pWater->SetCallbackFlags( pWater->GetCallbackFlags() | CALLBACK_NEVER_DELETED ); - physenv->CreateFluidController( pWater, &fluid.params ); + //pWater->SetCallbackFlags( pWater->GetCallbackFlags() | CALLBACK_NEVER_DELETED ); + //physenv->CreateFluidController( pWater, &fluid.params ); } } else if ( !strcmpi( pBlock, "materialtable" ) ) diff --git a/game/shared/physics_shared.h b/game/shared/physics_shared.h index 0f1178ae..a7c68223 100644 --- a/game/shared/physics_shared.h +++ b/game/shared/physics_shared.h @@ -100,6 +100,8 @@ void PhysFrictionEffect( Vector &vecPos, Vector vecVel, float energy, int surfac // ORs gameFlags with the physics object's current game flags inline unsigned short PhysSetGameFlags( IPhysicsObject *pPhys, unsigned short gameFlags ) { + return 0; + unsigned short flags = pPhys->GetGameFlags(); flags |= gameFlags; pPhys->SetGameFlags( flags ); diff --git a/game/shared/ragdoll_shared.cpp b/game/shared/ragdoll_shared.cpp index b43109a4..c214f36b 100644 --- a/game/shared/ragdoll_shared.cpp +++ b/game/shared/ragdoll_shared.cpp @@ -269,6 +269,8 @@ static void RagdollCreateObjects( IPhysicsEnvironment *pPhysEnv, ragdoll_t &ragd memset( ragdoll.list, 0, sizeof(ragdoll.list) ); memset( &ragdoll.animfriction, 0, sizeof(ragdoll.animfriction) ); + return; + if ( !params.pCollide || params.pCollide->solidCount > RAGDOLL_MAX_ELEMENTS ) return;