aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim
diff options
context:
space:
mode:
authormingchen2007-06-07 01:04:07 +0000
committermingchen2007-06-07 01:04:07 +0000
commitf1250bd291dc3fbcf375d792691a455f45727224 (patch)
treef21a9a2d63a9c2f66ded8459e47bfacd9732bd58 /OpenSim
parent*Added support to change most of a parcel's settings and flags (from the abou... (diff)
downloadopensim-SC-f1250bd291dc3fbcf375d792691a455f45727224.zip
opensim-SC-f1250bd291dc3fbcf375d792691a455f45727224.tar.gz
opensim-SC-f1250bd291dc3fbcf375d792691a455f45727224.tar.bz2
opensim-SC-f1250bd291dc3fbcf375d792691a455f45727224.tar.xz
*When avatar crosses parcel, it updates successfully in the viewer
*This includes parcel name in title bar, media and music autoplay, and parcel flag icons *Yay!
Diffstat (limited to 'OpenSim')
-rw-r--r--OpenSim/OpenSim.RegionServer/world/Avatar.Update.cs24
-rw-r--r--OpenSim/OpenSim.RegionServer/world/Avatar.cs7
2 files changed, 30 insertions, 1 deletions
diff --git a/OpenSim/OpenSim.RegionServer/world/Avatar.Update.cs b/OpenSim/OpenSim.RegionServer/world/Avatar.Update.cs
index 29e0a15..7712905 100644
--- a/OpenSim/OpenSim.RegionServer/world/Avatar.Update.cs
+++ b/OpenSim/OpenSim.RegionServer/world/Avatar.Update.cs
@@ -96,7 +96,29 @@ namespace OpenSim.world
96 } 96 }
97 97
98 } 98 }
99 this.positionLastFrame = pos2; 99
100 if (positionFrameBeforeLast != pos2)
101 {
102 this.positionFrameBeforeLast = this.positionLastFrame;
103 this.positionLastFrame = pos2;
104 int tempRoundedX = (int)Math.Round(positionLastFrame.X);
105 int tempRoundedY = (int)Math.Round(positionLastFrame.Y);
106 if (this.positionRoundedX != tempRoundedX || this.positionRoundedY != tempRoundedY)
107 {
108
109 this.positionRoundedX = tempRoundedX;
110 this.positionRoundedY = tempRoundedY;
111 int currentParcelLocalID = m_world.parcelManager.getParcel(tempRoundedX, tempRoundedY).parcelData.localID;
112 if(currentParcelLocalID != this.positionParcelHoverLocalID)
113 {
114
115 Console.WriteLine("NEW PARCEL: " + m_world.parcelManager.getParcel(tempRoundedX, tempRoundedY).parcelData.parcelName);
116 m_world.parcelManager.getParcel(tempRoundedX, tempRoundedY).sendParcelProperties(this.parcelUpdateSequenceIncrement, false, 0,this.ControllingClient);
117 this.positionParcelHoverLocalID = currentParcelLocalID;
118 this.parcelUpdateSequenceIncrement++;
119 }
120 }
121 }
100 122
101 if (!this.ControllingClient.m_sandboxMode) 123 if (!this.ControllingClient.m_sandboxMode)
102 { 124 {
diff --git a/OpenSim/OpenSim.RegionServer/world/Avatar.cs b/OpenSim/OpenSim.RegionServer/world/Avatar.cs
index 4b921f0..30999fc 100644
--- a/OpenSim/OpenSim.RegionServer/world/Avatar.cs
+++ b/OpenSim/OpenSim.RegionServer/world/Avatar.cs
@@ -57,6 +57,13 @@ namespace OpenSim.world
57 private byte[] visualParams; 57 private byte[] visualParams;
58 private AvatarWearable[] Wearables; 58 private AvatarWearable[] Wearables;
59 private LLVector3 positionLastFrame = new LLVector3(0, 0, 0); 59 private LLVector3 positionLastFrame = new LLVector3(0, 0, 0);
60 private LLVector3 positionFrameBeforeLast = new LLVector3(0, 0, 0);
61
62 private int positionRoundedX = 0;
63 private int positionRoundedY = 0;
64
65 private int positionParcelHoverLocalID = -1; //Local ID of the last parcel they were over
66 private int parcelUpdateSequenceIncrement = 1;
60 private ulong m_regionHandle; 67 private ulong m_regionHandle;
61 //private Dictionary<uint, ClientView> m_clientThreads; 68 //private Dictionary<uint, ClientView> m_clientThreads;
62 private string m_regionName; 69 private string m_regionName;