aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/OpenSim.RegionServer/ClientView.API.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/OpenSim.RegionServer/ClientView.API.cs')
-rw-r--r--OpenSim/OpenSim.RegionServer/ClientView.API.cs34
1 files changed, 32 insertions, 2 deletions
diff --git a/OpenSim/OpenSim.RegionServer/ClientView.API.cs b/OpenSim/OpenSim.RegionServer/ClientView.API.cs
index 33727c4..b126004 100644
--- a/OpenSim/OpenSim.RegionServer/ClientView.API.cs
+++ b/OpenSim/OpenSim.RegionServer/ClientView.API.cs
@@ -166,7 +166,7 @@ namespace OpenSim
166 /// 166 ///
167 /// </summary> 167 /// </summary>
168 /// <param name="regInfo"></param> 168 /// <param name="regInfo"></param>
169 public void MoveAgentIntoRegion(RegionInfo regInfo) 169 public void MoveAgentIntoRegion(RegionInfo regInfo, LLVector3 pos)
170 { 170 {
171 AgentMovementCompletePacket mov = new AgentMovementCompletePacket(); 171 AgentMovementCompletePacket mov = new AgentMovementCompletePacket();
172 mov.AgentData.SessionID = this.SessionID; 172 mov.AgentData.SessionID = this.SessionID;
@@ -174,7 +174,14 @@ namespace OpenSim
174 mov.Data.RegionHandle = regInfo.RegionHandle; 174 mov.Data.RegionHandle = regInfo.RegionHandle;
175 // TODO - dynamicalise this stuff 175 // TODO - dynamicalise this stuff
176 mov.Data.Timestamp = 1172750370; 176 mov.Data.Timestamp = 1172750370;
177 mov.Data.Position = this.startpos; 177 if (pos != null)
178 {
179 mov.Data.Position = pos;
180 }
181 else
182 {
183 mov.Data.Position = this.startpos;
184 }
178 mov.Data.LookAt = new LLVector3(0.99f, 0.042f, 0); 185 mov.Data.LookAt = new LLVector3(0.99f, 0.042f, 0);
179 186
180 OutPacket(mov); 187 OutPacket(mov);
@@ -305,6 +312,29 @@ namespace OpenSim
305 return agentData; 312 return agentData;
306 } 313 }
307 314
315 public void CrossRegion(ulong newRegionHandle, LLVector3 pos, LLVector3 lookAt, System.Net.IPAddress newRegionIP, ushort newRegionPort)
316 {
317 CrossedRegionPacket newSimPack = new CrossedRegionPacket();
318 newSimPack.AgentData = new CrossedRegionPacket.AgentDataBlock();
319 newSimPack.AgentData.AgentID = this.AgentID;
320 newSimPack.AgentData.SessionID = this.SessionID;
321 newSimPack.Info = new CrossedRegionPacket.InfoBlock();
322 newSimPack.Info.Position = pos;
323 newSimPack.Info.LookAt = lookAt; // new LLVector3(0.0f, 0.0f, 0.0f); // copied from Avatar.cs - SHOULD BE DYNAMIC!!!!!!!!!!
324 newSimPack.RegionData = new libsecondlife.Packets.CrossedRegionPacket.RegionDataBlock();
325 newSimPack.RegionData.RegionHandle = newRegionHandle;
326 byte[] byteIP = newRegionIP.GetAddressBytes();
327 newSimPack.RegionData.SimIP = (uint)byteIP[3] << 24;
328 newSimPack.RegionData.SimIP += (uint)byteIP[2] << 16;
329 newSimPack.RegionData.SimIP += (uint)byteIP[1] << 8;
330 newSimPack.RegionData.SimIP += (uint)byteIP[0];
331 newSimPack.RegionData.SimPort = newRegionPort;
332 newSimPack.RegionData.SeedCapability = new byte[0];
333
334 this.OutPacket(newSimPack);
335 this.DowngradeClient();
336 }
337
308 #region Appearance/ Wearables Methods 338 #region Appearance/ Wearables Methods
309 339
310 /// <summary> 340 /// <summary>