aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/MeshCost.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/MeshCost.cs')
-rw-r--r--OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/MeshCost.cs26
1 files changed, 20 insertions, 6 deletions
diff --git a/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/MeshCost.cs b/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/MeshCost.cs
index 7a80c72..f03d8d8 100644
--- a/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/MeshCost.cs
+++ b/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/MeshCost.cs
@@ -96,7 +96,8 @@ namespace OpenSim.Region.ClientStack.Linden
96 // basicCost input region assets upload cost 96 // basicCost input region assets upload cost
97 // totalcost returns model total upload fee 97 // totalcost returns model total upload fee
98 // meshcostdata returns detailed costs for viewer 98 // meshcostdata returns detailed costs for viewer
99 public bool MeshModelCost(LLSDAssetResource resources, int basicCost, out int totalcost, LLSDAssetUploadResponseData meshcostdata, out string error) 99 public bool MeshModelCost(LLSDAssetResource resources, int basicCost, out int totalcost,
100 LLSDAssetUploadResponseData meshcostdata, out string error, ref string warning)
100 { 101 {
101 totalcost = 0; 102 totalcost = 0;
102 error = string.Empty; 103 error = string.Empty;
@@ -229,10 +230,18 @@ namespace OpenSim.Region.ClientStack.Linden
229 meshsfee += primCreationCost; 230 meshsfee += primCreationCost;
230 } 231 }
231 232
232 if (skipedSmall >0 && skipedSmall > numberInstances / 2) 233 if (skipedSmall > 0)
233 { 234 {
234 error = "Model contains too many prims smaller than " + PrimScaleMin.ToString() + "m"; 235 if (skipedSmall > numberInstances / 2)
235 return false; 236 {
237 error = "Model contains too many prims smaller than " + PrimScaleMin.ToString() +
238 "m minimum allowed size. Please check scalling";
239 return false;
240 }
241 else
242 warning += skipedSmall.ToString() + " of the requested " +numberInstances.ToString() +
243 " model prims will not upload because they are smaller than " + PrimScaleMin.ToString() +
244 "m minimum allowed size. Please check scalling ";
236 } 245 }
237 246
238 if (meshcostdata.physics_cost <= meshcostdata.model_streaming_cost) 247 if (meshcostdata.physics_cost <= meshcostdata.model_streaming_cost)
@@ -403,9 +412,14 @@ namespace OpenSim.Region.ClientStack.Linden
403 412
404 submesh_offset = -1; 413 submesh_offset = -1;
405 414
406 if (map.ContainsKey("physics_mesh")) 415 tmpmap = null;
407 { 416 if(map.ContainsKey("physics_mesh"))
408 tmpmap = (OSDMap)map["physics_mesh"]; 417 tmpmap = (OSDMap)map["physics_mesh"];
418 else if (map.ContainsKey("physics_shape")) // old naming
419 tmpmap = (OSDMap)map["physics_shape"];
420
421 if(tmpmap != null)
422 {
409 if (tmpmap.ContainsKey("offset")) 423 if (tmpmap.ContainsKey("offset"))
410 submesh_offset = tmpmap["offset"].AsInteger() + start; 424 submesh_offset = tmpmap["offset"].AsInteger() + start;
411 if (tmpmap.ContainsKey("size")) 425 if (tmpmap.ContainsKey("size"))