diff options
First part of border crossing fix.
Diffstat (limited to '')
-rw-r--r-- | OpenSim/OpenSim.RegionServer/ClientView.cs | 30 |
1 files changed, 20 insertions, 10 deletions
diff --git a/OpenSim/OpenSim.RegionServer/ClientView.cs b/OpenSim/OpenSim.RegionServer/ClientView.cs index e66b830..295cd7b 100644 --- a/OpenSim/OpenSim.RegionServer/ClientView.cs +++ b/OpenSim/OpenSim.RegionServer/ClientView.cs | |||
@@ -86,6 +86,18 @@ namespace OpenSim | |||
86 | } | 86 | } |
87 | } | 87 | } |
88 | 88 | ||
89 | public LLVector3 StartPos | ||
90 | { | ||
91 | get | ||
92 | { | ||
93 | return startpos; | ||
94 | } | ||
95 | set | ||
96 | { | ||
97 | startpos = value; | ||
98 | } | ||
99 | } | ||
100 | |||
89 | public ClientView(EndPoint remoteEP, UseCircuitCodePacket initialcirpack, World world, Dictionary<uint, ClientView> clientThreads, AssetCache assetCache, IGridServer gridServer, OpenSimNetworkHandler application, InventoryCache inventoryCache, bool sandboxMode, bool child, RegionInfo regionDat, AuthenticateSessionsBase authenSessions) | 101 | public ClientView(EndPoint remoteEP, UseCircuitCodePacket initialcirpack, World world, Dictionary<uint, ClientView> clientThreads, AssetCache assetCache, IGridServer gridServer, OpenSimNetworkHandler application, InventoryCache inventoryCache, bool sandboxMode, bool child, RegionInfo regionDat, AuthenticateSessionsBase authenSessions) |
90 | { | 102 | { |
91 | m_world = world; | 103 | m_world = world; |
@@ -133,21 +145,23 @@ namespace OpenSim | |||
133 | { | 145 | { |
134 | OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.LOW, "SimClient.cs:UpgradeClient() - upgrading child to full agent"); | 146 | OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.LOW, "SimClient.cs:UpgradeClient() - upgrading child to full agent"); |
135 | this.m_child = false; | 147 | this.m_child = false; |
136 | this.m_world.RemoveViewerAgent(this); | 148 | //this.m_world.RemoveViewerAgent(this); |
137 | if (!this.m_sandboxMode) | 149 | if (!this.m_sandboxMode) |
138 | { | 150 | { |
139 | this.startpos = m_authenticateSessionsHandler.GetPosition(CircuitCode); | 151 | this.startpos = m_authenticateSessionsHandler.GetPosition(CircuitCode); |
140 | m_authenticateSessionsHandler.UpdateAgentChildStatus(CircuitCode, false); | 152 | m_authenticateSessionsHandler.UpdateAgentChildStatus(CircuitCode, false); |
141 | } | 153 | } |
142 | this.InitNewClient(); | 154 | OnChildAgentStatus(this.m_child); |
155 | //this.InitNewClient(); | ||
143 | } | 156 | } |
144 | 157 | ||
145 | public void DowngradeClient() | 158 | public void DowngradeClient() |
146 | { | 159 | { |
147 | OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.LOW, "SimClient.cs:UpgradeClient() - changing full agent to child"); | 160 | OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.LOW, "SimClient.cs:UpgradeClient() - changing full agent to child"); |
148 | this.m_child = true; | 161 | this.m_child = true; |
149 | this.m_world.RemoveViewerAgent(this); | 162 | OnChildAgentStatus(this.m_child); |
150 | this.m_world.AddViewerAgent(this); | 163 | //this.m_world.RemoveViewerAgent(this); |
164 | //this.m_world.AddViewerAgent(this); | ||
151 | } | 165 | } |
152 | 166 | ||
153 | public void KillClient() | 167 | public void KillClient() |
@@ -256,11 +270,7 @@ namespace OpenSim | |||
256 | protected virtual void InitNewClient() | 270 | protected virtual void InitNewClient() |
257 | { | 271 | { |
258 | OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.LOW, "OpenSimClient.cs:InitNewClient() - Adding viewer agent to world"); | 272 | OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.LOW, "OpenSimClient.cs:InitNewClient() - Adding viewer agent to world"); |
259 | 273 | this.ClientAvatar = m_world.AddViewerAgent(this); | |
260 | m_world.AddViewerAgent(this); | ||
261 | world.Entity tempent = m_world.Entities[this.AgentID]; | ||
262 | |||
263 | this.ClientAvatar = (world.Avatar)tempent; | ||
264 | } | 274 | } |
265 | 275 | ||
266 | protected virtual void AuthUser() | 276 | protected virtual void AuthUser() |
@@ -280,7 +290,7 @@ namespace OpenSim | |||
280 | this.AgentID = cirpack.CircuitCode.ID; | 290 | this.AgentID = cirpack.CircuitCode.ID; |
281 | this.SessionID = cirpack.CircuitCode.SessionID; | 291 | this.SessionID = cirpack.CircuitCode.SessionID; |
282 | this.CircuitCode = cirpack.CircuitCode.Code; | 292 | this.CircuitCode = cirpack.CircuitCode.Code; |
283 | InitNewClient(); //shouldn't be called here as we might be a child agent and not want a full avatar | 293 | InitNewClient(); |
284 | this.ClientAvatar.firstname = sessionInfo.LoginInfo.First; | 294 | this.ClientAvatar.firstname = sessionInfo.LoginInfo.First; |
285 | this.ClientAvatar.lastname = sessionInfo.LoginInfo.Last; | 295 | this.ClientAvatar.lastname = sessionInfo.LoginInfo.Last; |
286 | if (sessionInfo.LoginInfo.SecureSession != LLUUID.Zero) | 296 | if (sessionInfo.LoginInfo.SecureSession != LLUUID.Zero) |