merge medical engine component into medical rewrite branch

This commit is contained in:
commy2 2016-07-30 14:00:42 +02:00
parent 131ef576b4
commit f793a0d8d1
20 changed files with 1462 additions and 0 deletions

View File

@ -0,0 +1 @@
z\ace\addons\medical_engine

View File

@ -0,0 +1,16 @@
class CfgActions {
class None;
class Heal: None {
show = 0;
};
class HealSoldier: None {
show = 0;
};
class HealSoldierSelf: None {
show = 0;
};
class FirstAid: None {
show = 0;
};
};

View File

@ -0,0 +1,18 @@
class Extended_PreStart_EventHandlers {
class ADDON {
init = QUOTE(call COMPILE_FILE(XEH_preStart));
};
};
class Extended_PreInit_EventHandlers {
class ADDON {
init = QUOTE(call COMPILE_FILE(XEH_preInit));
};
};
class Extended_PostInit_EventHandlers {
class ADDON {
init = QUOTE(call COMPILE_FILE(XEH_postInit));
};
};

View File

@ -0,0 +1,8 @@
#ifdef DISABLE_VANILLA_BLOOD_TEXTURES
class CfgInGameUI {
class PeripheralVision {
bloodTexture = ""; //"A3\ui_f\data\igui\cfg\PeripheralVision\bloodTexture_ca.paa";
};
};
#endif

View File

@ -0,0 +1,158 @@
class CfgVehicles {
class Man;
class CAManBase: Man {
// Delete base game sounds.
// These are never played for ai and remote players.
#ifdef DISABLE_VANILLA_SCREAMS
class SoundHitScream {
person1[] = {{"Male08ENG"},{{EMPTY_SOUND,1}},{{EMPTY_SOUND,1}},{{EMPTY_SOUND,1}}};
person2[] = {{"Male06ENG"},{{EMPTY_SOUND,1}},{{EMPTY_SOUND,1}},{{EMPTY_SOUND,1}}};
person3[] = {{"Male09ENG"},{{EMPTY_SOUND,1}},{{EMPTY_SOUND,1}},{{EMPTY_SOUND,1}}};
person4[] = {{"Male07ENG"},{{EMPTY_SOUND,1}},{{EMPTY_SOUND,1}},{{EMPTY_SOUND,1}}};
person5[] = {{"Male03GRE"},{{EMPTY_SOUND,1}},{{EMPTY_SOUND,1}},{{EMPTY_SOUND,1}}};
person6[] = {{"Male02ENGB"},{{EMPTY_SOUND,1}},{{EMPTY_SOUND,1}},{{EMPTY_SOUND,1}}};
person7[] = {{"Male01ENGB"},{{EMPTY_SOUND,1}},{{EMPTY_SOUND,1}},{{EMPTY_SOUND,1}}};
person8[] = {{"Male01GRE"},{{EMPTY_SOUND,1}},{{EMPTY_SOUND,1}},{{EMPTY_SOUND,1}}};
person9[] = {{"Male02ENG"},{{EMPTY_SOUND,1}},{{EMPTY_SOUND,1}},{{EMPTY_SOUND,1}}};
person10[] = {{"Male02GRE"},{{EMPTY_SOUND,1}},{{EMPTY_SOUND,1}},{{EMPTY_SOUND,1}}};
person11[] = {{"Male03ENG"},{{EMPTY_SOUND,1}},{{EMPTY_SOUND,1}},{{EMPTY_SOUND,1}}};
person12[] = {{"Male03ENGB"},{{EMPTY_SOUND,1}},{{EMPTY_SOUND,1}},{{EMPTY_SOUND,1}}};
person13[] = {{"Male04ENG"},{{EMPTY_SOUND,1}},{{EMPTY_SOUND,1}},{{EMPTY_SOUND,1}}};
person14[] = {{"Male05GRE"},{{EMPTY_SOUND,1}},{{EMPTY_SOUND,1}},{{EMPTY_SOUND,1}}};
person15[] = {{"Male06GRE"},{{EMPTY_SOUND,1}},{{EMPTY_SOUND,1}},{{EMPTY_SOUND,1}}};
person16[] = {{"Male04GRE"},{{EMPTY_SOUND,1}},{{EMPTY_SOUND,1}},{{EMPTY_SOUND,1}}};
person17[] = {{"Male05ENGB"},{{EMPTY_SOUND,1}},{{EMPTY_SOUND,1}},{{EMPTY_SOUND,1}}};
person18[] = {{"Male05ENG"},{{EMPTY_SOUND,1}},{{EMPTY_SOUND,1}},{{EMPTY_SOUND,1}}};
};
#endif
#ifdef DISABLE_VANILLA_MOANS
class SoundInjured {
person_moan1[] = {{"Male08ENG"},{{EMPTY_SOUND,1}},{{EMPTY_SOUND,1}},{{EMPTY_SOUND,1}}};
person_moan2[] = {{"Male06ENG"},{{EMPTY_SOUND,1}},{{EMPTY_SOUND,1}},{{EMPTY_SOUND,1}}};
person_moan3[] = {{"Male09ENG"},{{EMPTY_SOUND,1}},{{EMPTY_SOUND,1}},{{EMPTY_SOUND,1}}};
person_moan4[] = {{"Male07ENG"},{{EMPTY_SOUND,1}},{{EMPTY_SOUND,1}},{{EMPTY_SOUND,1}}};
person_moan5[] = {{"Male03GRE"},{{EMPTY_SOUND,1}},{{EMPTY_SOUND,1}},{{EMPTY_SOUND,1}}};
person_moan6[] = {{"Male02ENGB"},{{EMPTY_SOUND,1}},{{EMPTY_SOUND,1}},{{EMPTY_SOUND,1}}};
person_moan7[] = {{"Male01ENGB"},{{EMPTY_SOUND,1}},{{EMPTY_SOUND,1}},{{EMPTY_SOUND,1}}};
person_moan8[] = {{"Male01GRE"},{{EMPTY_SOUND,1}},{{EMPTY_SOUND,1}},{{EMPTY_SOUND,1}}};
person_moan9[] = {{"Male02ENG"},{{EMPTY_SOUND,1}},{{EMPTY_SOUND,1}},{{EMPTY_SOUND,1}}};
person_moan10[] = {{"Male02GRE"},{{EMPTY_SOUND,1}},{{EMPTY_SOUND,1}},{{EMPTY_SOUND,1}}};
person_moan11[] = {{"Male03ENG"},{{EMPTY_SOUND,1}},{{EMPTY_SOUND,1}},{{EMPTY_SOUND,1}}};
person_moan12[] = {{"Male03ENGB"},{{EMPTY_SOUND,1}},{{EMPTY_SOUND,1}},{{EMPTY_SOUND,1}}};
person_moan13[] = {{"Male04ENG"},{{EMPTY_SOUND,1}},{{EMPTY_SOUND,1}},{{EMPTY_SOUND,1}}};
person_moan14[] = {{"Male05GRE"},{{EMPTY_SOUND,1}},{{EMPTY_SOUND,1}},{{EMPTY_SOUND,1}}};
person_moan15[] = {{"Male06GRE"},{{EMPTY_SOUND,1}},{{EMPTY_SOUND,1}},{{EMPTY_SOUND,1}}};
person_moan16[] = {{"Male04GRE"},{{EMPTY_SOUND,1}},{{EMPTY_SOUND,1}},{{EMPTY_SOUND,1}}};
person_moan17[] = {{"Male05ENGB"},{{EMPTY_SOUND,1}},{{EMPTY_SOUND,1}},{{EMPTY_SOUND,1}}};
person_moan18[] = {{"Male05ENG"},{{EMPTY_SOUND,1}},{{EMPTY_SOUND,1}},{{EMPTY_SOUND,1}}};
};
#endif
// Can't overwrite these with empty sounds -> CTD
// Assume lock up if sound duration is 0 seconds.
// We mute the sounds instead
#ifdef DISABLE_VANILLA_HEARTBEAT
class PulsationSound {
sample0[] = {{{{"A3\sounds_f\characters\human-sfx\other\heart_4_1",0,0.7},1}}};
sample1[] = {{{{"A3\sounds_f\characters\human-sfx\other\heart_4_3",0,0.7},1}}};
sample2[] = {{{{"A3\sounds_f\characters\human-sfx\other\heart_4_4",0,0.7},1}}};
sample3[] = {{{{"A3\sounds_f\characters\human-sfx\other\heart_4_5",0,0.7},1}}};
};
#endif
// General
class HitPoints {
ADD_ACE_HITPOINTS(1,1);
};
};
// BluFor
class B_Soldier_base_F;
class B_Soldier_04_f: B_Soldier_base_F {
class HitPoints {
ADD_ACE_HITPOINTS(2,2);
};
};
class B_Soldier_05_f: B_Soldier_base_F {
class HitPoints {
ADD_ACE_HITPOINTS(2,2);
};
};
// Indep
class I_Soldier_base_F;
class I_Soldier_03_F: I_Soldier_base_F {
class HitPoints {
ADD_ACE_HITPOINTS(2,2);
};
};
class I_Soldier_04_F: I_Soldier_base_F {
class HitPoints {
ADD_ACE_HITPOINTS(2,2);
};
};
// OpFor
class SoldierEB;
class O_Soldier_base_F: SoldierEB {
class HitPoints {
ADD_ACE_HITPOINTS(2,2);
};
};
class O_Soldier_02_F: O_Soldier_base_F {
class HitPoints {
ADD_ACE_HITPOINTS(2,2);
};
};
class O_officer_F: O_Soldier_base_F {
class HitPoints {
ADD_ACE_HITPOINTS(1,2);
};
};
class O_Soldier_diver_base_F: O_Soldier_base_F {
class HitPoints {
ADD_ACE_HITPOINTS(1,1);
};
};
// Virtual Reality
class B_Soldier_VR_F: B_Soldier_base_F {
class HitPoints {
ADD_ACE_HITPOINTS(1,1);
};
};
class O_Soldier_VR_F: O_Soldier_base_F {
class HitPoints {
ADD_ACE_HITPOINTS(1,1);
};
};
class I_Soldier_VR_F: I_Soldier_base_F {
class HitPoints {
ADD_ACE_HITPOINTS(1,1);
};
};
// Civilians
class C_man_1;
class C_Soldier_VR_F: C_man_1 {
class HitPoints {
ADD_ACE_HITPOINTS(1,1);
};
};
class O_Protagonist_VR_F: O_Soldier_base_F {
class HitPoints {
ADD_ACE_HITPOINTS(1,1);
};
};
// APEX
class O_V_Soldier_Viper_F: O_Soldier_base_F {
class HitPoints {
ADD_ACE_HITPOINTS(3,3);
};
};
class O_V_Soldier_base_F: O_Soldier_base_F {
class HitPoints {
ADD_ACE_HITPOINTS(3,3);
};
};
};

View File

@ -0,0 +1,11 @@
class CfgWeapons {
// Remove items from Virtual Arsenal.
class ItemCore;
class FirstAidKit: ItemCore {
type = 0;
};
class Medikit: ItemCore {
type = 0;
};
};

View File

@ -0,0 +1,11 @@
ace_medical_engine
===============
Links Arma 3 soldier health simulation to ACE medical system.
## Maintainers
The people responsible for merging changes to this component or answering potential questions.
- [commy2](https://github.com/commy2)

View File

@ -0,0 +1,20 @@
#ifdef DISABLE_VANILLA_BLOOD_TEXTURES
class RscTitles {
// Disables blood texture overlay
class RscHealthTextures {
class controls {
class Flame_1;
class Blood_1: Flame_1 {
text = ""; //"A3\Ui_f\data\igui\rsctitles\HealthTextures\blood_lower_ca.paa";
};
class Blood_2: Flame_1 {
text = ""; //"A3\Ui_f\data\igui\rsctitles\HealthTextures\blood_middle_ca.paa";
};
class Blood_3: Flame_1 {
text = ""; //"A3\Ui_f\data\igui\rsctitles\HealthTextures\blood_upper_ca.paa";
};
};
};
};
#endif

View File

@ -0,0 +1,5 @@
PREP(handleDamage);
PREP(playInjuredSound);
PREP(damageBodyPart);
PREP(setStructuralDamage);

View File

@ -0,0 +1,87 @@
#include "script_component.hpp"
["CAManBase", "init", {
params ["_unit"];
// Check if last hit point is our dummy.
private _allHitPoints = getAllHitPointsDamage _unit param [0, []];
reverse _allHitPoints;
if (_allHitPoints param [0, ""] != "ACE_HDBracket") then {
ACE_LOGERROR_1("Bad hitpoints for unit type ""%1""",typeOf _unit);
} else {
// Calling this function inside curly brackets allows the usage of
// "exitWith", which would be broken with "HandleDamage" otherwise.
_unit addEventHandler ["HandleDamage", {_this call FUNC(handleDamage)}];
};
}, nil, nil, true] call CBA_fnc_addClassEventHandler;
#ifdef DEBUG_MODE_FULL
[QGVAR(woundReceived), {
diag_log _this;
systemChat str _this;
}] call CBA_fnc_addEventHandler;
#endif
// Kill vanilla bleeding feedback effects.
#ifdef DISABLE_VANILLA_DAMAGE_EFFECTS
[{
{isNil _x} count [
"BIS_fnc_feedback_damageCC",
"BIS_fnc_feedback_damageRadialBlur",
"BIS_fnc_feedback_damageBlur"
] == 0
}, {
{
ppEffectDestroy _x;
} forEach [
BIS_fnc_feedback_damageCC,
BIS_fnc_feedback_damageRadialBlur,
BIS_fnc_feedback_damageBlur
];
}] call CBA_fnc_waitUntilAndExecute;
#endif
// Hack for #3168 (units in static weapons do not take any damage):
// Doing a manual pre-load with a small distance seems to fix the LOD problems
// with handle damage not returning full results.
GVAR(fixedStatics) = [];
private _fnc_fixStatic = {
params ["_vehicle"];
private _type = typeOf _vehicle;
TRACE_2("",_vehicle,_type);
if !(_type in GVAR(fixedStatics)) then {
GVAR(fixedStatics) pushBack _type;
ACE_LOGINFO_1("Starting preload for ""%1""",_type);
[{
1 preloadObject _this;
}, {
ACE_LOGINFO_1("Preload done for ""%1""",_this);
}, _type] call CBA_fnc_waitUntilAndExecute;
};
};
["StaticWeapon", "init", _fnc_fixStatic, nil, nil, true] call CBA_fnc_addClassEventHandler;
["Car", "init", _fnc_fixStatic, nil, nil, true] call CBA_fnc_addClassEventHandler;
addMissionEventHandler ["Loaded", {
{
ACE_LOGINFO_1("Starting preload for ""%1""",_x);
[{
1 preloadObject _this;
}, {
ACE_LOGINFO_1("Preload done for ""%1""",_this);
}, _x] call CBA_fnc_waitUntilAndExecute;
} forEach GVAR(fixedStatics);
}];
#define BLAH __FILE__
diag_log BLAH;
diag_log 127;
diag_log __FILE__;

View File

@ -0,0 +1,744 @@
#include "script_component.hpp"
ADDON = false;
#include "XEH_PREP.hpp"
// HitScream
GVAR(HitScreamNamespace) = [] call CBA_fnc_createNamespace;
GVAR(HitScreamNamespace) setVariable ["#default", "Male08ENG"];
GVAR(HitScreamNamespace) setVariable ["Male08ENG", [[
["A3\sounds_f\characters\human-sfx\P01\Low_hit_1",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P01\Low_hit_2",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P01\Low_hit_3",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P01\Low_hit_4",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P01\Low_hit_5",3.1622777,1,80]
], [
["A3\sounds_f\characters\human-sfx\P01\Mid_hit_1",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P01\Mid_hit_2",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P01\Mid_hit_3",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P01\Mid_hit_4",3.1622777,1,80]
], [
["A3\sounds_f\characters\human-sfx\P01\Max_hit_1",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P01\Max_hit_2",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P01\Max_hit_3",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P01\Max_hit_4",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P01\Max_hit_5",3.1622777,1,80]
]]];
GVAR(HitScreamNamespace) setVariable ["Male06ENG", [[
["A3\sounds_f\characters\human-sfx\P02\Low_hit_1",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P02\Low_hit_2",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P02\Low_hit_3",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P02\Low_hit_4",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P02\Low_hit_5",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P02\Low_hit_6",3.1622777,1,80]
], [
["A3\sounds_f\characters\human-sfx\P02\Mid_hit_1",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P02\Mid_hit_2",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P02\Mid_hit_3",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P02\Mid_hit_4",3.1622777,1,80]
], [
["A3\sounds_f\characters\human-sfx\P02\Max_hit_1",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P02\Max_hit_2",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P02\Max_hit_3",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P02\Max_hit_4",3.1622777,1,80]
]]];
GVAR(HitScreamNamespace) setVariable ["Male09ENG", [[
["A3\sounds_f\characters\human-sfx\P03\Hit_Low_1",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P03\Hit_Low_2",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P03\Hit_Low_3",3.1622777,1,80]
], [
["A3\sounds_f\characters\human-sfx\P03\Hit_Mid_1",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P03\Hit_Mid_2",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P03\Hit_Mid_3",3.1622777,1,80]
], [
["A3\sounds_f\characters\human-sfx\P03\Hit_Max_1",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P03\Hit_Max_2",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P03\Hit_Max_3",3.1622777,1,80]
]]];
GVAR(HitScreamNamespace) setVariable ["Male07ENG", [[
["A3\sounds_f\characters\human-sfx\P04\Hit_Low_1",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P04\Hit_Low_2",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P04\Hit_Low_3",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P04\Hit_Low_4",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P04\Hit_Low_5",3.1622777,1,80]
], [
["A3\sounds_f\characters\human-sfx\P04\Hit_Mid_1",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P04\Hit_Mid_2",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P04\Hit_Mid_3",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P04\Hit_Mid_4",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P04\Hit_Mid_5",3.1622777,1,80]
], [
["A3\sounds_f\characters\human-sfx\P04\Hit_Max_1",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P04\Hit_Max_2",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P04\Hit_Max_3",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P04\Hit_Max_4",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P04\Hit_Max_5",3.1622777,1,80]
]]];
GVAR(HitScreamNamespace) setVariable ["Male03GRE", [[
["A3\sounds_f\characters\human-sfx\P05\Hit_Low_1",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P05\Hit_Low_2",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P05\Hit_Low_3",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P05\Hit_Low_4",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P05\Hit_Low_5",3.1622777,1,80]
], [
["A3\sounds_f\characters\human-sfx\P05\Hit_Mid_1",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P05\Hit_Mid_2",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P05\Hit_Mid_3",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P05\Hit_Mid_4",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P05\Hit_Mid_5",3.1622777,1,80]
], [
["A3\sounds_f\characters\human-sfx\P05\Hit_Max_1",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P05\Hit_Max_2",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P05\Hit_Max_3",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P05\Hit_Max_4",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P05\Hit_Max_5",3.1622777,1,80]
]]];
GVAR(HitScreamNamespace) setVariable ["Male02ENGB", [[
["A3\sounds_f\characters\human-sfx\P06\Hit_Low_1",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P06\Hit_Low_2",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P06\Hit_Low_3",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P06\Hit_Low_4",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P06\Hit_Low_5",3.1622777,1,80]
], [
["A3\sounds_f\characters\human-sfx\P06\Hit_Mid_1",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P06\Hit_Mid_2",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P06\Hit_Mid_3",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P06\Hit_Mid_4",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P06\Hit_Mid_5",3.1622777,1,80]
], [
["A3\sounds_f\characters\human-sfx\P06\Hit_Max_1",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P06\Hit_Max_2",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P06\Hit_Max_3",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P06\Hit_Max_4",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P06\Hit_Max_5",3.1622777,1,80]
]]];
GVAR(HitScreamNamespace) setVariable ["Male01ENGB", [[
["A3\sounds_f\characters\human-sfx\P07\Hit_Low_1",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P07\Hit_Low_2",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P07\Hit_Low_3",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P07\Hit_Low_4",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P07\Hit_Low_5",3.1622777,1,80]
], [
["A3\sounds_f\characters\human-sfx\P07\Hit_Mid_1",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P07\Hit_Mid_2",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P07\Hit_Mid_3",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P07\Hit_Mid_4",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P07\Hit_Mid_5",3.1622777,1,80]
], [
["A3\sounds_f\characters\human-sfx\P07\Hit_Max_1",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P07\Hit_Max_2",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P07\Hit_Max_3",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P07\Hit_Max_4",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P07\Hit_Max_5",3.1622777,1,80]
]]];
GVAR(HitScreamNamespace) setVariable ["Male01GRE", [[
["A3\sounds_f\characters\human-sfx\P08\Hit_Low_1",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P08\Hit_Low_2",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P08\Hit_Low_3",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P08\Hit_Low_4",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P08\Hit_Low_5",3.1622777,1,80]
], [
["A3\sounds_f\characters\human-sfx\P08\Hit_Mid_1",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P08\Hit_Mid_2",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P08\Hit_Mid_3",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P08\Hit_Mid_4",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P08\Hit_Mid_5",3.1622777,1,80]
], [
["A3\sounds_f\characters\human-sfx\P08\Hit_Max_1",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P08\Hit_Max_2",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P08\Hit_Max_3",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P08\Hit_Max_4",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P08\Hit_Max_5",3.1622777,1,80]
]]];
GVAR(HitScreamNamespace) setVariable ["Male02ENG", [[
["A3\sounds_f\characters\human-sfx\P09\Hit_Low_1",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P09\Hit_Low_2",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P09\Hit_Low_3",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P09\Hit_Low_4",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P09\Hit_Low_5",3.1622777,1,80]
], [
["A3\sounds_f\characters\human-sfx\P09\Hit_Mid_1",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P09\Hit_Mid_2",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P09\Hit_Mid_3",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P09\Hit_Mid_4",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P09\Hit_Mid_5",3.1622777,1,80]
], [
["A3\sounds_f\characters\human-sfx\P09\Hit_Max_1",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P09\Hit_Max_2",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P09\Hit_Max_3",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P09\Hit_Max_4",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P09\Hit_Max_5",3.1622777,1,80]
]]];
GVAR(HitScreamNamespace) setVariable ["Male02GRE", [[
["A3\sounds_f\characters\human-sfx\P10\Hit_Low_1",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P10\Hit_Low_2",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P10\Hit_Low_3",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P10\Hit_Low_4",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P10\Hit_Low_5",3.1622777,1,80]
], [
["A3\sounds_f\characters\human-sfx\P10\Hit_Mid_1",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P10\Hit_Mid_2",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P10\Hit_Mid_3",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P10\Hit_Mid_4",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P10\Hit_Mid_5",3.1622777,1,80]
], [
["A3\sounds_f\characters\human-sfx\P10\Hit_Max_1",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P10\Hit_Max_2",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P10\Hit_Max_3",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P10\Hit_Max_4",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P10\Hit_Max_5",3.1622777,1,80]
]]];
GVAR(HitScreamNamespace) setVariable ["Male03ENG", [[
["A3\sounds_f\characters\human-sfx\P11\Hit_Low_1",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P11\Hit_Low_2",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P11\Hit_Low_3",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P11\Hit_Low_4",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P11\Hit_Low_5",3.1622777,1,80]
], [
["A3\sounds_f\characters\human-sfx\P11\Hit_Mid_1",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P11\Hit_Mid_2",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P11\Hit_Mid_3",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P11\Hit_Mid_4",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P11\Hit_Mid_5",3.1622777,1,80]
], [
["A3\sounds_f\characters\human-sfx\P11\Hit_Max_1",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P11\Hit_Max_2",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P11\Hit_Max_3",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P11\Hit_Max_4",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P11\Hit_Max_5",3.1622777,1,80]
]]];
GVAR(HitScreamNamespace) setVariable ["Male03ENGB", [[
["A3\sounds_f\characters\human-sfx\P12\Hit_Low_1",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P12\Hit_Low_2",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P12\Hit_Low_3",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P12\Hit_Low_4",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P12\Hit_Low_5",3.1622777,1,80]
], [
["A3\sounds_f\characters\human-sfx\P12\Hit_Mid_1",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P12\Hit_Mid_2",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P12\Hit_Mid_3",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P12\Hit_Mid_4",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P12\Hit_Mid_5",3.1622777,1,80]
], [
["A3\sounds_f\characters\human-sfx\P12\Hit_Max_1",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P12\Hit_Max_2",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P12\Hit_Max_3",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P12\Hit_Max_4",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P12\Hit_Max_5",3.1622777,1,80]
]]];
GVAR(HitScreamNamespace) setVariable ["Male04ENG", [[
["A3\sounds_f\characters\human-sfx\P13\Hit_Low_1",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P13\Hit_Low_2",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P13\Hit_Low_3",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P13\Hit_Low_4",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P13\Hit_Low_5",3.1622777,1,80]
], [
["A3\sounds_f\characters\human-sfx\P13\Hit_Mid_1",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P13\Hit_Mid_2",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P13\Hit_Mid_3",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P13\Hit_Mid_4",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P13\Hit_Mid_5",3.1622777,1,80]
], [
["A3\sounds_f\characters\human-sfx\P13\Hit_Max_1",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P13\Hit_Max_2",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P13\Hit_Max_3",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P13\Hit_Max_4",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P13\Hit_Max_5",3.1622777,1,80]
]]];
GVAR(HitScreamNamespace) setVariable ["Male05GRE", [[
["A3\sounds_f\characters\human-sfx\P14\Hit_Low_1",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P14\Hit_Low_2",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P14\Hit_Low_3",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P14\Hit_Low_4",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P14\Hit_Low_5",3.1622777,1,80]
], [
["A3\sounds_f\characters\human-sfx\P14\Hit_Mid_1",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P14\Hit_Mid_2",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P14\Hit_Mid_3",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P14\Hit_Mid_4",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P14\Hit_Mid_5",3.1622777,1,80]
], [
["A3\sounds_f\characters\human-sfx\P14\Hit_Max_1",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P14\Hit_Max_2",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P14\Hit_Max_3",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P14\Hit_Max_4",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P14\Hit_Max_5",3.1622777,1,80]
]]];
GVAR(HitScreamNamespace) setVariable ["Male06GRE", [[
["A3\sounds_f\characters\human-sfx\P15\Hit_Low_1",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P15\Hit_Low_2",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P15\Hit_Low_3",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P15\Hit_Low_4",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P15\Hit_Low_5",3.1622777,1,80]
], [
["A3\sounds_f\characters\human-sfx\P15\Hit_Mid_1",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P15\Hit_Mid_2",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P15\Hit_Mid_3",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P15\Hit_Mid_4",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P15\Hit_Mid_5",3.1622777,1,80]
], [
["A3\sounds_f\characters\human-sfx\P15\Hit_Max_1",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P15\Hit_Max_2",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P15\Hit_Max_3",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P15\Hit_Max_4",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P15\Hit_Max_5",3.1622777,1,80]
]]];
GVAR(HitScreamNamespace) setVariable ["Male04GRE", [[
["A3\sounds_f\characters\human-sfx\P16\Hit_Low_1",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P16\Hit_Low_2",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P16\Hit_Low_3",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P16\Hit_Low_4",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P16\Hit_Low_5",3.1622777,1,80]
], [
["A3\sounds_f\characters\human-sfx\P16\Hit_Mid_1",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P16\Hit_Mid_2",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P16\Hit_Mid_3",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P16\Hit_Mid_4",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P16\Hit_Mid_5",3.1622777,1,80]
], [
["A3\sounds_f\characters\human-sfx\P16\Hit_Max_1",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P16\Hit_Max_2",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P16\Hit_Max_3",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P16\Hit_Max_4",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P16\Hit_Max_5",3.1622777,1,80]
]]];
GVAR(HitScreamNamespace) setVariable ["Male05ENGB", [[
["A3\sounds_f\characters\human-sfx\P17\Hit_Low_1",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P17\Hit_Low_2",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P17\Hit_Low_3",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P17\Hit_Low_4",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P17\Hit_Low_5",3.1622777,1,80]
], [
["A3\sounds_f\characters\human-sfx\P17\Hit_Mid_1",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P17\Hit_Mid_2",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P17\Hit_Mid_3",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P17\Hit_Mid_4",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P17\Hit_Mid_5",3.1622777,1,80]
], [
["A3\sounds_f\characters\human-sfx\P17\Hit_Max_1",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P17\Hit_Max_2",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P17\Hit_Max_3",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P17\Hit_Max_4",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P17\Hit_Max_5",3.1622777,1,80]
]]];
GVAR(HitScreamNamespace) setVariable ["Male05ENG", [[
["A3\sounds_f\characters\human-sfx\P18\Hit_Low_1",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P18\Hit_Low_2",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P18\Hit_Low_3",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P18\Hit_Low_4",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P18\Hit_Low_5",3.1622777,1,80]
], [
["A3\sounds_f\characters\human-sfx\P18\Hit_Mid_1",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P18\Hit_Mid_2",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P18\Hit_Mid_3",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P18\Hit_Mid_4",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P18\Hit_Mid_5",3.1622777,1,80]
], [
["A3\sounds_f\characters\human-sfx\P18\Hit_Max_1",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P18\Hit_Max_2",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P18\Hit_Max_3",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P18\Hit_Max_4",3.1622777,1,80],
["A3\sounds_f\characters\human-sfx\P18\Hit_Max_5",3.1622777,1,80]
]]];
// InjuredMoan
GVAR(InjuredMoanNamespace) = [] call CBA_fnc_createNamespace;
GVAR(InjuredMoanNamespace) setVariable ["#default", "Male08ENG"];
GVAR(InjuredMoanNamespace) setVariable ["Male08ENG", [[
["A3\Sounds_F\characters\human-sfx\P01\Soundinjured_Low_1",1.4125376,1,10],
["A3\Sounds_F\characters\human-sfx\P01\Soundinjured_Low_2",1.4125376,1,10],
["A3\Sounds_F\characters\human-sfx\P01\Soundinjured_Low_3",1.4125376,1,10],
["A3\Sounds_F\characters\human-sfx\P01\Soundinjured_Low_4",1.4125376,1,10],
["A3\Sounds_F\characters\human-sfx\P01\Soundinjured_Low_5",1.4125376,1,10],
["A3\Sounds_F\characters\human-sfx\P01\Soundinjured_Low_6",1.4125376,1,10],
["A3\Sounds_F\characters\human-sfx\P01\Soundinjured_Low_7",1.4125376,1,10],
["A3\Sounds_F\characters\human-sfx\P01\Soundinjured_Low_8",1.4125376,1,10]
], [
["A3\Sounds_F\characters\human-sfx\P01\Soundinjured_Mid_1",1.5848932,1,15],
["A3\Sounds_F\characters\human-sfx\P01\Soundinjured_Mid_2",1.5848932,1,15],
["A3\Sounds_F\characters\human-sfx\P01\Soundinjured_Mid_3",1.5848932,1,15],
["A3\Sounds_F\characters\human-sfx\P01\Soundinjured_Mid_4",1.5848932,1,15],
["A3\Sounds_F\characters\human-sfx\P01\Soundinjured_Mid_5",1.5848932,1,15],
["A3\Sounds_F\characters\human-sfx\P01\Soundinjured_Mid_6",1.5848932,1,15],
["A3\Sounds_F\characters\human-sfx\P01\Soundinjured_Mid_7",1.5848932,1,15],
["A3\Sounds_F\characters\human-sfx\P01\Soundinjured_Mid_8",1.5848932,1,15]
], [
["A3\Sounds_F\characters\human-sfx\P01\Soundinjured_Max_1",0.15848932,1,20],
["A3\Sounds_F\characters\human-sfx\P01\Soundinjured_Max_2",0.15848932,1,20],
["A3\Sounds_F\characters\human-sfx\P01\Soundinjured_Max_3",0.15848932,1,20],
["A3\Sounds_F\characters\human-sfx\P01\Soundinjured_Max_4",0.15848932,1,20],
["A3\Sounds_F\characters\human-sfx\P01\Soundinjured_Max_5",0.15848932,1,20],
["A3\Sounds_F\characters\human-sfx\P01\Soundinjured_Max_6",0.15848932,1,20],
["A3\Sounds_F\characters\human-sfx\P01\Soundinjured_Max_7",0.15848932,1,20],
["A3\Sounds_F\characters\human-sfx\P01\Soundinjured_Max_8",0.15848932,1,20]
]]];
GVAR(InjuredMoanNamespace) setVariable ["Male06ENG", [[
["A3\Sounds_F\characters\human-sfx\P02\Soundinjured_Low_1",1.4125376,1,10],
["A3\Sounds_F\characters\human-sfx\P02\Soundinjured_Low_2",1.4125376,1,10],
["A3\Sounds_F\characters\human-sfx\P02\Soundinjured_Low_3",1.4125376,1,10],
["A3\Sounds_F\characters\human-sfx\P02\Soundinjured_Low_4",1.4125376,1,10],
["A3\Sounds_F\characters\human-sfx\P02\Soundinjured_Low_5",1.4125376,1,10],
["A3\Sounds_F\characters\human-sfx\P02\Soundinjured_Low_6",1.4125376,1,10],
["A3\Sounds_F\characters\human-sfx\P02\Soundinjured_Low_7",1.4125376,1,10],
["A3\Sounds_F\characters\human-sfx\P02\Soundinjured_Low_8",1.4125376,1,10]
], [
["A3\Sounds_F\characters\human-sfx\P02\Soundinjured_Mid_1",1.5848932,1,15],
["A3\Sounds_F\characters\human-sfx\P02\Soundinjured_Mid_2",1.5848932,1,15],
["A3\Sounds_F\characters\human-sfx\P02\Soundinjured_Mid_3",1.5848932,1,15],
["A3\Sounds_F\characters\human-sfx\P02\Soundinjured_Mid_4",1.5848932,1,15],
["A3\Sounds_F\characters\human-sfx\P02\Soundinjured_Mid_5",1.5848932,1,15],
["A3\Sounds_F\characters\human-sfx\P02\Soundinjured_Mid_6",1.5848932,1,15],
["A3\Sounds_F\characters\human-sfx\P02\Soundinjured_Mid_7",1.5848932,1,15],
["A3\Sounds_F\characters\human-sfx\P02\Soundinjured_Mid_8",1.5848932,1,15]
], [
["A3\Sounds_F\characters\human-sfx\P02\Soundinjured_Max_1",1.7782794,1,20],
["A3\Sounds_F\characters\human-sfx\P02\Soundinjured_Max_2",1.7782794,1,20],
["A3\Sounds_F\characters\human-sfx\P02\Soundinjured_Max_3",1.7782794,1,20],
["A3\Sounds_F\characters\human-sfx\P02\Soundinjured_Max_4",1.7782794,1,20],
["A3\Sounds_F\characters\human-sfx\P02\Soundinjured_Max_5",1.7782794,1,20],
["A3\Sounds_F\characters\human-sfx\P02\Soundinjured_Max_6",1.7782794,1,20],
["A3\Sounds_F\characters\human-sfx\P02\Soundinjured_Max_7",1.7782794,1,20],
["A3\Sounds_F\characters\human-sfx\P02\Soundinjured_Max_8",1.7782794,1,20]
]]];
GVAR(InjuredMoanNamespace) setVariable ["Male09ENG", [[
["A3\Sounds_F\characters\human-sfx\P03\Soundinjured_Low_1",1.4125376,1,10],
["A3\Sounds_F\characters\human-sfx\P03\Soundinjured_Low_2",1.4125376,1,10],
["A3\Sounds_F\characters\human-sfx\P03\Soundinjured_Low_3",1.4125376,1,10],
["A3\Sounds_F\characters\human-sfx\P03\Soundinjured_Low_4",1.4125376,1,10],
["A3\Sounds_F\characters\human-sfx\P03\Soundinjured_Low_5",1.4125376,1,10]
], [
["A3\Sounds_F\characters\human-sfx\P03\Soundinjured_Mid_1",1.5848932,1,15],
["A3\Sounds_F\characters\human-sfx\P03\Soundinjured_Mid_2",1.5848932,1,15],
["A3\Sounds_F\characters\human-sfx\P03\Soundinjured_Mid_3",1.5848932,1,15],
["A3\Sounds_F\characters\human-sfx\P03\Soundinjured_Mid_4",1.5848932,1,15],
["A3\Sounds_F\characters\human-sfx\P03\Soundinjured_Mid_5",1.5848932,1,15]
], [
["A3\Sounds_F\characters\human-sfx\P03\Soundinjured_Max_1",1.7782794,1,20],
["A3\Sounds_F\characters\human-sfx\P03\Soundinjured_Max_2",1.7782794,1,20],
["A3\Sounds_F\characters\human-sfx\P03\Soundinjured_Max_3",1.7782794,1,20],
["A3\Sounds_F\characters\human-sfx\P03\Soundinjured_Max_4",1.7782794,1,20]
]]];
GVAR(InjuredMoanNamespace) setVariable ["Male07ENG", [[
["A3\Sounds_F\characters\human-sfx\P04\Soundinjured_Low_1",1.4125376,1,10],
["A3\Sounds_F\characters\human-sfx\P04\Soundinjured_Low_2",1.4125376,1,10],
["A3\Sounds_F\characters\human-sfx\P04\Soundinjured_Low_3",1.4125376,1,10],
["A3\Sounds_F\characters\human-sfx\P04\Soundinjured_Low_4",1.4125376,1,10],
["A3\Sounds_F\characters\human-sfx\P04\Soundinjured_Low_5",1.4125376,1,10]
], [
["A3\Sounds_F\characters\human-sfx\P04\Soundinjured_Mid_1",1.5848932,1,15],
["A3\Sounds_F\characters\human-sfx\P04\Soundinjured_Mid_2",1.5848932,1,15],
["A3\Sounds_F\characters\human-sfx\P04\Soundinjured_Mid_3",1.5848932,1,15],
["A3\Sounds_F\characters\human-sfx\P04\Soundinjured_Mid_4",1.5848932,1,15],
["A3\Sounds_F\characters\human-sfx\P04\Soundinjured_Mid_5",1.5848932,1,15]
], [
["A3\Sounds_F\characters\human-sfx\P04\Soundinjured_Max_1",1.7782794,1,20],
["A3\Sounds_F\characters\human-sfx\P04\Soundinjured_Max_2",1.7782794,1,20],
["A3\Sounds_F\characters\human-sfx\P04\Soundinjured_Max_3",1.7782794,1,20],
["A3\Sounds_F\characters\human-sfx\P04\Soundinjured_Max_4",1.7782794,1,20],
["A3\Sounds_F\characters\human-sfx\P04\Soundinjured_Max_5",1.7782794,1,20]
]]];
GVAR(InjuredMoanNamespace) setVariable ["Male03GRE", [[
["A3\Sounds_F\characters\human-sfx\P05\Soundinjured_Low_1",1.4125376,1,10],
["A3\Sounds_F\characters\human-sfx\P05\Soundinjured_Low_2",1.4125376,1,10],
["A3\Sounds_F\characters\human-sfx\P05\Soundinjured_Low_3",1.4125376,1,10],
["A3\Sounds_F\characters\human-sfx\P05\Soundinjured_Low_4",1.4125376,1,10],
["A3\Sounds_F\characters\human-sfx\P05\Soundinjured_Low_5",1.4125376,1,10]
], [
["A3\Sounds_F\characters\human-sfx\P05\Soundinjured_Mid_1",1.5848932,1,15],
["A3\Sounds_F\characters\human-sfx\P05\Soundinjured_Mid_2",1.5848932,1,15],
["A3\Sounds_F\characters\human-sfx\P05\Soundinjured_Mid_3",1.5848932,1,15],
["A3\Sounds_F\characters\human-sfx\P05\Soundinjured_Mid_4",1.5848932,1,15],
["A3\Sounds_F\characters\human-sfx\P05\Soundinjured_Mid_5",1.5848932,1,15]
], [
["A3\Sounds_F\characters\human-sfx\P05\Soundinjured_Max_1",1.7782794,1,20],
["A3\Sounds_F\characters\human-sfx\P05\Soundinjured_Max_2",1.7782794,1,20],
["A3\Sounds_F\characters\human-sfx\P05\Soundinjured_Max_3",1.7782794,1,20],
["A3\Sounds_F\characters\human-sfx\P05\Soundinjured_Max_4",1.7782794,1,20],
["A3\Sounds_F\characters\human-sfx\P05\Soundinjured_Max_5",1.7782794,1,20]
]]];
GVAR(InjuredMoanNamespace) setVariable ["Male02ENGB", [[
["A3\Sounds_F\characters\human-sfx\P06\Soundinjured_Low_1",1.4125376,1,10],
["A3\Sounds_F\characters\human-sfx\P06\Soundinjured_Low_2",1.4125376,1,10],
["A3\Sounds_F\characters\human-sfx\P06\Soundinjured_Low_3",1.4125376,1,10],
["A3\Sounds_F\characters\human-sfx\P06\Soundinjured_Low_4",1.4125376,1,10],
["A3\Sounds_F\characters\human-sfx\P06\Soundinjured_Low_5",1.4125376,1,10]
], [
["A3\Sounds_F\characters\human-sfx\P06\Soundinjured_Mid_1",1.5848932,1,15],
["A3\Sounds_F\characters\human-sfx\P06\Soundinjured_Mid_2",1.5848932,1,15],
["A3\Sounds_F\characters\human-sfx\P06\Soundinjured_Mid_3",1.5848932,1,15],
["A3\Sounds_F\characters\human-sfx\P06\Soundinjured_Mid_4",1.5848932,1,15],
["A3\Sounds_F\characters\human-sfx\P06\Soundinjured_Mid_5",1.5848932,1,15]
], [
["A3\Sounds_F\characters\human-sfx\P06\Soundinjured_Max_1",1.7782794,1,20],
["A3\Sounds_F\characters\human-sfx\P06\Soundinjured_Max_2",1.7782794,1,20],
["A3\Sounds_F\characters\human-sfx\P06\Soundinjured_Max_3",1.7782794,1,20],
["A3\Sounds_F\characters\human-sfx\P06\Soundinjured_Max_4",1.7782794,1,20],
["A3\Sounds_F\characters\human-sfx\P06\Soundinjured_Max_5",1.7782794,1,20]
]]];
GVAR(InjuredMoanNamespace) setVariable ["Male01ENGB", [[
["A3\Sounds_F\characters\human-sfx\P07\Soundinjured_Low_1",1.4125376,1,10],
["A3\Sounds_F\characters\human-sfx\P07\Soundinjured_Low_2",1.4125376,1,10],
["A3\Sounds_F\characters\human-sfx\P07\Soundinjured_Low_3",1.4125376,1,10],
["A3\Sounds_F\characters\human-sfx\P07\Soundinjured_Low_4",1.4125376,1,10],
["A3\Sounds_F\characters\human-sfx\P07\Soundinjured_Low_5",1.4125376,1,10]
], [
["A3\Sounds_F\characters\human-sfx\P07\Soundinjured_Mid_1",1.5848932,1,15],
["A3\Sounds_F\characters\human-sfx\P07\Soundinjured_Mid_2",1.5848932,1,15],
["A3\Sounds_F\characters\human-sfx\P07\Soundinjured_Mid_3",1.5848932,1,15],
["A3\Sounds_F\characters\human-sfx\P07\Soundinjured_Mid_4",1.5848932,1,15],
["A3\Sounds_F\characters\human-sfx\P07\Soundinjured_Mid_5",1.5848932,1,15]
], [
["A3\Sounds_F\characters\human-sfx\P07\Soundinjured_Max_1",1.7782794,1,20],
["A3\Sounds_F\characters\human-sfx\P07\Soundinjured_Max_2",1.7782794,1,20],
["A3\Sounds_F\characters\human-sfx\P07\Soundinjured_Max_3",1.7782794,1,20],
["A3\Sounds_F\characters\human-sfx\P07\Soundinjured_Max_4",1.7782794,1,20],
["A3\Sounds_F\characters\human-sfx\P07\Soundinjured_Max_5",1.7782794,1,20]
]]];
GVAR(InjuredMoanNamespace) setVariable ["Male01GRE", [[
["A3\Sounds_F\characters\human-sfx\P08\Soundinjured_Low_1",1.4125376,1,10],
["A3\Sounds_F\characters\human-sfx\P08\Soundinjured_Low_2",1.4125376,1,10],
["A3\Sounds_F\characters\human-sfx\P08\Soundinjured_Low_3",1.4125376,1,10],
["A3\Sounds_F\characters\human-sfx\P08\Soundinjured_Low_4",1.4125376,1,10],
["A3\Sounds_F\characters\human-sfx\P08\Soundinjured_Low_5",1.4125376,1,10]
], [
["A3\Sounds_F\characters\human-sfx\P08\Soundinjured_Mid_1",1.5848932,1,15],
["A3\Sounds_F\characters\human-sfx\P08\Soundinjured_Mid_2",1.5848932,1,15],
["A3\Sounds_F\characters\human-sfx\P08\Soundinjured_Mid_3",1.5848932,1,15],
["A3\Sounds_F\characters\human-sfx\P08\Soundinjured_Mid_4",1.5848932,1,15],
["A3\Sounds_F\characters\human-sfx\P08\Soundinjured_Mid_5",1.5848932,1,15]
], [
["A3\Sounds_F\characters\human-sfx\P08\Soundinjured_Max_1",1.7782794,1,20],
["A3\Sounds_F\characters\human-sfx\P08\Soundinjured_Max_2",1.7782794,1,20],
["A3\Sounds_F\characters\human-sfx\P08\Soundinjured_Max_3",1.7782794,1,20],
["A3\Sounds_F\characters\human-sfx\P08\Soundinjured_Max_4",1.7782794,1,20],
["A3\Sounds_F\characters\human-sfx\P08\Soundinjured_Max_5",1.7782794,1,20]
]]];
GVAR(InjuredMoanNamespace) setVariable ["Male02ENG", [[
["A3\Sounds_F\characters\human-sfx\P09\Soundinjured_Low_1",1.4125376,1,10],
["A3\Sounds_F\characters\human-sfx\P09\Soundinjured_Low_2",1.4125376,1,10],
["A3\Sounds_F\characters\human-sfx\P09\Soundinjured_Low_3",1.4125376,1,10],
["A3\Sounds_F\characters\human-sfx\P09\Soundinjured_Low_4",1.4125376,1,10],
["A3\Sounds_F\characters\human-sfx\P09\Soundinjured_Low_5",1.4125376,1,10]
], [
["A3\Sounds_F\characters\human-sfx\P09\Soundinjured_Mid_1",1.5848932,1,15],
["A3\Sounds_F\characters\human-sfx\P09\Soundinjured_Mid_2",1.5848932,1,15],
["A3\Sounds_F\characters\human-sfx\P09\Soundinjured_Mid_3",1.5848932,1,15],
["A3\Sounds_F\characters\human-sfx\P09\Soundinjured_Mid_4",1.5848932,1,15],
["A3\Sounds_F\characters\human-sfx\P09\Soundinjured_Mid_5",1.5848932,1,15]
], [
["A3\Sounds_F\characters\human-sfx\P09\Soundinjured_Max_1",1.7782794,1,20],
["A3\Sounds_F\characters\human-sfx\P09\Soundinjured_Max_2",1.7782794,1,20],
["A3\Sounds_F\characters\human-sfx\P09\Soundinjured_Max_3",1.7782794,1,20],
["A3\Sounds_F\characters\human-sfx\P09\Soundinjured_Max_4",1.7782794,1,20],
["A3\Sounds_F\characters\human-sfx\P09\Soundinjured_Max_5",1.7782794,1,20]
]]];
GVAR(InjuredMoanNamespace) setVariable ["Male02GRE", [[
["A3\Sounds_F\characters\human-sfx\P10\Soundinjured_Low_1",1.4125376,1,10],
["A3\Sounds_F\characters\human-sfx\P10\Soundinjured_Low_2",1.4125376,1,10],
["A3\Sounds_F\characters\human-sfx\P10\Soundinjured_Low_3",1.4125376,1,10],
["A3\Sounds_F\characters\human-sfx\P10\Soundinjured_Low_4",1.4125376,1,10],
["A3\Sounds_F\characters\human-sfx\P10\Soundinjured_Low_5",1.4125376,1,10]
], [
["A3\Sounds_F\characters\human-sfx\P10\Soundinjured_Mid_1",1.5848932,1,15],
["A3\Sounds_F\characters\human-sfx\P10\Soundinjured_Mid_2",1.5848932,1,15],
["A3\Sounds_F\characters\human-sfx\P10\Soundinjured_Mid_3",1.5848932,1,15],
["A3\Sounds_F\characters\human-sfx\P10\Soundinjured_Mid_4",1.5848932,1,15],
["A3\Sounds_F\characters\human-sfx\P10\Soundinjured_Mid_5",1.5848932,1,15]
], [
["A3\Sounds_F\characters\human-sfx\P10\Soundinjured_Max_1",1.7782794,1,20],
["A3\Sounds_F\characters\human-sfx\P10\Soundinjured_Max_2",1.7782794,1,20],
["A3\Sounds_F\characters\human-sfx\P10\Soundinjured_Max_3",1.7782794,1,20],
["A3\Sounds_F\characters\human-sfx\P10\Soundinjured_Max_4",1.7782794,1,20],
["A3\Sounds_F\characters\human-sfx\P10\Soundinjured_Max_5",1.7782794,1,20]
]]];
GVAR(InjuredMoanNamespace) setVariable ["Male03ENG", [[
["A3\Sounds_F\characters\human-sfx\P11\Soundinjured_Low_1",1.4125376,1,10],
["A3\Sounds_F\characters\human-sfx\P11\Soundinjured_Low_2",1.4125376,1,10],
["A3\Sounds_F\characters\human-sfx\P11\Soundinjured_Low_3",1.4125376,1,10],
["A3\Sounds_F\characters\human-sfx\P11\Soundinjured_Low_4",1.4125376,1,10],
["A3\Sounds_F\characters\human-sfx\P11\Soundinjured_Low_5",1.4125376,1,10]
], [
["A3\Sounds_F\characters\human-sfx\P11\Soundinjured_Mid_1",1.5848932,1,15],
["A3\Sounds_F\characters\human-sfx\P11\Soundinjured_Mid_2",1.5848932,1,15],
["A3\Sounds_F\characters\human-sfx\P11\Soundinjured_Mid_3",1.5848932,1,15],
["A3\Sounds_F\characters\human-sfx\P11\Soundinjured_Mid_4",1.5848932,1,15],
["A3\Sounds_F\characters\human-sfx\P11\Soundinjured_Mid_5",1.5848932,1,15]
], [
["A3\Sounds_F\characters\human-sfx\P11\Soundinjured_Max_1",1.7782794,1,20],
["A3\Sounds_F\characters\human-sfx\P11\Soundinjured_Max_2",1.7782794,1,20],
["A3\Sounds_F\characters\human-sfx\P11\Soundinjured_Max_3",1.7782794,1,20],
["A3\Sounds_F\characters\human-sfx\P11\Soundinjured_Max_4",1.7782794,1,20],
["A3\Sounds_F\characters\human-sfx\P11\Soundinjured_Max_5",1.7782794,1,20]
]]];
GVAR(InjuredMoanNamespace) setVariable ["Male03ENGB", [[
["A3\Sounds_F\characters\human-sfx\P12\Soundinjured_Low_1",1.4125376,1,10],
["A3\Sounds_F\characters\human-sfx\P12\Soundinjured_Low_2",1.4125376,1,10],
["A3\Sounds_F\characters\human-sfx\P12\Soundinjured_Low_3",1.4125376,1,10],
["A3\Sounds_F\characters\human-sfx\P12\Soundinjured_Low_4",1.4125376,1,10],
["A3\Sounds_F\characters\human-sfx\P12\Soundinjured_Low_5",1.4125376,1,10]
], [
["A3\Sounds_F\characters\human-sfx\P12\Soundinjured_Mid_1",1.5848932,1,15],
["A3\Sounds_F\characters\human-sfx\P12\Soundinjured_Mid_2",1.5848932,1,15],
["A3\Sounds_F\characters\human-sfx\P12\Soundinjured_Mid_3",1.5848932,1,15],
["A3\Sounds_F\characters\human-sfx\P12\Soundinjured_Mid_4",1.5848932,1,15],
["A3\Sounds_F\characters\human-sfx\P12\Soundinjured_Mid_5",1.5848932,1,15]
], [
["A3\Sounds_F\characters\human-sfx\P12\Soundinjured_Max_1",1.7782794,1,20],
["A3\Sounds_F\characters\human-sfx\P12\Soundinjured_Max_2",1.7782794,1,20],
["A3\Sounds_F\characters\human-sfx\P12\Soundinjured_Max_3",1.7782794,1,20],
["A3\Sounds_F\characters\human-sfx\P12\Soundinjured_Max_4",1.7782794,1,20],
["A3\Sounds_F\characters\human-sfx\P12\Soundinjured_Max_5",1.7782794,1,20]
]]];
GVAR(InjuredMoanNamespace) setVariable ["Male04ENG", [[
["A3\Sounds_F\characters\human-sfx\P13\Soundinjured_Low_1",1.4125376,1,10],
["A3\Sounds_F\characters\human-sfx\P13\Soundinjured_Low_2",1.4125376,1,10],
["A3\Sounds_F\characters\human-sfx\P13\Soundinjured_Low_3",1.4125376,1,10],
["A3\Sounds_F\characters\human-sfx\P13\Soundinjured_Low_4",1.4125376,1,10],
["A3\Sounds_F\characters\human-sfx\P13\Soundinjured_Low_5",1.4125376,1,10]
], [
["A3\Sounds_F\characters\human-sfx\P13\Soundinjured_Mid_1",1.5848932,1,15],
["A3\Sounds_F\characters\human-sfx\P13\Soundinjured_Mid_2",1.5848932,1,15],
["A3\Sounds_F\characters\human-sfx\P13\Soundinjured_Mid_3",1.5848932,1,15],
["A3\Sounds_F\characters\human-sfx\P13\Soundinjured_Mid_4",1.5848932,1,15],
["A3\Sounds_F\characters\human-sfx\P13\Soundinjured_Mid_5",1.5848932,1,15]
], [
["A3\Sounds_F\characters\human-sfx\P13\Soundinjured_Max_1",1.7782794,1,20],
["A3\Sounds_F\characters\human-sfx\P13\Soundinjured_Max_2",1.7782794,1,20],
["A3\Sounds_F\characters\human-sfx\P13\Soundinjured_Max_3",1.7782794,1,20],
["A3\Sounds_F\characters\human-sfx\P13\Soundinjured_Max_4",1.7782794,1,20],
["A3\Sounds_F\characters\human-sfx\P13\Soundinjured_Max_5",1.7782794,1,20]
]]];
GVAR(InjuredMoanNamespace) setVariable ["Male05GRE", [[
["A3\Sounds_F\characters\human-sfx\P14\Soundinjured_Low_1",1.4125376,1,10],
["A3\Sounds_F\characters\human-sfx\P14\Soundinjured_Low_2",1.4125376,1,10],
["A3\Sounds_F\characters\human-sfx\P14\Soundinjured_Low_3",1.4125376,1,10],
["A3\Sounds_F\characters\human-sfx\P14\Soundinjured_Low_4",1.4125376,1,10],
["A3\Sounds_F\characters\human-sfx\P14\Soundinjured_Low_5",1.4125376,1,10]
], [
["A3\Sounds_F\characters\human-sfx\P14\Soundinjured_Mid_1",1.5848932,1,15],
["A3\Sounds_F\characters\human-sfx\P14\Soundinjured_Mid_2",1.5848932,1,15],
["A3\Sounds_F\characters\human-sfx\P14\Soundinjured_Mid_3",1.5848932,1,15],
["A3\Sounds_F\characters\human-sfx\P14\Soundinjured_Mid_4",1.5848932,1,15],
["A3\Sounds_F\characters\human-sfx\P14\Soundinjured_Mid_5",1.5848932,1,15]
], [
["A3\Sounds_F\characters\human-sfx\P14\Soundinjured_Max_1",1.7782794,1,20],
["A3\Sounds_F\characters\human-sfx\P14\Soundinjured_Max_2",1.7782794,1,20],
["A3\Sounds_F\characters\human-sfx\P14\Soundinjured_Max_3",1.7782794,1,20],
["A3\Sounds_F\characters\human-sfx\P14\Soundinjured_Max_4",1.7782794,1,20],
["A3\Sounds_F\characters\human-sfx\P14\Soundinjured_Max_5",1.7782794,1,20]
]]];
GVAR(InjuredMoanNamespace) setVariable ["Male06GRE", [[
["A3\Sounds_F\characters\human-sfx\P15\Soundinjured_Low_1",1.4125376,1,10],
["A3\Sounds_F\characters\human-sfx\P15\Soundinjured_Low_2",1.4125376,1,10],
["A3\Sounds_F\characters\human-sfx\P15\Soundinjured_Low_3",1.4125376,1,10],
["A3\Sounds_F\characters\human-sfx\P15\Soundinjured_Low_4",1.4125376,1,10],
["A3\Sounds_F\characters\human-sfx\P15\Soundinjured_Low_5",1.4125376,1,10]
], [
["A3\Sounds_F\characters\human-sfx\P15\Soundinjured_Mid_1",1.5848932,1,15],
["A3\Sounds_F\characters\human-sfx\P15\Soundinjured_Mid_2",1.5848932,1,15],
["A3\Sounds_F\characters\human-sfx\P15\Soundinjured_Mid_3",1.5848932,1,15],
["A3\Sounds_F\characters\human-sfx\P15\Soundinjured_Mid_4",1.5848932,1,15],
["A3\Sounds_F\characters\human-sfx\P15\Soundinjured_Mid_5",1.5848932,1,15]
], [
["A3\Sounds_F\characters\human-sfx\P15\Soundinjured_Max_1",1.7782794,1,20],
["A3\Sounds_F\characters\human-sfx\P15\Soundinjured_Max_2",1.7782794,1,20],
["A3\Sounds_F\characters\human-sfx\P15\Soundinjured_Max_3",1.7782794,1,20],
["A3\Sounds_F\characters\human-sfx\P15\Soundinjured_Max_4",1.7782794,1,20],
["A3\Sounds_F\characters\human-sfx\P15\Soundinjured_Max_5",1.7782794,1,20]
]]];
GVAR(InjuredMoanNamespace) setVariable ["Male04GRE", [[
["A3\Sounds_F\characters\human-sfx\P16\Soundinjured_Low_1",1.4125376,1,10],
["A3\Sounds_F\characters\human-sfx\P16\Soundinjured_Low_2",1.4125376,1,10],
["A3\Sounds_F\characters\human-sfx\P16\Soundinjured_Low_3",1.4125376,1,10],
["A3\Sounds_F\characters\human-sfx\P16\Soundinjured_Low_4",1.4125376,1,10],
["A3\Sounds_F\characters\human-sfx\P16\Soundinjured_Low_5",1.4125376,1,10]
], [
["A3\Sounds_F\characters\human-sfx\P16\Soundinjured_Mid_1",1.5848932,1,15],
["A3\Sounds_F\characters\human-sfx\P16\Soundinjured_Mid_2",1.5848932,1,15],
["A3\Sounds_F\characters\human-sfx\P16\Soundinjured_Mid_3",1.5848932,1,15],
["A3\Sounds_F\characters\human-sfx\P16\Soundinjured_Mid_4",1.5848932,1,15],
["A3\Sounds_F\characters\human-sfx\P16\Soundinjured_Mid_5",1.5848932,1,15]
], [
["A3\Sounds_F\characters\human-sfx\P16\Soundinjured_Max_1",1.7782794,1,20],
["A3\Sounds_F\characters\human-sfx\P16\Soundinjured_Max_2",1.7782794,1,20],
["A3\Sounds_F\characters\human-sfx\P16\Soundinjured_Max_3",1.7782794,1,20],
["A3\Sounds_F\characters\human-sfx\P16\Soundinjured_Max_4",1.7782794,1,20],
["A3\Sounds_F\characters\human-sfx\P16\Soundinjured_Max_5",1.7782794,1,20]
]]];
GVAR(InjuredMoanNamespace) setVariable ["Male05ENGB", [[
["A3\Sounds_F\characters\human-sfx\P17\Soundinjured_Low_1",1.4125376,1,10],
["A3\Sounds_F\characters\human-sfx\P17\Soundinjured_Low_2",1.4125376,1,10],
["A3\Sounds_F\characters\human-sfx\P17\Soundinjured_Low_3",1.4125376,1,10],
["A3\Sounds_F\characters\human-sfx\P17\Soundinjured_Low_4",1.4125376,1,10],
["A3\Sounds_F\characters\human-sfx\P17\Soundinjured_Low_5",1.4125376,1,10]
], [
["A3\Sounds_F\characters\human-sfx\P17\Soundinjured_Mid_1",1.5848932,1,15],
["A3\Sounds_F\characters\human-sfx\P17\Soundinjured_Mid_2",1.5848932,1,15],
["A3\Sounds_F\characters\human-sfx\P17\Soundinjured_Mid_3",1.5848932,1,15],
["A3\Sounds_F\characters\human-sfx\P17\Soundinjured_Mid_4",1.5848932,1,15],
["A3\Sounds_F\characters\human-sfx\P17\Soundinjured_Mid_5",1.5848932,1,15]
], [
["A3\Sounds_F\characters\human-sfx\P17\Soundinjured_Max_1",1.7782794,1,20],
["A3\Sounds_F\characters\human-sfx\P17\Soundinjured_Max_2",1.7782794,1,20],
["A3\Sounds_F\characters\human-sfx\P17\Soundinjured_Max_3",1.7782794,1,20],
["A3\Sounds_F\characters\human-sfx\P17\Soundinjured_Max_4",1.7782794,1,20],
["A3\Sounds_F\characters\human-sfx\P17\Soundinjured_Max_5",1.7782794,1,20]
]]];
GVAR(InjuredMoanNamespace) setVariable ["Male05ENG", [[
["A3\Sounds_F\characters\human-sfx\P18\Soundinjured_Low_1",1.4125376,1,10],
["A3\Sounds_F\characters\human-sfx\P18\Soundinjured_Low_2",1.4125376,1,10],
["A3\Sounds_F\characters\human-sfx\P18\Soundinjured_Low_3",1.4125376,1,10],
["A3\Sounds_F\characters\human-sfx\P18\Soundinjured_Low_4",1.4125376,1,10],
["A3\Sounds_F\characters\human-sfx\P18\Soundinjured_Low_5",1.4125376,1,10]
], [
["A3\Sounds_F\characters\human-sfx\P18\Soundinjured_Mid_1",1.5848932,1,15],
["A3\Sounds_F\characters\human-sfx\P18\Soundinjured_Mid_2",1.5848932,1,15],
["A3\Sounds_F\characters\human-sfx\P18\Soundinjured_Mid_3",1.5848932,1,15],
["A3\Sounds_F\characters\human-sfx\P18\Soundinjured_Mid_4",1.5848932,1,15],
["A3\Sounds_F\characters\human-sfx\P18\Soundinjured_Mid_5",1.5848932,1,15]
], [
["A3\Sounds_F\characters\human-sfx\P18\Soundinjured_Max_1",1.7782794,1,20],
["A3\Sounds_F\characters\human-sfx\P18\Soundinjured_Max_2",1.7782794,1,20],
["A3\Sounds_F\characters\human-sfx\P18\Soundinjured_Max_3",1.7782794,1,20],
["A3\Sounds_F\characters\human-sfx\P18\Soundinjured_Max_4",1.7782794,1,20],
["A3\Sounds_F\characters\human-sfx\P18\Soundinjured_Max_5",1.7782794,1,20]
]]];
ADDON = true;

View File

@ -0,0 +1,3 @@
#include "script_component.hpp"
#include "XEH_PREP.hpp"

View File

@ -0,0 +1,23 @@
#include "script_component.hpp"
class CfgPatches {
class ADDON {
name = COMPONENT_NAME;
units[] = {};
weapons[] = {};
requiredVersion = REQUIRED_VERSION;
requiredAddons[] = {"ace_common"};
author = ECSTRING(common,ACETeam);
authors[] = {"Glowbal","KoffeinFlummi","commy2"};
url = ECSTRING(main,URL);
VERSION_CONFIG;
};
};
#include "CfgEventHandlers.hpp"
#include "CfgActions.hpp"
#include "CfgVehicles.hpp"
#include "CfgWeapons.hpp"
#include "CfgInGameUI.hpp"
#include "RscTitles.hpp"

View File

@ -0,0 +1,47 @@
/*
* Author: commy2
* Damages a body part of a local unit. Does not kill the unit.
*
* Arguments:
* 0: Unit <OBJECT>
* 1: Selection, can be "Head", "Body", "Arms" or "Legs" <STRING>
* 2: Damage (optional, default: 1) <BOOLEAN>
*
* Return Value:
* None
*
* Example:
* [player, "HEAD"] call ace_medical_engine_fnc_damageBodyPart
*
* Notes:
* Head: Blood visuals @ 0.45
* Body: Blood visuals @ 0.45
* Arms: Blood visuals @ 0.35, increases weapon sway linerarly
* Legs: Blood visuals @ 0.35, limping @ 0.5
*
* Public: No
*/
#include "script_component.hpp"
params [["_unit", objNull, [objNull]], ["_selection", "", [""]], ["_damage", 1, [0]]];
if (!local _unit) exitWith {
ACE_LOGERROR("Unit not local or null");
};
_damage = _damage min 0.99;
switch (toLower _selection) do {
case ("head"): {
_unit setHitPointDamage ["HitHead", _damage];
};
case ("body"): {
_unit setHitPointDamage ["HitBody", _damage];
};
case ("arms"): {
_unit setHitPointDamage ["HitHands", _damage];
};
case ("legs"): {
_unit setHitPointDamage ["HitLegs", _damage];
};
};

View File

@ -0,0 +1,105 @@
/*
* Author: commy2
* Main HandleDamage EH function for soldiers.
*
* Arguments:
* Handle damage EH
*
* Return Value:
* Damage to be inflicted <NUMBER>
*
* Public: No
*/
#include "script_component.hpp"
params ["_unit", "_selection", "_damage", "_shooter", "_ammo", "_hitPointIndex"];
//diag_log _this;
// HD sometimes triggers for remote units - ignore.
if (!local _unit) exitWith {nil};
// Get missing meta info
private ["_hitPoint", "_oldDamage"];
if (_hitPointIndex < 0) then {
_hitPoint = "#structural";
_oldDamage = damage _unit;
} else {
_hitPoint = toLower (getAllHitPointsDamage _unit select 0 select _hitPointIndex);
_oldDamage = _unit getHitIndex _hitPointIndex;
};
private _newDamage = _damage - _oldDamage;
_unit setVariable [format [QGVAR(newDamage$%1), _hitPoint], _newDamage];
// Never kill the unit by the critical hit points of the engine.
if (_hitPoint in ["#structural", "hitbody", "hithead"]) then {
_damage = _damage min 0.99;
};
// These control blood material visuals.
// If damage is in dummy hitpoints, "hands" and "legs", don't change anything
if (_hitPoint in ["hithead", "hitbody", "hithands", "hitlegs"]) exitWith {_oldDamage};
// Add injury
if (_hitPoint isEqualTo "ace_hdbracket") exitWith {
// --- Head
private _damageFace = _unit getVariable [QGVAR(newDamage$HitFace), 0];
private _damageNeck = _unit getVariable [QGVAR(newDamage$HitNeck), 0];
private _damageHead = (_unit getVariable [QGVAR(newDamage$HitHead), 0]) max _damageFace max _damageNeck;
// --- Body
private _damageStructural = _unit getVariable [QGVAR(newDamage$#structural), 0];
private _damagePelvis = _unit getVariable [QGVAR(newDamage$HitPelvis), 0];
private _damageAbdomen = _unit getVariable [QGVAR(newDamage$HitAbdomen), 0];
private _damageDiaphragm = _unit getVariable [QGVAR(newDamage$HitDiaphragm), 0];
private _damageChest = _unit getVariable [QGVAR(newDamage$HitChest), 0];
private _damageBody = (_unit getVariable [QGVAR(newDamage$HitBody), 0]) max _damagePelvis max _damageAbdomen max _damageDiaphragm max _damageChest max _damageStructural;
// --- Arms and Legs
private _damageLeftArm = _unit getVariable [QGVAR(newDamage$HitLeftArm), 0];
private _damageRightArm = _unit getVariable [QGVAR(newDamage$HitRightArm), 0];
private _damageLeftLeg = _unit getVariable [QGVAR(newDamage$HitLeftLeg), 0];
private _damageRightLeg = _unit getVariable [QGVAR(newDamage$HitRightLeg), 0];
// Find hit point that received the maxium damage.
private _allDamages = [
[_damageHead, "Head"],
[_damageBody, "Body"],
[_damageLeftArm, "LeftArm"],
[_damageRightArm, "RightArm"],
[_damageLeftLeg, "LeftLeg"],
[_damageRightLeg, "RightLeg"]
];
_allDamages sort false;
(_allDamages select 0) params ["_receivedDamage", "_woundedHitPoint"];
// Check for falling damage.
if (_ammo isEqualTo "") then {
if (velocity _unit select 2 < -2) then {
_woundedHitPoint = selectRandom ["LeftLeg", "RightLeg"];
_ammo = "#falling";
} else {
// Assume collision damage.
// @todo, find a method for detecting burning damage.
_woundedHitPoint = "Body";
_ammo = "#collision";
};
};
// Don't trigger for minor damage.
if (_receivedDamage > 1E-3) then {
[QGVAR(woundReceived), [_unit, _woundedHitPoint, _receivedDamage, _shooter, _ammo]] call CBA_fnc_localEvent;
};
0
};
// Check for drowning damage.
// Don't change the third expression. Safe method for FLOATs.
if (_hitPoint isEqualTo "#structural" && {getOxygenRemaining _unit <= 0.5} && {_damage isEqualTo (_oldDamage + 0.005)}) then {
[QGVAR(woundReceived), [_unit, "Body", _newDamage, _unit, "#drowning"]] call CBA_fnc_localEvent;
};
_damage

View File

@ -0,0 +1,80 @@
/*
* Author: commy2
* Play random injured sound for a unit. The sound is broadcasted across MP.
* Will not play if the unit has already played a sound within to close a time frame.
*
* Arguments:
* 0: Unit <OBJECT>
* 1: Type (optional) ["hit" (default) or "moan"] <STRING>
* 2: Severity (optional) [0 (default), 1, 2] <NUMBER>
*
* Return Value:
* None
*
* Example:
* [player, "hit", 1] call ace_medical_engine_fnc_playInjuredSound
*
* Public: No
*/
#include "script_component.hpp"
#define TIME_OUT 1
params [["_unit", objNull, [objNull]], ["_type", "hit", [""]], ["_severity", 0, [0]]];
if (!local _unit) exitWith {
ACE_LOGERROR("Unit not local or null");
};
// Handle timeout
if (_unit getVariable [QGVAR(soundTimeout), -1] > CBA_missionTime) exitWith {};
_unit setVariable [QGVAR(soundTimeout), CBA_missionTime + TIME_OUT];
// Get sounds
private _soundsNamespace = NAMESPACE_NULL;
switch (toLower _type) do {
case ("hit"): {
_soundsNamespace = GVAR(HitScreamNamespace);
};
case ("moan"): {
_soundsNamespace = GVAR(InjuredMoanNamespace);
};
};
// Get units speaker
private _speaker = speaker _unit;
if (_speaker == "ACE_NoVoice") then {
_speaker = _unit getVariable "ace_originalSpeaker";
};
private _sounds = _soundsNamespace getVariable _speaker;
if (isNil "_sounds") then {
_sounds = _soundsNamespace getVariable (_soundsNamespace getVariable "#default");
};
if (isNil "_sounds") exitWith {
ACE_LOGERROR("No sounds for speaker and no default found");
};
// Get correct sound of the speaker
_sounds = _sounds param [_severity, []];
(selectRandom _sounds) params ["_sound", ["_volume", 1], ["_frequency", 1], ["_distance", 80]];
if (isNil "_sound") exitWith {
ACE_LOGERROR("No sound for this speaker");
};
// Delete leading slash.
if (_sound select [0, 1] == "\") then {
_sound = _sound select [1];
};
// Default file extension.
if (_sound find "." == -1) then {
_sound = _sound + ".wss";
};
playSound3D [_sound, objNull, false, position _unit, _volume, _frequency, _distance];

View File

@ -0,0 +1,31 @@
/*
* Author: commy2
* Set structural damage of an object without modifying the individual hit points.
*
* Arguments:
* 0: Unit <OBJECT>
* 1: New damage value <NUMBER>
*
* Return Value:
* None
*
* Example:
* [player, 0.5] call ace_medical_engine_fnc_setStructuralDamage
*
* Public: No
*/
#include "script_component.hpp"
params [["_unit", objNull, [objNull]], ["_damage", 0, [0]]];
if (!local _unit) exitWith {
ACE_LOGERROR("Unit not local or null");
};
private _hitPointDamages = getAllHitPointsDamage _unit param [2, []];
_unit setDamage _damage;
{
_unit setHitIndex [_forEachIndex, _x];
} forEach _hitPointDamages;

View File

@ -0,0 +1 @@
#include "\z\ace\addons\medical_engine\script_component.hpp"

View File

@ -0,0 +1,29 @@
#define COMPONENT medical_engine
#define COMPONENT_BEAUTIFIED Medical (Engine)
#include "\z\ace\addons\main\script_mod.hpp"
#define DEBUG_MODE_FULL
// #define DISABLE_COMPILE_CACHE
// #define CBA_DEBUG_SYNCHRONOUS
// #define ENABLE_PERFORMANCE_COUNTERS
#ifdef DEBUG_ENABLED_MEDICAL_ENGINE
#define DEBUG_MODE_FULL
#endif
#ifdef DEBUG_SETTINGS_MEDICAL_ENGINE
#define DEBUG_SETTINGS DEBUG_SETTINGS_MEDICAL_ENGINE
#endif
#include "\z\ace\addons\main\script_macros.hpp"
#define DISABLE_VANILLA_SCREAMS
#define DISABLE_VANILLA_MOANS
#define DISABLE_VANILLA_HEARTBEAT
#define DISABLE_VANILLA_BLOOD_TEXTURES
#define DISABLE_VANILLA_DAMAGE_EFFECTS
#include "script_macros_medical.hpp"
#define EMPTY_SOUND {"A3\Sounds_F\dummysound.wss",1,1}
#define NAMESPACE_NULL locationNull

View File

@ -0,0 +1,64 @@
/*
Usage:
#include "\z\ace\addons\medical_engine\script_macros_medical.hpp"
class CfgVehicles {
class My_AwesomeUnit_base;
class My_AwesomeUnit: My_AwesomeUnit_base {
class HitPoints {
ADD_ACE_HITPOINTS(2,2);
};
};
};
*/
// Our method for adding left and right arm and leg armor. Uses those selections
// that are used for animations and therefore exist in all third party units
// usage: arm_armor and leg_armor are the armor values of of HitHands and
// HitLegs respectively.
// "ACE_HDBracket" is a special hit point. It is designed in a way where the
// "HandleDamage" event handler will compute it at the end of every damage
// calculation step. This way we can figure out which hit point took the most
// damage from one projectile and should be receiving the ACE medical wound.
// the hit point itself should not take any damage
// It is important that the "ACE_HDBracket" hit point is the last in the config,
// but has the same selection as the first one (always "HitHead" for soldiers).
#define ADD_ACE_HITPOINTS(arm_armor,leg_armor)\
class HitLeftArm {\
armor = arm_armor;\
material = -1;\
name = "hand_l";\
passThrough = 1;\
radius = 0.08;\
explosionShielding = 1;\
visual = "injury_hands";\
minimalHit = 0.01;\
};\
class HitRightArm: HitLeftArm {\
name = "hand_r";\
};\
class HitLeftLeg {\
armor = leg_armor;\
material = -1;\
name = "leg_l";\
passThrough = 1;\
radius = 0.1;\
explosionShielding = 1;\
visual = "injury_legs";\
minimalHit = 0.01;\
};\
class HitRightLeg: HitLeftLeg {\
name = "leg_r";\
};\
class ACE_HDBracket {\
armor = 1;\
material = -1;\
name = "head";\
passThrough = 1;\
radius = 1;\
explosionShielding = 1;\
visual = "";\
minimalHit = 0;\
depends = "HitHead";\
}