#include "..\script_component.hpp" /* * File: fnc_initSessionService.sqf * Author: IDSolutions * Public: No * * Description: * Initializes the bank session service that shapes the browser payload. */ #pragma hemtt ignore_variables ["_self"] GVAR(BankSessionServiceBaseClass) = compileFinal createHashMapFromArray [ ["#type", "BankSessionServiceBaseClass"], ["buildTransferTargets", compileFinal { private _targets = []; { if (isNull _x || { _x isEqualTo player }) then { continue; }; private _uid = getPlayerUID _x; private _name = name _x; if (_uid isEqualTo "" || { _name isEqualTo "" }) then { continue; }; _targets pushBack (createHashMapFromArray [ ["name", _name], ["uid", _uid] ]); } forEach allPlayers; private _targetPairs = _targets apply { [toLowerANSI (_x getOrDefault ["name", ""]), _x] }; _targetPairs sort true; _targetPairs apply { _x param [1, createHashMap] } }], ["buildPayload", compileFinal { params [["_mode", "bank", [""]]]; private _account = if (isNil QGVAR(BankClass)) then { createHashMap } else { GVAR(BankClass) call ["getAccountState", []] }; private _orgFunds = 0; private _orgName = ""; if !(isNil QEGVAR(org,OrgClass)) then { _orgFunds = EGVAR(org,OrgClass) call ["get", ["funds", 0]]; _orgName = EGVAR(org,OrgClass) call ["get", ["name", ""]]; }; createHashMapFromArray [ ["session", createHashMapFromArray [ ["mode", ["bank", "atm"] select (toLowerANSI _mode isEqualTo "atm")], ["orgFunds", _orgFunds], ["orgName", _orgName], ["playerName", name player], ["transferTargets", _self call ["buildTransferTargets", []]], ["uid", getPlayerUID player] ]], ["account", createHashMapFromArray [ ["bank", _account getOrDefault ["bank", 0]], ["cash", _account getOrDefault ["cash", 0]], ["earnings", _account getOrDefault ["earnings", 0]], ["pin", str (_account getOrDefault ["pin", 1234])], ["transactions", _account getOrDefault ["transactions", []]] ]] ] }] ]; GVAR(BankSessionService) = createHashMapObject [GVAR(BankSessionServiceBaseClass)]; GVAR(BankSessionService)