Browse Source

Fix for animated detector regions not actually animating (cleft bucket cloth, Er'cana harvester ladder)

Adam Johnson 13 years ago
parent
commit
057566416b
  1. 8
      Sources/Plasma/PubUtilLib/plPhysX/plPXPhysical.cpp
  2. 2
      Sources/Plasma/PubUtilLib/plPhysX/plPXPhysicalControllerCore.cpp

8
Sources/Plasma/PubUtilLib/plPhysX/plPXPhysical.cpp

@ -837,10 +837,12 @@ void plPXPhysical::ISetTransformGlobal(const hsMatrix44& l2w)
}
}
if (GetProperty(plSimulationInterface::kPhysAnim))
{ hsAssert(fActor->readBodyFlag(NX_BF_KINEMATIC),"This Should be kinematic");
// This used to check for the kPhysAnim flag, however animated detectors
// are also kinematic but not kPhysAnim, therefore, this would break on PhysX
// SDKs (yes, I'm looking at you, 2.6.4) that actually obey the ***GlobalPose
// rules set forth in the SDK documentation.
if (fActor->readBodyFlag(NX_BF_KINEMATIC))
fActor->moveGlobalPose(mat);
}
else
fActor->setGlobalPose(mat);
}

2
Sources/Plasma/PubUtilLib/plPhysX/plPXPhysicalControllerCore.cpp

@ -951,7 +951,7 @@ void plPXPhysicalControllerCore::HandleEnableChanged()
// PHYSX FIXME - after re-enabling check to see if we are inside any convex hull detector regions
hsPoint3 pos;
IGetPositionSim(pos);
plSimulationMgr::GetInstance()->UpdateDetectorsInScene(fWorldKey,GetOwner(),pos,fEnable);
plSimulationMgr::GetInstance()->UpdateDetectorsInScene(fWorldKey,GetOwner(),pos,fEnabled);
#endif // USE_PHYSX_CONVEXHULL_WORKAROUND
//IInformDetectors(true);
}

Loading…
Cancel
Save