/* * Author: PabstMirror * For every lockable vehicle, sets the starting lock state to a sane value. * Only run if the InitModule is placed. * * Arguments: * 0: Vehicle * * Return Value: * None * * Example: * [car] call ACE_VehicleLock_fnc_handleVehicleInitPost * * Public: No */ #include "script_component.hpp" if (!isServer) exitWith {}; params ["_vehicle"]; TRACE_1("params",_vehicle); [{ //If the module wasn't placed, just exit (needs to be in wait because objectInitEH is before moduleInit) if (GVAR(VehicleStartingLockState) == -1) exitWith {}; private ["_lock"]; params ["_vehicle"]; if ((_vehicle isKindOf "Car") || {_vehicle isKindOf "Tank"} || {_vehicle isKindOf "Helicopter"}) then { //set lock state (eliminates the ambigious 1-"Default" and 3-"Locked for Player" states) _lock = switch (GVAR(VehicleStartingLockState)) do { case (0): { (locked _vehicle) in [2, 3] }; case (1): { true }; case (2): { false }; }; if ((_lock && {(locked _vehicle) != 2}) || {!_lock && {(locked _vehicle) != 0}}) then { TRACE_3("Setting Lock State",_lock,(typeOf _vehicle),_vehicle); [QGVAR(SetVehicleLock), [_vehicle, _lock], [_vehicle]] call CBA_fnc_targetEvent; }; }; //Delay call until mission start (so everyone has the eventHandler's installed) }, [_vehicle], 0.25] call CBA_fnc_waitAndExecute;