forge/arma/client/addons/bank/functions/fnc_initSessionService.sqf
Jacob Schmidt 603963c935 Refactor bank UI to bridge-driven single-page flow
- Replace separate bank/ATM pages with a unified `index.html` app bundle
- Split bank init into `initClass`, `initSessionService`, and `initUIBridge`
- Route UI events through `BankUIBridge` and refresh session payloads after sync
2026-03-14 12:11:34 -05:00

81 lines
2.6 KiB
Plaintext

#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)