diff --git a/Runtime/World/CScriptMidi.cpp b/Runtime/World/CScriptMidi.cpp index 00b23486a..2991871c8 100644 --- a/Runtime/World/CScriptMidi.cpp +++ b/Runtime/World/CScriptMidi.cpp @@ -16,6 +16,10 @@ CScriptMidi::CScriptMidi(TUniqueId id, const CEntityInfo& info, std::string_view x34_song = g_SimplePool->GetObj(SObjectTag{FOURCC('CSNG'), csng}); } +CScriptMidi::~CScriptMidi() { + StopInternal(0.f); +} + void CScriptMidi::StopInternal(float fadeTime) { if (!x3c_handle) { return; diff --git a/Runtime/World/CScriptMidi.hpp b/Runtime/World/CScriptMidi.hpp index b48200a67..92ca3cd1c 100644 --- a/Runtime/World/CScriptMidi.hpp +++ b/Runtime/World/CScriptMidi.hpp @@ -22,6 +22,7 @@ public: DEFINE_ENTITY CScriptMidi(TUniqueId id, const CEntityInfo& info, std::string_view name, bool active, CAssetId csng, float, float, s32); + ~CScriptMidi() override; void Stop(CStateManager& mgr, float fadeTime); void Play(CStateManager& mgr, float fadeTime);