mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
Add hearing module and additional customization parameters:
- Enable/Disable combat deafness altogether (default on) - Volume when using earbuds (default 50%) - Volume when unconscious (default 40%)
This commit is contained in:
parent
4c1f7111b5
commit
5b91996c69
@ -22,7 +22,7 @@ class Extended_Init_EventHandlers {
|
|||||||
class Extended_FiredNear_EventHandlers {
|
class Extended_FiredNear_EventHandlers {
|
||||||
class CAManBase {
|
class CAManBase {
|
||||||
class GVAR(FiredNear) {
|
class GVAR(FiredNear) {
|
||||||
clientFiredNear = QUOTE( if (_this select 0 == ACE_player) then {_this call FUNC(firedNear)}; );
|
clientFiredNear = QUOTE( if (GVAR(enableCombatDeafness) && {_this select 0 == ACE_player}) then {_this call FUNC(firedNear)}; );
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@ -30,7 +30,7 @@ class Extended_FiredNear_EventHandlers {
|
|||||||
class Extended_Explosion_EventHandlers {
|
class Extended_Explosion_EventHandlers {
|
||||||
class CAManBase {
|
class CAManBase {
|
||||||
class GVAR(ExplosionNear) {
|
class GVAR(ExplosionNear) {
|
||||||
clientExplosion = QUOTE( if (_this select 0 == ACE_player) then {_this call FUNC(explosionNear)}; );
|
clientExplosion = QUOTE( if (GVAR(enableCombatDeafness) && {_this select 0 == ACE_player}) then {_this call FUNC(explosionNear)}; );
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
@ -92,4 +92,27 @@ class CfgVehicles {
|
|||||||
MACRO_ADDITEM(ACE_EarBuds,12);
|
MACRO_ADDITEM(ACE_EarBuds,12);
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
class Module_F;
|
||||||
|
class ACE_ModuleHearing: Module_F {
|
||||||
|
author = "$STR_ACE_Common_ACETeam";
|
||||||
|
category = "ACE";
|
||||||
|
displayName = "Hearing";
|
||||||
|
function = QFUNC(moduleHearing);
|
||||||
|
scope = 2;
|
||||||
|
isGlobal = 1;
|
||||||
|
icon = PATHTOF(UI\IconHearing_ca.paa);
|
||||||
|
class Arguments {
|
||||||
|
class EnableCombatDeafness {
|
||||||
|
displayName = "Enable combat deafness?";
|
||||||
|
description = "Enable combat deafness?";
|
||||||
|
typeName = "BOOL";
|
||||||
|
class values {
|
||||||
|
class Yes { name = "Yes"; value = 1; default = 1; };
|
||||||
|
class No { name = "No"; value = 0; };
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
BIN
addons/hearing/UI/IconHearing_ca.paa
Normal file
BIN
addons/hearing/UI/IconHearing_ca.paa
Normal file
Binary file not shown.
@ -7,6 +7,7 @@ PREP(earRinging);
|
|||||||
PREP(explosionNear);
|
PREP(explosionNear);
|
||||||
PREP(firedNear);
|
PREP(firedNear);
|
||||||
PREP(hasEarPlugsIn);
|
PREP(hasEarPlugsIn);
|
||||||
|
PREP(moduleHearing);
|
||||||
PREP(putInEarPlugs);
|
PREP(putInEarPlugs);
|
||||||
PREP(removeEarPlugs);
|
PREP(removeEarPlugs);
|
||||||
PREP(updateVolume);
|
PREP(updateVolume);
|
||||||
|
@ -23,8 +23,20 @@ class CfgPatches {
|
|||||||
#include "CfgAmmo.hpp"
|
#include "CfgAmmo.hpp"
|
||||||
|
|
||||||
class ACE_Settings {
|
class ACE_Settings {
|
||||||
|
class GVAR(EnableCombatDeafness) {
|
||||||
|
value = 1;
|
||||||
|
typeName = "BOOL";
|
||||||
|
};
|
||||||
|
class GVAR(EarplugsVolume) {
|
||||||
|
value = 0.5;
|
||||||
|
typeName = "SCALAR";
|
||||||
|
};
|
||||||
|
class GVAR(UnconsciousnessVolume) {
|
||||||
|
value = 0.4;
|
||||||
|
typeName = "SCALAR";
|
||||||
|
};
|
||||||
class GVAR(DisableEarRinging) {
|
class GVAR(DisableEarRinging) {
|
||||||
default = 1;
|
value = 0;
|
||||||
typeName = "BOOL";
|
typeName = "BOOL";
|
||||||
isClientSetable = 1;
|
isClientSetable = 1;
|
||||||
displayName = "$STR_ACE_Hearing_DisableEarRinging";
|
displayName = "$STR_ACE_Hearing_DisableEarRinging";
|
||||||
|
20
addons/hearing/functions/fnc_moduleHearing.sqf
Normal file
20
addons/hearing/functions/fnc_moduleHearing.sqf
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
/*
|
||||||
|
* Author: CAA-Picard
|
||||||
|
* Initializes the Map module.
|
||||||
|
*
|
||||||
|
* Arguments:
|
||||||
|
* Whatever the module provides. (I dunno.)
|
||||||
|
*
|
||||||
|
* Return Value:
|
||||||
|
* None
|
||||||
|
*/
|
||||||
|
#include "script_component.hpp"
|
||||||
|
|
||||||
|
_logic = _this select 0;
|
||||||
|
_activated = _this select 2;
|
||||||
|
|
||||||
|
if !(_activated) exitWith {};
|
||||||
|
|
||||||
|
[_logic, QGVAR(enableCombatDeafness), "EnableCombatDeafness"] call EFUNC(common,readSettingFromModule);
|
||||||
|
|
||||||
|
diag_log text "[ACE]: Interaction Module Initialized.";
|
@ -4,6 +4,9 @@
|
|||||||
#define STRENGHTODEAFNESS 3
|
#define STRENGHTODEAFNESS 3
|
||||||
#define MAXDEAFNESS 1.1
|
#define MAXDEAFNESS 1.1
|
||||||
|
|
||||||
|
// Exit if combat deafness is disabled
|
||||||
|
if !(GVAR(enableCombatDeafness)) exitWith {};
|
||||||
|
|
||||||
// Check if new noises increase deafness
|
// Check if new noises increase deafness
|
||||||
if (GVAR(newStrength) * STRENGHTODEAFNESS > GVAR(currentDeafness)) then {
|
if (GVAR(newStrength) * STRENGHTODEAFNESS > GVAR(currentDeafness)) then {
|
||||||
GVAR(currentDeafness) = GVAR(newStrength) * STRENGHTODEAFNESS min MAXDEAFNESS;
|
GVAR(currentDeafness) = GVAR(newStrength) * STRENGHTODEAFNESS min MAXDEAFNESS;
|
||||||
@ -27,12 +30,12 @@ _volume = (1 - GVAR(currentDeafness) max 0)^2 max 0.04;
|
|||||||
|
|
||||||
// Earplugs reduce hearing 50%
|
// Earplugs reduce hearing 50%
|
||||||
if ([ACE_player] call FUNC(hasEarPlugsIn)) then {
|
if ([ACE_player] call FUNC(hasEarPlugsIn)) then {
|
||||||
_volume = _volume min 0.5;
|
_volume = _volume min GVAR(EarplugsVolume);
|
||||||
};
|
};
|
||||||
|
|
||||||
// Reduce volume if player is unconscious
|
// Reduce volume if player is unconscious
|
||||||
if (ACE_player getVariable ["ACE_isUnconscious", false]) then {
|
if (ACE_player getVariable ["ACE_isUnconscious", false]) then {
|
||||||
_volume = _volume min 0.4;
|
_volume = _volume min GVAR(UnconsciousnessVolume);
|
||||||
};
|
};
|
||||||
|
|
||||||
if (!(missionNameSpace getVariable [QGVAR(disableVolumeUpdate), false])) then {
|
if (!(missionNameSpace getVariable [QGVAR(disableVolumeUpdate), false])) then {
|
||||||
|
Loading…
Reference in New Issue
Block a user