Merge development into master: shared Web UI runtime, bridge-driven UIs, and server-authoritative store flow #1

Merged
J.Schmidt92 merged 37 commits from development into master 2026-03-14 20:12:08 -05:00
5 changed files with 18 additions and 26 deletions
Showing only changes of commit 56f0f1c971 - Show all commits

View File

@ -4,7 +4,7 @@
* File: fnc_initLockerClass.sqf
* Author: IDSolutions
* Date: 2025-12-17
* Last Update: 2026-02-04
* Last Update: 2026-02-05
* Public: No
*
* Description:

View File

@ -4,7 +4,7 @@
* File: fnc_initVAClass.sqf
* Author: IDSolutions
* Date: 2025-12-16
* Last Update: 2026-02-04
* Last Update: 2026-02-05
* Public: No
*
* Description:
@ -33,8 +33,8 @@ GVAR(VArsenalClass) = createHashMapObject [[
["init", {
private _uid = _self get "uid";
[SRPC(locker,requestInitVA), [_uid]] call CFUNC(serverEvent);
FORGE_Locker_Box = "ReammoBox_F" createVehicleLocal [0, 0, -999];
[SRPC(locker,requestInitVA), [_uid]] call CFUNC(serverEvent);
systemChat format ["VArsenal loaded for %1", (name player)];
diag_log "[FORGE:Client:VArsenal] VArsenal Class Initialized!";
@ -82,15 +82,15 @@ GVAR(VArsenalClass) = createHashMapObject [[
}],
["applyWeapons", {
private _weapons = _self call ["get", ["weapons", []]];
[FORGE_Locker_Box,_weapons] call AFUNC(arsenal,addVirtualItems);
[FORGE_Locker_Box, _weapons] call AFUNC(arsenal,addVirtualItems);
}],
["applyMagazines", {
private _magazines = _self call ["get", ["magazines", []]];
[FORGE_Locker_Box,_magazines] call AFUNC(arsenal,addVirtualItems);
[FORGE_Locker_Box, _magazines] call AFUNC(arsenal,addVirtualItems);
}],
["applyBackpacks", {
private _backpacks = _self call ["get", ["backpacks", []]];
[FORGE_Locker_Box,_backpacks] call AFUNC(arsenal,addVirtualItems);
[FORGE_Locker_Box, _backpacks] call AFUNC(arsenal,addVirtualItems);
}]
]];

View File

@ -4,11 +4,11 @@
* File: fnc_initGarage.sqf
* Author: IDSolutions
* Date: 2025-12-17
* Last Update: 2026-01-30
* Last Update: 2026-02-05
* Public: No
*
* Description:
* Initializes all garages defined in the mission configuration.
* Initializes all editor-placed garages.
*
* Arguments:
* None
@ -20,22 +20,14 @@
* call forge_server_garage_fnc_initGarage
*/
// TODO: Refactor to read from placed objects and their variables instead of missionConfig entries.
private _garages = (allVariables missionNamespace) select {
private _var = missionNamespace getVariable _x;
("garage" in _x) && { _var isEqualType objNull } && { !isNull _var }
};
private _mC = "FORGE_CfgGarages";
private _garages = "true" configClasses (missionConfigFile >> "FORGE_CfgGarages" >> "garages");
if (_garages isEqualTo []) exitWith { ["INFO", "No editor-placed garages found."] call EFUNC(common,log) };
{
private _configName = configName(_x);
private _className = (missionConfigFile >> _mC >> "garages" >> _configName >> "className") call BFUNC(getCfgData);
private _pos = (missionConfigFile >> _mC >> "garages" >> _configName >> "pos") call BFUNC(getCfgData);
private _dir = (missionConfigFile >> _mC >> "garages" >> _configName >> "dir") call BFUNC(getCfgData);
private _garage = createSimpleObject [_className, [0, 0, 0]];
_garage setPosATL _pos;
_garage setDir _dir;
_garage allowDamage false;
_garage setVariable ["isGarage", true, true];
diag_log format ["[FORGE:Server:Garage] ClassName: %1 Pos: %2 Dir: %3", _className, _pos, _dir];
private _garage = missionNamespace getVariable _x;
SETPVAR(_garage,isGarage,true);
} forEach _garages;

View File

@ -4,7 +4,7 @@
* File: fnc_initLocker.sqf
* Author: IDSolutions
* Date: 2025-12-17
* Last Update: 2026-02-04
* Last Update: 2026-02-05
* Public: No
*
* Description:
@ -23,7 +23,7 @@
private _lockers = (allVariables missionNamespace) select {
private _var = missionNamespace getVariable _x;
("locker" in _x) && { _var isEqualType objNull } && { !isNull _var }
("locker" in _x) && { _var isEqualType objNull } && { !isNull _var } && { _x isNotEqualTo "forge_locker_box" }
};
if (_lockers isEqualTo []) exitWith { ["INFO", "No editor-placed lockers found."] call EFUNC(common,log) };

View File

@ -4,7 +4,7 @@
* File: fnc_initVAStore.sqf
* Author: IDSolutions
* Date: 2025-12-17
* Last Update: 2026-01-30
* Last Update: 2026-02-05
* Public: No
*
* Description: