From 2cd935acbeb3815fb358c92de8c11822067c51d4 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Thu, 11 Nov 2021 16:34:56 -0600 Subject: [PATCH] Medical Engine - Synchronize random unconscious anims (#8671) * Medical Engine - Synchronize random unconscious anims * Update addons/medical_engine/functions/fnc_applyAnimAfterRagdoll.sqf Co-authored-by: mharis001 <34453221+mharis001@users.noreply.github.com> * Update addons/medical_engine/functions/fnc_applyAnimAfterRagdoll.sqf Co-authored-by: mharis001 <34453221+mharis001@users.noreply.github.com> Co-authored-by: mharis001 <34453221+mharis001@users.noreply.github.com> --- .../functions/fnc_applyAnimAfterRagdoll.sqf | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/addons/medical_engine/functions/fnc_applyAnimAfterRagdoll.sqf b/addons/medical_engine/functions/fnc_applyAnimAfterRagdoll.sqf index 7d97f8b3f8..116138306a 100644 --- a/addons/medical_engine/functions/fnc_applyAnimAfterRagdoll.sqf +++ b/addons/medical_engine/functions/fnc_applyAnimAfterRagdoll.sqf @@ -17,13 +17,16 @@ */ params ["_unit", "_anim"]; -TRACE_2("applyAnimAfterRagdoll",_unit,_unconsciousAnimation); +TRACE_2("applyAnimAfterRagdoll",_unit,_anim); if !(IS_UNCONSCIOUS(_unit) && // do not run if unit is conscious {alive _unit && // do not run if unit is dead {isNull objectParent _unit}}) exitWith {}; // do not run if unit in any vehicle -private _unconsciousAnimation = selectRandom (GVAR(animations) getVariable [_anim, [""]]); +private _animsArray = GVAR(animations) getVariable [_anim, [""]]; +private _random = (toArray (hashValue _unit)) param [0, 0]; +private _index = _random % (count _animsArray); +private _unconsciousAnimation = _animsArray select _index; if (_unconsciousAnimation isEqualTo "") exitWith { // not a valid animation found @@ -33,4 +36,5 @@ if (_unconsciousAnimation isEqualTo "") exitWith { // Apply the animation only locally on the machine and do not broadcast it to others // Reason is the nature of setUnconscious' end of ragdoll animation is not synced on all machines either // Not synced animations are preferred over units snapping from one to another animation +TRACE_2("switchMove",_unit,_unconsciousAnimation); _unit switchMove _unconsciousAnimation;