ACE3/addons/fire/XEH_postInit.sqf
Crowdedlight 6181616cc3
Fire - Fix fire spread to invincible units and not being able to be put on fire by proximity if multiple units are on fire (#8632)
* fire do not propagate to close unit if allowDamage is disable don that unit

* change burnCounter so it works with multiple instances of fires

* fixed exiting burning not resetting burn counter

* changed !isEqualTo to isNotEqualTo

* changed !isEqualTo to isNotEqualTo

* lazy eval, respect old allowDamage variable

---------

Co-authored-by: Grim <69561145+LinkIsGrim@users.noreply.github.com>
Co-authored-by: Salluci <salluci.lovi@gmail.com>
2023-06-24 05:34:31 +03:00

39 lines
1.4 KiB
Plaintext

#include "script_component.hpp"
[QGVAR(burn), FUNC(burn)] call CBA_fnc_addEventHandler;
[QGVAR(playScream), {
params ["_scream", "_source"];
// only play sound if enabled in settings
if (GVAR(enableScreams)) then {
_source say3D _scream;
};
}] call CBA_fnc_addEventHandler;
["ace_settingsInitialized", {
TRACE_1("settingsInit", GVAR(enabled));
if (!GVAR(enabled)) exitWith {};
if (isServer) then {
[QGVAR(addFireSource), {
params ["_source", "_radius", "_intensity", "_key", ["_condition", { true }], ["_conditionArgs", []]];
private _fireLogic = createVehicle ["ACE_LogicDummy", [0, 0, 0], [], 0, "NONE"];
if (_source isEqualType objNull) then {
_fireLogic attachTo [_source];
} else {
_fireLogic setPosASL _source;
};
[GVAR(fireSources), _key, [_fireLogic, _radius, _intensity, _condition, _conditionArgs]] call CBA_fnc_hashSet;
}] call CBA_fnc_addEventHandler;
[QGVAR(removeFireSource), {
params ["_key"];
[GVAR(fireSources), _key] call CBA_fnc_hashRem;
}] call CBA_fnc_addEventHandler;
[{ _this call FUNC(fireManagerPFH) }, FIRE_MANAGER_PFH_DELAY, []] call CBA_fnc_addPerFrameHandler;
GVAR(fireSources) = [[], nil] call CBA_fnc_hashCreate;
};
}] call CBA_fnc_addEventHandler;