diff options
author | Teravus Ovares | 2007-12-28 14:24:14 +0000 |
---|---|---|
committer | Teravus Ovares | 2007-12-28 14:24:14 +0000 |
commit | f64d94f8caccd49523c54c48a1c6700b7fb0d212 (patch) | |
tree | 6373c114a94befc75551953c706490acbca56c8e /OpenSim | |
parent | * Made a copy of parts before updating to avoid dictionary updated exceptions... (diff) | |
download | opensim-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
Diffstat (limited to 'OpenSim')
-rw-r--r-- | OpenSim/Framework/IClientAPI.cs | 18 | ||||
-rw-r--r-- | OpenSim/Region/ClientStack/ClientView.cs | 19 | ||||
-rw-r--r-- | OpenSim/Region/Environment/Scenes/Scene.Inventory.cs | 17 | ||||
-rw-r--r-- | OpenSim/Region/Environment/Scenes/Scene.cs | 7 |
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); |