/* * Author: jaynus * * Receives either requests for synchronization from clients, or the synchronization data from the server. * * Arguments [Client] : * 0: eventName (String) * 1: eventLog (Array) * * Arguments [Server] : * 0: eventName (String) * 1: client (Object) * * Return value: * Boolean of success */ //#define DEBUG_MODE_FULL #include "script_component.hpp" //IGNORE_PRIVATE_WARNING("_handleSyncedEvent"); //SEH_s if(isServer) then { // Find the event name, and shovel out the events to the client PARAMS_2(_eventName,_client); private["_eventEntry", "_eventLog"]; if(!HASH_HASKEY(GVAR(syncedEvents),_eventName)) exitWith { diag_log text format["[ACE] Error, request for synced event - key not found."]; false }; _eventEntry = HASH_GET(GVAR(syncedEvents),_eventName); _eventLog = _eventEntry select 1; ["SEH_s", _client, [_eventName, _eventLog] ] call FUNC(targetEvent); } else { PARAMS_2(_eventName,_eventLog); private ["_eventArgs"]; // This is the client handling the response from the server // Start running the events { _eventArgs = _x select 1; [_eventName, _eventArgs, (_x select 2)] call FUNC(_handleSyncedEvent); } forEach _eventLog; diag_log text format["[ACE] + [%1] synchronized", _eventName]; }; true