Browse Source

Use alternative method of checking for face keys

Rather than using a try catch block, use methods that TMorph has to
check for a hash key.
habeebweeb 4 years ago
parent
commit
0514a8b924

+ 1 - 1
COM3D2.MeidoPhotoStudio.Plugin/MeidoPhotoStudio/GUI/Panes/FaceWindowPanes/MaidFaceSliderPane.cs

@@ -122,7 +122,7 @@ namespace COM3D2.MeidoPhotoStudio.Plugin
                 toggle.Value = meido.GetFaceBlendValue(hash) > 0f;
                 if (hash == "toothoff") toggle.Value = !toggle.Value;
             }
-            hasTangOpen = meido.Body.Face.morph.hash["tangopen"] != null;
+            hasTangOpen = meido.Body.Face.morph.Contains("tangopen");
             updating = false;
         }
 

+ 4 - 5
COM3D2.MeidoPhotoStudio.Plugin/MeidoPhotoStudio/Meido/Meido.cs

@@ -572,12 +572,11 @@ namespace COM3D2.MeidoPhotoStudio.Plugin
         public void SetFaceBlendValue(string hash, float value)
         {
             TMorph morph = Body.Face.morph;
-            if (hash == "nosefook") Maid.boNoseFook = morph.boNoseFook = value > 0f;
-            else
+            hash = Utility.GP01FbFaceHash(morph, hash);
+            if (morph.Contains(hash))
             {
-                hash = Utility.GP01FbFaceHash(morph, hash);
-                try { morph.dicBlendSet[CurrentFaceBlendSet][(int)morph.hash[hash]] = value; }
-                catch { }
+                if (hash == "nosefook") Maid.boNoseFook = morph.boNoseFook = value > 0f;
+                else morph.dicBlendSet[CurrentFaceBlendSet][(int)morph.hash[hash]] = value;
             }
         }