diff --git a/Sources/Plasma/PubUtilLib/plAvatar/plArmatureMod.cpp b/Sources/Plasma/PubUtilLib/plAvatar/plArmatureMod.cpp index e491b5573d..1737abfc05 100644 --- a/Sources/Plasma/PubUtilLib/plAvatar/plArmatureMod.cpp +++ b/Sources/Plasma/PubUtilLib/plAvatar/plArmatureMod.cpp @@ -1379,7 +1379,7 @@ bool plArmatureMod::MsgReceive(plMessage* msg) if (fController) { fController->SetSubworld(subMsg->fWorldKey); - DirtySynchState(kSDLAvatar, plSynchedObject::kBCastToClients); + DirtyPhysicalSynchState(plSynchedObject::kBCastToClients); } return true; } diff --git a/Sources/Plasma/PubUtilLib/plModifier/plResponderModifier.cpp b/Sources/Plasma/PubUtilLib/plModifier/plResponderModifier.cpp index ac5db34410..c13619dfdc 100644 --- a/Sources/Plasma/PubUtilLib/plModifier/plResponderModifier.cpp +++ b/Sources/Plasma/PubUtilLib/plModifier/plResponderModifier.cpp @@ -208,6 +208,8 @@ bool plResponderModifier::IIsLocalOnlyCmd(plMessage* cmd) return true; if (plCameraMsg::ConvertNoRef(cmd)) // don't want to change our camera return true; + if (plSubWorldMsg::ConvertNoRef(cmd)) // don't want to enter a subworld (changes the avatar SDL) + return true; plSoundMsg *snd = plSoundMsg::ConvertNoRef( cmd ); if (snd != nullptr && snd->Cmd(plSoundMsg::kIsLocalOnly)) @@ -351,6 +353,7 @@ bool plResponderModifier::IContinueSending() plArmatureMod *avatar = plAvatarMgr::GetInstance()->GetLocalAvatar(); if(avatar) { + swMsg->ClearReceivers(); swMsg->AddReceiver(avatar->GetKey()); } }