/*
	Author: Aaron Clark - EpochMod.com

    Contributors:

	Description:
	Initalize player variables

    Licence:
    Arma Public License Share Alike (APL-SA) - https://www.bistudio.com/community/licenses/arma-public-license-share-alike

    Github:
    https://github.com/EpochModTeam/Epoch/tree/release/Sources/epoch_code/compile/setup/EPOCH_clientInit.sqf

    Example:
    call EPOCH_clientInit;

    Parameter(s):
		NONE

	Returns:
	NOTHING
*/
EPOCH_buildMode = 0;
EPOCH_buildDirection = 0;
EPOCH_buildDirectionPitch = 0;
EPOCH_buildDirectionRoll = 0;
EPOCH_target_attachedTo = player;
EPOCH_debugMode = false;
EPOCH_snapDirection = 0;
EPOCH_stabilityTarget = objNull;
EPOCH_equippedItem_PVS = [];
EPOCH_pendingP2ptradeTarget = objNull;
EPOCH_lastNPCtradeTarget = objNull;
EPOCH_lastJumptime = diag_tickTime;
EPOCH_lastAGTime = diag_tickTime;
EPOCH_lastMineRocks = diag_tickTime;
EPOCH_target = objNull;
EPOCH_Z_OFFSET = 0;
EPOCH_X_OFFSET = 0;
EPOCH_Y_OFFSET = 5;
EPOCH_arr_snapPoints = [];
EPOCH_arr_snapObjects = [];
EPOCH_prevTarget = objNull;
EPOCH_interactOption = 0;
EPOCH_playerStaminaMax = 100;
Epoch_ActiveCam = objnull;
Epoch_AutoCam = true;
Epoch_CamAdjust = [0,0,0];

{
	missionNamespace setVariable [format ["EPOCH_player%1",_x],EPOCH_defaultVars select _forEachIndex];
}forEach EPOCH_customVars;

// suppress group chatter
0 fadeRadio 0;
enableSentences false;
enableRadio false;
// player setVariable["BIS_noCoreConversations", true]; // Moved to Masterloop (Player is not loaded in here)

EPOCH_ArmaSlingLoad = true;
_r3fON = if(!isNil "R3F_LOG_CFG_can_lift")then{if!(R3F_LOG_CFG_can_lift isEqualTo [])then{true}else{false}}else{false};
_advSling = if(!isNil "ASL_ROPE_INIT")then{if(ASL_ROPE_INIT)then{true}else{false}}else{false};
if (_r3fON || _advSling)then{
	EPOCH_ArmaSlingLoad = false;
};

// handle actions, prevactions, nextactions
inGameUISetEventHandler ["Action", "if(!(_this isEqualTo []) && !(_this select 10 in ['PrevAction','NextAction']))then{_this call EPOCH_handleUIActions}"];
//inGameUISetEventHandler ["NextAction", "_this call EPOCH_handleUIActions"];
//inGameUISetEventHandler ["PrevAction", "_this call EPOCH_handleUIActions"];

// Load / Overwrite Vars from ProfileNamespace
_cfg = "e_pad_config" call EPOCH_returnConfig;
_startvars = getarray (_cfg >> "LoadVarsFromProfile");
_arr = profilenamespace getvariable ["Epoch_ToggleVars",[[],[]]];
_todelete = [];
{
	_x params ["_varname",["_default","false",[""]]];
	if (_varname isequaltype "" && !(_varname isequalto "")) then {
		_value = if ((tolower _default) isequalto "true") then {true} else {false};
		_find = (_arr select 0) find _varname;
		if (_find > -1) then {
			_tmpvalue = (_arr select 1 select _find);
			if (_tmpvalue isequaltype true) then {
				_value = _tmpvalue;
			}
			else {
				_todelete pushback _x;
			};
		}
		else {
			(_arr select 0) pushback _varname;
			(_arr select 1) pushback _default;
		};
		missionnamespace setvariable [_varname,_value];
	};
} foreach _startvars;
{
	_find = (_arr select 0) find _x ;
	if (_find > -1) then {
		(_arr select 0) deleteat _find;
		(_arr select 1) deleteat _find;
	};
} foreach _todelete;
if !(_arr isequalto (profilenamespace getvariable ["Epoch_ToggleVars",[[],[]]])) then {
	profilenamespace setvariable ["Epoch_ToggleVars",_arr];
	saveprofilenamespace;
};