* Cross-border region chat should now work as long as both regions are part of the same simulator.

afrisby
Adam Frisby 2007-10-19 23:27:54 +00:00
parent f427433c85
commit f364a084f1
1 changed files with 59 additions and 59 deletions

View File

@ -197,6 +197,7 @@ namespace OpenSim.Region.Environment.Modules
// Filled in since it's easier than rewriting right now.
LLVector3 fromPos = e.Position;
LLVector3 fromRegionPos = e.Position + new LLVector3(e.Scene.RegionInfo.RegionLocX * 256, e.Scene.RegionInfo.RegionLocY * 256, 0);
string fromName = e.From;
string message = e.Message;
byte type = (byte)e.Type;
@ -244,16 +245,14 @@ namespace OpenSim.Region.Environment.Modules
if (e.Channel == 0)
{
scene.ForEachScenePresence(delegate(ScenePresence presence)
foreach (Scene m_scene in m_scenes)
{
int dis = -1000;
m_scene.ForEachScenePresence(delegate(ScenePresence presence)
{
int dis = -100000;
//err ??? the following code seems to be request a scenePresence when it already has a ref to it
avatar = scene.GetScenePresence(presence.ControllingClient.AgentId);
if (avatar != null)
{
dis = (int) avatar.AbsolutePosition.GetDistanceTo(fromPos);
}
LLVector3 avatarRegionPos = presence.AbsolutePosition + new LLVector3(scene.RegionInfo.RegionLocX * 256, scene.RegionInfo.RegionLocY * 256, 0);
dis = (int)avatarRegionPos.GetDistanceTo(fromRegionPos);
switch (e.Type)
{
@ -301,4 +300,5 @@ namespace OpenSim.Region.Environment.Modules
}
}
}
}
}