- 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
81 lines
2.6 KiB
Plaintext
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)
|