forge/arma/client/addons/locker/XEH_postInitClient.sqf
Jacob Schmidt cd3e937cdc Hydrate missing actor and org records from live data
- Require actor records to exist in storage before hot load
- Fall back to player snapshots to fill missing actor fields and org defaults
- Refresh org member names when a better value is available
- Keep bootstrap extension calls on the direct path by default
2026-04-05 21:44:10 -05:00

49 lines
1.4 KiB
Plaintext

#include "script_component.hpp"
if (isNil QGVAR(LockerRepository)) then { call FUNC(initRepository); };
if (isNil QGVAR(VARepository)) then { call FUNC(initVARepository); };
[QGVAR(initLocker), {
GVAR(LockerRepository) call ["init", []];
}] call CFUNC(addEventHandler);
[QGVAR(responseInitLocker), {
params [["_data", createHashMap, [createHashMap]]];
GVAR(LockerRepository) call ["sync", [_data]];
}] call CFUNC(addEventHandler);
[QGVAR(responseSyncLocker), {
params [["_data", createHashMap, [createHashMap, []]], ["_jip", false, [false]]];
GVAR(LockerRepository) call ["sync", [_data, _jip]];
}] call CFUNC(addEventHandler);
[QGVAR(initVA), {
GVAR(VARepository) call ["init", []];
}] call CFUNC(addEventHandler);
[QGVAR(responseInitVA), {
params [["_data", createHashMap, [createHashMap]]];
GVAR(VARepository) call ["sync", [_data]];
}] call CFUNC(addEventHandler);
[QGVAR(responseSyncVA), {
params [["_data", createHashMap, [createHashMap, []]], ["_jip", false, [false]]];
GVAR(VARepository) call ["sync", [_data, _jip]];
}] call CFUNC(addEventHandler);
[{
EGVAR(actor,ActorRepository) get "isLoaded";
}, {
[QGVAR(initLocker), []] call CFUNC(localEvent);
}] call CFUNC(waitUntilAndExecute);
[{
GVAR(LockerRepository) get "isLoaded";
}, {
[QGVAR(initVA), []] call CFUNC(localEvent);
}] call CFUNC(waitUntilAndExecute);