diff --git a/OpenSim/Framework/ChildAgentDataUpdate.cs b/OpenSim/Framework/ChildAgentDataUpdate.cs index ef40d94e25..0515aebda8 100644 --- a/OpenSim/Framework/ChildAgentDataUpdate.cs +++ b/OpenSim/Framework/ChildAgentDataUpdate.cs @@ -26,7 +26,7 @@ */ using System; -using OpenMetaverse; +using OpenSim.Framework; namespace OpenSim.Framework { @@ -37,14 +37,14 @@ namespace OpenSim.Framework public Guid AgentID; public bool alwaysrun; public float AVHeight; - public Vector3 cameraPosition; + public sLLVector3 cameraPosition; public float drawdistance; public float godlevel; public uint GroupAccess; - public Vector3 Position; + public sLLVector3 Position; public ulong regionHandle; public byte[] throttles; - public Vector3 Velocity; + public sLLVector3 Velocity; public ChildAgentDataUpdate() { diff --git a/OpenSim/Framework/sLLVector3.cs b/OpenSim/Framework/sLLVector3.cs index e69de29bb2..b93661b29b 100644 --- a/OpenSim/Framework/sLLVector3.cs +++ b/OpenSim/Framework/sLLVector3.cs @@ -0,0 +1,51 @@ +/* + * Copyright (c) Contributors, http://opensimulator.org/ + * See CONTRIBUTORS.TXT for a full list of copyright holders. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the OpenSim Project nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +using System; +using OpenMetaverse; + +namespace OpenSim.Framework +{ + [Serializable] + public class sLLVector3 + { + public float x = 0; + public float y = 0; + public float z = 0; + + public sLLVector3() + { + } + + public sLLVector3(Vector3 v) + { + x = v.X; + y = v.Y; + z = v.Z; + } + } +} \ No newline at end of file diff --git a/OpenSim/Region/Communications/OGS1/OGS1GridServices.cs b/OpenSim/Region/Communications/OGS1/OGS1GridServices.cs index 1dd421978a..a3bcc26d80 100644 --- a/OpenSim/Region/Communications/OGS1/OGS1GridServices.cs +++ b/OpenSim/Region/Communications/OGS1/OGS1GridServices.cs @@ -1212,7 +1212,7 @@ namespace OpenSim.Region.Communications.OGS1 if (remObject != null) { retValue = - remObject.ExpectAvatarCrossing(regionHandle, agentID.Guid, position, + remObject.ExpectAvatarCrossing(regionHandle, agentID.Guid, new sLLVector3(position), isFlying); } else @@ -1269,7 +1269,7 @@ namespace OpenSim.Region.Communications.OGS1 if (remObject != null) { retValue = - remObject.ExpectAvatarCrossing(regionHandle, agentID.Guid, position, + remObject.ExpectAvatarCrossing(regionHandle, agentID.Guid, new sLLVector3(position), isPhysical); } else @@ -1739,7 +1739,7 @@ namespace OpenSim.Region.Communications.OGS1 if (landData != null) { // for now, only push out the data we need for answering a ParcelInfoReqeust - // FIXME: these Replace calls are necessary as Vector3.Parse can't parse vectors with spaces in them. Can be removed as soon as we switch to a newer version + // FIXME: these Replace calls are necessary as LLVector3.Parse can't parse vectors with spaces in them. Can be removed as soon as we switch to a newer version hash["AABBMax"] = landData.AABBMax.ToString().Replace(" ", ""); hash["AABBMin"] = landData.AABBMin.ToString().Replace(" ", ""); hash["Area"] = landData.Area.ToString(); diff --git a/OpenSim/Region/Communications/OGS1/OGS1InterSimComms.cs b/OpenSim/Region/Communications/OGS1/OGS1InterSimComms.cs index 1f0c0675ce..0195a5807a 100644 --- a/OpenSim/Region/Communications/OGS1/OGS1InterSimComms.cs +++ b/OpenSim/Region/Communications/OGS1/OGS1InterSimComms.cs @@ -202,13 +202,13 @@ namespace OpenSim.Region.Communications.OGS1 } - public bool ExpectAvatarCrossing(ulong regionHandle, Guid agentID, Vector3 position, bool isFlying) + public bool ExpectAvatarCrossing(ulong regionHandle, Guid agentID, sLLVector3 position, bool isFlying) { try { return InterRegionSingleton.Instance.ExpectAvatarCrossing(regionHandle, new UUID(agentID), - position, + new Vector3(position.x, position.y, position.z), isFlying); } catch (RemotingException e) @@ -218,13 +218,13 @@ namespace OpenSim.Region.Communications.OGS1 } } - public bool InformRegionPrim(ulong regionHandle, Guid SceneObjectGroupID, Vector3 position, bool isPhysical) + public bool InformRegionPrim(ulong regionHandle, Guid SceneObjectGroupID, sLLVector3 position, bool isPhysical) { try { return InterRegionSingleton.Instance.InformRegionPrim(regionHandle, new UUID(SceneObjectGroupID), - position, + new Vector3(position.x, position.y, position.z), isPhysical); } catch (RemotingException e) diff --git a/OpenSim/Region/Communications/OGS1/OGS1UserServices.cs b/OpenSim/Region/Communications/OGS1/OGS1UserServices.cs index 317be1381b..36a82a855f 100644 --- a/OpenSim/Region/Communications/OGS1/OGS1UserServices.cs +++ b/OpenSim/Region/Communications/OGS1/OGS1UserServices.cs @@ -242,8 +242,8 @@ namespace OpenSim.Region.Communications.OGS1 public void LogOffUser(UUID userid, UUID regionid, ulong regionhandle, float posx, float posy, float posz) { Hashtable param = new Hashtable(); - param["avatar_uuid"] = userid.ToString(); - param["region_uuid"] = regionid.ToString(); + param["avatar_uuid"] = userid.Guid.ToString(); + param["region_uuid"] = regionid.Guid.ToString(); param["region_handle"] = regionhandle.ToString(); param["region_pos_x"] = posx.ToString(); param["region_pos_y"] = posy.ToString(); @@ -528,8 +528,8 @@ namespace OpenSim.Region.Communications.OGS1 try { Hashtable param = new Hashtable(); - param["ownerID"] = friendlistowner.ToString(); - param["friendID"] = friend.ToString(); + param["ownerID"] = friendlistowner.Guid.ToString(); + param["friendID"] = friend.Guid.ToString(); param["friendPerms"] = perms.ToString(); IList parameters = new ArrayList(); parameters.Add(param); @@ -580,8 +580,8 @@ namespace OpenSim.Region.Communications.OGS1 try { Hashtable param = new Hashtable(); - param["ownerID"] = friendlistowner.ToString(); - param["friendID"] = friend.ToString(); + param["ownerID"] = friendlistowner.Guid.ToString(); + param["friendID"] = friend.Guid.ToString(); IList parameters = new ArrayList(); parameters.Add(param); @@ -632,8 +632,8 @@ namespace OpenSim.Region.Communications.OGS1 try { Hashtable param = new Hashtable(); - param["ownerID"] = friendlistowner.ToString(); - param["friendID"] = friend.ToString(); + param["ownerID"] = friendlistowner.Guid.ToString(); + param["friendID"] = friend.Guid.ToString(); param["friendPerms"] = perms.ToString(); IList parameters = new ArrayList(); parameters.Add(param); @@ -672,7 +672,7 @@ namespace OpenSim.Region.Communications.OGS1 } } /// - /// Returns a list of FriendsListItems that describe the friends and permissions in the friend relationship for UUID friendslistowner + /// Returns a list of FriendsListItems that describe the friends and permissions in the friend relationship for LLUUID friendslistowner /// /// The agent that we're retreiving the friends Data. public List GetUserFriendList(UUID friendlistowner) @@ -682,7 +682,7 @@ namespace OpenSim.Region.Communications.OGS1 try { Hashtable param = new Hashtable(); - param["ownerID"] = friendlistowner.ToString(); + param["ownerID"] = friendlistowner.Guid.ToString(); IList parameters = new ArrayList(); parameters.Add(param); diff --git a/OpenSim/Region/Environment/Scenes/ScenePresence.cs b/OpenSim/Region/Environment/Scenes/ScenePresence.cs index e51f1be318..1a4b0c9925 100644 --- a/OpenSim/Region/Environment/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Environment/Scenes/ScenePresence.cs @@ -1862,12 +1862,12 @@ namespace OpenSim.Region.Environment.Scenes cadu.AgentID = UUID.Guid; cadu.alwaysrun = m_setAlwaysRun; cadu.AVHeight = m_avHeight; - Vector3 tempCameraCenter = new Vector3(m_CameraCenter.X, m_CameraCenter.Y, m_CameraCenter.Z); + sLLVector3 tempCameraCenter = new sLLVector3(new Vector3(m_CameraCenter.X, m_CameraCenter.Y, m_CameraCenter.Z)); cadu.cameraPosition = tempCameraCenter; cadu.drawdistance = m_DrawDistance; cadu.godlevel = m_godlevel; cadu.GroupAccess = 0; - cadu.Position = AbsolutePosition; + cadu.Position = new sLLVector3(AbsolutePosition); cadu.regionHandle = m_scene.RegionInfo.RegionHandle; float multiplier = 1; int innacurateNeighbors = m_scene.GetInaccurateNeighborCount(); @@ -1887,7 +1887,7 @@ namespace OpenSim.Region.Environment.Scenes - cadu.Velocity = Velocity; + cadu.Velocity = new sLLVector3(Velocity); m_scene.SendOutChildAgentUpdates(cadu,this); m_LastChildAgentUpdatePosition.X = AbsolutePosition.X; m_LastChildAgentUpdatePosition.Y = AbsolutePosition.Y; @@ -2070,11 +2070,11 @@ namespace OpenSim.Region.Environment.Scenes int shifty = ((int)rRegionY - (int)tRegionY) * (int)Constants.RegionSize; m_DrawDistance = cAgentData.drawdistance; - m_pos = new Vector3(cAgentData.Position.X + shiftx, cAgentData.Position.Y + shifty, cAgentData.Position.Z); + m_pos = new Vector3(cAgentData.Position.x + shiftx, cAgentData.Position.y + shifty, cAgentData.Position.z); // It's hard to say here.. We can't really tell where the camera position is unless it's in world cordinates from the sending region m_CameraCenter = - new Vector3(cAgentData.cameraPosition.X, cAgentData.cameraPosition.Y, cAgentData.cameraPosition.Z); + new Vector3(cAgentData.cameraPosition.x, cAgentData.cameraPosition.y, cAgentData.cameraPosition.z); m_godlevel = cAgentData.godlevel;