#include "..\script_component.hpp" /* * Author: esteldunedain * Calculate cooldown of all the stored spare barrels. * * Arguments: * None * * Return Value: * None * * Example: * [] call ace_overheating_fnc_updateSpareBarrelsTemperaturesThread * * Public: No */ TRACE_1("updateSpareBarrelsTemperaturesThread1",GVAR(storedSpareBarrels)); { _y params ["_initialTemp","_initialTime", "_barrelMass"]; // Calculate cooling private _finalTemp = [_initialTemp, _barrelMass, CBA_missionTime - _initialTime, 0] call FUNC(calculateCooling); //the zero is to indicate an open bolt gun. Barrel is outside of a gun here, so always open. TRACE_4("updateSpareBarrelsTemperaturesThread2",_barrelMagazineID,_initialTemp,_finalTemp,_barrelMass); if (_finalTemp <= (ambientTemperature select 0)) then { // The barrel is cool enough to finish calculating. Remove it from the hash GVAR(storedSpareBarrels) deleteAt _x; } else { // Store the new temp GVAR(storedSpareBarrels) set [_x, [_finalTemp, CBA_missionTime, _barrelMass]]; }; } forEach GVAR(storedSpareBarrels); // Schedule for execution again after 10 seconds [DFUNC(updateSpareBarrelsTemperaturesThread), [], 10] call CBA_fnc_waitAndExecute;