#include "script_component.hpp" ["ace_settingsInitialized", { TRACE_1("settings init",GVAR(enabled)); if (GVAR(enabled)) then { [QGVAR(medicalDamage), LINKFUNC(medicalDamage)] call CBA_fnc_addEventHandler; [QGVAR(bailOut), { params ["_center", "_crewman", "_vehicle"]; TRACE_3("bailOut",_center,_crewman,_vehicle); if (isPlayer _crewman) exitWith {}; if (!alive _crewman || {!([_crewman] call EFUNC(common,isAwake))}) exitWith {}; unassignVehicle _crewman; _crewman leaveVehicle _vehicle; doGetOut _crewman; private _angle = floor (random 360); private _dist = (30 + (random 10)); private _escape = _center getPos [_dist, _angle]; _crewman doMove _escape; _crewman setSpeedMode "FULL"; }] call CBA_fnc_addEventHandler; ["Tank", "init", LINKFUNC(addEventHandler), true, [], true] call CBA_fnc_addClassEventHandler; ["Wheeled_APC_F", "init", LINKFUNC(addEventHandler), true, [], true] call CBA_fnc_addClassEventHandler; if (GVAR(enableCarDamage)) then { ["Car", "init", LINKFUNC(addEventHandler), true, [], true] call CBA_fnc_addClassEventHandler; }; // Blow off turret effect // TODO: Add blowing-off-turret effect to vehicles that cook-off but aren't destroyed (no catastrophic explosion) // The problem is that vehicles are repairable if they haven't been destroyed. So if the turret is gone and vehicle is repaired, how do we handle that? ["Tank", "Killed", { if (_this select 3 && random 1 < 0.15) then { (_this select 0) call FUNC(blowOffTurret); }; }, true, [], true] call CBA_fnc_addClassEventHandler; }; // init eject from destroyed vehicle { [_x, "init", { params ["_vehicle"]; if (!alive _vehicle) exitWith {}; TRACE_2("ejectIfDestroyed init",_vehicle,typeOf _vehicle); _vehicle addEventHandler ["HandleDamage", {call FUNC(handleDamageEjectIfDestroyed)}]; }, true, [], true] call CBA_fnc_addClassEventHandler; } forEach EJECT_IF_DESTROYED_VEHICLES; }] call CBA_fnc_addEventHandler;