Merge branch 'hearingCleanup' of github.com:KoffeinFlummi/ACE3

Conflicts:
	addons/hearing/functions/fnc_updateVolume.sqf
This commit is contained in:
Nicolás Badano 2015-03-16 20:39:49 -03:00
commit eb4ccd9505
14 changed files with 155 additions and 119 deletions

View File

@ -4,8 +4,8 @@ class CfgVehicles {
class ACE_SelfActions {
class ACE_Equipment {
class ACE_PutInEarplugs {
displayName = "$STR_ACE_Hearing_Earbuds_On";
condition = QUOTE( !([_player] call FUNC(hasEarPlugsIn)) && {'ACE_EarBuds' in items _player} );
displayName = "$STR_ACE_Hearing_EarPlugs_On";
condition = QUOTE( !([_player] call FUNC(hasEarPlugsIn)) && {'ACE_EarPlugs' in items _player} );
statement = QUOTE( [_player] call FUNC(putInEarPlugs) );
showDisabled = 0;
priority = 2.5;
@ -14,7 +14,7 @@ class CfgVehicles {
enableInside = 1;
};
class ACE_RemoveEarplugs {
displayName = "$STR_ACE_Hearing_Earbuds_Off";
displayName = "$STR_ACE_Hearing_EarPlugs_Off";
condition = QUOTE( [_player] call FUNC(hasEarPlugsIn) );
statement = QUOTE( [_player] call FUNC(removeEarPlugs) );
showDisabled = 0;
@ -35,61 +35,61 @@ class CfgVehicles {
class Box_NATO_Support_F: NATO_Box_Base {
class TransportItems {
MACRO_ADDITEM(ACE_EarBuds,12);
MACRO_ADDITEM(ACE_EarPlugs,12);
};
};
class B_supplyCrate_F: ReammoBox_F {
class TransportItems {
MACRO_ADDITEM(ACE_EarBuds,12);
MACRO_ADDITEM(ACE_EarPlugs,12);
};
};
class Box_East_Support_F: EAST_Box_Base {
class TransportItems {
MACRO_ADDITEM(ACE_EarBuds,12);
MACRO_ADDITEM(ACE_EarPlugs,12);
};
};
class O_supplyCrate_F: B_supplyCrate_F {
class TransportItems {
MACRO_ADDITEM(ACE_EarBuds,12);
MACRO_ADDITEM(ACE_EarPlugs,12);
};
};
class Box_IND_Support_F: IND_Box_Base {
class TransportItems {
MACRO_ADDITEM(ACE_EarBuds,12);
MACRO_ADDITEM(ACE_EarPlugs,12);
};
};
class Box_FIA_Support_F: FIA_Box_Base_F {
class TransportItems {
MACRO_ADDITEM(ACE_EarBuds,12);
MACRO_ADDITEM(ACE_EarPlugs,12);
};
};
class I_supplyCrate_F: B_supplyCrate_F {
class TransportItems {
MACRO_ADDITEM(ACE_EarBuds,12);
MACRO_ADDITEM(ACE_EarPlugs,12);
};
};
class IG_supplyCrate_F: ReammoBox_F {
class TransportItems {
MACRO_ADDITEM(ACE_EarBuds,12);
MACRO_ADDITEM(ACE_EarPlugs,12);
};
};
class C_supplyCrate_F: ReammoBox_F {
class TransportItems {
MACRO_ADDITEM(ACE_EarBuds,12);
MACRO_ADDITEM(ACE_EarPlugs,12);
};
};
class ACE_Box_Misc: Box_NATO_Support_F {
class TransportItems {
MACRO_ADDITEM(ACE_EarBuds,12);
MACRO_ADDITEM(ACE_EarPlugs,12);
};
};

View File

@ -2,9 +2,9 @@ class CfgWeapons {
class ACE_ItemCore;
class InventoryItem_Base_F;
class ACE_EarBuds: ACE_ItemCore {
displayName = "$STR_ACE_Hearing_Earbuds_Name";
descriptionShort = "$STR_ACE_Hearing_Earbuds_Description";
class ACE_EarPlugs: ACE_ItemCore {
displayName = "$STR_ACE_Hearing_EarPlugs_Name";
descriptionShort = "$STR_ACE_Hearing_EarPlugs_Description";
model = PATHTOF(ACE_earplugs.p3d);
picture = PATHTOF(UI\ACE_earplugs_x_ca.paa);
scope = 2;

View File

@ -3,7 +3,7 @@
class CfgPatches {
class ADDON {
units[] = {};
weapons[] = {"ACE_EarBuds"};
weapons[] = {"ACE_EarPlugs"};
requiredVersion = REQUIRED_VERSION;
requiredAddons[] = {"ace_common", "ace_interaction"};
author[] = {"KoffeinFlummi", "CAA-Picard", "HopeJ", "commy2"};

View File

@ -1,13 +1,17 @@
/*
* Author: commy2
*
* Called on unit initialization. Adds earplugs if the unit is equipped with either a really loud primary weapon or a rocket launcher.
*
* Argument:
* 0: A Soldier (Object)
* Arguments:
* 0: A Soldier <Object>
*
* Return value:
* Nothing
* Return Value:
* None
*
* Example:
* [guy] call ace_hearing_fnc_addEarPlugs
*
* Public: No
*/
#include "script_component.hpp"
@ -19,7 +23,7 @@ _unit = _this select 0;
_launcher = secondaryWeapon _unit;
if (_launcher != "") exitWith {
_unit addItem "ACE_EarBuds";
_unit addItem "ACE_EarPlugs";
};
// otherwise add earplugs if the soldier has a big rifle
@ -32,5 +36,5 @@ if (isNil "_magazine") exitWith {};
_ammo = getText (configFile >> "CfgMagazines" >> _magazine >> "ammo");
if (getNumber (configFile >> "CfgAmmo" >> _ammo >> "audiblefire") > 8) then {
_unit addItem "ACE_EarBuds";
_unit addItem "ACE_EarPlugs";
};

View File

@ -1,13 +1,18 @@
/*
* Author: KoffeinFlummi, commy2
*
* Creates ear ringing effect with set strength.
*
* Arguments:
* 0: strength of ear ringing (Number between 0 and 1)
* 0: Unit (player) <OBJECT>
* 1: strength of ear ringing (Number between 0 and 1) <NUMBER>
*
* Return Value:
* none
* None
*
* Example:
* [clientExplosionEvent] call ace_hearing_fnc_earRinging
*
* Public: No
*/
#include "script_component.hpp"

View File

@ -1,13 +1,18 @@
/*
* Author: KoffeinFlummi, commy2
*
* Handles deafness due to explosions going off near the player.
*
* Arguments:
* -> Explosion Event Handler
* 0: vehicle - Object the event handler is assigned to (player) <OBJECT>
* 1: damage - Damage inflicted to the object <NUMBER>
*
* Return Value:
* none
* None
*
* Example:
* [clientExplosionEvent] call ace_hearing_fnc_explosionNear
*
* Public: No
*/
#include "script_component.hpp"
@ -19,7 +24,4 @@ _damage = _this select 1;
_strength = (_damage * 2) min 1;
if (_strength < 0.01) exitWith {};
[_unit, _strength] spawn {
sleep 0.2;
_this call FUNC(earRinging);
};
[{_this call FUNC(earRinging)}, [_unit, _strength], 0.2, 0] call EFUNC(common,waitAndExecute);

View File

@ -1,13 +1,23 @@
/*
* Author: KoffeinFlummi, commy2
*
* Handles deafness due to large-caliber weapons going off near the player.
*
* Arguments:
* -> FiredNear Event Handler
* 0: Unit - Object the event handler is assigned to <OBJECT>
* 1: Firer: Object - Object which fires a weapon near the unit <OBJECT>
* 2: Distance - Distance in meters between the unit and firer <NUMBER>
* 3: weapon - Fired weapon <STRING>
* 4: muzzle - Muzzle that was used <STRING>
* 5: mod - Current mode of the fired weapon <STRING>
* 6: ammo - Ammo used <STRING>
*
* Return Value:
* none
* None
*
* Example:
* [clientFiredNearEvent] call ace_hearing_fnc_firedNear
*
* Public: No
*/
#include "script_component.hpp"
@ -25,9 +35,9 @@ if (_weapon in ["Throw", "Put"]) exitWith {};
if (_unit != vehicle _unit && {!([_unit] call EFUNC(common,isTurnedOut))}) exitWith {};
_silencer = switch (_weapon) do {
case (primaryWeapon _unit) : {primaryWeaponItems _unit select 0};
case (secondaryWeapon _unit) : {secondaryWeaponItems _unit select 0};
case (handgunWeapon _unit) : {handgunItems _unit select 0};
case (primaryWeapon _firer) : {(primaryWeaponItems _firer) select 0};
case (secondaryWeapon _firer) : {(secondaryWeaponItems _firer) select 0};
case (handgunWeapon _firer) : {(handgunItems _firer) select 0};
default {""};
};
@ -46,7 +56,4 @@ _strength = _loudness - (_loudness/50 * _distance); // linear drop off
if (_strength < 0.01) exitWith {};
[_unit, _strength] spawn {
sleep 0.2;
_this call FUNC(earRinging);
};
[{_this call FUNC(earRinging)}, [_unit, _strength], 0.2, 0] call EFUNC(common,waitAndExecute);

View File

@ -1,18 +1,20 @@
/*
* Author: commy2
*
* Check if the unit has earplugs put in.
*
* Argument:
* A soldier (Object)
* Arguments:
* 0:Unit (player) <OBJECT>
*
* Return value:
* Boolean (Bool)
* Return Value:
* Have Earplugs in <BOOL>
*
* Example:
* [ace_player] call ace_hearing_fnc_hasEarPlugsIn
*
* Public: No
*/
#include "script_component.hpp"
private "_unit";
_unit = _this select 0;
PARAMS_1(_unit);
_unit getVariable ["ACE_hasEarPlugsin", false]

View File

@ -1,27 +1,28 @@
/*
* Author: Hope Johnson
* Edited by commy2
*
* Puts in / takes out earplugs.
* Author: Hope Johnson and commy2
* Puts in earplugs.
*
* Arguments:
* none
* 0:Unit (player) <OBJECT>
*
* Return Value:
* none
* None
*
* Example:
* [ace_player] call ace_hearing_fnc_putInEarplugs
*
* Public: No
*/
#include "script_component.hpp"
private "_player";
PARAMS_1(_player);
_player = _this select 0;
// Buds in inventory, putting them in
_player removeItem "ACE_EarBuds";
// Plugs in inventory, putting them in
_player removeItem "ACE_EarPlugs";
_player setVariable ["ACE_hasEarPlugsIn", true, true];
[localize "STR_ACE_Hearing_Earbuds_Are_On"] call EFUNC(common,displayTextStructured);
[localize "STR_ACE_Hearing_EarPlugs_Are_On"] call EFUNC(common,displayTextStructured);
/*// No Ear Buds in inventory, telling user
[localize "STR_ACE_Hearing_NoBuds"] call EFUNC(common,displayTextStructured);*/
/*// No Ear Plugs in inventory, telling user
[localize "STR_ACE_Hearing_NoPlugs"] call EFUNC(common,displayTextStructured);*/

View File

@ -1,28 +1,29 @@
/*
* Author: Hope Johnson
* Edited by commy2
*
* Puts in / takes out earplugs.
* Author: Hope Johnson and commy2
* Takes out earplugs.
*
* Arguments:
* none
* 0:Unit (player) <OBJECT>
*
* Return Value:
* none
* None
*
* Example:
* [ace_player] call ace_hearing_fnc_removeEarplugs
*
* Public: No
*/
#include "script_component.hpp"
private "_player";
PARAMS_1(_player);
_player = _this select 0;
if !(_player canAdd "ACE_EarBuds") exitWith { // inventory full
if !(_player canAdd "ACE_EarPlugs") exitWith { // inventory full
[localize "STR_ACE_Hearing_Inventory_Full"] call EFUNC(common,displayTextStructured);
};
// Buds already in and removing them.
_player addItem "ACE_EarBuds";
// Plugs already in and removing them.
_player addItem "ACE_EarPlugs";
_player setVariable ["ACE_hasEarPlugsIn", false, true];
[localize "STR_ACE_Hearing_Earbuds_Are_Off"] call EFUNC(common,displayTextStructured);
[localize "STR_ACE_Hearing_EarPlugs_Are_Off"] call EFUNC(common,displayTextStructured);

View File

@ -1,4 +1,18 @@
// by commy2 and CAA-Picard
/*
* Author: commy2 and CAA-Picard
* Updates and applys the current deafness. Called every 0.1 sec from a PFEH.
*
* Arguments:
* None
*
* Return Value:
* None
*
* Example:
* [] call ace_hearing_fnc_updateVolume
*
* Public: No
*/
#include "script_component.hpp"
#define STRENGHTODEAFNESS 3
@ -42,7 +56,7 @@ if (!(missionNameSpace getVariable [QGVAR(disableVolumeUpdate), false])) then {
0.1 fadeSound _volume;
0.1 fadeSpeech _volume;
ACE_player setVariable ["tf_globalVolume", _volume];
ACE_player setVariable ["acre_sys_core_globalVolume", _volume];
if (!isNil "acre_api_fnc_setGlobalVolume") then {[_volume] call acre_api_fnc_setGlobalVolume;};
};
//hintSilent format ["GVAR(currentDeafness), _Volume = %1, %2", GVAR(currentDeafness), _volume];

View File

@ -2,7 +2,7 @@
<!-- Edited with tabler - 2014-12-17 -->
<Project name="ACE">
<Package name="Hearing">
<Key ID="STR_ACE_Hearing_Earbuds_Name">
<Key ID="STR_ACE_Hearing_EarPlugs_Name">
<English>Ear Plugs</English>
<German>Ohrenstöpsel</German>
<Spanish>Tapones para los oídos</Spanish>
@ -14,8 +14,8 @@
<Portuguese>Protetor auricular</Portuguese>
<Italian>Tappi auricolari</Italian>
</Key>
<Key ID="STR_ACE_Hearing_Earbuds_Description">
<English>Protective Ear Buds allow the wearer to be near loud weaponry without damage to his hearing.</English>
<Key ID="STR_ACE_Hearing_EarPlugs_Description">
<English>Protective Ear Plugs allow the wearer to be near loud weaponry without damage to his hearing.</English>
<German>Schützende Ohrenstöpsel, die es dem Träger ermöglichen, sich in der Nähe lauter Waffen aufzuhalten.</German>
<Spanish>Los tapones para los oídos permiten al usuario operar armamento ruidoso sin sufrir pérdida de audición.</Spanish>
<Polish>Stopery do uszu umożliwiają użytkownikowi przebywać w pobliżu głośnej broni bez poniesienia konsekwencji jaką jest utrata słuchu.</Polish>
@ -26,7 +26,7 @@
<Portuguese>Protetor para ouvidos permitem que o usuário esteja próximo a ruídos sem danificar sua audição.</Portuguese>
<Italian>Proteggono l'apparato uditivo, permettendo a chi li indossa di resistere ai suoni particolarmente forti senza alcun danno.</Italian>
</Key>
<Key ID="STR_ACE_Hearing_Earbuds_On">
<Key ID="STR_ACE_Hearing_EarPlugs_On">
<English>Earplugs in</English>
<German>Ohrenstöpsel drinnen</German>
<Spanish>Poner tapones</Spanish>
@ -38,7 +38,7 @@
<Portuguese>Protetores colocados</Portuguese>
<Italian>Indossa i tappi auricolari</Italian>
</Key>
<Key ID="STR_ACE_Hearing_Earbuds_Off">
<Key ID="STR_ACE_Hearing_EarPlugs_Off">
<English>Earplugs out</English>
<German>Ohrenstöpsel raus</German>
<Spanish>Quitar tapones</Spanish>
@ -50,7 +50,7 @@
<Portuguese>Protetores retirados</Portuguese>
<Italian>Levati i tappi auricolari</Italian>
</Key>
<Key ID="STR_ACE_Hearing_Earbuds_Are_On">
<Key ID="STR_ACE_Hearing_EarPlugs_Are_On">
<English>Earplugs in</English>
<German>Ohrenstöpsel drinnen</German>
<Spanish>Tapones puestos</Spanish>
@ -62,7 +62,7 @@
<Portuguese>Protetores colocados</Portuguese>
<Italian>Indossa i tappi auricolari</Italian>
</Key>
<Key ID="STR_ACE_Hearing_Earbuds_Are_Off">
<Key ID="STR_ACE_Hearing_EarPlugs_Are_Off">
<English>Earplugs out</English>
<German>Ohrenstöpsel raus</German>
<Spanish>Tapones quitados</Spanish>
@ -74,7 +74,7 @@
<Portuguese>Protetores retirados</Portuguese>
<Italian>Levati i tappi auricolari</Italian>
</Key>
<Key ID="STR_ACE_Hearing_NoBuds">
<Key ID="STR_ACE_Hearing_NoPlugs">
<English>You have no ear plugs</English>
<German>Keine Ohrenstöpsel im Inventar</German>
<Spanish>No tienes tapones para los oídos</Spanish>