From: bones_was_here Date: Thu, 16 Feb 2023 18:21:48 +0000 (+1000) Subject: Adjust jump pad velocity on Q3 maps to match 125fps frametime-dependent behaviour X-Git-Tag: xonotic-v0.8.6~140^2~1 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=95f343cf7489dabf45638e6b5211c450f590110f;p=xonotic%2Fxonotic-data.pk3dir.git Adjust jump pad velocity on Q3 maps to match 125fps frametime-dependent behaviour --- diff --git a/qcsrc/common/mapobjects/trigger/jumppads.qc b/qcsrc/common/mapobjects/trigger/jumppads.qc index ecc80f4ad..4754213bf 100644 --- a/qcsrc/common/mapobjects/trigger/jumppads.qc +++ b/qcsrc/common/mapobjects/trigger/jumppads.qc @@ -39,6 +39,14 @@ vector trigger_push_calculatevelocity(vector org, entity tgt, float ht, entity p if(pushed_entity && pushed_entity.gravity) grav *= pushed_entity.gravity; + // Q3 has frametime-dependent gravity, but its trigger_push velocity calculation doesn't account for that. + // This discrepancy can be simulated accurately which ensures that all entities will arrive + // where they would in Q3 with gravity 800 at 125fps, even if entity-specific gravity is applied. + // This can be hard-coded because we don't support the Q3 world.gravity field at this time. + // See physicsCPMA.cfg for maths and test results. + if (Q3COMPAT_COMMON) + grav /= 750/800; // exact float, unlike 800/750 + zdist = torg.z - org.z; sdist = vlen(torg - org - zdist * '0 0 1'); sdir = normalize(torg - org - zdist * '0 0 1');