From 932b7de5309bc8599655ebb77666c41f5a81cfa9 Mon Sep 17 00:00:00 2001
From: Howard Stearns <howard.stearns@gmail.com>
Date: Mon, 28 Feb 2022 15:47:56 -0800
Subject: [PATCH] SL-9748 - Handle submesh case of resuseable physics model.

---
 indra/newview/llmodelpreview.cpp | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/indra/newview/llmodelpreview.cpp b/indra/newview/llmodelpreview.cpp
index a1420fba173..f3b6207488e 100644
--- a/indra/newview/llmodelpreview.cpp
+++ b/indra/newview/llmodelpreview.cpp
@@ -529,12 +529,12 @@ void LLModelPreview::rebuildUploadData()
                         LLFloaterModelPreview::addStringToLog(out, false);
                     }
                 }
-                if (!mLastSpecifiedPhysicsModelOriginalName.empty() && !lod_model && (i == LLModel::LOD_PHYSICS))
+                if (mLastSpecifiedPhysicsP && !lod_model && (i == LLModel::LOD_PHYSICS))
                 {
                     // Despite the various strategies above, if we don't now have a physics model, we're going to end up with decomposition.
                     // That's ok, but in the case where someone supplied a physics file, that's probably not what they wanted.
                     std::ostringstream out;
-                    out << "Reusing previously matched physics model " << mLastSpecifiedPhysicsModelOriginalName;
+                    out << "Reusing physics model " << mLastSpecifiedPhysicsModelOriginalName << " for " << instance.mLabel;
                     LL_INFOS() << out.str() << LL_ENDL;
                     LLFloaterModelPreview::addStringToLog(out, false);
                     lod_model = mLastSpecifiedPhysicsP;
@@ -1204,6 +1204,11 @@ void LLModelPreview::loadModelCallback(S32 loaded_lod)
                             }
                         }
                     }
+                    else if ((loaded_lod == LLModel::LOD_PHYSICS) && (mModel[loaded_lod].size() == 1))
+                    {
+                        mLastSpecifiedPhysicsModelOriginalName = stripSuffix(mModel[loaded_lod][0]->mLabel);
+                        mLastSpecifiedPhysicsP = mModel[loaded_lod][0];
+                    }
                 }
             }
         }
-- 
GitLab