summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDave Parks <davep@lindenlab.com>2011-06-28 12:41:12 -0500
committerDave Parks <davep@lindenlab.com>2011-06-28 12:41:12 -0500
commit12e08417bfdf5d50feea544a54bbb333ad01acce (patch)
treed15022dbe74d3f6f2dda7b84ab7ba92538b416c4
parent4df70b55233ecf6bd6ed89a42281ce62d90c672f (diff)
SH-1169 Fix for convex decompositions not working post mesh-asset-deprecation work. (also default SLM usage to on)
-rw-r--r--indra/llprimitive/llmodel.cpp4
-rwxr-xr-xindra/newview/app_settings/settings.xml2
-rw-r--r--indra/newview/llfloatermodelpreview.cpp10
3 files changed, 9 insertions, 7 deletions
diff --git a/indra/llprimitive/llmodel.cpp b/indra/llprimitive/llmodel.cpp
index 972f256076..da78b30b34 100644
--- a/indra/llprimitive/llmodel.cpp
+++ b/indra/llprimitive/llmodel.cpp
@@ -1798,7 +1798,7 @@ bool LLModel::loadModel(std::istream& is)
is.seekg(cur_pos);
}
- if (lod == LLModel::LOD_PHYSICS)
+ if (lod == LLModel::LOD_HIGH || lod == LLModel::LOD_PHYSICS)
{
std::ios::pos_type cur_pos = is.tellg();
loadDecomposition(header, is);
@@ -2015,7 +2015,7 @@ LLModel::Decomposition::Decomposition(LLSD& data)
void LLModel::Decomposition::fromLLSD(LLSD& decomp)
{
- if (decomp.has("HullList"))
+ if (decomp.has("HullList") && decomp.has("Positions"))
{
// updated for const-correctness. gcc is picky about this type of thing - Nyx
const LLSD::Binary& hulls = decomp["HullList"].asBinary();
diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml
index cf07350d85..3c309f93bc 100755
--- a/indra/newview/app_settings/settings.xml
+++ b/indra/newview/app_settings/settings.xml
@@ -5587,7 +5587,7 @@
<key>Type</key>
<string>Boolean</string>
<key>Value</key>
- <real>0</real>
+ <real>1</real>
</map>
<key>MeshUploadLogXML</key>
<map>
diff --git a/indra/newview/llfloatermodelpreview.cpp b/indra/newview/llfloatermodelpreview.cpp
index 0006e3423b..67841620ea 100644
--- a/indra/newview/llfloatermodelpreview.cpp
+++ b/indra/newview/llfloatermodelpreview.cpp
@@ -1968,10 +1968,6 @@ bool LLModelLoader::loadFromSLM(const std::string& filename)
mPreview->critiqueRigForUploadApplicability( loaded_model->mSkinInfo.mJointNames );
}
}
- else
- {
- return false;
- }
}
}
@@ -1980,6 +1976,12 @@ bool LLModelLoader::loadFromSLM(const std::string& filename)
return false;
}
+ if (model[LLModel::LOD_PHYSICS].empty())
+ { //no explicit physics block, copy HIGH_LOD into physics array to recover convex decomp
+ model[LLModel::LOD_PHYSICS] = model[LLModel::LOD_HIGH];
+ }
+
+
//load instance list
model_instance_list instance_list;