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 * File: fnc_initLockerClass.sqf
* Author: IDSolutions * Author: IDSolutions
* Date: 2025-12-17 * Date: 2025-12-17
* Last Update: 2026-02-04 * Last Update: 2026-02-05
* Public: No * Public: No
* *
* Description: * Description:

View File

@ -4,7 +4,7 @@
* File: fnc_initVAClass.sqf * File: fnc_initVAClass.sqf
* Author: IDSolutions * Author: IDSolutions
* Date: 2025-12-16 * Date: 2025-12-16
* Last Update: 2026-02-04 * Last Update: 2026-02-05
* Public: No * Public: No
* *
* Description: * Description:
@ -33,8 +33,8 @@ GVAR(VArsenalClass) = createHashMapObject [[
["init", { ["init", {
private _uid = _self get "uid"; private _uid = _self get "uid";
[SRPC(locker,requestInitVA), [_uid]] call CFUNC(serverEvent);
FORGE_Locker_Box = "ReammoBox_F" createVehicleLocal [0, 0, -999]; FORGE_Locker_Box = "ReammoBox_F" createVehicleLocal [0, 0, -999];
[SRPC(locker,requestInitVA), [_uid]] call CFUNC(serverEvent);
systemChat format ["VArsenal loaded for %1", (name player)]; systemChat format ["VArsenal loaded for %1", (name player)];
diag_log "[FORGE:Client:VArsenal] VArsenal Class Initialized!"; diag_log "[FORGE:Client:VArsenal] VArsenal Class Initialized!";
@ -82,15 +82,15 @@ GVAR(VArsenalClass) = createHashMapObject [[
}], }],
["applyWeapons", { ["applyWeapons", {
private _weapons = _self call ["get", ["weapons", []]]; private _weapons = _self call ["get", ["weapons", []]];
[FORGE_Locker_Box,_weapons] call AFUNC(arsenal,addVirtualItems); [FORGE_Locker_Box, _weapons] call AFUNC(arsenal,addVirtualItems);
}], }],
["applyMagazines", { ["applyMagazines", {
private _magazines = _self call ["get", ["magazines", []]]; private _magazines = _self call ["get", ["magazines", []]];
[FORGE_Locker_Box,_magazines] call AFUNC(arsenal,addVirtualItems); [FORGE_Locker_Box, _magazines] call AFUNC(arsenal,addVirtualItems);
}], }],
["applyBackpacks", { ["applyBackpacks", {
private _backpacks = _self call ["get", ["backpacks", []]]; 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 * File: fnc_initGarage.sqf
* Author: IDSolutions * Author: IDSolutions
* Date: 2025-12-17 * Date: 2025-12-17
* Last Update: 2026-01-30 * Last Update: 2026-02-05
* Public: No * Public: No
* *
* Description: * Description:
* Initializes all garages defined in the mission configuration. * Initializes all editor-placed garages.
* *
* Arguments: * Arguments:
* None * None
@ -20,22 +20,14 @@
* call forge_server_garage_fnc_initGarage * 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"; if (_garages isEqualTo []) exitWith { ["INFO", "No editor-placed garages found."] call EFUNC(common,log) };
private _garages = "true" configClasses (missionConfigFile >> "FORGE_CfgGarages" >> "garages");
{ {
private _configName = configName(_x); private _garage = missionNamespace getVariable _x;
private _className = (missionConfigFile >> _mC >> "garages" >> _configName >> "className") call BFUNC(getCfgData); SETPVAR(_garage,isGarage,true);
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];
} forEach _garages; } forEach _garages;

View File

@ -4,7 +4,7 @@
* File: fnc_initLocker.sqf * File: fnc_initLocker.sqf
* Author: IDSolutions * Author: IDSolutions
* Date: 2025-12-17 * Date: 2025-12-17
* Last Update: 2026-02-04 * Last Update: 2026-02-05
* Public: No * Public: No
* *
* Description: * Description:
@ -23,7 +23,7 @@
private _lockers = (allVariables missionNamespace) select { private _lockers = (allVariables missionNamespace) select {
private _var = missionNamespace getVariable _x; 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) }; if (_lockers isEqualTo []) exitWith { ["INFO", "No editor-placed lockers found."] call EFUNC(common,log) };

View File

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