2016-09-11 18:46:35 +00:00
|
|
|
#include "script_component.hpp"
|
|
|
|
|
|
|
|
GVAR(useAceMedical) = ["ace_medical"] call EFUNC(common,isModLoaded);
|
|
|
|
|
|
|
|
// To support public API regardless of component settings
|
2024-03-28 18:57:23 +00:00
|
|
|
[QGVAR(spurt), LINKFUNC(spurt)] call CBA_fnc_addEventHandler;
|
2016-09-11 18:46:35 +00:00
|
|
|
|
|
|
|
if (isServer) then {
|
|
|
|
GVAR(bloodDrops) = [];
|
|
|
|
|
|
|
|
[QGVAR(bloodDropCreated), {
|
2023-02-01 11:03:44 +00:00
|
|
|
params ["_bloodDrop", "_source"];
|
2016-11-09 19:00:18 +00:00
|
|
|
|
2023-02-01 11:03:44 +00:00
|
|
|
// Add to created queue with format: [expire time, blood object, source unit]
|
|
|
|
private _index = GVAR(bloodDrops) pushBack [CBA_missionTime + GVAR(bloodLifetime), _bloodDrop, _source];
|
2019-06-28 16:50:11 +00:00
|
|
|
|
|
|
|
if (count GVAR(bloodDrops) >= GVAR(maxBloodObjects)) then {
|
2016-11-09 19:00:18 +00:00
|
|
|
(GVAR(bloodDrops) deleteAt 0) params ["", "_deletedBloodDrop"];
|
2016-09-11 18:46:35 +00:00
|
|
|
deleteVehicle _deletedBloodDrop;
|
|
|
|
};
|
|
|
|
|
2019-06-28 16:50:11 +00:00
|
|
|
// Start the cleanup loop
|
|
|
|
if (_index == 0) then {
|
2024-03-28 18:57:23 +00:00
|
|
|
[LINKFUNC(cleanupLoop), [], GVAR(bloodLifetime)] call CBA_fnc_waitAndExecute;
|
2016-11-09 19:00:18 +00:00
|
|
|
};
|
2016-09-11 18:46:35 +00:00
|
|
|
}] call CBA_fnc_addEventHandler;
|
|
|
|
};
|