aboutsummaryrefslogtreecommitdiffstats
path: root/al/eax/call.cpp
diff options
context:
space:
mode:
authorkcat <[email protected]>2022-07-17 13:28:47 -0700
committerGitHub <[email protected]>2022-07-17 13:28:47 -0700
commitc6064a2034d7814758d44659a9b97c9a0ec0e1aa (patch)
treec49490b1c783285412229a54dee300303a1453cd /al/eax/call.cpp
parent7b0776e33f84056179275a4a42cae7dbef9d6a71 (diff)
parent7e9c0285b45d9f7b3af9c72fc62fb1e00d18fe70 (diff)
Merge pull request #734 from bibendovsky/wip_20220714
[EAX] Various fixes
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)
{