From e8283c30a0dece3937e7e6b414e5285b6e1e9655 Mon Sep 17 00:00:00 2001 From: johnb432 <58661205+johnb432@users.noreply.github.com> Date: Mon, 1 Apr 2024 15:31:18 +0200 Subject: [PATCH] Use `getOrDefaultCall` --- addons/frag/functions/fnc_getSpallInfo.sqf | 19 +++++++------------ addons/frag/functions/fnc_shouldSpall.sqf | 20 ++++---------------- 2 files changed, 11 insertions(+), 28 deletions(-) diff --git a/addons/frag/functions/fnc_getSpallInfo.sqf b/addons/frag/functions/fnc_getSpallInfo.sqf index c4ef3b4cd8..bc98888705 100644 --- a/addons/frag/functions/fnc_getSpallInfo.sqf +++ b/addons/frag/functions/fnc_getSpallInfo.sqf @@ -20,16 +20,11 @@ params ["_ammo"]; -private _ammoInfo = GVAR(spallInfoCache) get _ammo; +GVAR(spallInfoCache) getOrDefaultCall [_ammo, { + private _ammoConfig = configFile >> "CfgAmmo" >> _ammo; + private _caliber = getNumber (_ammoConfig >> "caliber"); + private _explosive = 1 min getNumber (_ammoConfig >> "explosive"); + private _indirectHit = getNumber (_ammoConfig >> "indirectHitRange"); -if (!isNil "_ammoInfo") exitWith {_ammoInfo}; - -private _ammoConfig = configFile >> "CfgAmmo" >> _ammo; -private _caliber = getNumber (_ammoConfig >> "caliber"); -private _explosive = 1 min getNumber (_ammoConfig >> "explosive"); -private _indirectHit = getNumber (_ammoConfig >> "indirectHitRange"); -_ammoInfo = [_caliber, _explosive, _indirectHit]; - -GVAR(spallInfoCache) set [_ammo, _ammoInfo]; - -_ammoInfo + [_caliber, _explosive, _indirectHit] +}, true] diff --git a/addons/frag/functions/fnc_shouldSpall.sqf b/addons/frag/functions/fnc_shouldSpall.sqf index 096025c63f..e3225c73c9 100644 --- a/addons/frag/functions/fnc_shouldSpall.sqf +++ b/addons/frag/functions/fnc_shouldSpall.sqf @@ -17,20 +17,8 @@ params ["_ammo"]; -private _shouldSpall = GVAR(shouldSpallCache) get _ammo; +GVAR(shouldSpallCache) getOrDefaultCall [_ammo, { + (_ammo call FUNC(getSpallInfo)) params ["_caliber", "_explosive", "_indirectHit"]; -if (!isNil "_shouldSpall") exitWith {_shouldSpall}; - -private _ammoConfig = configFile >> "CfgAmmo" >> _ammo; -private _caliber = getNumber (_ammoConfig >> "caliber"); -private _explosive = 1 min getNumber (_ammoConfig >> "explosive"); -private _indirectHit = getNumber (_ammoConfig >> "indirectHitRange"); - -// We need get this for fnc_getSpallInfo, so might as well cache it since we have it -GVAR(spallInfoCache) set [_ammo, [_caliber, _explosive, _indirectHit]]; - -_shouldSpall = _caliber * GVAR(spallIntensity) >= 1.25 * ACE_FRAG_SPALL_POWER_MIN || (_explosive >= 0.5 && {_indirectHit * GVAR(spallIntensity) >= 2 * ACE_FRAG_SPALL_POWER_MIN}); - -GVAR(shouldSpallCache) set [_ammo, _shouldSpall]; - -_shouldSpall + (_caliber * GVAR(spallIntensity) >= 1.25 * ACE_FRAG_SPALL_POWER_MIN) || {_explosive >= 0.5 && {_indirectHit * GVAR(spallIntensity) >= 2 * ACE_FRAG_SPALL_POWER_MIN}} +}, true]