From 7894eae2345bc71418aa35e903071f4cc249a2a0 Mon Sep 17 00:00:00 2001 From: cosmonaut Date: Sun, 31 Oct 2021 11:43:58 -0700 Subject: [PATCH] make sure spatial audio is always applied immediately --- gamemaker/extensions/FAudioGMS/FAudioGMS.dll | 4 ++-- src/FAudioGMS.c | 14 +++++++++----- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/gamemaker/extensions/FAudioGMS/FAudioGMS.dll b/gamemaker/extensions/FAudioGMS/FAudioGMS.dll index 4228074..9185996 100644 --- a/gamemaker/extensions/FAudioGMS/FAudioGMS.dll +++ b/gamemaker/extensions/FAudioGMS/FAudioGMS.dll @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:10017825778cb5f6992531207b0c1ba7d2fc6fc87da59b326423e390463b90d6 -size 1472000 +oid sha256:7c69a654839a5d62dd2d74bc4d5f869787a584ec390493ef9ca28cdbc3d5af81 +size 1473024 diff --git a/src/FAudioGMS.c b/src/FAudioGMS.c index 5d1578c..052b488 100644 --- a/src/FAudioGMS.c +++ b/src/FAudioGMS.c @@ -1054,14 +1054,18 @@ void FAudioGMS_SoundInstance_Set3DPosition(double soundInstanceID, double x, dou if (instance != NULL) { - if (!instance->is3D) + if (instance->is3D) + { + instance->emitter->Position.x = x; + instance->emitter->Position.y = y; + instance->emitter->Position.z = z; + + FAudioGMS_INTERNAL_Apply3D(instance); + } + else { FAudioGMS_INTERNAL_SoundInstance_AddEmitter(instance, x, y, z); } - - instance->emitter->Position.x = x; - instance->emitter->Position.y = y; - instance->emitter->Position.z = z; } }