From 9c09976ef29a178686ab9e0125eb7da4df5a5f28 Mon Sep 17 00:00:00 2001 From: Jacob Schmidt Date: Wed, 28 Jan 2026 20:07:24 -0600 Subject: [PATCH] feat: Initialize core client and server systems for actor, bank, garage, locker, and notifications, including UI components and data models. --- .../actor/functions/fnc_handleUIEvents.sqf | 14 +- .../actor/functions/fnc_initActorClass.sqf | 17 +- .../addons/actor/functions/fnc_openUI.sqf | 10 +- .../bank/functions/fnc_handleUIEvents.sqf | 14 +- .../bank/functions/fnc_initBankClass.sqf | 27 +-- .../addons/bank/functions/fnc_openUI.sqf | 14 +- arma/client/addons/bank/ui/_site/atm.html | 59 ------ .../garage/functions/fnc_handleUIEvents.sqf | 14 +- .../garage/functions/fnc_initGarageClass.sqf | 22 ++- .../garage/functions/fnc_initVGClass.sqf | 35 ++-- .../addons/garage/functions/fnc_openUI.sqf | 10 +- .../addons/garage/functions/fnc_openVG.sqf | 21 +- arma/client/addons/locker/XEH_postInit.sqf | 7 + arma/client/addons/locker/XEH_preStart.sqf | 1 - .../locker/functions/fnc_handleUIEvents.sqf | 14 +- .../locker/functions/fnc_initLockerClass.sqf | 31 ++- .../locker/functions/fnc_initVAClass.sqf | 31 +-- .../addons/locker/functions/fnc_openUI.sqf | 12 +- .../functions/fnc_handleUIEvents.sqf | 16 +- .../functions/fnc_initNotificationClass.sqf | 18 +- .../notifications/functions/fnc_openUI.sqf | 12 +- .../addons/org/functions/fnc_initOrgClass.sqf | 1 - arma/server/addons/actor/XEH_preInit.sqf | 13 -- .../actor/functions/fnc_initActorStore.sqf | 20 +- arma/server/addons/bank/XEH_preInit.sqf | 35 +--- .../bank/functions/fnc_initBankStore.sqf | 181 +++++++++++++----- .../addons/common/functions/fnc_baseStore.sqf | 18 +- .../addons/common/functions/fnc_log.sqf | 26 +-- arma/server/addons/garage/XEH_preInit.sqf | 43 +---- .../garage/functions/fnc_initGarage.sqf | 18 +- .../garage/functions/fnc_initGarageStore.sqf | 76 +++++--- .../garage/functions/fnc_initVGStore.sqf | 98 ++++++---- arma/server/addons/locker/XEH_preInit.sqf | 31 +-- .../locker/functions/fnc_initLocker.sqf | 66 ++++++- .../locker/functions/fnc_initLockerStore.sqf | 78 ++++---- .../locker/functions/fnc_initVAStore.sqf | 96 ++++++---- arma/server/addons/org/XEH_preInit.sqf | 16 -- lib/models/src/actor.rs | 5 +- lib/models/src/v_garage.rs | 8 +- lib/models/src/v_locker.rs | 35 +++- 40 files changed, 694 insertions(+), 569 deletions(-) diff --git a/arma/client/addons/actor/functions/fnc_handleUIEvents.sqf b/arma/client/addons/actor/functions/fnc_handleUIEvents.sqf index 415a5f2..6806bd3 100644 --- a/arma/client/addons/actor/functions/fnc_handleUIEvents.sqf +++ b/arma/client/addons/actor/functions/fnc_handleUIEvents.sqf @@ -1,19 +1,25 @@ #include "..\script_component.hpp" /* + * File: fnc_handleUIEvents.sqf * Author: IDSolutions + * Date: 2026-01-28 + * Last Update: 2026-01-28 + * Public: No + * + * Description: * Handles the UI events. * * Arguments: - * None + * 0: [CONTROL] - The control that triggered the event + * 1: [BOOL] - Whether the event is from a confirm dialog + * 2: [STRING] - The message containing the event data * * Return Value: - * None + * UI events handled [BOOL] * * Example: * [] call forge_client_actor_fnc_handleUIEvents; - * - * Public: No */ params ["_control", "_isConfirmDialog", "_message"]; diff --git a/arma/client/addons/actor/functions/fnc_initActorClass.sqf b/arma/client/addons/actor/functions/fnc_initActorClass.sqf index 260ecbd..bda2d1a 100644 --- a/arma/client/addons/actor/functions/fnc_initActorClass.sqf +++ b/arma/client/addons/actor/functions/fnc_initActorClass.sqf @@ -1,19 +1,24 @@ #include "..\script_component.hpp" /* + * File: fnc_initActorClass.sqf * Author: IDSolutions - * Initializes the actor class. + * Date: 2026-01-28 + * Last Update: 2026-01-28 + * Public: Yes + * + * Description: + * Initializes the actor class for managing player data. + * Provides methods for saving, loading, and applying actor data. * * Arguments: * None * * Return Value: - * None + * Actor class object [HASHMAP OBJECT] * - * Examples: + * Example: * [] call forge_client_actor_fnc_initActorClass - * - * Public: Yes */ #pragma hemtt ignore_variables ["_self"] @@ -131,7 +136,7 @@ GVAR(ActorClass) = createHashMapObject [[ if (_isGarage) then { _nearbyActions pushBack ["garage", _garageType]; }; if (_isGarage && GVAR(enableVG)) then { _nearbyActions pushBack ["vg", true]; }; if (_deviceType isNotEqualTo "") then { _nearbyActions pushBack ["device", _deviceType]; }; - if (_isPlayer) then { _nearbyActions pushBack ["player", name _x]; }; + if (_isPlayer && { _x isNotEqualTo player }) then { _nearbyActions pushBack ["player", name _x]; }; } forEach (player nearObjects 5); _control ctrlWebBrowserAction ["ExecJS", format ["updateAvailableActions(%1)", (toJSON _nearbyActions)]]; diff --git a/arma/client/addons/actor/functions/fnc_openUI.sqf b/arma/client/addons/actor/functions/fnc_openUI.sqf index 3517f5c..ce70ed1 100644 --- a/arma/client/addons/actor/functions/fnc_openUI.sqf +++ b/arma/client/addons/actor/functions/fnc_openUI.sqf @@ -1,19 +1,23 @@ #include "..\script_component.hpp" /* + * File: fnc_openUI.sqf * Author: IDSolutions + * Date: 2026-01-28 + * Last Update: 2026-01-28 + * Public: No + * + * Description: * Opens the player interaction interface. * * Arguments: * None * * Return Value: - * None + * UI opened [BOOL] * * Example: * [] call forge_client_actor_fnc_openUI; - * - * Public: No */ private _display = (findDisplay 46) createDisplay "RscActorMenu"; diff --git a/arma/client/addons/bank/functions/fnc_handleUIEvents.sqf b/arma/client/addons/bank/functions/fnc_handleUIEvents.sqf index 46973d4..6cb40ab 100644 --- a/arma/client/addons/bank/functions/fnc_handleUIEvents.sqf +++ b/arma/client/addons/bank/functions/fnc_handleUIEvents.sqf @@ -1,19 +1,25 @@ #include "..\script_component.hpp" /* + * File: fnc_handleUIEvents.sqf * Author: IDSolutions + * Date: 2025-12-16 + * Last Update: 2026-01-28 + * Public: No + * + * Description: * Handles the UI events. * * Arguments: - * None + * 0: [CONTROL] - The control that triggered the event + * 1: [BOOL] - Whether the event is from a confirm dialog + * 2: [STRING] - The message containing the event data * * Return Value: - * None + * UI events handled [BOOL] * * Example: * [] call forge_client_bank_fnc_handleUIEvents; - * - * Public: No */ params ["_control", "_isConfirmDialog", "_message"]; diff --git a/arma/client/addons/bank/functions/fnc_initBankClass.sqf b/arma/client/addons/bank/functions/fnc_initBankClass.sqf index 6776935..432d4fa 100644 --- a/arma/client/addons/bank/functions/fnc_initBankClass.sqf +++ b/arma/client/addons/bank/functions/fnc_initBankClass.sqf @@ -1,19 +1,23 @@ #include "..\script_component.hpp" /* + * File: fnc_initBankClass.sqf * Author: IDSolutions + * Date: 2025-12-16 + * Last Update: 2026-01-28 + * Public: No + * + * Description: * Initializes the bank class. * * Arguments: * None * * Return Value: - * None + * Bank class object [HASHMAP OBJECT] * - * Examples: + * Example: * [] call forge_client_bank_fnc_initBankClass - * - * Public: Yes */ #pragma hemtt ignore_variables ["_self"] @@ -24,23 +28,11 @@ GVAR(BankClass) = createHashMapObject [[ _self set ["account", createHashMap]; _self set ["isLoaded", false]; _self set ["lastSave", time]; - - private _account = createHashMap; - _account set ["uid", (getPlayerUID player)]; - _account set ["name", (name player)]; - _account set ["bank", 0]; - _account set ["cash", 0]; - _account set ["earnings", 0]; - _account set ["pin", 1234]; - _account set ["transactions", []]; - - _self set ["account", _account]; }], ["init", { private _uid = _self get "uid"; - private _account = _self get "account"; - [SRPC(bank,requestInitBank), [_uid, _account]] call CFUNC(serverEvent); + [SRPC(bank,requestInitBank), [_uid]] call CFUNC(serverEvent); systemChat format ["Bank loaded for %1", (name player)]; diag_log "[FORGE:Client:Bank] Bank Class Initialized!"; @@ -80,5 +72,4 @@ GVAR(BankClass) = createHashMapObject [[ }] ]]; -SETVAR(player,FORGE_BankClass,GVAR(BankClass)); GVAR(BankClass) diff --git a/arma/client/addons/bank/functions/fnc_openUI.sqf b/arma/client/addons/bank/functions/fnc_openUI.sqf index 6a65db4..65086a8 100644 --- a/arma/client/addons/bank/functions/fnc_openUI.sqf +++ b/arma/client/addons/bank/functions/fnc_openUI.sqf @@ -1,19 +1,23 @@ #include "..\script_component.hpp" /* + * File: fnc_openUI.sqf * Author: IDSolutions + * Date: 2026-01-28 + * Last Update: 2026-01-28 + * Public: No + * + * Description: * Opens the player bank interaction interface. * * Arguments: - * None + * 0: [BOOL] - Whether to open the ATM interface * * Return Value: - * None + * UI opened [BOOL] * * Example: - * [] call forge_client_bank_fnc_openUI; - * - * Public: No + * [true] call forge_client_bank_fnc_openUI; */ params [["_isATM", false, [false]]]; diff --git a/arma/client/addons/bank/ui/_site/atm.html b/arma/client/addons/bank/ui/_site/atm.html index 42b5df9..79d56d4 100644 --- a/arma/client/addons/bank/ui/_site/atm.html +++ b/arma/client/addons/bank/ui/_site/atm.html @@ -94,12 +94,6 @@ - - - - - - @@ -135,59 +129,6 @@ - - - - - -