#include "..\script_component.hpp" /* * File: fnc_initLocker.sqf * Author: IDSolutions * Date: 2025-12-17 * Last Update: 2026-01-28 * Public: No * * Description: * Initializes all lockers defined in the mission configuration. * * Arguments: * None * * Return Value: * None * * Example: * [] call forge_server_locker_fnc_initLocker */ // TODO: Refactor to read from placed objects and their variables instead of missionConfig entries. private _mC = "FORGE_CfgLockers"; private _lockers = "true" configClasses (missionConfigFile >> "FORGE_CfgLockers" >> "lockers"); { private _configName = configName(_x); private _className = (missionConfigFile >> _mC >> "lockers" >> _configName >> "className") call BFUNC(getCfgData); private _pos = (missionConfigFile >> _mC >> "lockers" >> _configName >> "pos") call BFUNC(getCfgData); private _dir = (missionConfigFile >> _mC >> "lockers" >> _configName >> "dir") call BFUNC(getCfgData); private _locker = createVehicle [_className, [0, 0, 0]]; // private _prefix = "FORGE_Locker"; // private _varName = format ["%1_%2", _prefix, _forEachIndex]; _locker setPosATL _pos; _locker setDir _dir; _locker allowDamage false; _locker setVariable ["isLocker", true, true]; clearBackpackCargoGlobal _locker; clearItemCargoGlobal _locker; clearMagazineCargoGlobal _locker; clearWeaponCargoGlobal _locker; // private _pLocker = vehicle _locker; // _pLocker setVehicleVarName _varName; // missionNamespace setVariable [_varName, _pLocker, true]; // _locker addEventHandler ["ContainerOpened", { // params ["_container", "_unit"]; // private _uid = getPlayerUID _unit; // private _pLocker = GVAR(LockerRegistry) get _uid; // diag_log text format ["[FORGE] (locker) INFO: Container opened, refreshing inventory: %1 w/ %2", _container, _pLocker]; // // Clear existing cargo // clearBackpackCargo _container; // clearItemCargo _container; // clearMagazineCargo _container; // clearWeaponCargo _container; // // Repopulate with current locker items // { // private _amount = _y get "amount"; // private _category = _y get "category"; // private _className = _y get "classname"; // switch (_category) do { // case "backpack": { _container addBackpackCargo [_className, _amount]; }; // case "item": { _container addItemCargo [_className, _amount]; }; // case "magazine": { _container addMagazineCargo [_className, _amount]; }; // case "weapon": { _container addWeaponCargo [_className, _amount]; }; // default { _container addItemCargo [_className, _amount]; }; // }; // } forEach _pLocker; // diag_log text format ["[FORGE] (locker) INFO: Inventory refreshed"]; // }]; diag_log format ["[FORGE:Server:Locker] ClassName: %1 Pos: %2 Dir: %3", _className, _pos, _dir]; } forEach _lockers;