aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorTeravus Ovares2007-12-28 14:24:14 +0000
committerTeravus Ovares2007-12-28 14:24:14 +0000
commitf64d94f8caccd49523c54c48a1c6700b7fb0d212 (patch)
tree6373c114a94befc75551953c706490acbca56c8e
parent* Made a copy of parts before updating to avoid dictionary updated exceptions... (diff)
downloadopensim-SC-f64d94f8caccd49523c54c48a1c6700b7fb0d212.zip
opensim-SC-f64d94f8caccd49523c54c48a1c6700b7fb0d212.tar.gz
opensim-SC-f64d94f8caccd49523c54c48a1c6700b7fb0d212.tar.bz2
opensim-SC-f64d94f8caccd49523c54c48a1c6700b7fb0d212.tar.xz
* Rezzing items from Inventory on top of other prim rezzes them 0.5 meters above the 'hit' prim instead of buried in the ground somewhere.
* Various Refactorings
-rw-r--r--OpenSim/Framework/IClientAPI.cs18
-rw-r--r--OpenSim/Region/ClientStack/ClientView.cs19
-rw-r--r--OpenSim/Region/Environment/Scenes/Scene.Inventory.cs17
-rw-r--r--OpenSim/Region/Environment/Scenes/Scene.cs7
4 files changed, 50 insertions, 11 deletions
diff --git a/OpenSim/Framework/IClientAPI.cs b/OpenSim/Framework/IClientAPI.cs
index 9072035..1154fba 100644
--- a/OpenSim/Framework/IClientAPI.cs
+++ b/OpenSim/Framework/IClientAPI.cs
@@ -226,7 +226,23 @@ namespace OpenSim.Framework
226 public delegate void ImprovedInstantMessage( 226 public delegate void ImprovedInstantMessage(
227 LLUUID fromAgentID, LLUUID fromAgentSession, LLUUID toAgentID, LLUUID imSessionID, uint timestamp, 227 LLUUID fromAgentID, LLUUID fromAgentSession, LLUUID toAgentID, LLUUID imSessionID, uint timestamp,
228 string fromAgentName, string message, byte dialog); // Cut down from full list 228 string fromAgentName, string message, byte dialog); // Cut down from full list
229 public delegate void RezObject(IClientAPI remoteClient, LLUUID itemID, LLVector3 pos); 229
230 //rezPacket.RezData.BypassRaycast;
231 //rezPacket.RezData.RayEnd;
232 //rezPacket.RezData.RayEndIsIntersection;
233 //rezPacket.RezData.RayStart;
234 //rezPacket.RezData.RayTargetID;
235 //rezPacket.RezData.RemoveItem;
236 //rezPacket.RezData.RezSelected;
237 //rezPacket.RezData.FromTaskID;
238 //rezPacket.RezData.FromTaskID;
239 //rezPacket.RezData.EveryoneMask;
240 //rezPacket.RezData.GroupMask;
241 //rezPacket.RezData.NextOwnerMask;
242 public delegate void RezObject(IClientAPI remoteClient, LLUUID itemID, LLVector3 RayEnd, LLVector3 RayStart,
243 LLUUID RayTargetID, byte BypassRayCast, bool RayEndIsIntersection,
244 uint EveryoneMask, uint GroupMask, uint NextOwnerMask, uint ItemFlags,
245 bool RezSelected, bool RemoveItem, LLUUID fromTaskID );
230 246
231 public delegate void ModifyTerrain( 247 public delegate void ModifyTerrain(
232 float height, float seconds, byte size, byte action, float north, float west, float south, float east, 248 float height, float seconds, byte size, byte action, float north, float west, float south, float east,
diff --git a/OpenSim/Region/ClientStack/ClientView.cs b/OpenSim/Region/ClientStack/ClientView.cs
index aed2c29..0d3c07e 100644
--- a/OpenSim/Region/ClientStack/ClientView.cs
+++ b/OpenSim/Region/ClientStack/ClientView.cs
@@ -2560,8 +2560,19 @@ namespace OpenSim.Region.ClientStack
2560 //rezPacket.RezData.RemoveItem; 2560 //rezPacket.RezData.RemoveItem;
2561 //rezPacket.RezData.RezSelected; 2561 //rezPacket.RezData.RezSelected;
2562 //rezPacket.RezData.FromTaskID; 2562 //rezPacket.RezData.FromTaskID;
2563 //rezPacket.RezData.FromTaskID;
2564 //rezPacket.RezData.EveryoneMask;
2565 //rezPacket.RezData.GroupMask;
2566 //rezPacket.RezData.NextOwnerMask;
2567
2563 //MainLog.Instance.Verbose("REZData", rezPacket.ToString()); 2568 //MainLog.Instance.Verbose("REZData", rezPacket.ToString());
2564 OnRezObject(this, rezPacket.InventoryData.ItemID, rezPacket.RezData.RayEnd); 2569 OnRezObject(this, rezPacket.InventoryData.ItemID, rezPacket.RezData.RayEnd,
2570 rezPacket.RezData.RayStart,rezPacket.RezData.RayTargetID,
2571 rezPacket.RezData.BypassRaycast,rezPacket.RezData.RayEndIsIntersection,
2572 rezPacket.RezData.EveryoneMask,rezPacket.RezData.GroupMask,
2573 rezPacket.RezData.NextOwnerMask,rezPacket.RezData.ItemFlags,
2574 rezPacket.RezData.RezSelected,rezPacket.RezData.RemoveItem,
2575 rezPacket.RezData.FromTaskID);
2565 } 2576 }
2566 break; 2577 break;
2567 case PacketType.DeRezObject: 2578 case PacketType.DeRezObject:
@@ -2740,12 +2751,6 @@ namespace OpenSim.Region.ClientStack
2740 { 2751 {
2741 ObjectAddPacket addPacket = (ObjectAddPacket) Pack; 2752 ObjectAddPacket addPacket = (ObjectAddPacket) Pack;
2742 PrimitiveBaseShape shape = GetShapeFromAddPacket(addPacket); 2753 PrimitiveBaseShape shape = GetShapeFromAddPacket(addPacket);
2743 MainLog.Instance.Verbose("REZData", addPacket.ToString());
2744 //BypassRaycast: 1
2745 //RayStart: <69.79469, 158.2652, 98.40343>
2746 //RayEnd: <61.97724, 141.995, 92.58341>
2747 //RayTargetID: 00000000-0000-0000-0000-000000000000
2748
2749 OnAddPrim(AgentId, addPacket.ObjectData.RayEnd, addPacket.ObjectData.Rotation, shape,addPacket.ObjectData.BypassRaycast,addPacket.ObjectData.RayStart,addPacket.ObjectData.RayTargetID,addPacket.ObjectData.RayEndIsIntersection); 2754 OnAddPrim(AgentId, addPacket.ObjectData.RayEnd, addPacket.ObjectData.Rotation, shape,addPacket.ObjectData.BypassRaycast,addPacket.ObjectData.RayStart,addPacket.ObjectData.RayTargetID,addPacket.ObjectData.RayEndIsIntersection);
2750 } 2755 }
2751 break; 2756 break;
diff --git a/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs b/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs
index 4c6e1c8..35112e7 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs
@@ -699,8 +699,23 @@ namespace OpenSim.Region.Environment.Scenes
699 group.DeleteParts(); 699 group.DeleteParts();
700 } 700 }
701 701
702 public virtual void RezObject(IClientAPI remoteClient, LLUUID itemID, LLVector3 pos) 702 public virtual void RezObject(IClientAPI remoteClient, LLUUID itemID, LLVector3 RayEnd, LLVector3 RayStart,
703 LLUUID RayTargetID, byte BypassRayCast, bool RayEndIsIntersection,
704 uint EveryoneMask, uint GroupMask, uint NextOwnerMask, uint ItemFlags,
705 bool RezSelected, bool RemoveItem, LLUUID fromTaskID)
703 { 706 {
707 byte bRayEndIsIntersection = (byte)0;
708
709 if (RayEndIsIntersection)
710 {
711 bRayEndIsIntersection = (byte)1;
712 }
713 else
714 {
715 bRayEndIsIntersection = (byte)0;
716 }
717
718 LLVector3 pos = GetNewRezLocation(RayStart, RayEnd, RayTargetID, new LLQuaternion(0, 0, 0, 1), BypassRayCast, bRayEndIsIntersection);
704 CachedUserInfo userInfo = CommsManager.UserProfileCacheService.GetUserDetails(remoteClient.AgentId); 719 CachedUserInfo userInfo = CommsManager.UserProfileCacheService.GetUserDetails(remoteClient.AgentId);
705 if (userInfo != null) 720 if (userInfo != null)
706 { 721 {
diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs
index 3919a46..89b68de 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.cs
@@ -931,6 +931,7 @@ namespace OpenSim.Region.Environment.Scenes
931 if (RayEndIsIntersection == (byte)1) 931 if (RayEndIsIntersection == (byte)1)
932 { 932 {
933 pos = RayEnd; 933 pos = RayEnd;
934 pos.Z += 0.25F;
934 return pos; 935 return pos;
935 } 936 }
936 if (RayTargetID != LLUUID.Zero) 937 if (RayTargetID != LLUUID.Zero)
@@ -986,13 +987,14 @@ namespace OpenSim.Region.Environment.Scenes
986 987
987 988
988 989
989 990 pos.Z += 0.25F;
990 return pos; 991 return pos;
991 } 992 }
992 else 993 else
993 { 994 {
994 // fall back to our stupid functionality 995 // fall back to our stupid functionality
995 pos = RayEnd; 996 pos = RayEnd;
997 pos.Z += 0.25F;
996 return pos; 998 return pos;
997 } 999 }
998 } 1000 }
@@ -1000,6 +1002,7 @@ namespace OpenSim.Region.Environment.Scenes
1000 { 1002 {
1001 // fall back to our stupid functionality 1003 // fall back to our stupid functionality
1002 pos = RayEnd; 1004 pos = RayEnd;
1005 pos.Z += 0.25F;
1003 return pos; 1006 return pos;
1004 } 1007 }
1005 1008
@@ -1018,7 +1021,7 @@ namespace OpenSim.Region.Environment.Scenes
1018 if (PermissionsMngr.CanRezObject(ownerID, pos)) 1021 if (PermissionsMngr.CanRezObject(ownerID, pos))
1019 { 1022 {
1020 // rez ON the ground, not IN the ground 1023 // rez ON the ground, not IN the ground
1021 pos.Z += 0.25F; 1024
1022 1025
1023 1026
1024 AddNewPrim(ownerID, pos, rot, shape); 1027 AddNewPrim(ownerID, pos, rot, shape);