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