Merge pull request #2699 from BaerMitUmlaut/disable-nvgs-in-sight

Disable nvgs in sight
This commit is contained in:
Thomas Kooi 2015-11-28 20:37:30 +01:00
commit e669f3e2cb
11 changed files with 152 additions and 3 deletions

View File

@ -0,0 +1,8 @@
class ACE_Settings {
class GVAR(disableNVGsWithSights) {
displayName = CSTRING(DisableNVGsWithSights_DisplayName);
description = CSTRING(DisableNVGsWithSights_description);
typeName = "BOOL";
value = 1;
};
};

View File

@ -14,4 +14,28 @@ class CfgVehicles {
MACRO_ADDITEM(ACE_NVG_Wide,6); MACRO_ADDITEM(ACE_NVG_Wide,6);
}; };
}; };
class ACE_Module;
class GVAR(ModuleSettings): ACE_Module {
scope = 2;
displayName = CSTRING(Module_DisplayName);
icon = QUOTE(PATHTOF(UI\Icon_Module_ca.paa));
category = "ACE";
function = QUOTE(FUNC(initModule));
functionPriority = 1;
isGlobal = 1;
isTriggerActivated = 0;
author = "BaerMitUmlaut";
class Arguments {
class disableNVGsWithSights {
displayName = CSTRING(DisableNVGsWithSights_DisplayName);
description = CSTRING(DisableNVGsWithSights_Description);
typeName = "BOOL";
defaultValue = 1;
};
};
class ModuleDescription {
description = CSTRING(Module_Description);
};
};
}; };

Binary file not shown.

View File

@ -30,9 +30,15 @@ GVAR(ppEffectMuzzleFlash) ppEffectCommit 0;
// Setup the event handlers // Setup the event handlers
["playerInventoryChanged", {_this call FUNC(updatePPEffects)}] call EFUNC(common,addEventHandler); ["playerInventoryChanged", {_this call FUNC(updatePPEffects)}] call EFUNC(common,addEventHandler);
["playerVisionModeChanged", {_this call FUNC(updatePPEffects)}] call EFUNC(common,addEventHandler); ["playerVisionModeChanged", {
_this call FUNC(updatePPEffects);
_this call FUNC(onVisionModeChanged);
}] call EFUNC(common,addEventHandler);
["zeusDisplayChanged", {_this call FUNC(updatePPEffects)}] call EFUNC(common,addEventHandler); ["zeusDisplayChanged", {_this call FUNC(updatePPEffects)}] call EFUNC(common,addEventHandler);
["cameraViewChanged", {_this call FUNC(updatePPEffects)}] call EFUNC(common,addEventHandler); ["cameraViewChanged", {
_this call FUNC(updatePPEffects);
_this call FUNC(onCameraViewChanged);
}] call EFUNC(common,addEventHandler);
["playerVehicleChanged", {_this call FUNC(updatePPEffects)}] call EFUNC(common,addEventHandler); ["playerVehicleChanged", {_this call FUNC(updatePPEffects)}] call EFUNC(common,addEventHandler);
["playerTurretChanged", {_this call FUNC(updatePPEffects)}] call EFUNC(common,addEventHandler); ["playerTurretChanged", {_this call FUNC(updatePPEffects)}] call EFUNC(common,addEventHandler);

View File

@ -4,6 +4,9 @@ ADDON = false;
PREP(blending); PREP(blending);
PREP(changeNVGBrightness); PREP(changeNVGBrightness);
PREP(initModule);
PREP(onCameraViewChanged);
PREP(onVisionModeChanged);
PREP(updatePPEffects); PREP(updatePPEffects);
ADDON = true; ADDON = true;

View File

@ -15,3 +15,4 @@ class CfgPatches {
#include "CfgEventHandlers.hpp" #include "CfgEventHandlers.hpp"
#include "CfgVehicles.hpp" #include "CfgVehicles.hpp"
#include "CfgWeapons.hpp" #include "CfgWeapons.hpp"
#include "ACE_Settings.hpp"

View File

@ -0,0 +1,21 @@
/*
* Author: BaerMitUmlaut
* Initializes the settings for the disable NVGs in sight module.
*
* Arguments:
* 0: Module <OBJECT>
*
* Return Value:
* None
*
* Example:
* [_module] call ace_nightvision_fnc_initModule
*
* Public: No
*/
#include "script_component.hpp"
params ["_module"];
[_module, QGVAR(disableNVGsWithSights), "disableNVGsWithSights"] call EFUNC(common,readSettingFromModule);

View File

@ -0,0 +1,38 @@
/*
* Author: BaerMitUmlaut
* Disables/re-enables NVGs when the player starts/stops aiming down his sight.
*
* Arguments:
* 0: Unit <OBJECT>
* 1: New camera view <STRING>
*
* Return Value:
* None
*
* Example:
* [player, "GUNNER"] call ace_nightvision_fnc_onCameraViewChanged
*
* Public: No
*/
#include "script_component.hpp"
params ["_unit", "_cameraView"];
if (GVAR(disableNVGsWithSights) && {(hmd _unit) != ""}) then {
if ((vehicle _unit == _unit)
|| {isTurnedOut _unit}
|| {!([_unit] call EFUNC(common,hasHatch))
&& {[_unit] call EFUNC(common,getTurretIndex) in ([vehicle _unit] call EFUNC(common,getTurretsFFV))}
}) then {
if ((_cameraView == "GUNNER") && {currentVisionMode _unit == 1}) then {
_unit action ["NVGogglesOff", _unit];
_unit setVariable [QGVAR(reenableNVGs), true];
} else {
if (_unit getVariable [QGVAR(reenableNVGs), false] && {_cameraView != "GUNNER"}) then {
_unit action ["NVGoggles", _unit];
_unit setVariable [QGVAR(reenableNVGs), false];
};
};
};
};

View File

@ -0,0 +1,32 @@
/*
* Author: BaerMitUmlaut
* Disables turning on NVGs while the player aims down his sight.
*
* Arguments:
* 0: Unit <OBJECT>
* 1: New vision mode <NUMBER>
*
* Return Value:
* None
*
* Example:
* [player, 1] call ace_nightvision_fnc_onVisionModeChanged
*
* Public: No
*/
#include "script_component.hpp"
params ["_unit", "_visionMode"];
if (GVAR(disableNVGsWithSights) && {(hmd _unit) != ""}) then {
if ((vehicle _unit == _unit)
|| {isTurnedOut _unit}
|| {!([_unit] call EFUNC(common,hasHatch))
&& {[_unit] call EFUNC(common,getTurretIndex) in ([vehicle _unit] call EFUNC(common,getTurretsFFV))}
}) then {
if ((cameraView == "GUNNER") && {_visionMode > 0}) then {
_unit action ["NVGogglesOff", _unit];
};
};
};

View File

@ -133,5 +133,21 @@
<Portuguese>Diminuir Luminosidade do EVN</Portuguese> <Portuguese>Diminuir Luminosidade do EVN</Portuguese>
<Italian>Riduci la luminosità dell'NVG</Italian> <Italian>Riduci la luminosità dell'NVG</Italian>
</Key> </Key>
<Key ID="STR_ACE_NightVision_Module_DisplayName">
<English>Nightvision</English>
<German>Nachtsicht</German>
</Key>
<Key ID="STR_ACE_NightVision_Module_Description">
<English>Settings for night vision.</English>
<German>Einstellungen für Nachtsichtgeräte.</German>
</Key>
<Key ID="STR_ACE_NightVision_DisableNVGsWithSights_DisplayName">
<English>Disable NVGs in scope</English>
<German>Deakt. NVGs mit Visier</German>
</Key>
<Key ID="STR_ACE_NightVision_DisableNVGsWithSights_Description">
<English>Blocks the usage of night vision goggles whilst aiming down the sight.</English>
<German>Blockiert das Benutzen von Nachtsichtbrillen beim Benutzen des Visiers.</German>
</Key>
</Package> </Package>
</Project> </Project>

Binary file not shown.

After

Width:  |  Height:  |  Size: 552 B