diff --git a/addons/events/fnc_addPlayerEventHandler.sqf b/addons/events/fnc_addPlayerEventHandler.sqf index 4e755adad..a02d00684 100644 --- a/addons/events/fnc_addPlayerEventHandler.sqf +++ b/addons/events/fnc_addPlayerEventHandler.sqf @@ -65,7 +65,12 @@ private _id = switch (_type) do { }; case "turretweapon": { if (_applyRetroactively) then { - [GVAR(oldUnit), (vehicle GVAR(oldUnit)) currentWeaponTurret (GVAR(oldUnit) call CBA_fnc_turretPath), ""] call _function; + private _vehicle = vehicle GVAR(oldUnit); + private _turret = []; + if (GVAR(oldUnit) != _vehicle) then { + _turret = ([[-1]] + allTurrets [_vehicle, true]) select {_vehicle turretUnit _x == GVAR(oldUnit)} param [0, []]; + }; + [GVAR(oldUnit), _vehicle currentWeaponTurret _turret, ""] call _function; }; [QGVAR(turretWeaponEvent), _function] call CBA_fnc_addEventHandler // return id }; @@ -95,7 +100,12 @@ private _id = switch (_type) do { }; case "turret": { if (_applyRetroactively) then { - [GVAR(oldUnit), GVAR(oldUnit) call CBA_fnc_turretPath, []] call _function; + private _vehicle = vehicle GVAR(oldUnit); + private _turret = []; + if (GVAR(oldUnit) != _vehicle) then { + _turret = ([[-1]] + allTurrets [_vehicle, true]) select {_vehicle turretUnit _x == GVAR(oldUnit)} param [0, []]; + }; + [GVAR(oldUnit), _turret, []] call _function; }; [QGVAR(turretEvent), _function] call CBA_fnc_addEventHandler // return id }; diff --git a/addons/events/fnc_playerEvent.sqf b/addons/events/fnc_playerEvent.sqf index 0f06a9420..7bf99819c 100644 --- a/addons/events/fnc_playerEvent.sqf +++ b/addons/events/fnc_playerEvent.sqf @@ -39,7 +39,8 @@ if (!isNull getConnectedUAV _unit) then { private _turret = []; if (_unit != _vehicle) then { - _turret = allTurrets [_vehicle, true] select {_vehicle turretUnit _x == _unit} param [0, []]; + // Unlike CBA_fnc_turretPath, this will return [-1] when player is driver + _turret = ([[-1]] + allTurrets [_vehicle, true]) select {_vehicle turretUnit _x == _unit} param [0, []]; }; private _state = [