From 7da28c9aa9d7105fb0208709f73f8e79852bf716 Mon Sep 17 00:00:00 2001 From: Jeremy Pritts <49847914+ds5678@users.noreply.github.com> Date: Wed, 1 Mar 2023 22:38:57 -0500 Subject: [PATCH] Resolve #752 --- .../BlendTreeExtensions.cs | 6 ++++-- .../BlendTreeNodeConstantExtensions.cs | 8 +++++--- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/Source/AssetRipper.SourceGenerated.Extensions/BlendTreeExtensions.cs b/Source/AssetRipper.SourceGenerated.Extensions/BlendTreeExtensions.cs index bab1a0907..cec4801a5 100644 --- a/Source/AssetRipper.SourceGenerated.Extensions/BlendTreeExtensions.cs +++ b/Source/AssetRipper.SourceGenerated.Extensions/BlendTreeExtensions.cs @@ -33,8 +33,10 @@ namespace AssetRipper.SourceGenerated.Extensions childMotion.TimeScale = 1.0f; childMotion.CycleOffset = node.CycleOffset; - uint directID = node.GetDirectBlendParameter(childIndex); - childMotion.DirectBlendParameter?.CopyValues(controller.TOS_C91[directID]); + if(node.TryGetDirectBlendParameter(childIndex, out uint directID)) + { + childMotion.DirectBlendParameter?.CopyValues(controller.TOS_C91[directID]); + } childMotion.Mirror = node.Mirror; diff --git a/Source/AssetRipper.SourceGenerated.Extensions/BlendTreeNodeConstantExtensions.cs b/Source/AssetRipper.SourceGenerated.Extensions/BlendTreeNodeConstantExtensions.cs index 37cb27b14..d1ab6a4fd 100644 --- a/Source/AssetRipper.SourceGenerated.Extensions/BlendTreeNodeConstantExtensions.cs +++ b/Source/AssetRipper.SourceGenerated.Extensions/BlendTreeNodeConstantExtensions.cs @@ -49,13 +49,15 @@ namespace AssetRipper.SourceGenerated.Extensions return 1.0f; } - public static uint GetDirectBlendParameter(this IBlendTreeNodeConstant constant, int index) + public static bool TryGetDirectBlendParameter(this IBlendTreeNodeConstant constant, int index, out uint parameter) { if (constant.Has_BlendDirectData() && constant.GetBlendType() == BlendTreeType.Direct) { - return constant.BlendDirectData.Data.m_ChildBlendEventIDArray[index]; + parameter = constant.BlendDirectData.Data.m_ChildBlendEventIDArray[index]; + return true; } - return 0; + parameter = default; + return false; } public static bool IsBlendTree(this IBlendTreeNodeConstant constant) => constant.ChildIndices.Length > 0;