/* * Author: Glowbal, PabstMirror * Get the death animation for the unit at current ACE_time * * Arguments: * 0: unit * * Return Value: * animation * * Example: * [bob] call ace_common_fnc_getDeathAnim * * Public: No */ #include "script_component.hpp" params ["_unit"]; private ["_returnAnimation", "_animationState", "_unitAnimationCfg", "_unitActionsCfg", "_interpolateArray", "_indexAnimation"]; _returnAnimation = ""; _animationState = animationState _unit; _unitAnimationCfg = configFile >> "CfgMovesMaleSdr" >> "States" >> _animationState; //If we're already in a terminal animation just return current if (getNumber (_unitAnimationCfg >> "terminal") == 1) exitWith {_animationState}; _unitActionsCfg = configFile >> "CfgMovesBasic" >> "Actions" >> getText (_unitAnimationCfg >> "actions"); TRACE_2("Animation/Action", configName _unitAnimationCfg, configName _unitActionsCfg); if (vehicle _unit != _unit) then { _interpolateArray = getArray (_unitAnimationCfg >> "interpolateTo"); for "_index" from 0 to (count _interpolateArray - 1) step 2 do { _indexAnimation = _interpolateArray select _index; //No guarentee that first animation will be right so scan for the first "terminal" animation //E.G.: interpolateTo[] = {"passenger_apc_generic04still",1,"KIA_passenger_apc_generic04",1}; if (getNumber (configFile >> "CfgMovesMaleSdr" >> "States" >> _indexAnimation >> "terminal") == 1) exitWith { _returnAnimation = _indexAnimation; }; }; } else { _returnAnimation = getText (_unitActionsCfg >> "die"); }; //Fallback if nothing valid found: if (_returnAnimation == "") then {_returnAnimation = "Unconscious"}; _returnAnimation