From 9d6e0a68b1cc5d23a76d7c44683090fd72769e4c Mon Sep 17 00:00:00 2001 From: Adam Johnson Date: Tue, 5 Feb 2013 17:21:26 -0500 Subject: [PATCH 1/3] Don't panic link if the avatar is flying around --- Sources/Plasma/PubUtilLib/plPhysical/plCollisionDetector.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Sources/Plasma/PubUtilLib/plPhysical/plCollisionDetector.cpp b/Sources/Plasma/PubUtilLib/plPhysical/plCollisionDetector.cpp index 147c7790..076ef67a 100644 --- a/Sources/Plasma/PubUtilLib/plPhysical/plCollisionDetector.cpp +++ b/Sources/Plasma/PubUtilLib/plPhysical/plCollisionDetector.cpp @@ -669,6 +669,10 @@ bool plPanicLinkRegion::MsgReceive(plMessage* msg) if (plNetClientApp::GetInstance()->GetLocalPlayerKey() != pCollMsg->fOtherKey) return true; + // If the avatar is disabled (flying around), don't trigger + if (IIsDisabledAvatar(pCollMsg->fOtherKey)) + return false; + if (pCollMsg->fEntering) { plArmatureMod* avMod = IGetAvatarModifier(pCollMsg->fOtherKey); From fe5ad6d437dd1ccd042ae536e5e4625705a44295 Mon Sep 17 00:00:00 2001 From: Adam Johnson Date: Tue, 5 Feb 2013 18:59:20 -0500 Subject: [PATCH 2/3] Reintroduce a fun hack Yeah, looks like PhysX 2.6.4 has a bug with spawning stuff inside of regions. So, let's bring back the hack that spawns the avatar at -2000 feet. The link-in process will set the correct position on the controller and fire the appropriate detectors. --- Sources/Plasma/PubUtilLib/plAvatar/plPhysicalControllerCore.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sources/Plasma/PubUtilLib/plAvatar/plPhysicalControllerCore.cpp b/Sources/Plasma/PubUtilLib/plAvatar/plPhysicalControllerCore.cpp index fba853f5..ea9dc96f 100644 --- a/Sources/Plasma/PubUtilLib/plAvatar/plPhysicalControllerCore.cpp +++ b/Sources/Plasma/PubUtilLib/plAvatar/plPhysicalControllerCore.cpp @@ -70,7 +70,7 @@ plPhysicalControllerCore::plPhysicalControllerCore(plKey OwnerSceneObject, float fMovementStrategy(nil), fSimLength(0.0f), fLocalRotation(0.0f, 0.0f, 0.0f, 1.0f), - fLocalPosition(0.0f, 0.0f, 0.0f), + fLocalPosition(0.0f, 0.0f, -2000.0f), fLastLocalPosition(0.0f, 0.0f, 0.0f), fLinearVelocity(0.0f, 0.0f, 0.0f), fAchievedLinearVelocity(0.0f, 0.0f, 0.0f), From cc153677816cc66c2bdef658679a0f23fe6cdbf7 Mon Sep 17 00:00:00 2001 From: Adam Johnson Date: Tue, 5 Feb 2013 19:13:00 -0500 Subject: [PATCH 3/3] Bump the step offset by a tenth of a foot. This should keep the avatar from getting stuck on some stupid stuff such as on the pellet machine. A real fix would be to tweak the data, but we cannot do that. --- .../Plasma/PubUtilLib/plPhysX/plPXPhysicalControllerCore.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sources/Plasma/PubUtilLib/plPhysX/plPXPhysicalControllerCore.cpp b/Sources/Plasma/PubUtilLib/plPhysX/plPXPhysicalControllerCore.cpp index 00c69ec6..fe0210bf 100644 --- a/Sources/Plasma/PubUtilLib/plPhysX/plPXPhysicalControllerCore.cpp +++ b/Sources/Plasma/PubUtilLib/plPhysX/plPXPhysicalControllerCore.cpp @@ -71,7 +71,7 @@ bool plPXPhysicalControllerCore::fDebugDisplay = false; int plPXPhysicalControllerCore::fPXControllersMax = 0; #define kCCTSkinWidth 0.1f -#define kCCTStepOffset 0.6f +#define kCCTStepOffset 0.7f #define kCCTZOffset ((fRadius + (fHeight / 2)) + kCCTSkinWidth) #define kPhysHeightCorrection 0.8f #define kPhysZOffset ((kCCTZOffset + (kPhysHeightCorrection / 2)) - 0.05f)