aboutsummaryrefslogtreecommitdiffstats
path: root/al/eax/call.cpp
diff options
context:
space:
mode:
authorBoris I. Bendovsky <[email protected]>2022-07-14 20:58:49 +0300
committerBoris I. Bendovsky <[email protected]>2022-07-17 20:59:04 +0300
commit8de2a560688fb9da8a9d7be4344b4fc5245a2da5 (patch)
treeea4350c9376946799904d11086ff3a3ad5f94313 /al/eax/call.cpp
parentc88c5e6189fda16bdc0f9d87d64f5e11a8f1a40a (diff)
[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.
Diffstat (limited to 'al/eax/call.cpp')
-rw-r--r--al/eax/call.cpp23
1 files changed, 22 insertions, 1 deletions
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)
{