86 lines
3.0 KiB
Plaintext
86 lines
3.0 KiB
Plaintext
#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;
|