aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework/Scenes
diff options
context:
space:
mode:
authorDiva Canto2012-02-19 16:48:09 -0800
committerDiva Canto2012-02-19 16:48:09 -0800
commitfdda57cf1083fb1f220f5330e83cda871ad3e5d5 (patch)
tree91ac2acc221025df4767b9a00dc3208409ad900b /OpenSim/Region/Framework/Scenes
parentOne more tweak related to the previous 2 commits. (diff)
parentFix:OmegaX, OmegaY and OmegaZ not saved for child prims http://opensimulator.... (diff)
downloadopensim-SC_OLD-fdda57cf1083fb1f220f5330e83cda871ad3e5d5.zip
opensim-SC_OLD-fdda57cf1083fb1f220f5330e83cda871ad3e5d5.tar.gz
opensim-SC_OLD-fdda57cf1083fb1f220f5330e83cda871ad3e5d5.tar.bz2
opensim-SC_OLD-fdda57cf1083fb1f220f5330e83cda871ad3e5d5.tar.xz
Merge branch '0.7.3-post-fixes' of ssh://opensimulator.org/var/git/opensim into 0.7.3-post-fixes
Diffstat (limited to 'OpenSim/Region/Framework/Scenes')
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.cs34
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectPart.cs6
2 files changed, 33 insertions, 7 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs
index 4c8e2d2..d2a8ad0 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.cs
@@ -3259,8 +3259,11 @@ namespace OpenSim.Region.Framework.Scenes
3259 /// also return a reason.</returns> 3259 /// also return a reason.</returns>
3260 public bool NewUserConnection(AgentCircuitData agent, uint teleportFlags, out string reason, bool requirePresenceLookup) 3260 public bool NewUserConnection(AgentCircuitData agent, uint teleportFlags, out string reason, bool requirePresenceLookup)
3261 { 3261 {
3262 bool vialogin = ((teleportFlags & (uint)Constants.TeleportFlags.ViaLogin) != 0 || 3262 bool vialogin = ((teleportFlags & (uint)TPFlags.ViaLogin) != 0 ||
3263 (teleportFlags & (uint)Constants.TeleportFlags.ViaHGLogin) != 0); 3263 (teleportFlags & (uint)TPFlags.ViaHGLogin) != 0);
3264 bool viahome = ((teleportFlags & (uint)TPFlags.ViaHome) != 0);
3265 bool godlike = ((teleportFlags & (uint)TPFlags.Godlike) != 0);
3266
3264 reason = String.Empty; 3267 reason = String.Empty;
3265 3268
3266 //Teleport flags: 3269 //Teleport flags:
@@ -3272,9 +3275,9 @@ namespace OpenSim.Region.Framework.Scenes
3272 3275
3273 // Don't disable this log message - it's too helpful 3276 // Don't disable this log message - it's too helpful
3274 m_log.DebugFormat( 3277 m_log.DebugFormat(
3275 "[SCENE]: Region {0} told of incoming {1} agent {2} {3} {4} (circuit code {5}, IP {6}, viewer {7}, teleportflags {8}, position {9})", 3278 "[SCENE]: Region {0} told of incoming {1} agent {2} {3} {4} (circuit code {5}, IP {6}, viewer {7}, teleportflags ({8}), position {9})",
3276 RegionInfo.RegionName, (agent.child ? "child" : "root"),agent.firstname, agent.lastname, 3279 RegionInfo.RegionName, (agent.child ? "child" : "root"),agent.firstname, agent.lastname,
3277 agent.AgentID, agent.circuitcode, agent.IPAddress, agent.Viewer, teleportFlags, agent.startpos); 3280 agent.AgentID, agent.circuitcode, agent.IPAddress, agent.Viewer, ((TPFlags)teleportFlags).ToString(), agent.startpos);
3278 3281
3279 if (LoginsDisabled) 3282 if (LoginsDisabled)
3280 { 3283 {
@@ -3427,6 +3430,29 @@ namespace OpenSim.Region.Framework.Scenes
3427 agent.startpos.Z = 720; 3430 agent.startpos.Z = 720;
3428 } 3431 }
3429 } 3432 }
3433
3434 // Honor Estate teleport routing via Telehubs excluding ViaHome and GodLike TeleportFlags
3435 if (RegionInfo.RegionSettings.TelehubObject != UUID.Zero &&
3436 RegionInfo.EstateSettings.AllowDirectTeleport == false &&
3437 !viahome && !godlike)
3438 {
3439 SceneObjectGroup telehub = GetSceneObjectGroup(RegionInfo.RegionSettings.TelehubObject);
3440 // Can have multiple SpawnPoints
3441 List<SpawnPoint> spawnpoints = RegionInfo.RegionSettings.SpawnPoints();
3442 if ( spawnpoints.Count > 1)
3443 {
3444 // We have multiple SpawnPoints, Route the agent to a random one
3445 agent.startpos = spawnpoints[Util.RandomClass.Next(spawnpoints.Count)].GetLocation(telehub.AbsolutePosition, telehub.GroupRotation);
3446 }
3447 else
3448 {
3449 // We have a single SpawnPoint and will route the agent to it
3450 agent.startpos = spawnpoints[0].GetLocation(telehub.AbsolutePosition, telehub.GroupRotation);
3451 }
3452
3453 return true;
3454 }
3455
3430 // Honor parcel landing type and position. 3456 // Honor parcel landing type and position.
3431 if (land != null) 3457 if (land != null)
3432 { 3458 {
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
index b130bf7..65905a0 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
@@ -1556,9 +1556,9 @@ namespace OpenSim.Region.Framework.Scenes
1556 dupe.GroupPosition = GroupPosition; 1556 dupe.GroupPosition = GroupPosition;
1557 dupe.OffsetPosition = OffsetPosition; 1557 dupe.OffsetPosition = OffsetPosition;
1558 dupe.RotationOffset = RotationOffset; 1558 dupe.RotationOffset = RotationOffset;
1559 dupe.Velocity = new Vector3(0, 0, 0); 1559 dupe.Velocity = Velocity;
1560 dupe.Acceleration = new Vector3(0, 0, 0); 1560 dupe.Acceleration = Acceleration;
1561 dupe.AngularVelocity = new Vector3(0, 0, 0); 1561 dupe.AngularVelocity = AngularVelocity;
1562 dupe.Flags = Flags; 1562 dupe.Flags = Flags;
1563 1563
1564 dupe.OwnershipCost = OwnershipCost; 1564 dupe.OwnershipCost = OwnershipCost;