From 8de2a560688fb9da8a9d7be4344b4fc5245a2da5 Mon Sep 17 00:00:00 2001 From: "Boris I. Bendovsky" Date: Thu, 14 Jul 2022 20:58:49 +0300 Subject: [EAX_CALL] Clear defer flag for immediate-only properties EAX allow to set "defer" flag on immediate-only properties. If we don't clear our flag then "applyAllUpdates" in EAX context won't be called. --- al/eax/call.cpp | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) (limited to 'al/eax/call.cpp') diff --git a/al/eax/call.cpp b/al/eax/call.cpp index f779c2b0..abb27933 100644 --- a/al/eax/call.cpp +++ b/al/eax/call.cpp @@ -151,7 +151,28 @@ EaxCall::EaxCall( fail("EAX version out of range."); } - if(!(property_id&deferred_flag)) + switch(property_id) + { + case EAXCONTEXT_LASTERROR: + case EAXCONTEXT_SPEAKERCONFIG: + case EAXCONTEXT_EAXSESSION: + case EAXFXSLOT_NONE: + case EAXFXSLOT_ALLPARAMETERS: + case EAXFXSLOT_LOADEFFECT: + case EAXFXSLOT_VOLUME: + case EAXFXSLOT_LOCK: + case EAXFXSLOT_FLAGS: + case EAXFXSLOT_OCCLUSION: + case EAXFXSLOT_OCCLUSIONLFRATIO: + // EAX allow to set "defer" flag on immediate-only properties. + // If we don't clear our flag then "applyAllUpdates" in EAX context won't be called. + is_deferred_ = false; + break; + default: + break; + } + + if(!is_deferred_) { if(property_set_id_ != EaxCallPropertySetId::fx_slot && property_id_ != 0) { -- cgit v1.2.3