aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--OpenSim/Region/CoreModules/Avatar/ObjectCaps/ObjectAdd.cs2
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.cs12
2 files changed, 11 insertions, 3 deletions
diff --git a/OpenSim/Region/CoreModules/Avatar/ObjectCaps/ObjectAdd.cs b/OpenSim/Region/CoreModules/Avatar/ObjectCaps/ObjectAdd.cs
index d8c7b84..63a93aa 100644
--- a/OpenSim/Region/CoreModules/Avatar/ObjectCaps/ObjectAdd.cs
+++ b/OpenSim/Region/CoreModules/Avatar/ObjectCaps/ObjectAdd.cs
@@ -303,7 +303,7 @@ namespace OpenSim.Region.CoreModules.Avatar.ObjectCaps
303 if (m_scene.Permissions.CanRezObject(1, avatar.UUID, pos)) 303 if (m_scene.Permissions.CanRezObject(1, avatar.UUID, pos))
304 { 304 {
305 // rez ON the ground, not IN the ground 305 // rez ON the ground, not IN the ground
306 pos.Z += 0.25F; 306 // pos.Z += 0.25F;
307 307
308 obj = m_scene.AddNewPrim(avatar.UUID, group_id, pos, rotation, pbs); 308 obj = m_scene.AddNewPrim(avatar.UUID, group_id, pos, rotation, pbs);
309 } 309 }
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs
index 92cea43..ac2d02e 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.cs
@@ -1349,8 +1349,11 @@ namespace OpenSim.Region.Framework.Scenes
1349 Vector3 offset = (normal * (ScaleOffset / 2f)); 1349 Vector3 offset = (normal * (ScaleOffset / 2f));
1350 pos = (intersectionpoint + offset); 1350 pos = (intersectionpoint + offset);
1351 1351
1352 //Seems to make no sense to do this as this call is used for rezzing from inventory as well, and with inventory items their size is not always 0.5f
1353 //And in cases when we weren't rezzing from inventory we were re-adding the 0.25 straight after calling this method
1352 // Un-offset the prim (it gets offset later by the consumer method) 1354 // Un-offset the prim (it gets offset later by the consumer method)
1353 pos.Z -= 0.25F; 1355 //pos.Z -= 0.25F;
1356
1354 } 1357 }
1355 1358
1356 return pos; 1359 return pos;
@@ -1380,6 +1383,11 @@ namespace OpenSim.Region.Framework.Scenes
1380 { 1383 {
1381 // fall back to our stupid functionality 1384 // fall back to our stupid functionality
1382 pos = RayEnd; 1385 pos = RayEnd;
1386
1387 //increase height so its above the ground.
1388 //should be getting the normal of the ground at the rez point and using that?
1389 float ScaleOffset = Math.Abs(scale.Z);
1390 pos.Z += ScaleOffset / 2f;
1383 return pos; 1391 return pos;
1384 } 1392 }
1385 } 1393 }
@@ -1393,7 +1401,7 @@ namespace OpenSim.Region.Framework.Scenes
1393 if (Permissions.CanRezObject(1, ownerID, pos)) 1401 if (Permissions.CanRezObject(1, ownerID, pos))
1394 { 1402 {
1395 // rez ON the ground, not IN the ground 1403 // rez ON the ground, not IN the ground
1396 pos.Z += 0.25F; 1404 // pos.Z += 0.25F; The rez point should now be correct so that its not in the ground
1397 1405
1398 AddNewPrim(ownerID, groupID, pos, rot, shape); 1406 AddNewPrim(ownerID, groupID, pos, rot, shape);
1399 } 1407 }