diff options
Diffstat (limited to 'OpenSim/Region/Communications')
-rw-r--r-- | OpenSim/Region/Communications/Local/LocalLoginService.cs | 42 |
1 files changed, 30 insertions, 12 deletions
diff --git a/OpenSim/Region/Communications/Local/LocalLoginService.cs b/OpenSim/Region/Communications/Local/LocalLoginService.cs index 864d58c..aeb9ae0 100644 --- a/OpenSim/Region/Communications/Local/LocalLoginService.cs +++ b/OpenSim/Region/Communications/Local/LocalLoginService.cs | |||
@@ -183,19 +183,37 @@ namespace OpenSim.Region.Communications.Local | |||
183 | RegionInfo homeReg = m_Parent.GridService.RequestNeighbourInfo(theUser.HomeRegion); | 183 | RegionInfo homeReg = m_Parent.GridService.RequestNeighbourInfo(theUser.HomeRegion); |
184 | RegionInfo reg = m_Parent.GridService.RequestNeighbourInfo(currentRegion); | 184 | RegionInfo reg = m_Parent.GridService.RequestNeighbourInfo(currentRegion); |
185 | 185 | ||
186 | if ((homeReg != null) && (reg != null)) | 186 | if ((homeReg != null) || (reg != null)) |
187 | { | 187 | { |
188 | response.Home = "{'region_handle':[r" + | 188 | if (homeReg != null) |
189 | (homeReg.RegionLocX * Constants.RegionSize).ToString() + ",r" + | 189 | { |
190 | (homeReg.RegionLocY * Constants.RegionSize).ToString() + "], " + | 190 | response.Home = "{'region_handle':[r" + |
191 | "'position':[r" + | 191 | (homeReg.RegionLocX * Constants.RegionSize).ToString() + ",r" + |
192 | theUser.HomeLocation.X.ToString() + ",r" + | 192 | (homeReg.RegionLocY * Constants.RegionSize).ToString() + "], " + |
193 | theUser.HomeLocation.Y.ToString() + ",r" + | 193 | "'position':[r" + |
194 | theUser.HomeLocation.Z.ToString() + "], " + | 194 | theUser.HomeLocation.X.ToString() + ",r" + |
195 | "'look_at':[r" + | 195 | theUser.HomeLocation.Y.ToString() + ",r" + |
196 | theUser.HomeLocation.X.ToString() + ",r" + | 196 | theUser.HomeLocation.Z.ToString() + "], " + |
197 | theUser.HomeLocation.Y.ToString() + ",r" + | 197 | "'look_at':[r" + |
198 | theUser.HomeLocation.Z.ToString() + "]}"; | 198 | theUser.HomeLocation.X.ToString() + ",r" + |
199 | theUser.HomeLocation.Y.ToString() + ",r" + | ||
200 | theUser.HomeLocation.Z.ToString() + "]}"; | ||
201 | } | ||
202 | else | ||
203 | { | ||
204 | m_log.Warn("[LOGIN]: Your home region doesn't exist"); | ||
205 | response.Home = "{'region_handle':[r" + | ||
206 | (reg.RegionLocX * Constants.RegionSize).ToString() + ",r" + | ||
207 | (reg.RegionLocY * Constants.RegionSize).ToString() + "], " + | ||
208 | "'position':[r" + | ||
209 | theUser.HomeLocation.X.ToString() + ",r" + | ||
210 | theUser.HomeLocation.Y.ToString() + ",r" + | ||
211 | theUser.HomeLocation.Z.ToString() + "], " + | ||
212 | "'look_at':[r" + | ||
213 | theUser.HomeLocation.X.ToString() + ",r" + | ||
214 | theUser.HomeLocation.Y.ToString() + ",r" + | ||
215 | theUser.HomeLocation.Z.ToString() + "]}"; | ||
216 | } | ||
199 | string capsPath = Util.GetRandomCapsPath(); | 217 | string capsPath = Util.GetRandomCapsPath(); |
200 | response.SimAddress = reg.ExternalEndPoint.Address.ToString(); | 218 | response.SimAddress = reg.ExternalEndPoint.Address.ToString(); |
201 | response.SimPort = (uint) reg.ExternalEndPoint.Port; | 219 | response.SimPort = (uint) reg.ExternalEndPoint.Port; |