ACE3/addons/medical_status/XEH_preInit.sqf
commy2 15b4b98e5b
Medical Status - Fix double execution of killed event (#7561)
* fix double execution of killed event

* revert the execNextFrame change

* make second execution run with null

* make second execution run with null
2020-02-29 16:09:00 -06:00

29 lines
994 B
Plaintext

#include "script_component.hpp"
ADDON = false;
PREP_RECOMPILE_START;
#include "XEH_PREP.hpp"
PREP_RECOMPILE_END;
#include "initSettings.sqf"
// Add vanilla killed EH to unit to set correct killer
["CAManBase", "init", {
params ["_unit"];
private _config = [_unit] call CBA_fnc_getObjectConfig;
if (getText (_config >> "simulation") == "UAVPilot") exitWith {TRACE_1("ignore UAV AI",typeOf _unit);};
if (getNumber (_config >> "isPlayableLogic") == 1) exitWith {TRACE_1("ignore logic unit",typeOf _unit)};
// Hopefully this EH gets added first as it can only effect other EH called after it
private _ehIndex = _unit addEventHandler ["Killed", {_this call FUNC(handleKilled)}];
#ifdef DEBUG_MODE_FULL
if (_ehIndex != 0) then { WARNING_1("killed EH not first [%1]",_ehIndex); };
#endif
}, nil, [IGNORE_BASE_UAVPILOTS], true] call CBA_fnc_addClassEventHandler;
addMissionEventHandler ["EntityKilled", {_this call FUNC(handleKilledMission)}];
ADDON = true;