Fix check for vanilla opensim. Should not check for border crossing on non-CM actors.

dsg
Dan Lake 2011-05-17 10:31:35 -07:00
parent 6ec6fe6745
commit a0a8654c07
1 changed files with 22 additions and 19 deletions

View File

@ -1733,26 +1733,29 @@ namespace OpenSim.Region.Framework.Scenes
// Run through all ScenePresences looking for updates // Run through all ScenePresences looking for updates
// Presence updates and queued object updates for each presence are sent to clients // Presence updates and queued object updates for each presence are sent to clients
if (IsSyncedClient()) if (RegionSyncEnabled)
{ {
// If it's a client manager, just send prim updates if (IsSyncedClient())
// This will get fixed later to only send to locally logged in presences rather than all presences {
// but requires pulling apart the concept of a client from the concept of a presence/avatar // If it's a client manager, just send prim updates
ForEachScenePresence(delegate(ScenePresence sp) { sp.SendPrimUpdates(); }); // This will get fixed later to only send to locally logged in presences rather than all presences
if(Frame % 20 == 0) // but requires pulling apart the concept of a client from the concept of a presence/avatar
RegionSyncClientModule.SendCoarseLocations(); ForEachScenePresence(delegate(ScenePresence sp) { sp.SendPrimUpdates(); });
// make border crossing work in the CMs if (Frame % 20 == 0)
m_sceneGraph.ForEachScenePresence(delegate(ScenePresence sp) RegionSyncClientModule.SendCoarseLocations();
{ // make border crossing work in the CMs
if (!sp.IsChildAgent) m_sceneGraph.ForEachScenePresence(delegate(ScenePresence sp)
{ {
// Check that we have a physics actor or we're sitting on something if (!sp.IsChildAgent)
if (sp.ParentID == 0 && sp.PhysicsActor != null || sp.ParentID != 0) {
{ // Check that we have a physics actor or we're sitting on something
sp.CheckForBorderCrossing(); if (sp.ParentID == 0 && sp.PhysicsActor != null || sp.ParentID != 0)
} {
} sp.CheckForBorderCrossing();
}); }
}
});
}
} }
else else
{ {