mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
Merge pull request #85 from KoffeinFlummi/cse_medical_port
PORT: CSE Medical
This commit is contained in:
commit
c57cf88965
@ -43,3 +43,19 @@ class Extended_Respawn_EventHandlers {
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class Extended_Killed_EventHandlers {
|
||||
class CAManBase {
|
||||
class GVAR(dropObject) {
|
||||
Killed = QUOTE(if (local (_this select 0)) then {[ARR_2(_this select 0, ObjNull)] call FUNC(carryObj)};);
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class Extended_GetIn_EventHandlers {
|
||||
class CAManBase {
|
||||
class GVAR(dropObject) {
|
||||
GetIn = QUOTE(if (local (_this select 0)) then {[ARR_2(_this select 0, ObjNull)] call FUNC(carryObj)};);
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -131,21 +131,6 @@ GVAR(OldPlayerTurret) = [ACE_player] call FUNC(getTurretIndex);
|
||||
|
||||
}, 0, []] call cba_fnc_addPerFrameHandler;
|
||||
|
||||
|
||||
[QGVAR(reviveCounter_f), 0, false, QGVAR(ADDON)] call FUNC(defineVariable);
|
||||
[QGVAR(inReviveState), false, true, QGVAR(ADDON)] call FUNC(defineVariable);
|
||||
[QGVAR(isDead),false,true,QUOTE(ADDON)] call FUNC(defineVariable);
|
||||
[QGVAR(isDeadPlayer), false, true, QUOTE(ADDON)] call FUNC(defineVariable);
|
||||
[QGVAR(StateArrested),false,true,QUOTE(ADDON)] call FUNC(defineVariable);
|
||||
["ACE_isUnconscious",false,true,QUOTE(ADDON)] call FUNC(defineVariable);
|
||||
[QGVAR(ENABLE_REVIVE_SETDEAD_F),0,false,QUOTE(ADDON)] call FUNC(defineVariable);
|
||||
[QGVAR(carriedBy),objNull,false,QUOTE(ADDON)] call FUNC(defineVariable);
|
||||
|
||||
if (isNil QGVAR(ENABLE_REVIVE_F)) then {
|
||||
GVAR(ENABLE_REVIVE_F) = 0;
|
||||
};
|
||||
|
||||
|
||||
[
|
||||
{((_this select 0) getvariable [QGVAR(inReviveState), false])}
|
||||
] call EFUNC(common,registerUnconsciousCondition);
|
||||
[QGVAR(carriedObj),objNull,false,QUOTE(ADDON)] call FUNC(defineVariable);
|
||||
|
@ -78,7 +78,6 @@ PREP(isAutoWind);
|
||||
PREP(isEngineer);
|
||||
PREP(isEOD);
|
||||
PREP(isInBuilding);
|
||||
PREP(isMedic);
|
||||
PREP(isPlayer);
|
||||
PREP(isTurnedOut);
|
||||
PREP(letterToCode);
|
||||
@ -212,11 +211,10 @@ PREP(getCanInteract);
|
||||
PREP(canInteract);
|
||||
PREP(resetAllDefaults_f);
|
||||
PREP(broadcastSound3D_f);
|
||||
PREP(setDead);
|
||||
|
||||
PREP(isAwake);
|
||||
PREP(setProne);
|
||||
|
||||
PREP(raiseScriptedEvent_f);
|
||||
PREP(setDisableUserInputStatus);
|
||||
|
||||
PREP(dropWeapon_f);
|
||||
@ -224,7 +222,6 @@ PREP(inWater_f);
|
||||
PREP(setVolume_f);
|
||||
PREP(closeAllDialogs_f);
|
||||
PREP(disableAI_f);
|
||||
PREP(moduleBasicRevive);
|
||||
PREP(switchToGroupSide_f);
|
||||
PREP(getFirstObjectIntersection);
|
||||
PREP(getFirstTerrainIntersection);
|
||||
@ -240,22 +237,18 @@ PREP(getCarriedObj);
|
||||
PREP(getCarriedBy);
|
||||
PREP(beingCarried);
|
||||
PREP(setCarriedBy);
|
||||
PREP(setUnconsciousState);
|
||||
PREP(isUnconscious);
|
||||
PREP(getUnconsciousCondition);
|
||||
PREP(registerUnconsciousCondition);
|
||||
PREP(setCaptiveSwitch);
|
||||
|
||||
|
||||
PREP(moveToTempGroup);
|
||||
PREP(canGoUnconsciousState);
|
||||
PREP(setWeaponsCorrectUnconscious);
|
||||
|
||||
|
||||
PREP(limitMovementSpeed);
|
||||
PREP(setArrestState);
|
||||
PREP(isArrested);
|
||||
PREP(loadPerson_F);
|
||||
PREP(loadPersonLocal_F);
|
||||
PREP(makeCopyOfBody_F);
|
||||
PREP(unloadPerson_F);
|
||||
PREP(cleanUpCopyOfBody_F);
|
||||
|
||||
|
||||
|
||||
ADDON = true;
|
||||
|
@ -5,7 +5,7 @@ class CfgPatches {
|
||||
units[] = {"ACE_Box_Misc"};
|
||||
weapons[] = {"ACE_ItemCore","ACE_FakePrimaryWeapon"};
|
||||
requiredVersion = REQUIRED_VERSION;
|
||||
requiredAddons[] = {"ace_main", "ace_gui"};
|
||||
requiredAddons[] = {"ace_main"};
|
||||
author[] = {"KoffeinFlummi"};
|
||||
authorUrl = "https://github.com/KoffeinFlummi/";
|
||||
VERSION_CONFIG;
|
||||
|
@ -36,12 +36,9 @@ if (((typeName _to) == "OBJECT" && (isNull ([_unit] call FUNC(getCarriedObj))))
|
||||
_to attachTo [_unit,(_this select 2)];
|
||||
[format["fnc_carryObj - UNIT: %1 TO %2 - attachTo offset: %3",_unit,_to,(_this select 2)],2] call FUNC(debug);
|
||||
};
|
||||
} else {
|
||||
[format["fnc_carryObj - UNIT: %1 TO %2 - Script expects external handling of attachTo Command. Exiting",_unit,_to],2] call FUNC(debug);
|
||||
};
|
||||
|
||||
[[_unit, _to, _fallDown],"carryObject"] call FUNC(raiseScriptedEvent_f);
|
||||
|
||||
["carryObject", [_unit], [_unit, _to, _fallDown]] call EFUNC(common,targetEvent);
|
||||
// ["carryObject", [_unit, _to, _fallDown]] call ace_common_fnc_localEvent;
|
||||
};
|
||||
} else {
|
||||
if (!isNull ([_unit] call FUNC(getCarriedObj))) then {
|
||||
@ -59,13 +56,14 @@ if (((typeName _to) == "OBJECT" && (isNull ([_unit] call FUNC(getCarriedObj))))
|
||||
_positionUnit set [2, ((getPosASL _unit) select 2) + 0.1];
|
||||
_carriedObj setPosASL _positionUnit;
|
||||
};
|
||||
[[_unit, _carriedObj],"carryObjectDropped"] call FUNC(raiseScriptedEvent_f);
|
||||
|
||||
[[_unit] call FUNC(getCarriedObj), objNull] call FUNC(setCarriedBy);
|
||||
_unit setvariable [QGVAR(carriedObj),_to,true];
|
||||
_return = true;
|
||||
|
||||
[[_unit, _to, _fallDown],"carryObject"] call FUNC(raiseScriptedEvent_f);
|
||||
["carryObjectDropped", [_unit], [_unit, _to, _fallDown]] call EFUNC(common,targetEvent);
|
||||
// ["carryObjectDropped", [_unit, _to, _fallDown]] call ace_common_fnc_localEvent;
|
||||
|
||||
};
|
||||
};
|
||||
} else {
|
||||
|
@ -16,21 +16,26 @@ private ["_msg", "_level", "_prefix", "_defaultLoglevel","_defaultLogDisplayLeve
|
||||
_msg = _this select 0;
|
||||
_level = if (count _this > 1) then {_this select 1} else { 2 };
|
||||
|
||||
if (typeName _level != "NUMBER") then {
|
||||
_level = 2;
|
||||
};
|
||||
|
||||
_defaultLoglevel = if (isNil QGVAR(LOGLEVEL)) then {
|
||||
DEFAULT_LOGGING_LEVEL;
|
||||
} else {
|
||||
GVAR(LOGLEVEL);
|
||||
};
|
||||
|
||||
if (_defaultLoglevel < 0) exitwith {
|
||||
false
|
||||
};
|
||||
|
||||
_defaultLogDisplayLevel = if (isnil QGVAR(LOGDISPLAY_LEVEL)) then {
|
||||
DEFAULT_TEXT_DISPLAY;
|
||||
} else {
|
||||
GVAR(LOGDISPLAY_LEVEL);
|
||||
};
|
||||
|
||||
if (_defaultLoglevel < 0) exitwith {
|
||||
false
|
||||
};
|
||||
if (_level <= _defaultLoglevel) then {
|
||||
|
||||
_prefix = switch (_level) do {
|
||||
@ -42,7 +47,7 @@ if (_level <= _defaultLoglevel) then {
|
||||
};
|
||||
_message = format["[%1] %2",_prefix,_msg];
|
||||
|
||||
if (_level >= _defaultLogDisplayLevel) then {
|
||||
if (_level <= _defaultLogDisplayLevel) then {
|
||||
systemChat _message;
|
||||
};
|
||||
diag_log _message;
|
||||
|
@ -37,4 +37,3 @@ GVAR(OBJECT_VARIABLES_STORAGE) pushback [_name,_value,_defaultGlobal,_catagory,_
|
||||
|
||||
missionNamespace setvariable [QGVAR(OBJECT_VARIABLES_STORAGE_) + _name, [_name,_value,_defaultGlobal,_catagory,_code, _persistent]];
|
||||
|
||||
[[_name,_value,_defaultGlobal,_catagory,_code, _persistent],"variableDefined"] call FUNC(raiseScriptedEvent_f);
|
||||
|
@ -43,7 +43,7 @@ if (_unit getVariable ["ACE_isUnconscious", false] && {!_force}) exitWith {
|
||||
};
|
||||
|
||||
// don't go unconscious if the unit isn't unconscious
|
||||
if (_animation == "Unconscious" && {!(_unit getVariable ["ACE_isUnconscious", false])}) exitWith {};
|
||||
if (_animation == "Unconscious" && {!((_unit getVariable ["ACE_isUnconscious", false]) || (_unit getVariable ["ACE_isDead", false]))}) exitWith {};
|
||||
|
||||
// switchMove "" no longer works in dev 1.37
|
||||
if (_animation == "") then {
|
||||
|
@ -12,4 +12,4 @@
|
||||
|
||||
private ["_unit","_return"];
|
||||
_unit = _this select 0;
|
||||
(!([_unit] call FUNC(isUnconscious))) && alive _unit && !(_unit getvariable [QGVAR(isDead),false]);
|
||||
(!(_unit getvariable ["ACE_isUnconscious",false]) && alive _unit && !(_unit getvariable ["ACE_isDead",false]));
|
||||
|
@ -1,18 +0,0 @@
|
||||
/*
|
||||
* Author: KoffeinFlummi
|
||||
*
|
||||
* Checks if a unit is a medic.
|
||||
*
|
||||
* Arguments:
|
||||
* 0: unit to be checked (object)
|
||||
*
|
||||
* Return Value:
|
||||
* Bool: is unit medic?
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
private ["_unit"];
|
||||
|
||||
_unit = _this select 0;
|
||||
|
||||
_unit getVariable ["ACE_isMedic", (getNumber(configFile >> "CfgVehicles" >> typeOf _unit >> "attendant") == 1)]
|
@ -1,64 +0,0 @@
|
||||
/**
|
||||
* fn_raiseScriptedEvent_f.sqf
|
||||
* @Descr: Execute a custom defined eventhandler.
|
||||
* @Author: Glowbal
|
||||
*
|
||||
* @Arguments: [arguments ANY, handle STRING (The name of the eventhandler)]
|
||||
* @Return: ARRAY Array containing the results of the called eventhandlers.
|
||||
* @PublicAPI: true
|
||||
*/
|
||||
|
||||
#include "script_component.hpp"
|
||||
|
||||
private ["_arguments","_handle","_ehCfg","_eventHandlerCollection","_eventHandlerName","_cfg","_code","_classType", "_return"];
|
||||
_arguments = _this select 0;
|
||||
_handle = _this select 1;
|
||||
|
||||
// TODO figure out how we want to handle custom eventhandlers
|
||||
|
||||
_eventHandlerName = (QGVAR(f_custom_eventhandlers_) + _handle);
|
||||
_eventHandlerCollection = missionNamespace getvariable _eventHandlerName;
|
||||
if (isnil "_eventHandlerCollection") then {
|
||||
_eventHandlerCollection = [];
|
||||
[format["caching Custom Eventhandler: %1",_handle]] call FUNC(debug);
|
||||
_cfg = (ConfigFile >> "ACE_Eventhandlers" >> "CustomEventHandlers" >> _handle);
|
||||
if (isClass _cfg) then {
|
||||
_numberOfEH = count _cfg;
|
||||
|
||||
for "_EHiterator" from 0 to (_numberOfEH -1) /* step +1 */ do {
|
||||
//for [{_EHiterator=0}, {(_EHiterator< _numberOfEH)}, {_EHiterator=_EHiterator+1}] do {
|
||||
_ehCfg = _cfg select _EHiterator;
|
||||
if (isClass _ehCfg) then {
|
||||
_classType = (ConfigName _ehCfg);
|
||||
_code = (compile getText(_ehCfg >> "onCall"));
|
||||
_eventHandlerCollection pushback [_classType, _code];
|
||||
true;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
_cfg = (MissionConfigFile >> "ACE_Eventhandlers" >> "CustomEventHandlers" >> _handle);
|
||||
if (isClass _cfg) then {
|
||||
_numberOfEH = count _cfg;
|
||||
for "_EHiterator" from 0 to (_numberOfEH -1) /* step +1 */ do {
|
||||
//for [{_EHiterator=0}, {(_EHiterator< _numberOfEH)}, {_EHiterator=_EHiterator+1}] do {
|
||||
_ehCfg = _cfg select _EHiterator;
|
||||
if (isClass _ehCfg) then {
|
||||
_classType = (ConfigName _ehCfg);
|
||||
_code = (compile getText(_ehCfg >> "onCall"));
|
||||
_eventHandlerCollection pushback [_classType, _code];
|
||||
true;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
missionNamespace setvariable [_eventHandlerName, _eventHandlerCollection];
|
||||
[format["Custom Eventhandler: %1 cache: %2",_handle, _eventHandlerCollection]] call FUNC(debug);
|
||||
};
|
||||
|
||||
_return = [];
|
||||
{
|
||||
_return pushback (_arguments call (_x select 1));
|
||||
}foreach _eventHandlerCollection;
|
||||
|
||||
_return
|
@ -13,13 +13,15 @@
|
||||
private ["_unit","_oldUnit","_sets"];
|
||||
_unit = _this select 0;
|
||||
|
||||
_unit setvariable [QGVAR(isDead),nil,true];
|
||||
_unit setvariable ["ACE_isDead",nil,true];
|
||||
_unit setvariable ["ACE_isUnconscious", nil, true];
|
||||
|
||||
if (isPlayer _unit) then {
|
||||
[true] call FUNC(setVolume_f);
|
||||
[false] call FUNC(disableKeyInput_f);
|
||||
[false] call EFUNC(GUI,effectBlackOut);
|
||||
if (["ace_medical"] call FUNC(isModLoader_f)) then {
|
||||
[false] call EFUNC(medical,effectBlackOut);
|
||||
};
|
||||
|
||||
if !(isnil QGVAR(DISABLE_USER_INPUT_COLLECTION_F)) then {
|
||||
// clear all disable user input
|
||||
@ -35,4 +37,3 @@ if (isPlayer _unit) then {
|
||||
};
|
||||
}foreach ([_unit] call FUNC(getAllDefinedSetVariables));
|
||||
|
||||
[[_unit],"resetToDefaults"] call FUNC(raiseScriptedEvent_f);
|
@ -42,4 +42,3 @@ if (_setArrest) then {
|
||||
};
|
||||
};
|
||||
|
||||
[[_unit, _setArrest],"setArrestState"] call FUNC(raiseScriptedEvent_f);
|
@ -44,5 +44,3 @@ if (_setVolume) then {
|
||||
player setVariable ["acre_sys_core_isDisabled", true, true];
|
||||
|
||||
};
|
||||
|
||||
[[_setVolume],"setVolume"] call FUNC(raiseScriptedEvent_f);
|
@ -62,5 +62,3 @@ if (_switch) then {
|
||||
reverse _previousGroupsList; // we have to reverse again, to ensure the list is in the right order.
|
||||
_unit setvariable [QGVAR(previousGroupSwitchTo_F), _previousGroupsList, true];
|
||||
};
|
||||
|
||||
[[_unit, _switch, _id, _side],"switchToGroupSide"] call FUNC(raiseScriptedEvent_f);
|
@ -176,76 +176,4 @@ class RscTitles {
|
||||
};
|
||||
};
|
||||
|
||||
class GVAR(ScreenEffectsBlack) {
|
||||
duration = 10e10;
|
||||
idd = 1111;
|
||||
movingenable = 0;
|
||||
onLoad = QUOTE(uiNamespace setVariable [ARR_2(QUOTE(QUOTE(GVAR(ScreenEffectsBlack))), _this select 0)]);
|
||||
|
||||
class controlsBackground {
|
||||
class blackScreen: ACE_gui_backgroundBase {
|
||||
text = QUOTE(PATHTOF(data\black_out.paa));
|
||||
colorText[] = {0.0, 0.0, 0.0, 0.0};
|
||||
idc = 11112;
|
||||
x = safezoneX;
|
||||
y = safezoneY;
|
||||
w = safezoneW;
|
||||
h = safezoneH;
|
||||
};
|
||||
};
|
||||
};
|
||||
class GVAR(ScreenEffectsBleeding) {
|
||||
duration = 1;
|
||||
idd = 1111;
|
||||
movingenable = 0;
|
||||
onLoad = QUOTE(uiNamespace setVariable [ARR_2(QUOTE(QUOTE(GVAR(ScreenEffectsBleeding))), _this select 0)]);
|
||||
|
||||
class controlsBackground {
|
||||
class bleedingScreen: ACE_gui_backgroundBase {
|
||||
text = QUOTE(PATHTOF(data\bleeding.paa));
|
||||
colorText[] = {0.9, 0.2, 0.2, 0.6};
|
||||
idc = 11113;
|
||||
x = safezoneX;
|
||||
y = safezoneY;
|
||||
w = safezoneW;
|
||||
h = safezoneH;
|
||||
};
|
||||
};
|
||||
};
|
||||
class GVAR(ScreenEffectsHit) {
|
||||
duration = 1.1;
|
||||
idd = 1111;
|
||||
movingenable = 0;
|
||||
onLoad = QUOTE(uiNamespace setVariable [ARR_2(QUOTE(QUOTE(GVAR(ScreenEffectsHit))), _this select 0)]);
|
||||
|
||||
class controlsBackground {
|
||||
class effectHit: ACE_gui_backgroundBase {
|
||||
text = QUOTE(PATHTOF(data\hit.paa));
|
||||
colorText[] = {0.7, 0.2, 0.2, 0.4};
|
||||
idc = 11113;
|
||||
x = safezoneX;
|
||||
y = safezoneY;
|
||||
w = safezoneW;
|
||||
h = safezoneH;
|
||||
};
|
||||
};
|
||||
};
|
||||
class GVAR(ScreenEffectsPain) {
|
||||
duration = 1;
|
||||
idd = 1111;
|
||||
movingenable = 0;
|
||||
onLoad = QUOTE(uiNamespace setVariable [ARR_2(QUOTE(QUOTE(GVAR(ScreenEffectsPain))), _this select 0)]);
|
||||
|
||||
class controlsBackground {
|
||||
class painScreen: ACE_gui_backgroundBase {
|
||||
text = QUOTE(PATHTOF(data\painScreen.paa));
|
||||
colorText[] = {1, 1, 1, 0.5};
|
||||
idc = 11115;
|
||||
x = safezoneX;
|
||||
y = safezoneY;
|
||||
w = safezoneW;
|
||||
h = safezoneH;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
@ -17,9 +17,6 @@ PREP(displayInformation);
|
||||
PREP(displayMessage);
|
||||
PREP(blurScreen);
|
||||
PREP(displayIcon);
|
||||
PREP(effectPain);
|
||||
PREP(effectBleeding);
|
||||
PREP(effectBlackOut);
|
||||
PREP(sendHintTo);
|
||||
PREP(sendMessageTo);
|
||||
PREP(sendDisplayInformationTo);
|
||||
|
1
addons/medical/$PBOPREFIX$
Normal file
1
addons/medical/$PBOPREFIX$
Normal file
@ -0,0 +1 @@
|
||||
z\ace\Addons\medical
|
35
addons/medical/CfgEventHandlers.hpp
Normal file
35
addons/medical/CfgEventHandlers.hpp
Normal file
@ -0,0 +1,35 @@
|
||||
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));
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
class Extended_Killed_Eventhandlers {
|
||||
class CaManBase {
|
||||
class ADDON {
|
||||
Killed = QUOTE(_this call FUNC(eh_killed));
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class Extended_Local_Eventhandlers {
|
||||
class CaManBase {
|
||||
class ADDON {
|
||||
Local = QUOTE(_this call FUNC(eh_local));
|
||||
};
|
||||
};
|
||||
};
|
||||
class Extended_Init_Eventhandlers {
|
||||
class CaManBase {
|
||||
class ADDON {
|
||||
init = QUOTE(_this call FUNC(onInitForUnit););
|
||||
};
|
||||
};
|
||||
};
|
7
addons/medical/CfgFactionClasses.hpp
Normal file
7
addons/medical/CfgFactionClasses.hpp
Normal file
@ -0,0 +1,7 @@
|
||||
class CfgFactionClasses
|
||||
{
|
||||
class NO_CATEGORY;
|
||||
class ACE_medical: NO_CATEGORY {
|
||||
displayName = "ACE Medical";
|
||||
};
|
||||
};
|
38
addons/medical/CfgHints.hpp
Normal file
38
addons/medical/CfgHints.hpp
Normal file
@ -0,0 +1,38 @@
|
||||
class CfgHints
|
||||
{
|
||||
class Combat_Space_Enhancement
|
||||
{
|
||||
displayName = "Combat Space Enhancement";
|
||||
class ACE_Module
|
||||
{
|
||||
displayName = "Combat Medical System";
|
||||
displayNameShort = "Combat Medical System";
|
||||
description = "Combat Medical System is an advanced medical system for players and AI.";
|
||||
tip = "";
|
||||
arguments[] = {};
|
||||
image = "";
|
||||
noImage = true;
|
||||
};
|
||||
class Assessment
|
||||
{
|
||||
displayName = "Patient Assessment";
|
||||
displayNameShort = "Patient Assessment";
|
||||
description = "It is essential when treating a casualty that you fully assess each of the areas of the casualty to determine not only the injuries but the priority of each in severity. <br> You cna assess a patient by clicking on the Assessment ICON <br> Use Check Pulse, check Blood Pressure and Check Response to get an overview.";
|
||||
tip = "Medics will get a faster and more accurate result when assessing patients.";
|
||||
arguments[] = {};
|
||||
image = "";
|
||||
noImage = true;
|
||||
};
|
||||
|
||||
class Bleeding
|
||||
{
|
||||
displayName = "Bandaging a wound";
|
||||
displayNameShort = "Bandaging a wound";
|
||||
description = "For casualties the first priority is to stop the bleeding. You will want to bandage the largest wounds first, before attending to the smaller ones. <br>You can apply a tourniquet on the limbs to stem the bleeding faster, but remember to remove it!";
|
||||
tip = "Select a wound in the injury list to bandage that one first!";
|
||||
arguments[] = {};
|
||||
image = "";
|
||||
noImage = true;
|
||||
};
|
||||
};
|
||||
};
|
45
addons/medical/CfgSounds.hpp
Normal file
45
addons/medical/CfgSounds.hpp
Normal file
@ -0,0 +1,45 @@
|
||||
class CfgSounds
|
||||
{
|
||||
class GVAR(heartbeat_fast_1)
|
||||
{
|
||||
name = QGVAR(heartbeat_fast_1);
|
||||
sound[] = {QUOTE(PATHTOF(sounds\heart_beats\fast_1.wav)),"db-1",1};
|
||||
titles[] = {};
|
||||
};
|
||||
class GVAR(heartbeat_fast_2)
|
||||
{
|
||||
name = QGVAR(heartbeat_fast_2);
|
||||
sound[] = {QUOTE(PATHTOF(sounds\heart_beats\fast_2.wav)),"db-1",1};
|
||||
titles[] = {};
|
||||
};
|
||||
class GVAR(heartbeat_fast_3)
|
||||
{
|
||||
name = QGVAR(heartbeat_fast_3);
|
||||
sound[] = {QUOTE(PATHTOF(sounds\heart_beats\fast_3.wav)),"db-1",1};
|
||||
titles[] = {};
|
||||
};
|
||||
class GVAR(heartbeat_norm_1)
|
||||
{
|
||||
name = QGVAR(heartbeat_norm_1);
|
||||
sound[] = {QUOTE(PATHTOF(sounds\heart_beats\norm_1.wav)),"db-1",1};
|
||||
titles[] = {};
|
||||
};
|
||||
class GVAR(heartbeat_norm_2)
|
||||
{
|
||||
name = QGVAR(heartbeat_norm_2);
|
||||
sound[] = {QUOTE(PATHTOF(sounds\heart_beats\norm_2.wav)),"db-1",1};
|
||||
titles[] = {};
|
||||
};
|
||||
class GVAR(heartbeat_slow_1)
|
||||
{
|
||||
name = QGVAR(heartbeat_slow_1);
|
||||
sound[] = {QUOTE(PATHTOF(sounds\heart_beats\slow_1.wav)),"db-1",1};
|
||||
titles[] = {};
|
||||
};
|
||||
class GVAR(heartbeat_slow_2)
|
||||
{
|
||||
name = QGVAR(heartbeat_slow_2);
|
||||
sound[] = {QUOTE(PATHTOF(sounds\heart_beats\slow_2.wav)),"db-1",1};
|
||||
titles[] = {};
|
||||
};
|
||||
};
|
1039
addons/medical/CfgVehicles.hpp
Normal file
1039
addons/medical/CfgVehicles.hpp
Normal file
File diff suppressed because it is too large
Load Diff
317
addons/medical/CfgWeapons.hpp
Normal file
317
addons/medical/CfgWeapons.hpp
Normal file
@ -0,0 +1,317 @@
|
||||
class CfgWeapons {
|
||||
class ItemCore;
|
||||
class InventoryItem_Base_F;
|
||||
class ACE_bandage_basic: ItemCore
|
||||
{
|
||||
scope = 2;
|
||||
value = 1;
|
||||
count = 1;
|
||||
type = 16;
|
||||
displayName = $STR_ACE_MAG_BANDAGE_BASIC_DISPLAY;
|
||||
picture = QUOTE(PATHTOF(equipment\img\field_dressing.paa));
|
||||
model = QUOTE(PATHTOF(equipment\bandages\fielddressing.p3d));
|
||||
descriptionShort = $STR_ACE_MAG_BANDAGE_BASIC_DESC_SHORT;
|
||||
descriptionUse = $STR_ACE_MAG_BANDAGE_BASIC_DESC_USE;
|
||||
class ItemInfo: InventoryItem_Base_F
|
||||
{
|
||||
mass=0.5;
|
||||
type=201;
|
||||
};
|
||||
};
|
||||
class ACE_packing_bandage: ItemCore
|
||||
{
|
||||
scope = 2;
|
||||
value = 1;
|
||||
count = 1;
|
||||
type = 16;
|
||||
displayName = $STR_ACE_MAG_PACKING_BANDAGE_DISPLAY;
|
||||
picture = QUOTE(PATHTOF(equipment\img\packing_bandage.paa));
|
||||
model = QUOTE(PATHTOF(equipment\bandages\packingbandage.p3d));
|
||||
descriptionShort = $STR_ACE_MAG_PACKING_BANDAGE_DESC_SHORT;
|
||||
descriptionUse = $STR_ACE_MAG_PACKING_BANDAGE_DESC_USE;
|
||||
class ItemInfo: InventoryItem_Base_F
|
||||
{
|
||||
mass=1;
|
||||
type=201;
|
||||
};
|
||||
};
|
||||
class ACE_bandageElastic: ItemCore {
|
||||
scope = 2;
|
||||
value = 1;
|
||||
count = 1;
|
||||
type = 16;
|
||||
displayName = $STR_ACE_MAG_BANDAGE_ELASTIC_DISPLAY;
|
||||
picture = QUOTE(PATHTOF(equipment\img\bandageElastic.paa));
|
||||
model = "\A3\Structures_F_EPA\Items\Medical\Bandage_F.p3d";
|
||||
descriptionShort = $STR_ACE_MAG_BANDAGE_ELASTIC_DESC_SHORT;
|
||||
descriptionUse = $STR_ACE_MAG_BANDAGE_ELASTIC_DESC_USE;
|
||||
class ItemInfo: InventoryItem_Base_F
|
||||
{
|
||||
mass=1;
|
||||
type=201;
|
||||
};
|
||||
};
|
||||
class ACE_tourniquet: ItemCore
|
||||
{
|
||||
scope = 2;
|
||||
value = 1;
|
||||
count = 1;
|
||||
type = 16;
|
||||
displayName = $STR_ACE_MAG_TOURNIQUET_DISPLAY;
|
||||
picture = QUOTE(PATHTOF(equipment\img\tourniquet.paa));
|
||||
model = QUOTE(PATHTOF(equipment\Tourniquet.p3d));
|
||||
descriptionShort = $STR_ACE_MAG_TOURNIQUET_DESC_SHORT;
|
||||
descriptionUse = $STR_ACE_MAG_TOURNIQUET_DESC_USE;
|
||||
class ItemInfo: InventoryItem_Base_F
|
||||
{
|
||||
mass=1;
|
||||
type=201;
|
||||
};
|
||||
};
|
||||
class ACE_splint: ItemCore
|
||||
{
|
||||
scope = 2;
|
||||
value = 1;
|
||||
count = 1;
|
||||
type = 16;
|
||||
displayName = $STR_ACE_MAG_SPLINT_DISPLAY;
|
||||
picture = QUOTE(PATHTOF(equipment\img\splint.paa));
|
||||
descriptionUse = $STR_ACE_MAG_SPLINT_DESC_USE;
|
||||
descriptionShort = $STR_ACE_MAG_SPLINT_DESC_SHORT;
|
||||
class ItemInfo: InventoryItem_Base_F
|
||||
{
|
||||
mass=1;
|
||||
type=201;
|
||||
};
|
||||
};
|
||||
class ACE_morphine: ItemCore
|
||||
{
|
||||
scope = 2;
|
||||
value = 1;
|
||||
count = 1;
|
||||
type = 16;
|
||||
displayName = $STR_ACE_MAG_MORPHINE_DISPLAY;
|
||||
picture = QUOTE(PATHTOF(equipment\img\morphine.paa));
|
||||
model = QUOTE(PATHTOF(equipment\Morphinpen.p3d));
|
||||
descriptionShort = $STR_ACE_MAG_MORPHINE_DESC_SHORT;
|
||||
descriptionUse = $STR_ACE_MAG_MORPHINE_DESC_USE;
|
||||
class ItemInfo: InventoryItem_Base_F
|
||||
{
|
||||
mass=1;
|
||||
type=201;
|
||||
};
|
||||
};
|
||||
class ACE_atropine: ItemCore {
|
||||
scope = 2;
|
||||
value = 1;
|
||||
count = 1;
|
||||
type = 16;
|
||||
displayName = $STR_ACE_MAG_ATROPINE_DISPLAY;
|
||||
picture = QUOTE(PATHTOF(equipment\img\atropine.paa));
|
||||
model = QUOTE(PATHTOF(equipment\Atropin-pen.p3d));
|
||||
descriptionShort = $STR_ACE_MAG_ATROPINE_DESC_SHORT;
|
||||
descriptionUse = $STR_ACE_MAG_ATROPINE_DESC_USE;
|
||||
class ItemInfo: InventoryItem_Base_F
|
||||
{
|
||||
mass=1;
|
||||
type=201;
|
||||
};
|
||||
};
|
||||
class ACE_epinephrine: ItemCore {
|
||||
scope = 2;
|
||||
value = 1;
|
||||
count = 1;
|
||||
type = 16;
|
||||
displayName = $STR_ACE_MAG_EPINEPHRINE_DISPLAY;
|
||||
picture = QUOTE(PATHTOF(equipment\img\epinephrine.paa));
|
||||
model = QUOTE(PATHTOF(equipment\Epipen.p3d));
|
||||
descriptionShort = $STR_ACE_MAG_EPINEPHRINE_DESC_SHORT;
|
||||
descriptionUse = $STR_ACE_MAG_EPINEPHRINE_DESC_USE;
|
||||
class ItemInfo: InventoryItem_Base_F
|
||||
{
|
||||
mass=1;
|
||||
type=201;
|
||||
};
|
||||
};
|
||||
class ACE_plasma_iv: ItemCore {
|
||||
scope = 2;
|
||||
value = 1;
|
||||
count = 1;
|
||||
displayName = $STR_ACE_MAG_PLASMA_IV;
|
||||
picture = QUOTE(PATHTOF(equipment\img\plasma_iv.paa));
|
||||
descriptionShort = $STR_ACE_MAG_PLASMA_IV_DESC_SHORT;
|
||||
descriptionUse = $STR_ACE_MAG_PLASMA_IV_DESC_USE;
|
||||
class ItemInfo: InventoryItem_Base_F
|
||||
{
|
||||
mass=1;
|
||||
type=201;
|
||||
};
|
||||
};
|
||||
class ACE_plasma_iv_500: ACE_plasma_iv {
|
||||
displayName = $STR_ACE_MAG_PLASMA_IV_500;
|
||||
};
|
||||
class ACE_plasma_iv_250: ACE_plasma_iv_500 {
|
||||
displayName = $STR_ACE_MAG_PLASMA_IV_250;
|
||||
};
|
||||
class ACE_blood_iv: ItemCore {
|
||||
scope = 2;
|
||||
value = 1;
|
||||
count = 1;
|
||||
model = "\A3\Structures_F_EPA\Items\Medical\BloodBag_F.p3d";
|
||||
displayName = $STR_ACE_MAG_BLOOD_IV;
|
||||
picture = QUOTE(PATHTOF(equipment\img\bloodbag.paa));
|
||||
descriptionShort = $STR_ACE_MAG_BLOOD_IV_DESC_SHORT;
|
||||
descriptionUse = $STR_ACE_MAG_BLOOD_IV_DESC_USE;
|
||||
class ItemInfo: InventoryItem_Base_F
|
||||
{
|
||||
mass=1;
|
||||
type=201;
|
||||
};
|
||||
};
|
||||
class ACE_blood_iv_500: ACE_blood_iv {
|
||||
displayName = $STR_ACE_MAG_BLOOD_IV_500;
|
||||
};
|
||||
class ACE_blood_iv_250: ACE_blood_iv_500 {
|
||||
displayName = $STR_ACE_MAG_BLOOD_IV_250;
|
||||
};
|
||||
class ACE_saline_iv: ItemCore {
|
||||
scope = 2;
|
||||
value = 1;
|
||||
count = 1;
|
||||
displayName = $STR_ACE_MAG_SALINE_IV;
|
||||
picture = QUOTE(PATHTOF(equipment\img\saline_iv.paa));
|
||||
descriptionShort = $STR_ACE_MAG_SALINE_IV_DESC_SHORT;
|
||||
descriptionUse = $STR_ACE_MAG_SALINE_IV_DESC_USE;
|
||||
class ItemInfo: InventoryItem_Base_F
|
||||
{
|
||||
mass=1;
|
||||
type=201;
|
||||
};
|
||||
};
|
||||
class ACE_saline_iv_500: ACE_saline_iv {
|
||||
displayName = $STR_ACE_MAG_SALINE_IV_500;
|
||||
};
|
||||
class ACE_saline_iv_250: ACE_saline_iv_500 {
|
||||
displayName = $STR_ACE_MAG_SALINE_IV_250;
|
||||
};
|
||||
class ACE_quikclot: ItemCore {
|
||||
scope = 2;
|
||||
value = 1;
|
||||
count = 1;
|
||||
type = 16;
|
||||
displayName = $STR_ACE_MAG_QUIKCLOT_DISPLAY;
|
||||
picture = QUOTE(PATHTOF(equipment\img\quickclot.paa));
|
||||
descriptionShort = $STR_ACE_MAG_QUIKCLOT_DESC_SHORT;
|
||||
descriptionUse = $STR_ACE_MAG_QUIKCLOT_DESC_USE;
|
||||
class ItemInfo: InventoryItem_Base_F
|
||||
{
|
||||
mass=1;
|
||||
type=201;
|
||||
};
|
||||
};
|
||||
class ACE_nasopharyngeal_tube: ItemCore {
|
||||
scope = 2;
|
||||
value = 1;
|
||||
count = 1;
|
||||
type = 16;
|
||||
displayName = $STR_ACE_MAG_NPA_DISPLAY;
|
||||
picture = QUOTE(PATHTOF(equipment\img\nasopharyngeal_tube.paa));
|
||||
descriptionUse = $STR_ACE_MAG_NPA_DESC_USE;
|
||||
descriptionShort = $STR_ACE_MAG_NPA_DESC_SHORT;
|
||||
class ItemInfo: InventoryItem_Base_F
|
||||
{
|
||||
mass=1;
|
||||
type=201;
|
||||
};
|
||||
};
|
||||
class ACE_opa: ItemCore {
|
||||
scope = 2;
|
||||
value = 1;
|
||||
count = 1;
|
||||
type = 16;
|
||||
displayName = $STR_ACE_MAG_OPA_DISPLAY;
|
||||
picture = QUOTE(PATHTOF(equipment\img\nasopharyngeal_tube.paa));
|
||||
descriptionShort = $STR_ACE_MAG_OPA_DESC_SHORT;
|
||||
descriptionUse = $STR_ACE_MAG_OPA_DESC_USE;
|
||||
class ItemInfo: InventoryItem_Base_F
|
||||
{
|
||||
mass=1;
|
||||
type=201;
|
||||
};
|
||||
};
|
||||
class ACE_liquidSkin: ItemCore {
|
||||
scope = 2;
|
||||
value = 1;
|
||||
count = 1;
|
||||
type = 16;
|
||||
displayName = $STR_ACE_MAG_LIQUID_SKIN_DISPLAY;
|
||||
picture = QUOTE(PATHTOF(equipment\img\liquidSkin.paa));
|
||||
model = QUOTE(PATHTOF(equipment\skinliquid.p3d));
|
||||
descriptionShort = $STR_ACE_MAG_LIQUID_SKIN_DESC_SHORT;
|
||||
descriptionUse = $STR_ACE_MAG_LIQUID_SKIN_DESC_USE;
|
||||
class ItemInfo: InventoryItem_Base_F
|
||||
{
|
||||
mass=1;
|
||||
type=201;
|
||||
};
|
||||
};
|
||||
class ACE_chestseal: ItemCore {
|
||||
scope = 2;
|
||||
value = 1;
|
||||
count = 1;
|
||||
type = 16;
|
||||
displayName = $STR_ACE_MAG_CHEST_SEAL_DISPLAY;
|
||||
picture = QUOTE(PATHTOF(equipment\img\chestseal.paa));
|
||||
descriptionShort = $STR_ACE_MAG_CHEST_SEAL_DESC_SHORT;
|
||||
descriptionUse = $STR_ACE_MAG_CHEST_SEAL_DESC_USE;
|
||||
class ItemInfo: InventoryItem_Base_F
|
||||
{
|
||||
mass=1;
|
||||
type=201;
|
||||
};
|
||||
};
|
||||
class ACE_personal_aid_kit: ItemCore {
|
||||
scope = 2;
|
||||
value = 1;
|
||||
count = 1;
|
||||
type = 16;
|
||||
displayName = $STR_ACE_MAG_AID_KIT_DISPLAY;
|
||||
picture = QUOTE(PATHTOF(equipment\img\personal_aid_kit.paa));
|
||||
model = QUOTE(PATHTOF(equipment\Personal-aidkits\MTP.p3d));
|
||||
descriptionShort = $STR_ACE_MAG_AID_KIT_DESC_SHORT;
|
||||
descriptionUse = $STR_ACE_MAG_AID_KIT_DESC_USE;
|
||||
class ItemInfo: InventoryItem_Base_F
|
||||
{
|
||||
mass=2;
|
||||
type=201;
|
||||
};
|
||||
};
|
||||
class ACE_surgical_kit: ItemCore
|
||||
{
|
||||
scope=2;
|
||||
displayName= $STR_ACE_MAG_SURGICALKIT_DISPLAY;
|
||||
model = QUOTE(PATHTOF(equipment\surgical_kit.p3d));
|
||||
picture = QUOTE(PATHTOF(equipment\img\surgical_kit.paa));
|
||||
descriptionShort = $STR_ACE_MAG_SURGICALKIT_DESC_SHORT;
|
||||
descriptionUse = $STR_ACE_MAG_SURGICALKIT_DESC_USE;
|
||||
class ItemInfo: InventoryItem_Base_F
|
||||
{
|
||||
mass= 5;
|
||||
type=201;
|
||||
};
|
||||
};
|
||||
class ACE_itemBodyBag: ItemCore
|
||||
{
|
||||
scope=2;
|
||||
displayName= $STR_ACE_MAG_BODYBAG_DISPLAY;
|
||||
model = QUOTE(PATHTOF(equipment\bodybagItem.p3d));
|
||||
picture = QUOTE(PATHTOF(equipment\img\bodybag.paa));
|
||||
descriptionShort = $STR_ACE_MAG_BODYBAG_DESC_SHORT;
|
||||
descriptionUse = $STR_ACE_MAG_BODYBAG_DESC_USE;
|
||||
class ItemInfo: InventoryItem_Base_F
|
||||
{
|
||||
mass= 15;
|
||||
type=201;
|
||||
};
|
||||
};
|
||||
};
|
245
addons/medical/XEH_postInit.sqf
Normal file
245
addons/medical/XEH_postInit.sqf
Normal file
@ -0,0 +1,245 @@
|
||||
/**
|
||||
* XEH_postInit.sqf
|
||||
* @Descr: N/A
|
||||
* @Author: Glowbal
|
||||
*
|
||||
* @Arguments: []
|
||||
* @Return:
|
||||
* @PublicAPI: false
|
||||
*/
|
||||
|
||||
#include "script_component.hpp"
|
||||
#include "variable_defines.sqf"
|
||||
|
||||
GVAR(injuredUnitCollection) = [];
|
||||
[{
|
||||
{
|
||||
if (!alive _x || !local _x) then {
|
||||
GVAR(injuredUnitCollection) set [ _forEachIndex, ObjNull];
|
||||
} else {
|
||||
[_x] call FUNC(handleUnitVitals);
|
||||
|
||||
private "_pain";
|
||||
_pain = _X getvariable [QGVAR(amountOfPain), 0];
|
||||
if (_pain > 5 && (random(1) > 0.5)) then {
|
||||
_x setvariable [QGVAR(amountOfPain), _pain + 0.002];
|
||||
};
|
||||
if (_pain > 45) then {
|
||||
if (random(1) > 0.6) then {
|
||||
[_X] call FUNC(setUnconsciousState);
|
||||
};
|
||||
//[_X] call FUNC(playInjuredSound);
|
||||
};
|
||||
};
|
||||
}foreach GVAR(injuredUnitCollection);
|
||||
GVAR(injuredUnitCollection) = GVAR(injuredUnitCollection) - [ObjNull];
|
||||
}, 1, [] ] call CBA_fnc_addPerFrameHandler;
|
||||
|
||||
[
|
||||
{(([_this select 0,QGVAR(bloodVolume)] call EFUNC(common,getDefinedVariable)) < 65)},
|
||||
{(([_this select 0,QGVAR(amountOfPain)] call EFUNC(common,getDefinedVariable)) > 48)},
|
||||
{(((_this select 0) call FUNC(getBloodLoss)) > 0.25)},
|
||||
{((_this select 0) getvariable ["ACE_inReviveState", false])}
|
||||
] call FUNC(registerUnconsciousCondition);
|
||||
|
||||
call FUNC(handleDisplayEffects);
|
||||
|
||||
// Assigning all eventhandlers
|
||||
["Medical_treatmentCompleted", FUNC(onTreatmentCompleted)] call ace_common_fnc_addEventHandler;
|
||||
["onStartMovingUnit", FUNC(onStartMovingUnit)] call ace_common_fnc_addEventHandler;
|
||||
["onUnconscious", FUNC(onUnconscious)] call ace_common_fnc_addEventHandler;
|
||||
["carryObjectDropped", FUNC(onCarryObjectDropped)] call ace_common_fnc_addEventHandler;
|
||||
|
||||
if (isNil QGVAR(ENABLE_REVIVE_F)) then {
|
||||
GVAR(ENABLE_REVIVE_F) = 0;
|
||||
};
|
||||
|
||||
|
||||
// Keybindings
|
||||
GVAR(keyPressed) = false;
|
||||
|
||||
["ACE3",
|
||||
localize "STR_ACE_OPEN_CMS_MENU_DESC",
|
||||
{ if (!GVAR(keyPressed)) then {
|
||||
GVAR(keyPressed) = true;
|
||||
GVAR(timeMenuOpened) = time;
|
||||
[] call FUNC(openMenu);
|
||||
|
||||
true;
|
||||
} else {
|
||||
false;
|
||||
};
|
||||
},
|
||||
[ 0, [false, false, false]],
|
||||
false,
|
||||
"keydown"] call cba_fnc_registerKeybind;
|
||||
|
||||
["ACE3",
|
||||
localize "STR_ACE_OPEN_CMS_MENU_DESC",
|
||||
{
|
||||
GVAR(keyPressed) = false;
|
||||
if (time - GVAR(timeMenuOpened) >= (0.25*accTime)) then {
|
||||
disableSerialization;
|
||||
_display = uiNamespace getVariable QGVAR(medicalMenu);
|
||||
if (!isnil "_display") then {
|
||||
closeDialog 314412;
|
||||
};
|
||||
};
|
||||
false;
|
||||
},
|
||||
[ 0, [false, false, false]],
|
||||
false,
|
||||
"keyUp"] call cba_fnc_registerKeybind;
|
||||
|
||||
|
||||
// Adding the treatment options for all available medical equipment.
|
||||
|
||||
// Advanced Treatment options
|
||||
ADD_TREATMENT_ADVANCED("STR_ACE_ACTION_BLOODIV_1000ml","STR_ACE_ACTION_BLOODIV_1000ML_TOOLTIP",'ACE_blood_iv');
|
||||
ADD_TREATMENT_ADVANCED("STR_ACE_ACTION_BLOODIV_500ml","STR_ACE_ACTION_BLOODIV_500ML_TOOLTIP",'ACE_blood_iv_500');
|
||||
ADD_TREATMENT_ADVANCED("STR_ACE_ACTION_BLOODIV_250ml","STR_ACE_ACTION_BLOODIV_250ML_TOOLTIP",'ACE_blood_iv_250');
|
||||
ADD_TREATMENT_ADVANCED("STR_ACE_ACTION_PLASMAIV_1000ml","STR_ACE_ACTION_PLASMAIV_1000ML_TOOLTIP",'ACE_plasma_iv');
|
||||
ADD_TREATMENT_ADVANCED("STR_ACE_ACTION_PLASMAIV_500ml","STR_ACE_ACTION_PLASMAIV_500ML_TOOLTIP",'ACE_plasma_iv_500');
|
||||
ADD_TREATMENT_ADVANCED("STR_ACE_ACTION_PLASMAIV_250ml","STR_ACE_ACTION_PLASMAIV_250ML_TOOLTIP",'ACE_plasma_iv_250');
|
||||
ADD_TREATMENT_ADVANCED("STR_ACE_ACTION_SALINEIV_1000ml","STR_ACE_ACTION_SALINEIV_1000ML_TOOLTIP",'ACE_saline_iv');
|
||||
ADD_TREATMENT_ADVANCED("STR_ACE_ACTION_SALINEIV_500ml","STR_ACE_ACTION_SALINEIV_500ML_TOOLTIP",'ACE_saline_iv_500');
|
||||
ADD_TREATMENT_ADVANCED("STR_ACE_ACTION_SALINEIV_250ml","STR_ACE_ACTION_SALINEIV_250ML_TOOLTIP",'ACE_saline_iv_250');
|
||||
|
||||
["STR_ACE_ACTION_PERSONAL_AID_KIT","STR_ACE_ACTION_PERSONAL_AID_KIT_TOOLTIP",{
|
||||
_caller = _this select 0;
|
||||
_target = _this select 1;
|
||||
if !([_this select 0,_this select 1, 'ACE_personal_aid_kit'] call FUNC(hasEquipment)) exitwith {
|
||||
false;
|
||||
};
|
||||
_inMedFacility = ([_caller] call FUNC(inMedicalFacility));
|
||||
_hasOpenWounds = ([_target] call FUNC(hasOpenWounds));
|
||||
|
||||
if ((GVAR(setting_aidKitRestrictions) == 0 && _inMedFacility) ||
|
||||
(GVAR(setting_aidKitRestrictions) == 1 && _inMedFacility && (!_hasOpenWounds)) ||
|
||||
(GVAR(setting_aidKitRestrictions) == 2) ||
|
||||
(GVAR(setting_aidKitRestrictions) == 3 && (!_hasOpenWounds))) exitwith {
|
||||
|
||||
((GVAR(setting_aidKitMedicsOnly) && [_caller] call FUNC(isMedic) || !GVAR(setting_aidKitMedicsOnly)));
|
||||
};
|
||||
false;
|
||||
},TREATMENT_ADVANCED('ACE_personal_aid_kit'),'advanced'] call FUNC(addTreatmentOption);
|
||||
|
||||
["STR_ACE_ACTION_PERFORM_CPR","STR_ACE_ACTION_PERFORM_CPR_TOOLTIP",{
|
||||
_caller = _this select 0;
|
||||
_target = _this select 1;
|
||||
|
||||
(!(_caller getvariable[QGVAR(isProvidingCPR), false]) && ((_target getvariable [QGVAR(inCardiacArrest),false]) || !([_target] call EFUNC(common,isAwake))))
|
||||
},TREATMENT_ADVANCED('ACE_CPR'),'advanced'] call FUNC(addTreatmentOption);
|
||||
|
||||
["STR_ACE_ACTION_STOP_CPR","STR_ACE_ACTION_STOP_CPR_TOOLTIP",{
|
||||
_caller = _this select 0;
|
||||
_target = _this select 1;
|
||||
|
||||
(_caller getvariable[QGVAR(isProvidingCPR), false])
|
||||
},{((_this select 0) setvariable[QGVAR(isProvidingCPR), nil, true])},'advanced'] call FUNC(addTreatmentOption);
|
||||
|
||||
["STR_ACE_ACTION_STITCHING","STR_ACE_ACTION_STITCHING_TOOLTIP",{
|
||||
_caller = _this select 0;
|
||||
_target = _this select 1;
|
||||
|
||||
((GVAR(setting_allowStitching) == 0 && [_Caller] call FUNC(isMedic)) || GVAR(setting_allowStitching) == 1)
|
||||
},TREATMENT_ADVANCED('ACE_surgical_kit'),'advanced'] call FUNC(addTreatmentOption);
|
||||
|
||||
// Airway Management
|
||||
["STR_ACE_ACTION_APPLY_NPA","STR_ACE_ACTION_APPLY_NPA_TOOLTIP",{
|
||||
_caller = _this select 0;
|
||||
_target = _this select 1;
|
||||
if !([_this select 0,_this select 1, 'ACE_nasopharyngeal_tube'] call FUNC(hasEquipment)) exitwith {
|
||||
false;
|
||||
};
|
||||
(!([_target, QGVAR(airwayTreated)] call EFUNC(common,getDefinedVariable)) && !([_target] call EFUNC(common,isAwake)))
|
||||
},TREATMENT_AIRWAY('ACE_nasopharyngeal_tube'),'advanced'] call FUNC(addTreatmentOption);
|
||||
|
||||
["STR_ACE_ACTION_REMOVE_NPA","STR_ACE_ACTION_REMOVE_NPA_TOOLTIP",{
|
||||
_caller = _this select 0;
|
||||
_target = _this select 1;
|
||||
([_target, QGVAR(airwayTreated)] call EFUNC(common,getDefinedVariable));
|
||||
}, {GVAR(INTERACTION_TARGET) setvariable [QGVAR(airwayTreated), nil, true]; (_this select 0) addItem 'ACE_nasopharyngeal_tube';},'airway'] call FUNC(addTreatmentOption);
|
||||
|
||||
|
||||
// Bandaging
|
||||
ADD_TREATMENT_BANDAGE("STR_ACE_ACTION_BANDAGE_BASIC","STR_ACE_ACTION_BANDAGE_BASIC_TOOLTIP",'ACE_bandage_basic');
|
||||
ADD_TREATMENT_BANDAGE("STR_ACE_ACTION_QUIKCLOT","STR_ACE_ACTION_QUIKCLOT_TOOLTIP",'ACE_quikclot');
|
||||
ADD_TREATMENT_BANDAGE("STR_ACE_ACTION_BANDAGE_ELASTIC","STR_ACE_ACTION_BANDAGE_ELASTIC_TOOLTIP",'ACE_bandageElastic');
|
||||
ADD_TREATMENT_BANDAGE("STR_ACE_ACTION_PACKING_BANDAGE","STR_ACE_ACTION_PACKING_BANDAGE_TOOLTIP",'ACE_packing_bandage');
|
||||
|
||||
["STR_ACE_ACTION_REMOVE_TOURNIQUET","STR_ACE_ACTION_REMOVE_TOURNIQUET_TOOLTIP",{
|
||||
_caller = _this select 0;
|
||||
_target = _this select 1;
|
||||
([_target, call FUNC(getSelectedBodyPart)] call FUNC(hasTourniquetAppliedTo));
|
||||
},{[_this select 0,_this select 1,call FUNC(getSelectedBodyPart)] call FUNC(actionRemoveTourniquet)},'bandage'] call FUNC(addTreatmentOption);
|
||||
|
||||
["STR_ACE_ACTION_APPLY_TOURNIQUET","STR_ACE_ACTION_APPLY_TOURNIQUET_TOOLTIP",{
|
||||
_caller = _this select 0;
|
||||
_target = _this select 1;
|
||||
(!([_target, call FUNC(getSelectedBodyPart)] call FUNC(hasTourniquetAppliedTo)) && ([_caller,_target,'ACE_tourniquet'] call FUNC(hasEquipment)));
|
||||
},TREATMENT_BANDAGE('ACE_tourniquet'),'bandage'] call FUNC(addTreatmentOption);
|
||||
|
||||
|
||||
// Medication
|
||||
ADD_TREATMENT_MEDICATION("STR_ACE_ACTION_MORPHINE","STR_ACE_ACTION_MORPHINE_TOOLTIP",'ACE_morphine');
|
||||
ADD_TREATMENT_MEDICATION("STR_ACE_ACTION_ATROPINE","STR_ACE_ACTION_ATROPINE_TOOLTIP",'ACE_atropine');
|
||||
ADD_TREATMENT_MEDICATION("STR_ACE_ACTION_EPINEPHRINE","STR_ACE_ACTION_EPINEPHRINE_TOOLTIP",'ACE_epinephrine');
|
||||
|
||||
|
||||
// Examine
|
||||
["STR_ACE_ACTION_CHECK_PULSE","STR_ACE_ACTION_CHECK_PULSE_TOOLTIP",{
|
||||
true;
|
||||
},{[_this select 0,_this select 1] call FUNC(actionCheckPulse)},'examine'] call FUNC(addTreatmentOption);
|
||||
|
||||
["STR_ACE_ACTION_CHECK_BP","STR_ACE_ACTION_CHECK_BP_TOOLTIP",{
|
||||
true;
|
||||
},{[_this select 0,_this select 1] call FUNC(actionCheckBloodPressure);},'examine'] call FUNC(addTreatmentOption);
|
||||
|
||||
["STR_ACE_ACTION_CHECK_RESPONSE","STR_ACE_ACTION_CHECK_RESPONSE_TOOLTIP",{
|
||||
true;
|
||||
},{[_this select 0,_this select 1] call FUNC(actionCheckResponse)},'examine'] call FUNC(addTreatmentOption);
|
||||
|
||||
|
||||
// Drag/Movement
|
||||
["STR_ACE_ACTION_DRAG_PATIENT","STR_ACE_ACTION_DRAG_PATIENT_TOOLTIP",{
|
||||
_caller = _this select 0;
|
||||
_target = _this select 1;
|
||||
|
||||
(isNull ([_caller] call EFUNC(common,getCarriedObj)) && isNull ([_target] call EFUNC(common,getCarriedObj)) && (_caller != _target) && (vehicle _target == _target));
|
||||
}, {[_this select 0,_this select 1] call FUNC(actionDragUnit)},'drag'] call FUNC(addTreatmentOption);
|
||||
|
||||
["STR_ACE_ACTION_CARRY_PATIENT","STR_ACE_ACTION_CARRY_PATIENT_TOOLTIP",{
|
||||
_caller = _this select 0;
|
||||
_target = _this select 1;
|
||||
|
||||
(isNull ([_caller] call EFUNC(common,getCarriedObj)) && isNull ([_target] call EFUNC(common,getCarriedObj)) && (_caller != _target) && (vehicle _target == _target));
|
||||
}, {[_this select 0,_this select 1] call FUNC(actionCarryUnit)},'drag'] call FUNC(addTreatmentOption);
|
||||
|
||||
["STR_ACE_ACTION_BODYBAG","STR_ACE_ACTION_BODYBAG_TOOLTIP",{
|
||||
_caller = _this select 0;
|
||||
_target = _this select 1;
|
||||
|
||||
(isNull ([_caller] call EFUNC(common,getCarriedObj)) && isNull ([_target] call EFUNC(common,getCarriedObj)) && (_caller != _target) && (vehicle _target == _target) && ([_caller, _target] call FUNC(canPutInBodyBag)));
|
||||
}, {[_this select 0,_this select 1] call FUNC(actionPlaceInBodyBag)},'drag'] call FUNC(addTreatmentOption);
|
||||
|
||||
["STR_ACE_ACTION_DROP_PATIENT","STR_ACE_ACTION_DROP_PATIENT_TOOLTIP",{
|
||||
_caller = _this select 0;
|
||||
_target = _this select 1;
|
||||
|
||||
(!(isNull ([_caller] call EFUNC(common,getCarriedObj))) && ([_caller] call FUNC(isMovingUnit)));
|
||||
}, {[_this select 0,_this select 1] call FUNC(actionDropUnit)},'drag'] call FUNC(addTreatmentOption);
|
||||
|
||||
["STR_ACE_ACTION_LOAD_PATIENT","STR_ACE_ACTION_LOAD_PATIENT_TOOLTIP",{
|
||||
_caller = _this select 0;
|
||||
_target = _this select 1;
|
||||
|
||||
((vehicle _target == _target));
|
||||
}, {[_this select 0,_this select 1] call FUNC(actionLoadUnit)},'drag'] call FUNC(addTreatmentOption);
|
||||
|
||||
["STR_ACE_ACTION_UNLOAD_PATIENT","STR_ACE_ACTION_UNLOAD_PATIENT_TOOLTIP",{
|
||||
_caller = _this select 0;
|
||||
_target = _this select 1;
|
||||
|
||||
((vehicle _target != _target));
|
||||
}, {[_this select 0,_this select 1] call FUNC(actionUnloadUnit)},'drag'] call FUNC(addTreatmentOption);
|
169
addons/medical/XEH_preInit.sqf
Normal file
169
addons/medical/XEH_preInit.sqf
Normal file
@ -0,0 +1,169 @@
|
||||
/**
|
||||
* XEH_preInit);
|
||||
* @Descr: N/A
|
||||
* @Author: Glowbal
|
||||
*
|
||||
* @Arguments: []
|
||||
* @Return:
|
||||
* @PublicAPI: false
|
||||
*/
|
||||
|
||||
#include "script_component.hpp"
|
||||
|
||||
PREP(actionCarryUnit);
|
||||
PREP(ActioncheckBloodPressure);
|
||||
PREP(ActionCheckBloodPressureLocal);
|
||||
PREP(ActionCheckPulse);
|
||||
PREP(actionCheckPulseLocal);
|
||||
PREP(actionCheckResponse);
|
||||
PREP(actionDragUnit);
|
||||
PREP(actionDropUnit);
|
||||
PREP(actionLoadUnit);
|
||||
PREP(actionPlaceInBodyBag);
|
||||
PREP(actionRemoveTourniquet);
|
||||
PREP(actionUnloadUnit);
|
||||
|
||||
PREP(addActivityToLog);
|
||||
PREP(addHeartRateAdjustment);
|
||||
PREP(addOpenWounds);
|
||||
PREP(addToInjuredCollection);
|
||||
PREP(addToQuickViewLog);
|
||||
PREP(addToTriageList);
|
||||
PREP(addTreatmentOption);
|
||||
|
||||
PREP(canAccessMedicalEquipment);
|
||||
PREP(canPutInBodyBag);
|
||||
PREP(determineIfFatal);
|
||||
PREP(determineIfUnconscious);
|
||||
PREP(fromNumberToBodyPart);
|
||||
|
||||
PREP(effectPain);
|
||||
PREP(effectBleeding);
|
||||
PREP(effectBlackOut);
|
||||
|
||||
PREP(getActivityLog);
|
||||
PREP(getBloodLoss);
|
||||
PREP(getBloodPressure);
|
||||
PREP(getBloodVolumeChange);
|
||||
PREP(getBodyPartNumber);
|
||||
PREP(getCardiacOutput);
|
||||
PREP(getCurrentSelectedInjuryData);
|
||||
PREP(getHeartRateChange);
|
||||
PREP(getNewDamageBodyPart);
|
||||
PREP(getQuickViewLog);
|
||||
PREP(getSelectedBodyPart);
|
||||
PREP(getTreatmentOptions);
|
||||
PREP(getTriageList);
|
||||
PREP(getTriageStatus);
|
||||
PREP(getTypeOfDamage);
|
||||
|
||||
// Handling events & actions
|
||||
PREP(handleBandageOpening);
|
||||
PREP(handleDamage);
|
||||
PREP(handleDisplayEffects);
|
||||
PREP(handleHeal);
|
||||
PREP(handleReactionHit);
|
||||
PREP(handleTreatment);
|
||||
PREP(handleTreatment_Action_AdvancedLocal);
|
||||
PREP(handleTreatment_Action_AirwayLocal);
|
||||
PREP(handleTreatment_Action_BandageLocal);
|
||||
PREP(handleTreatment_Action_CPR);
|
||||
PREP(handleTreatment_Action_CPRLocal);
|
||||
PREP(handleTreatment_Action_fullHeal);
|
||||
PREP(handleTreatment_Action_fullHealLocal);
|
||||
PREP(handleTreatment_Action_MedicationLocal);
|
||||
PREP(handleTreatment_Action_Stitching);
|
||||
PREP(handleTreatment_Action_tourniquet);
|
||||
PREP(handleTreatment_Action_tourniquetLocal);
|
||||
PREP(handleTreatment_Category_Advanced);
|
||||
PREP(handleTreatment_Category_Airway);
|
||||
PREP(handleTreatment_Category_Bandaging);
|
||||
PREP(handleTreatment_Category_Medication);
|
||||
PREP(handleUI_DisplayOptions);
|
||||
PREP(handleUI_dropDownTriageCard);
|
||||
PREP(handleUnitVitals);
|
||||
PREP(handleDropUnit);
|
||||
|
||||
PREP(hasEquipment);
|
||||
PREP(hasMedicalEnabled);
|
||||
PREP(hasOpenWounds);
|
||||
PREP(hasTourniquetAppliedTo);
|
||||
|
||||
PREP(increasePain);
|
||||
PREP(initalizeModuleCMS);
|
||||
PREP(inMedicalFacility);
|
||||
PREP(isMedic);
|
||||
PREP(isMedicalVehicle);
|
||||
PREP(isSetTreatmentMutex);
|
||||
PREP(isMovingUnit);
|
||||
|
||||
PREP(moduleAssignMedicalEquipment);
|
||||
PREP(moduleAssignMedicalFacility);
|
||||
PREP(moduleAssignMedicalVehicle);
|
||||
PREP(moduleAssignMedicRoles);
|
||||
PREP(moduleDamageSettings);
|
||||
|
||||
PREP(onInitForUnit);
|
||||
PREP(onInjury_assignAirwayStatus);
|
||||
PREP(onInjury_assignFractures);
|
||||
PREP(onInjury_assignOpenWounds);
|
||||
PREP(onKilled);
|
||||
PREP(onLocal);
|
||||
PREP(onMenuOpen);
|
||||
PREP(onTreatmentCompleted);
|
||||
PREP(onUnconscious);
|
||||
PREP(onStartMovingUnit);
|
||||
PREP(onCarryObjectDropped);
|
||||
PREP(onDamage);
|
||||
|
||||
PREP(openMenu);
|
||||
PREP(playInjuredSound);
|
||||
PREP(setCardiacArrest);
|
||||
PREP(setDamageBodyPart);
|
||||
PREP(setDead);
|
||||
PREP(setMedicRole);
|
||||
PREP(setTriageStatus);
|
||||
PREP(treatmentMutex);
|
||||
|
||||
PREP(updateActivityLog);
|
||||
PREP(updateBodyImg);
|
||||
PREP(updateIcons);
|
||||
PREP(updateUIInfo);
|
||||
|
||||
PREP(useEquipment);
|
||||
PREP(cacheHandledamageCall);
|
||||
PREP(checkDamage);
|
||||
|
||||
|
||||
PREP(setUnconsciousState);
|
||||
PREP(isUnconscious);
|
||||
PREP(getUnconsciousCondition);
|
||||
PREP(registerUnconsciousCondition);
|
||||
PREP(cleanUpCopyOfBody_F);
|
||||
PREP(makeCopyOfBody_F);
|
||||
PREP(canGoUnconsciousState);
|
||||
PREP(setDead);
|
||||
PREP(moduleBasicRevive);
|
||||
|
||||
PREP(setWeaponsCorrectUnconscious);
|
||||
PREP(setCaptiveSwitch);
|
||||
|
||||
|
||||
// initalize all module parameters.
|
||||
GVAR(setting_allowInstantDead) = true;
|
||||
GVAR(setting_AdvancedLevel) = 0;
|
||||
GVAR(setting_advancedWoundsSetting) = false;
|
||||
GVAR(setting_advancedMedicRoles) = false;
|
||||
GVAR(setting_medicalDifficulty) = 1;
|
||||
GVAR(setting_enableBandagingAid) = true;
|
||||
GVAR(setting_allowAIFullHeal) = false;
|
||||
GVAR(setting_enableForUnits) = 1;
|
||||
GVAR(setting_allowAirwayInjuries) = false;
|
||||
GVAR(setting_aidKitRestrictions) = 0;
|
||||
GVAR(setting_removeAidKitOnUse) = true;
|
||||
GVAR(setting_aidKitMedicsOnly) = false;
|
||||
GVAR(setting_bandageWaitingTime) = 5;
|
||||
GVAR(setting_allowVehicleCrashInjuries) = true;
|
||||
GVAR(setting_allowStitching) = 0;
|
||||
|
||||
ADDON = true;
|
31
addons/medical/config.cpp
Normal file
31
addons/medical/config.cpp
Normal file
@ -0,0 +1,31 @@
|
||||
#include "script_component.hpp"
|
||||
|
||||
class CfgPatches
|
||||
{
|
||||
class ADDON
|
||||
{
|
||||
units[] = {"ACE_medical_supply_crate_cms", "ACE_bandage_basicItem","ACE_packing_bandageItem","ACE_bandageElasticItem","ACE_tourniquetItem","ACE_splintItem","ACE_morphineItem","ACE_atropineItem","ACE_epinephrineItem","ACE_plasma_ivItem","ACE_plasma_iv_500Item","ACE_plasma_iv250Item","ACE_blood_ivItem","ACE_blood_iv_500Item","ACE_blood_iv_250Item","ACE_saline_ivItem","ACE_saline_iv_500Item","ACE_saline_iv_250Item","ACE_quikclotItem","ACE_nasopharyngeal_tubeItem","ACE_opaItem","ACE_liquidSkinItem","ACE_chestsealItem","ACE_personal_aid_kitItem"};
|
||||
weapons[] = {"ACE_surgical_kit"};
|
||||
requiredVersion = REQUIRED_VERSION;
|
||||
requiredAddons[] = {"ACE_gui","ACE_common"};
|
||||
version = VERSION;
|
||||
author[] = {$STR_ACE_Common_ACETeam, "Glowbal"};
|
||||
authorUrl = "http://csemod.com";
|
||||
};
|
||||
};
|
||||
class CfgAddons {
|
||||
class PreloadAddons {
|
||||
class ADDON {
|
||||
list[] = {QUOTE(ADDON)};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
#include "CfgEventHandlers.hpp"
|
||||
#include "CfgFactionClasses.hpp"
|
||||
#include "CfgWeapons.hpp"
|
||||
#include "CfgSounds.hpp"
|
||||
#include "CfgVehicles.hpp"
|
||||
#include "ui\define.hpp"
|
||||
#include "ui\menu.hpp"
|
||||
#include "ui\RscTitles.hpp"
|
BIN
addons/medical/data/ACE_medical_module.paa
Normal file
BIN
addons/medical/data/ACE_medical_module.paa
Normal file
Binary file not shown.
BIN
addons/medical/data/background_img.paa
Normal file
BIN
addons/medical/data/background_img.paa
Normal file
Binary file not shown.
BIN
addons/medical/data/body_arm_left.paa
Normal file
BIN
addons/medical/data/body_arm_left.paa
Normal file
Binary file not shown.
BIN
addons/medical/data/body_arm_right.paa
Normal file
BIN
addons/medical/data/body_arm_right.paa
Normal file
Binary file not shown.
BIN
addons/medical/data/body_arms.paa
Normal file
BIN
addons/medical/data/body_arms.paa
Normal file
Binary file not shown.
BIN
addons/medical/data/body_background.paa
Normal file
BIN
addons/medical/data/body_background.paa
Normal file
Binary file not shown.
BIN
addons/medical/data/body_head.paa
Normal file
BIN
addons/medical/data/body_head.paa
Normal file
Binary file not shown.
BIN
addons/medical/data/body_img-arms.paa
Normal file
BIN
addons/medical/data/body_img-arms.paa
Normal file
Binary file not shown.
BIN
addons/medical/data/body_img-head.paa
Normal file
BIN
addons/medical/data/body_img-head.paa
Normal file
Binary file not shown.
BIN
addons/medical/data/body_img-legs.paa
Normal file
BIN
addons/medical/data/body_img-legs.paa
Normal file
Binary file not shown.
BIN
addons/medical/data/body_img-torso.paa
Normal file
BIN
addons/medical/data/body_img-torso.paa
Normal file
Binary file not shown.
BIN
addons/medical/data/body_leg_left.paa
Normal file
BIN
addons/medical/data/body_leg_left.paa
Normal file
Binary file not shown.
BIN
addons/medical/data/body_leg_right.paa
Normal file
BIN
addons/medical/data/body_leg_right.paa
Normal file
Binary file not shown.
BIN
addons/medical/data/body_legs.paa
Normal file
BIN
addons/medical/data/body_legs.paa
Normal file
Binary file not shown.
BIN
addons/medical/data/body_torso.paa
Normal file
BIN
addons/medical/data/body_torso.paa
Normal file
Binary file not shown.
BIN
addons/medical/data/border_arm_left.paa
Normal file
BIN
addons/medical/data/border_arm_left.paa
Normal file
Binary file not shown.
BIN
addons/medical/data/border_arm_right.paa
Normal file
BIN
addons/medical/data/border_arm_right.paa
Normal file
Binary file not shown.
BIN
addons/medical/data/border_head.paa
Normal file
BIN
addons/medical/data/border_head.paa
Normal file
Binary file not shown.
BIN
addons/medical/data/border_leg_left.paa
Normal file
BIN
addons/medical/data/border_leg_left.paa
Normal file
Binary file not shown.
BIN
addons/medical/data/border_leg_right.paa
Normal file
BIN
addons/medical/data/border_leg_right.paa
Normal file
Binary file not shown.
BIN
addons/medical/data/border_torso.paa
Normal file
BIN
addons/medical/data/border_torso.paa
Normal file
Binary file not shown.
BIN
addons/medical/data/buttonDisabled_gradient.paa
Normal file
BIN
addons/medical/data/buttonDisabled_gradient.paa
Normal file
Binary file not shown.
BIN
addons/medical/data/buttonNormal_gradient.paa
Normal file
BIN
addons/medical/data/buttonNormal_gradient.paa
Normal file
Binary file not shown.
BIN
addons/medical/data/buttonNormal_gradient2.paa
Normal file
BIN
addons/medical/data/buttonNormal_gradient2.paa
Normal file
Binary file not shown.
BIN
addons/medical/data/buttonNormal_gradient3.paa
Normal file
BIN
addons/medical/data/buttonNormal_gradient3.paa
Normal file
Binary file not shown.
BIN
addons/medical/data/buttonNormal_gradient_top.paa
Normal file
BIN
addons/medical/data/buttonNormal_gradient_top.paa
Normal file
Binary file not shown.
BIN
addons/medical/data/icons/advanced_treatment_small.paa
Normal file
BIN
addons/medical/data/icons/advanced_treatment_small.paa
Normal file
Binary file not shown.
BIN
addons/medical/data/icons/airway_management_small.paa
Normal file
BIN
addons/medical/data/icons/airway_management_small.paa
Normal file
Binary file not shown.
BIN
addons/medical/data/icons/bandage_fracture_small.paa
Normal file
BIN
addons/medical/data/icons/bandage_fracture_small.paa
Normal file
Binary file not shown.
BIN
addons/medical/data/icons/examine_patient_small.paa
Normal file
BIN
addons/medical/data/icons/examine_patient_small.paa
Normal file
Binary file not shown.
BIN
addons/medical/data/icons/icon_advanced_treatment.paa
Normal file
BIN
addons/medical/data/icons/icon_advanced_treatment.paa
Normal file
Binary file not shown.
BIN
addons/medical/data/icons/icon_airway_management.paa
Normal file
BIN
addons/medical/data/icons/icon_airway_management.paa
Normal file
Binary file not shown.
BIN
addons/medical/data/icons/icon_bandage_fracture.paa
Normal file
BIN
addons/medical/data/icons/icon_bandage_fracture.paa
Normal file
Binary file not shown.
BIN
addons/medical/data/icons/icon_bleeding.paa
Normal file
BIN
addons/medical/data/icons/icon_bleeding.paa
Normal file
Binary file not shown.
BIN
addons/medical/data/icons/icon_carry.paa
Normal file
BIN
addons/medical/data/icons/icon_carry.paa
Normal file
Binary file not shown.
BIN
addons/medical/data/icons/icon_examine_patient.paa
Normal file
BIN
addons/medical/data/icons/icon_examine_patient.paa
Normal file
Binary file not shown.
BIN
addons/medical/data/icons/icon_medication.paa
Normal file
BIN
addons/medical/data/icons/icon_medication.paa
Normal file
Binary file not shown.
BIN
addons/medical/data/icons/icon_toggle_self.paa
Normal file
BIN
addons/medical/data/icons/icon_toggle_self.paa
Normal file
Binary file not shown.
BIN
addons/medical/data/icons/icon_tourniquet.paa
Normal file
BIN
addons/medical/data/icons/icon_tourniquet.paa
Normal file
Binary file not shown.
BIN
addons/medical/data/icons/icon_tourniquet_small.paa
Normal file
BIN
addons/medical/data/icons/icon_tourniquet_small.paa
Normal file
Binary file not shown.
BIN
addons/medical/data/icons/icon_triage_card.paa
Normal file
BIN
addons/medical/data/icons/icon_triage_card.paa
Normal file
Binary file not shown.
BIN
addons/medical/data/icons/medication_small.paa
Normal file
BIN
addons/medical/data/icons/medication_small.paa
Normal file
Binary file not shown.
BIN
addons/medical/data/icons/toggle_self_small.paa
Normal file
BIN
addons/medical/data/icons/toggle_self_small.paa
Normal file
Binary file not shown.
BIN
addons/medical/data/icons/triage_card_small.paa
Normal file
BIN
addons/medical/data/icons/triage_card_small.paa
Normal file
Binary file not shown.
BIN
addons/medical/data/ui_background.paa
Normal file
BIN
addons/medical/data/ui_background.paa
Normal file
Binary file not shown.
BIN
addons/medical/equipment/Atropin-pen.p3d
Normal file
BIN
addons/medical/equipment/Atropin-pen.p3d
Normal file
Binary file not shown.
BIN
addons/medical/equipment/Atropin-pen_used.p3d
Normal file
BIN
addons/medical/equipment/Atropin-pen_used.p3d
Normal file
Binary file not shown.
BIN
addons/medical/equipment/Bandage elastic.p3d
Normal file
BIN
addons/medical/equipment/Bandage elastic.p3d
Normal file
Binary file not shown.
BIN
addons/medical/equipment/Bandage-Pack.p3d
Normal file
BIN
addons/medical/equipment/Bandage-Pack.p3d
Normal file
Binary file not shown.
BIN
addons/medical/equipment/Bandage-elastic.p3d
Normal file
BIN
addons/medical/equipment/Bandage-elastic.p3d
Normal file
Binary file not shown.
BIN
addons/medical/equipment/Epipen.p3d
Normal file
BIN
addons/medical/equipment/Epipen.p3d
Normal file
Binary file not shown.
BIN
addons/medical/equipment/Epipen_used.p3d
Normal file
BIN
addons/medical/equipment/Epipen_used.p3d
Normal file
Binary file not shown.
BIN
addons/medical/equipment/Morphinpen.p3d
Normal file
BIN
addons/medical/equipment/Morphinpen.p3d
Normal file
Binary file not shown.
BIN
addons/medical/equipment/Morphinpen_used.p3d
Normal file
BIN
addons/medical/equipment/Morphinpen_used.p3d
Normal file
Binary file not shown.
BIN
addons/medical/equipment/Personal-aidkits/MTP.p3d
Normal file
BIN
addons/medical/equipment/Personal-aidkits/MTP.p3d
Normal file
Binary file not shown.
BIN
addons/medical/equipment/Personal-aidkits/data/MTP_co.paa
Normal file
BIN
addons/medical/equipment/Personal-aidkits/data/MTP_co.paa
Normal file
Binary file not shown.
BIN
addons/medical/equipment/Personal-aidkits/data/Mulitcam.paa
Normal file
BIN
addons/medical/equipment/Personal-aidkits/data/Mulitcam.paa
Normal file
Binary file not shown.
@ -0,0 +1,32 @@
|
||||
ambient[]={1,1,1,1};
|
||||
diffuse[]={0.5,0.5,0.5,1};
|
||||
forcedDiffuse[]={0.5,0.5,0.5,0};
|
||||
emmisive[]={0,0,0,1};
|
||||
specular[]={0.30000001,0.30000001,0.30000001,0};
|
||||
specularPower=100;
|
||||
PixelShaderID="NormalMapSpecularDIMap";
|
||||
VertexShaderID="NormalMap";
|
||||
class Stage1
|
||||
{
|
||||
texture="z\ace\addons\medical\equipment\Personal-aidkits\data\Personalaidkit_nohq.paa";
|
||||
uvSource="tex";
|
||||
class uvTransform
|
||||
{
|
||||
aside[]={1,0,0};
|
||||
up[]={0,1,0};
|
||||
dir[]={0,0,1};
|
||||
pos[]={0,0,0};
|
||||
};
|
||||
};
|
||||
class Stage2
|
||||
{
|
||||
texture="z\ace\addons\medical\equipment\Personal-aidkits\data\Personalaidkit_smdi.paa";
|
||||
uvSource="tex";
|
||||
class uvTransform
|
||||
{
|
||||
aside[]={1,0,0};
|
||||
up[]={0,1,0};
|
||||
dir[]={0,0,1};
|
||||
pos[]={0,0,0};
|
||||
};
|
||||
};
|
Binary file not shown.
Binary file not shown.
BIN
addons/medical/equipment/QuickClot.p3d
Normal file
BIN
addons/medical/equipment/QuickClot.p3d
Normal file
Binary file not shown.
BIN
addons/medical/equipment/Tourniquet.p3d
Normal file
BIN
addons/medical/equipment/Tourniquet.p3d
Normal file
Binary file not shown.
BIN
addons/medical/equipment/bandages/fielddressing.p3d
Normal file
BIN
addons/medical/equipment/bandages/fielddressing.p3d
Normal file
Binary file not shown.
32
addons/medical/equipment/bandages/fielddressing.rvmat
Normal file
32
addons/medical/equipment/bandages/fielddressing.rvmat
Normal file
@ -0,0 +1,32 @@
|
||||
ambient[]={1,1,1,1};
|
||||
diffuse[]={0.5,0.5,0.5,1};
|
||||
forcedDiffuse[]={0.5,0.5,0.5,0};
|
||||
emmisive[]={0,0,0,1};
|
||||
specular[]={0.30000001,0.30000001,0.30000001,0};
|
||||
specularPower=57.799999;
|
||||
PixelShaderID="NormalMapSpecularDIMap";
|
||||
VertexShaderID="NormalMap";
|
||||
class Stage1
|
||||
{
|
||||
texture="z\ace\addons\medical\equipment\bandages\fielddressing_nohq.paa";
|
||||
uvSource="tex";
|
||||
class uvTransform
|
||||
{
|
||||
aside[]={1,0,0};
|
||||
up[]={0,1,0};
|
||||
dir[]={0,0,1};
|
||||
pos[]={0,0,0};
|
||||
};
|
||||
};
|
||||
class Stage2
|
||||
{
|
||||
texture="z\ace\addons\medical\equipment\bandages\fielddressing_smdi.paa";
|
||||
uvSource="tex";
|
||||
class uvTransform
|
||||
{
|
||||
aside[]={1,0,0};
|
||||
up[]={0,1,0};
|
||||
dir[]={0,0,1};
|
||||
pos[]={0,0,0};
|
||||
};
|
||||
};
|
BIN
addons/medical/equipment/bandages/fielddressing_color.paa
Normal file
BIN
addons/medical/equipment/bandages/fielddressing_color.paa
Normal file
Binary file not shown.
BIN
addons/medical/equipment/bandages/fielddressing_garbage.p3d
Normal file
BIN
addons/medical/equipment/bandages/fielddressing_garbage.p3d
Normal file
Binary file not shown.
BIN
addons/medical/equipment/bandages/fielddressing_nohq.paa
Normal file
BIN
addons/medical/equipment/bandages/fielddressing_nohq.paa
Normal file
Binary file not shown.
BIN
addons/medical/equipment/bandages/fielddressing_smdi.paa
Normal file
BIN
addons/medical/equipment/bandages/fielddressing_smdi.paa
Normal file
Binary file not shown.
BIN
addons/medical/equipment/bandages/packingbandage.p3d
Normal file
BIN
addons/medical/equipment/bandages/packingbandage.p3d
Normal file
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user