diff --git a/Source/Engine/Level/Actors/AnimatedModel.cpp b/Source/Engine/Level/Actors/AnimatedModel.cpp
index a8c091eb9..991ac3e05 100644
--- a/Source/Engine/Level/Actors/AnimatedModel.cpp
+++ b/Source/Engine/Level/Actors/AnimatedModel.cpp
@@ -554,20 +554,7 @@ void AnimatedModel::StopSlotAnimation(const StringView& slotName, Animation* ani
{
for (auto& slot : GraphInstance.Slots)
{
- if (slot.Animation == anim && slot.Name == slotName)
- {
- //slot.Animation = nullptr; // TODO: make an immediate version of this method and set the animation to nullptr.
- slot.Reset = true;
- break;
- }
- }
-}
-
-void AnimatedModel::StopSlotAnimation(const StringView& slotName)
-{
- for (auto& slot : GraphInstance.Slots)
- {
- if (slot.Name == slotName)
+ if ((slot.Animation == anim || anim == nullptr) && slot.Name == slotName)
{
//slot.Animation = nullptr; // TODO: make an immediate version of this method and set the animation to nullptr.
if (slot.Animation != nullptr)
@@ -609,17 +596,7 @@ bool AnimatedModel::IsPlayingSlotAnimation(const StringView& slotName, Animation
{
for (auto& slot : GraphInstance.Slots)
{
- if (slot.Animation == anim && slot.Name == slotName && !slot.Pause)
- return true;
- }
- return false;
-}
-
-bool AnimatedModel::IsPlayingSlotAnimation(const StringView& slotName)
-{
- for (auto& slot : GraphInstance.Slots)
- {
- if (slot.Name == slotName && !slot.Pause)
+ if ((slot.Animation == anim || anim == nullptr) && slot.Name == slotName && !slot.Pause)
return true;
}
return false;
diff --git a/Source/Engine/Level/Actors/AnimatedModel.h b/Source/Engine/Level/Actors/AnimatedModel.h
index dc837c658..344f633cc 100644
--- a/Source/Engine/Level/Actors/AnimatedModel.h
+++ b/Source/Engine/Level/Actors/AnimatedModel.h
@@ -413,13 +413,7 @@ public:
///
/// The name of the slot.
/// The animation to stop.
- API_FUNCTION() void StopSlotAnimation(const StringView& slotName, Animation* anim);
-
- ///
- /// Stops the animation playback on the slot in Anim Graph.
- ///
- /// The name of the slot.
- API_FUNCTION() void StopSlotAnimation(const StringView& slotName);
+ API_FUNCTION() void StopSlotAnimation(const StringView& slotName, Animation* anim = nullptr);
///
/// Pauses all the animations playback on the all slots in Anim Graph.
@@ -443,13 +437,7 @@ public:
///
/// The name of the slot.
/// The animation to check.
- API_FUNCTION() bool IsPlayingSlotAnimation(const StringView& slotName, Animation* anim);
-
- ///
- /// Checks if the animation playback is active on the slot in Anim Graph (not paused).
- ///
- /// The name of the slot.
- API_FUNCTION() bool IsPlayingSlotAnimation(const StringView& slotName);
+ API_FUNCTION() bool IsPlayingSlotAnimation(const StringView& slotName, Animation* anim = nullptr);
private:
void ApplyRootMotion(const Transform& rootMotionDelta);