big refactor, WIP!

This commit is contained in:
2024-02-06 01:52:25 -08:00
parent f588ffa4a0
commit 0a64d9e170
74 changed files with 1024 additions and 701 deletions

View File

@@ -1,3 +1,5 @@
#include "..\script_component.hpp"
params [["_player", objNull, [objNull]]];
if (!isServer) exitWith {
@@ -20,16 +22,16 @@ if (isNull _player) exitWith {
};
// get entries for this player from queue
private _unitArrs = milsim_reinsert_reinsertionQueue select {_x#0 isEqualTo _player};
private _unitArrs = GVAR(reinsertionQueue) select {_x#0 isEqualTo _player};
// if player not in queue, skip
if (count _unitArrs isEqualTo 0) exitWith {};
private _maxRangeToReady = missionNamespace getVariable ["milsim_reinsert_setting_reinsertion_maxRangeToReady", 400];
private _maxRangeToReady = missionNamespace getVariable [QGVAR(setting_maxRangeToReady), 400];
// remove player from queue
milsim_reinsert_reinsertionQueue = milsim_reinsert_reinsertionQueue - _unitArrs;
GVAR(reinsertionQueue) = GVAR(reinsertionQueue) - _unitArrs;
// broadcast new list to all machines
publicVariable "milsim_reinsert_reinsertionQueue";
publicVariable QGVAR(reinsertionQueue);
// sort _unitArrs by time in queue, descending, to get longest wait (if for some reason there's a duplicate)
[_unitArrs, [], {
@@ -39,17 +41,17 @@ publicVariable "milsim_reinsert_reinsertionQueue";
// get first entry (longest wait)
(_unitArrs#0) params ["_player", "_base", "_timeFiled"]; // _unitArr = [unit, base, timeInQueue]
// get the closest base to the player
private _nearestBase = [_player] call milsim_util_fnc_getNearestBase;
private _nearestBase = [_player] call EFUNC(common,getNearestBase);
// log to rpt
private _logParams = [
["filedAtBase", [_base] call milsim_util_fnc_getNameOfBase],
["filedAtBase", [_base] call EFUNC(common,getNameOfBase)],
["filedAtBaseDistance", _player distance _base],
["closestBase", [_nearestBase] call milsim_util_fnc_getNameOfBase],
["closestBase", [_nearestBase] call EFUNC(common,getNameOfBase)],
["closestBaseDistance", _player distance _nearestBase],
["maxDistanceSetting", _maxRangeToReady],
["inQueueDuration", diag_tickTime - _timeFiled]
];
_logParams = [_player, _logParams] call milsim_util_fnc_addPlayerInfoToArray;
_logParams = [_player, _logParams] call EFUNC(common,addPlayerInfoToArray);
[
"respawn_reinsertion",
"PLAYER RESCINDED REQUEST",