possilbe "magic number" cleanup and formatting

This commit is contained in:
lambdatiger 2024-01-15 15:18:42 -06:00
parent ff462333cb
commit 54c4f45cf9
7 changed files with 39 additions and 34 deletions

View File

@ -1,5 +1,5 @@
#include "..\script_component.hpp" #include "..\script_component.hpp"
#define HITBOX_DRAW_PATH [[3 , 2 , 1 , 5 , 6 , 7 , 3 , 0 , 4 , 5], [0, 1], [2, 6], [7, 4]] #define HITBOX_DRAW_PATH [[3, 2, 1, 5, 6, 7, 3, 0, 4, 5], [0, 1], [2, 6], [7, 4]]
/* /*
* Author: Lambda.Tiger * Author: Lambda.Tiger
* Per frame function to draw all dev traces * Per frame function to draw all dev traces

View File

@ -37,12 +37,12 @@ if (_aID > -1 && {_lastUnit isNotEqualTo objNull}) then {
_aID = _currentUnit addAction [ _aID = _currentUnit addAction [
"Reset Lines", "Reset Lines",
FUNC(dev_clearTraces), FUNC(dev_clearTraces),
nil, // arguments nil,
1.5, // priority 1.5,
true, // showWindow true,
false, // hideOnUse false,
"", // shortcut "",
"true", // condition "true",
8 8
]; ];

View File

@ -36,34 +36,34 @@ if (_shotParentVic getVariable [QGVAR(nextFragTime), -1] > CBA_missionTime) exit
_shotParentVic setVariable [QGVAR(nextFragTime), CBA_missionTime + ACE_FRAG_HOLDOFF_VEHICLE]; _shotParentVic setVariable [QGVAR(nextFragTime), CBA_missionTime + ACE_FRAG_HOLDOFF_VEHICLE];
// Check normal round timeout and adjust _max frags // Check normal round timeout and adjust _max frags
private _timeSince = CBA_missionTime - GVAR(lastFragTime); private _timeSinceLastFrag = CBA_missionTime - GVAR(lastFragTime);
if (_ammo isEqualTo "" || {_posASL isEqualTo [0, 0, 0] || _timeSince < ACE_FRAG_HOLDOFF}) exitWith { if (_ammo isEqualTo "" || {_posASL isEqualTo [0, 0, 0] || _timeSinceLastFrag < ACE_FRAG_HOLDOFF}) exitWith {
TRACE_3("timeExit",_timeSince,CBA_missionTime,GVAR(lastFragTime)); TRACE_3("timeExit",_timeSinceLastFrag,CBA_missionTime,GVAR(lastFragTime));
}; };
private _maxFrags = round linearConversion [0.1, 1.5, _timeSince, ACE_FRAG_COUNT_MIN, ACE_FRAG_COUNT_MAX, true]; private _maxFragCount = round linearConversion [0.1, 1.5, _timeSinceLastFrag, ACE_FRAG_COUNT_MIN, ACE_FRAG_COUNT_MAX, true];
TRACE_3("willFrag",_timeSince,CBA_missionTime,_maxFrags); TRACE_3("willFrag",_timeSinceLastFrag,CBA_missionTime,_maxFragCount);
private _ammoArr = [_ammo] call FUNC(getFragInfo); private _ammoArr = [_ammo] call FUNC(getFragInfo);
_ammoArr params ["_fragRange", "_fragVel", "_fragTypes", "_modFragCount"]; _ammoArr params ["_fragRange", "_fragVel", "_fragTypes", "_modFragCount"];
// For low frag rounds limit the # of frags // For low frag rounds limit the # of frags created
if (_modFragCount < 10) then { if (_modFragCount < 10) then {
_maxFrags = _modFragCount*4; _maxFragCount = _modFragCount * ACE_FRAG_LOW_FRAG_COEFF;
GVAR(lastFragTime) = CBA_missionTime - 0.1; GVAR(lastFragTime) = CBA_missionTime - ACE_FRAG_LOW_FRAG_HOLDOFF_REDUCTION;
} else { } else {
GVAR(lastFragTime) = CBA_missionTime; GVAR(lastFragTime) = CBA_missionTime;
}; };
// Offset for ground clearance // Offset for ground clearance
private _heightAGL = (ASLToAGL _posASL)#2; private _heightATL = (ASLToATL _posASL)#2;
if (_heightAGL < 0.25) then { if (_heightATL < ACE_FRAG_MIN_GROUND_OFFSET) then {
_posASL = _posASL vectorAdd [0, 0, 0.25]; _posASL = _posASL vectorAdd [0, 0, ACE_FRAG_MIN_GROUND_OFFSET];
}; };
TRACE_3("fnc_doFragTargeted IF", _fragRange, _timeSince, GVAR(fragSimComplexity)); TRACE_3("fnc_doFragTargeted IF", _fragRange, _timeSinceLastFrag, GVAR(fragSimComplexity));
if (_fragRange > 3 && _timeSince > ACE_FRAG_HOLDOFF*1.5 && GVAR(fragSimComplexity) != 1) then { if (GVAR(fragSimComplexity) != 1 && _fragRange > 3) then {
_maxFrags = _maxFrags - ([_posASL, _fragVel, _fragRange, _maxFrags, _fragTypes, _modFragCount, _shotParents] call FUNC(doFragTargeted)); _maxFragCount = _maxFragCount - ([_posASL, _fragVel, _fragRange, _maxFragCount, _fragTypes, _modFragCount, _shotParents] call FUNC(doFragTargeted));
}; };
if (_timeSince > 0.2 && {GVAR(fragSimComplexity) > 0}) then { if (GVAR(fragSimComplexity) > 0) then {
[_posASL, _velocity, _heightAGL, _fragTypes, _maxFrags, _shotParents] call FUNC(doFragRandom); [_posASL, _velocity, _heightATL, _fragTypes, _maxFragCount, _shotParents] call FUNC(doFragRandom);
}; };

View File

@ -25,10 +25,10 @@ params [
["_fragVelocity", [0,0,0]], ["_fragVelocity", [0,0,0]],
["_heightAGL", 2, [123]], ["_heightAGL", 2, [123]],
["_fragType", [], [[]]], ["_fragType", [], [[]]],
["_fragCnt", 10, [123]], ["_maxFragCount", 10, [123]],
["_shotParents", [objNull, objNull], [[]], [2]] ["_shotParents", [objNull, objNull], [[]], [2]]
]; ];
TRACE_5("fnc_doFragRandom", _posASL, _fragVelocity, _heightAGL, _fragType, _fragCnt); TRACE_6("doFragRandom",_posASL,_fragVelocity,_heightAGL,_fragType,_maxFragCount,_shotParents);
// See cfgAmmoFragSpawner for different frag types // See cfgAmmoFragSpawner for different frag types
private _hMode = switch (true) do { private _hMode = switch (true) do {
@ -44,14 +44,14 @@ private _type = if (count _fragType > 0 &&
QGVAR(def_small_) QGVAR(def_small_)
}; };
_fragCnt = switch (true) do { _maxFragCount = switch (true) do {
case (_fragCnt <= 5): {"5"}; case (_maxFragCount <= 5): {"5"};
case (_fragCnt <= 10): {"10"}; case (_maxFragCount <= 10): {"10"};
default {"15"}; default {"15"};
}; };
// Spawn the fragment spawner // Spawn the fragment spawner
private _fragSpawner = createVehicle [_type + _fragCnt + _hMode, ASLToATL _posASL, [], 0, "CAN_COLLIDE"]; private _fragSpawner = createVehicle [_type + _maxFragCount + _hMode, ASLToATL _posASL, [], 0, "CAN_COLLIDE"];
_fragSpawner setVectorDirandUp [[0,0,1], [1,0,0]]; _fragSpawner setVectorDirandUp [[0,0,1], [1,0,0]];
_fragSpawner setVelocity _fragVelocity; _fragSpawner setVelocity _fragVelocity;
_fragSpawner setShotParents _shotParents; _fragSpawner setShotParents _shotParents;

View File

@ -1,4 +1,7 @@
#include "..\script_component.hpp" #include "..\script_component.hpp"
#define ACE_FRAG_SOUNDENVIRON_STR_LEN 12
#define ACE_FRAG_SOUNDGIT_STR_LEN 8
#define ACE_FRAG_MATERIAL_SEARCH_LEN 10
/* /*
* Author: Lambda.Tiger * Author: Lambda.Tiger
* This function returns a classification of material type based * This function returns a classification of material type based
@ -33,11 +36,11 @@ if (isClass (configFile >> "CfgSurfaces" >> _surfType)) then {
} else { // Messy way when a surface isn't added to cfgSurfaces } else { // Messy way when a surface isn't added to cfgSurfaces
private _surfFileText = toLowerANSI preprocessFile _surfType; private _surfFileText = toLowerANSI preprocessFile _surfType;
_surfFileText = _surfFileText regexReplace ["[^a-z0-9]", ""]; _surfFileText = _surfFileText regexReplace ["[^a-z0-9]", ""];
private _idx = 12 + (_surfFileText find "soundenviron"); private _idx = ACE_FRAG_SOUNDENVIRON_STR_LEN + (_surfFileText find "soundenviron");
if (_surfFileText select [_idx, 5] isEqualTo "empty") then { if (_surfFileText select [_idx, 5] isEqualTo "empty") then {
_idx = 8 + (_surfFileText find "soundhit"); _idx = ACE_FRAG_SOUNDGIT_STR_LEN + (_surfFileText find "soundhit");
}; };
_material = _surfFileText select [_idx, 10]; _material = _surfFileText select [_idx, ACE_FRAG_MATERIAL_SEARCH_LEN];
}; };
TRACE_1("materialSubString",_material); TRACE_1("materialSubString",_material);

View File

@ -47,8 +47,7 @@ if (_shouldFrag && GVAR(enabled)) then {
private _shouldSpall = _ammo call FUNC(shouldSpall); private _shouldSpall = _ammo call FUNC(shouldSpall);
if (GVAR(spallEnabled) && {_shouldSpall}) then if (GVAR(spallEnabled) && {_shouldSpall}) then {
{
_projectile addEventHandler [ _projectile addEventHandler [
"HitPart", "HitPart",
{ {

View File

@ -31,4 +31,7 @@
#define ACE_FRAG_HALF_GRAVITY_APPROX 4.905 #define ACE_FRAG_HALF_GRAVITY_APPROX 4.905
// stop searching at 0.5% chance to hit // stop searching at 0.5% chance to hit
#define ACE_FRAG_MIN_FRAG_HIT_CHANCE 0.005 #define ACE_FRAG_MIN_FRAG_HIT_CHANCE 0.005
#define ACE_FRAG_MIN_GROUND_OFFSET 0.25
#define ACE_FRAG_LOW_FRAG_COEFF 4
#define ACE_FRAG_LOW_FRAG_HOLDOFF_REDUCTION 4
#define ACE_FRAG_SPALL_VELOCITY_INHERIT_COEFF 2 #define ACE_FRAG_SPALL_VELOCITY_INHERIT_COEFF 2