Merge development into master: shared Web UI runtime, bridge-driven UIs, and server-authoritative store flow #1
@ -4,7 +4,7 @@
|
||||
* File: fnc_handleUIEvents.sqf
|
||||
* Author: IDSolutions
|
||||
* Date: 2026-01-28
|
||||
* Last Update: 2026-01-31
|
||||
* Last Update: 2026-02-04
|
||||
* Public: No
|
||||
*
|
||||
* Description:
|
||||
@ -38,7 +38,7 @@ switch (_event) do {
|
||||
case "actor::open::garage": { hint "Garage interaction is not yet implemented."; };
|
||||
case "actor::open::vgarage": { [] spawn EFUNC(garage,openVG); };
|
||||
case "actor::open::org": { [] spawn EFUNC(org,openUI); };
|
||||
case "actor::open::vlocker": { ["Open", [false, FORGE_Locker_Box, player]] spawn BFUNC(arsenal) };
|
||||
case "actor::open::vlocker": { [FORGE_Locker_Box, player, false] spawn AFUNC(arsenal,openBox) };
|
||||
case "actor::open::phone": { hint "Phone interaction is not yet implemented."; };
|
||||
case "actor::open::iplayer": { hint "Player interaction is not yet implemented." };
|
||||
case "actor::open::store": { hint "Store interaction is not yet implemented."; };
|
||||
|
||||
@ -1,8 +1,8 @@
|
||||
#include "script_component.hpp"
|
||||
|
||||
[missionNamespace, "arsenalOpened", {
|
||||
["ace_arsenal_displayOpened", {
|
||||
disableSerialization;
|
||||
params ["_display"];
|
||||
_display displayAddEventHandler ["KeyDown", "_this select 3"];
|
||||
{ (_display displayCtrl _x) ctrlShow false } forEach [44151, 44150, 44146, 44147, 44148, 44149, 44346];
|
||||
}] call BIS_fnc_addScriptedEventHandler;
|
||||
{ (_display displayCtrl _x) ctrlShow false } forEach [1002, 1003, 1004, 1005, 1006];
|
||||
}] call CFUNC(addEventHandler);
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
* File: fnc_initLockerClass.sqf
|
||||
* Author: IDSolutions
|
||||
* Date: 2025-12-17
|
||||
* Last Update: 2026-01-31
|
||||
* Last Update: 2026-02-04
|
||||
* Public: No
|
||||
*
|
||||
* Description:
|
||||
@ -65,11 +65,12 @@ GVAR(LockerRepository) = compileFinal createHashMapFromArray [
|
||||
{
|
||||
_x params ["_containerClass", "_containerObj"];
|
||||
|
||||
private _isBackpack = isClass (configFile >> "CfgVehicles" >> _containerClass);
|
||||
private _cfgVehicles = configFile >> "CfgVehicles" >> _containerClass;
|
||||
private _cfgWeapons = configFile >> "CfgWeapons" >> _containerClass;
|
||||
private _itemInfoType = getNumber (_cfgWeapons >> "ItemInfo" >> "type");
|
||||
private _isVest = isClass _cfgWeapons && {_itemInfoType == 701};
|
||||
private _isUniform = isClass _cfgWeapons && {_itemInfoType == 801};
|
||||
private _isBackpack = isClass _cfgVehicles;
|
||||
private _isUniform = isClass _cfgWeapons && {_itemInfoType == TYPE_UNIFORM};
|
||||
private _isVest = isClass _cfgWeapons && {_itemInfoType == TYPE_VEST};
|
||||
|
||||
if (!_isBackpack && !_isVest && !_isUniform) then { continue; };
|
||||
|
||||
@ -147,7 +148,7 @@ GVAR(LockerRepository) = compileFinal createHashMapFromArray [
|
||||
} forEach _attachments;
|
||||
|
||||
if (_primaryMag isNotEqualTo ["", 0]) then {
|
||||
_primaryMag params ["_magClass", "_ammoCount"];
|
||||
_primaryMag params ["_magClass", "_ammoCount"]; // TODO: Add ammo count to locker
|
||||
if (_magClass != "") then {
|
||||
private _existing = _locker getOrDefault [_magClass, createHashMap];
|
||||
private _existingCount = _existing getOrDefault ["amount", 0];
|
||||
@ -161,7 +162,7 @@ GVAR(LockerRepository) = compileFinal createHashMapFromArray [
|
||||
};
|
||||
|
||||
if (_secondaryMag isNotEqualTo ["", 0]) then {
|
||||
_secondaryMag params ["_magClass", "_ammoCount"];
|
||||
_secondaryMag params ["_magClass", "_ammoCount"]; // TODO: Add ammo count to locker
|
||||
if (_magClass != "") then {
|
||||
private _existing = _locker getOrDefault [_magClass, createHashMap];
|
||||
private _existingCount = _existing getOrDefault ["amount", 0];
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
* File: fnc_initVAClass.sqf
|
||||
* Author: IDSolutions
|
||||
* Date: 2025-12-16
|
||||
* Last Update: 2026-01-31
|
||||
* Last Update: 2026-02-04
|
||||
* Public: No
|
||||
*
|
||||
* Description:
|
||||
@ -78,19 +78,19 @@ GVAR(VArsenalClass) = createHashMapObject [[
|
||||
}],
|
||||
["applyItems", {
|
||||
private _items = _self call ["get", ["items", []]];
|
||||
[FORGE_Armory_Box, _items, false, true, 1, 0] call BFUNC(addVirtualItemCargo);
|
||||
[FORGE_Locker_Box, _items] call AFUNC(arsenal,addVirtualItems);
|
||||
}],
|
||||
["applyWeapons", {
|
||||
private _weapons = _self call ["get", ["weapons", []]];
|
||||
[FORGE_Armory_Box, _weapons, false, true, 1, 1] call BFUNC(addVirtualItemCargo);
|
||||
[FORGE_Locker_Box,_weapons] call AFUNC(arsenal,addVirtualItems);
|
||||
}],
|
||||
["applyMagazines", {
|
||||
private _magazines = _self call ["get", ["magazines", []]];
|
||||
[FORGE_Armory_Box, _magazines, false, true, 1, 2] call BFUNC(addVirtualItemCargo);
|
||||
[FORGE_Locker_Box,_magazines] call AFUNC(arsenal,addVirtualItems);
|
||||
}],
|
||||
["applyBackpacks", {
|
||||
private _backpacks = _self call ["get", ["backpacks", []]];
|
||||
[FORGE_Armory_Box, _backpacks, false, true, 1, 3] call BFUNC(addVirtualItemCargo);
|
||||
[FORGE_Locker_Box,_backpacks] call AFUNC(arsenal,addVirtualItems);
|
||||
}]
|
||||
]];
|
||||
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
* File: fnc_initLocker.sqf
|
||||
* Author: IDSolutions
|
||||
* Date: 2025-12-17
|
||||
* Last Update: 2026-01-31
|
||||
* Last Update: 2026-02-04
|
||||
* 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 } && { _x isNotEqualTo "forge_locker_box" }
|
||||
("locker" in _x) && { _var isEqualType objNull } && { !isNull _var }
|
||||
};
|
||||
|
||||
if (_lockers isEqualTo []) exitWith { ["INFO", "No editor-placed lockers found."] call EFUNC(common,log) };
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user