Added initial port of CSE medical (CMS)

This commit is contained in:
Thomas Kooi 2015-01-18 22:16:35 +01:00
parent a800c2935f
commit e468832324
246 changed files with 9159 additions and 0 deletions

View File

@ -0,0 +1 @@
z\ace\Addons\medical

View File

@ -0,0 +1,35 @@
class Extended_PreInit_EventHandlers {
class ADDON {
init = QUOTE( call compile preprocessFileLineNumbers QUOTE(QUOTE(PATHTOF(XEH_preInit.sqf))));
};
};
class Extended_PostInit_EventHandlers {
class ADDON {
init = QUOTE( call compile preprocessFileLineNumbers QUOTE(QUOTE(PATHTOF(XEH_postInit.sqf))));
};
};
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););
};
};
};

View File

@ -0,0 +1,7 @@
class CfgFactionClasses
{
class NO_CATEGORY;
class ACE_medical: NO_CATEGORY {
displayName = "ACE Medical";
};
};

View 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;
};
};
};

View 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[] = {};
};
};

View File

@ -0,0 +1,782 @@
class CfgVehicles
{
class Logic;
class Module_F: Logic {
class ArgumentsBaseUnits {
};
};
class ACE_moduleCombatMedicalSystem: Module_F {
scope = 2;
displayName = "Combat Medical System [ACE]";
icon = QUOTE(PATHTOF(data\ACE_medical_module.paa));
category = "ACE_medical";
function = QUOTE(FUNC(initalizeModuleCMS));
functionPriority = 1;
isGlobal = 1;
isTriggerActivated = 0;
author = "Glowbal";
class Arguments {
class advancedLevel {
displayName = "Advanced Level";
description = "How advanced can the medical system be?";
typeName = "NUMBER";
class values {
class basic {
name = "Basic. Only bleeding and pain.";
value = 0;
default = 1;
};
class normal {
name = "Normal. Bleeding, Pain, Blood pressure and heart rate";
value = 1;
};
class full {
name = "Full. Everything enabled.";
value = 2;
};
};
};
class openingOfWounds {
displayName = "Advanced Wounds";
description = "When set to true, bandaged wounds could on occasion re-open, resulting in new open wounds that need to be bandaged.";
typeName = "BOOL";
defaultValue = 1;
};
class mediACEtting {
displayName = "Advanced Medic roles";
description = "Medics only are able to view the detailed information";
typeName = "BOOL";
defaultValue = 1;
};
class difficultySetting {
displayName = "Survival Difficulty";
description = "Select the aggressiveness of the medical simulation";
typeName = "NUMBER";
class values {
class recruit {
name = "Recruit";
value = 0.5;
};
class regular {
name = "Regular";
value = 1;
default = 1;
};
class veteran {
name = "Veteran";
value = 1.2;
};
class expert {
name = "Expert";
value = 1.5;
};
};
};
class enableFor {
displayName = "Enabled for";
description = "Select what units CMS will be enabled for";
typeName = "NUMBER";
class values {
class playableUnits {
name = "Players only";
value = 0;
default = 1;
};
class playableUnitsAndAI {
name = "Players and AI";
value = 1;
};
};
};
class enableAirway {
displayName = "Enable Airway";
description = "Should CMS Airway system be enabled?";
typeName = "NUMBER";
class values {
class enable {
name = "Yes";
value = 1;
};
class disable {
name = "No";
value = 0;
default = 1;
};
};
};
class vehCrashes {
displayName = "Vehicle Crashes";
description = "Enable injuries on vehicle crashes";
typeName = "BOOL";
defaultValue = 1;
};
class aidKitUponUsage {
displayName = "Disposable Aid kit";
description = "Is a personal aid kit disposable?";
typeName = "BOOL";
defaultValue = false;
};
class aidKitMedicsOnly {
displayName = "Medics only";
description = "Are aid kits restricted to medics only?";
typeName = "BOOL";
defaultValue = false;
};
class aidKitRestrictions {
displayName = "Aid kit";
description = "When can an Aid kit be used?";
typeName = "NUMBER";
class values {
class medFacility {
name = "Medical Facility";
value = 0;
default = 1;
};
class medFAcilityNoBleeding {
name = "Medical Facility & No bleeding";
value = 1;
};
class Everywhere {
name = "Everywhere";
value = 2;
};
class EverywhereNoBleeding {
name = "Everywhere & No Bleeding";
value = 3;
};
};
};
class bandageTime {
displayName = "Bandage Time";
description = "Time it takes for a bandage action to be completed";
typeName = "NUMBER";
defaultValue = 5;
};
class stitchingAllow {
displayName = "Can Stitch";
description = "What units can use stitching?";
typeName = "NUMBER";
defaultValue = 0;
class values {
class medicsOnly {
name = "Medics Only";
value = 0;
default = 1;
};
class everyone {
name = "Everyone";
value = 1;
};
class noOne {
name = "No units";
value = -1;
};
};
};
};
class ModuleDescription {
description = "Provides a more realistic medical system for both players and AI."; // Short description, will be formatted as structured text
sync[] = {};
};
};
class ACE_moduleAssignMedicRoles: Module_F {
scope = 2;
displayName = "Set Medic Class [ACE]";
icon = QUOTE(PATHTOF(data\ACE_medical_module.paa));
category = "ACE_medical";
function = QUOTE(FUNC(assignMedicRoles));
functionPriority = 10;
isGlobal = 2;
isTriggerActivated = 0;
isDisposable = 0;
author = "Glowbal";
class Arguments {
class EnableList {
displayName = "List";
description = "List of unit names that will be classified as medic, separated by commas.";
defaultValue = "";
};
class class {
displayName = "Is Medic";
description = "Medics allow for more advanced treatment in case of Advanced Medic roles enabled";
typeName = "BOOL";
defaultValue = true;
};
};
class ModuleDescription {
description = "Assigns the ACE medic class to a unit"; // Short description, will be formatted as structured text
sync[] = {};
};
};
class ACE_moduleAssignMedicalVehicle: Module_F {
scope = 2;
displayName = "set Medical Vehicle [ACE]";
icon = QUOTE(PATHTOF(data\ACE_medical_module.paa));
category = "ACE_medical";
function = QUOTE(FUNC(assignMedicalVehicle));
functionPriority = 10;
isGlobal = 2;
isTriggerActivated = 0;
isDisposable = 0;
author = "Glowbal";
class Arguments {
class EnableList {
displayName = "List";
description = "List of object names that will be classified as medical vehicle, separated by commas.";
defaultValue = "";
};
class enabled {
displayName = "Is Medical Vehicle";
description = "Whatever or not the objects in the list will be a medical vehicle.";
typeName = "BOOL";
defaultValue = true;
};
};
class ModuleDescription {
description = "Assigns the ACE medical vehicle class to a vehicle.";
sync[] = {};
};
};
class ACE_moduleAssignMedicalFacility: Module_F {
scope = 2;
displayName = "Set Medical Facility [ACE]";
icon = QUOTE(PATHTOF(data\ACE_medical_module.paa));
category = "ACE_medical";
function = QUOTE(FUNC(assignMedicalFacility));
functionPriority = 10;
isGlobal = 2;
isTriggerActivated = 0;
isDisposable = 0;
author = "Glowbal";
class Arguments {
class class {
displayName = "Is Medical Facility";
description = "Registers an object as a medical facility for CMS";
typeName = "BOOL";
};
};
class ModuleDescription {
description = "Defines an object as a medical facility for CMS. This allows for more advanced treatments. Can be used on buildings and vehicles. ";
sync[] = {};
};
};
class ACE_moduleAssignMedicalEquipment: Module_F {
scope = 2;
displayName = "Assign Medical Equipment [ACE]";
icon = QUOTE(PATHTOF(data\ACE_medical_module.paa));
category = "ACE_medical";
function = QUOTE(FUNC(assignMedicalEquipment));
functionPriority = 1;
isGlobal = 1;
isTriggerActivated = 0;
author = "Glowbal";
class Arguments {
class equipment {
displayName = "Assign Equipment";
description = "Assign Medical equipment to all players";
typeName = "NUMBER";
defaultValue = 0;
class values {
class AllPlayers {
name = "All Players";
value = 0;
default = 1;
};
class MedicsOnly {
name = "Medics only";
value = 1;
};
};
};
};
class ModuleDescription {
description = "Assigns medical equipment to units";
sync[] = {};
};
};
class MapBoard_altis_F;
class ACE_bodyBag: MapBoard_altis_F {
scope = 1;
side = -1;
model = QUOTE(PATHTOF(equipment\bodybag.p3d));
icon = "";
displayName = $STR_ACE_MAG_BODYBAG_DISPLAY;
};
class Item_Base_F;
class ACE_bandage_basicItem: Item_Base_F {
scope = 2;
scopeCurator = 2;
displayName = $STR_ACE_MAG_BANDAGE_BASIC_DISPLAY;
author = "Glowbal";
vehicleClass = "Items";
class TransportItems
{
class ACE_bandage_basic
{
name = "ACE_bandage_basic";
count = 1;
};
};
};
class ACE_packing_bandageItem: Item_Base_F {
scope = 2;
scopeCurator = 2;
displayName = $STR_ACE_MAG_PACKING_BANDAGE_DISPLAY;
author = "Glowbal";
vehicleClass = "Items";
class TransportItems
{
class ACE_packing_bandage
{
name = "ACE_packing_bandage";
count = 1;
};
};
};
class ACE_bandageElasticItem: Item_Base_F {
scope = 2;
scopeCurator = 2;
displayName = $STR_ACE_MAG_BANDAGE_ELASTIC_DISPLAY;
author = "Glowbal";
vehicleClass = "Items";
class TransportItems
{
class ACE_bandageElastic
{
name = "ACE_bandageElastic";
count = 1;
};
};
};
class ACE_tourniquetItem: Item_Base_F {
scope = 2;
scopeCurator = 2;
displayName = $STR_ACE_MAG_TOURNIQUET_DISPLAY;
author = "Glowbal";
vehicleClass = "Items";
class TransportItems
{
class ACE_tourniquet
{
name = "ACE_tourniquet";
count = 1;
};
};
};
class ACE_splintItem: Item_Base_F {
scope = 2;
scopeCurator = 2;
displayName = $STR_ACE_MAG_SPLINT_DISPLAY;
author = "Glowbal";
vehicleClass = "Items";
class TransportItems
{
class ACE_splint
{
name = "ACE_splint";
count = 1;
};
};
};
class ACE_morphineItem: Item_Base_F {
scope = 2;
scopeCurator = 2;
displayName = $STR_ACE_MAG_MORPHINE_DISPLAY;
author = "Glowbal";
vehicleClass = "Items";
class TransportItems
{
class ACE_morphine
{
name = "ACE_morphine";
count = 1;
};
};
};
class ACE_atropineItem: Item_Base_F {
scope = 2;
scopeCurator = 2;
displayName = $STR_ACE_MAG_ATROPINE_DISPLAY;
author = "Glowbal";
vehicleClass = "Items";
class TransportItems
{
class ACE_atropine
{
name = "ACE_atropine";
count = 1;
};
};
};
class ACE_epinephrineItem: Item_Base_F {
scope = 2;
scopeCurator = 2;
displayName = $STR_ACE_MAG_EPINEPHRINE_DISPLAY;
author = "Glowbal";
vehicleClass = "Items";
class TransportItems
{
class ACE_epinephrine
{
name = "ACE_epinephrine";
count = 1;
};
};
};
class ACE_plasma_ivItem: Item_Base_F {
scope = 2;
scopeCurator = 2;
displayName = $STR_ACE_MAG_PLASMA_IV;
author = "Glowbal";
vehicleClass = "Items";
class TransportItems
{
class ACE_plasma_iv
{
name = "ACE_plasma_iv";
count = 1;
};
};
};
class ACE_plasma_iv_500Item: Item_Base_F {
scope = 2;
scopeCurator = 2;
displayName = $STR_ACE_MAG_PLASMA_IV_500;
author = "Glowbal";
vehicleClass = "Items";
class TransportItems
{
class ACE_plasma_iv_500
{
name = "ACE_plasma_iv_500";
count = 1;
};
};
};
class ACE_plasma_iv_250Item: Item_Base_F {
scope = 2;
scopeCurator = 2;
displayName = $STR_ACE_MAG_PLASMA_IV_250;
author = "Glowbal";
vehicleClass = "Items";
class TransportItems
{
class ACE_plasma_iv_250
{
name = "ACE_plasma_iv_250";
count = 1;
};
};
};
class ACE_blood_ivItem: Item_Base_F {
scope = 2;
scopeCurator = 2;
displayName = $STR_ACE_MAG_BLOOD_IV;
author = "Glowbal";
vehicleClass = "Items";
class TransportItems
{
class ACE_blood_iv
{
name = "ACE_blood_iv";
count = 1;
};
};
};
class ACE_blood_iv_500Item: Item_Base_F {
scope = 2;
scopeCurator = 2;
displayName = $STR_ACE_MAG_BLOOD_IV_500;
author = "Glowbal";
vehicleClass = "Items";
class TransportItems
{
class ACE_blood_iv_500
{
name = "ACE_blood_iv_500";
count = 1;
};
};
};
class ACE_blood_iv_250Item: Item_Base_F {
scope = 2;
scopeCurator = 2;
displayName = $STR_ACE_MAG_BLOOD_IV_250;
author = "Glowbal";
vehicleClass = "Items";
class TransportItems
{
class ACE_blood_iv_250
{
name = "ACE_blood_iv_250";
count = 1;
};
};
};
class ACE_saline_ivItem: Item_Base_F {
scope = 2;
scopeCurator = 2;
displayName = $STR_ACE_MAG_SALINE_IV;
author = "Glowbal";
vehicleClass = "Items";
class TransportItems
{
class ACE_saline_iv
{
name = "ACE_saline_iv";
count = 1;
};
};
};
class ACE_saline_iv_500Item: Item_Base_F {
scope = 2;
scopeCurator = 2;
displayName = $STR_ACE_MAG_SALINE_IV_500;
author = "Glowbal";
vehicleClass = "Items";
class TransportItems
{
class ACE_saline_iv_500
{
name = "ACE_saline_iv_500";
count = 1;
};
};
};
class ACE_saline_iv_250Item: Item_Base_F {
scope = 2;
scopeCurator = 2;
displayName = $STR_ACE_MAG_SALINE_IV_250;
author = "Glowbal";
vehicleClass = "Items";
class TransportItems
{
class ACE_saline_iv_250
{
name = "ACE_saline_iv_250";
count = 1;
};
};
};
class ACE_quikclotItem: Item_Base_F {
scope = 2;
scopeCurator = 2;
displayName = $STR_ACE_MAG_QUIKCLOT_DISPLAY;
author = "Glowbal";
vehicleClass = "Items";
class TransportItems
{
class ACE_quikclot
{
name = "ACE_quikclot";
count = 1;
};
};
};
class ACE_nasopharyngeal_tubeItem: Item_Base_F {
scope = 2;
scopeCurator = 2;
displayName = $STR_ACE_MAG_NPA_DISPLAY;
author = "Glowbal";
vehicleClass = "Items";
class TransportItems
{
class ACE_nasopharyngeal_tube
{
name = "ACE_nasopharyngeal_tube";
count = 1;
};
};
};
class ACE_opaItem: Item_Base_F {
scope = 2;
scopeCurator = 2;
displayName = $STR_ACE_MAG_OPA_DISPLAY;
author = "Glowbal";
vehicleClass = "Items";
class TransportItems
{
class ACE_opa
{
name = "ACE_opa";
count = 1;
};
};
};
class ACE_liquidSkinItem: Item_Base_F {
scope = 2;
scopeCurator = 2;
displayName = $STR_ACE_MAG_LIQUID_SKIN_DISPLAY;
author = "Glowbal";
vehicleClass = "Items";
class TransportItems
{
class ACE_liquidSkin
{
name = "ACE_liquidSkin";
count = 1;
};
};
};
class ACE_chestsealItem: Item_Base_F {
scope = 2;
scopeCurator = 2;
displayName = $STR_ACE_MAG_CHEST_SEAL_DISPLAY;
author = "Glowbal";
vehicleClass = "Items";
class TransportItems
{
class ACE_chestseal
{
name = "ACE_chestseal";
count = 1;
};
};
};
class ACE_personal_aid_kitItem: Item_Base_F {
scope = 2;
scopeCurator = 2;
displayName = $STR_ACE_MAG_AID_KIT_DISPLAY;
author = "Glowbal";
vehicleClass = "Items";
class TransportItems
{
class ACE_personal_aid_kit
{
name = "ACE_personal_aid_kit";
count = 1;
};
};
};
class ACE_bodyBagItem: Item_Base_F {
scope = 2;
scopeCurator = 2;
displayName = $STR_ACE_MAG_BODYBAG_DISPLAY;
author = "Glowbal";
vehicleClass = "Items";
class TransportItems
{
class ACE_itemBodyBag
{
name = "ACE_itemBodyBag";
count = 1;
};
};
};
class NATO_Box_Base;
class ACE_medical_supply_crate_cms : NATO_Box_Base {
scope = 2;
accuracy = 1000;
displayName = "Medical Supply Crate [ACE]";
model = "\A3\weapons_F\AmmoBoxes\AmmoBox_F";
author = "Glowbal";
class TransportItems {
class ACE_bandage_basic {
name = "ACE_bandage_basic";
count = 25;
};
class ACE_packing_bandage {
name = "ACE_packing_bandage";
count = 25;
};
class ACE_tourniquet {
name = "ACE_tourniquet";
count = 25;
};
class ACE_splint {
name = "ACE_splint";
count = 25;
};
class ACE_plasma_iv {
name = "ACE_plasma_iv";
count = 25;
};
class ACE_plasma_iv_500 {
name = "ACE_plasma_iv_500";
count = 25;
};
class ACE_plasma_iv_250 {
name = "ACE_plasma_iv_250";
count = 25;
};
class ACE_blood_iv {
name = "ACE_blood_iv";
count = 25;
};
class ACE_blood_iv_500 {
name = "ACE_blood_iv_500";
count = 25;
};
class ACE_blood_iv_250 {
name = "ACE_blood_iv_250";
count = 25;
};
class ACE_saline_iv {
name = "ACE_saline_iv";
count = 25;
};
class ACE_saline_iv_500 {
name = "ACE_saline_iv_500";
count = 25;
};
class ACE_saline_iv_250 {
name = "ACE_saline_iv_250";
count = 25;
};
class ACE_morphine {
name = "ACE_morphine";
count = 25;
};
class ACE_epinephrine {
name = "ACE_epinephrine";
count = 25;
};
class ACE_atropine {
name = "ACE_atropine";
count = 25;
};
class ACE_quikclot {
name = "ACE_quikclot";
count = 25;
};
class ACE_nasopharyngeal_tube {
name = "ACE_nasopharyngeal_tube";
count = 25;
};
class ACE_bandageElastic {
name = "ACE_bandageElastic";
count = 25;
};
class ACE_liquidSkin {
name = "ACE_liquidSkin";
count = 25;
};
class ACE_chestseal {
name = "ACE_chestseal";
count = 25;
};
class ACE_personal_aid_kit {
name = "ACE_personal_aid_kit";
count = 25;
};
class ACE_surgical_kit {
name = "ACE_surgical_kit";
count = 25;
};
class ACE_itemBodyBag {
name = "ACE_itemBodyBag";
count = 5;
};
};
};
};

View 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;
};
};
};

View File

@ -0,0 +1,217 @@
/**
* 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 EFUNC(common,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)}
] call EFUNC(common,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;
// Keybindings
["ACE3",
localize "STR_ACE_OPEN_CMS_MENU_DESC",
{ [] call FUNC(openMenu) },
[ 0, [false, false, false]],
false,
"keydown"] 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(medicClass) || !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(medicClass)) || 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 1,_this select 0] call FUNC(actionCheckPulse)},'examine'] call FUNC(addTreatmentOption);
["STR_ACE_ACTION_CHECK_BP","STR_ACE_ACTION_CHECK_BP_TOOLTIP",{
true;
},{[_this select 1,_this select 0] call FUNC(actionCheckBloodPressure);},'examine'] call FUNC(addTreatmentOption);
["STR_ACE_ACTION_CHECK_RESPONSE","STR_ACE_ACTION_CHECK_RESPONSE_TOOLTIP",{
true;
},{[_this select 1,_this select 0] 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)) && (vehicle _caller == _caller) && (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)) && (vehicle _caller == _caller) && (vehicle _target == _target));
}, {[_this select 0,_this select 1] call FUNC(actionCarryUnit)},'drag'] call FUNC(addTreatmentOption);
["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)) && (vehicle _caller == _caller) && (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))) && (vehicle _caller == _caller));
}, {[_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 1,_this select 0] 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 1,_this select 0] call FUNC(actionUnloadUnit)},'drag'] call FUNC(addTreatmentOption);
systemchat format["finished postInit"];
diag_log format["finished postInit"];

View File

@ -0,0 +1,143 @@
/**
* 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(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(hasEquipment);
PREP(hasMedicalEnabled);
PREP(hasOpenWounds);
PREP(hasTourniquetAppliedTo);
PREP(increasePain);
PREP(initalizeModuleCMS);
PREP(inMedicalFacility);
PREP(isMedic);
PREP(isMedicalVehicle);
PREP(isSetTreatmentMutex);
PREP(moduleAssignMedicalEquipment);
PREP(moduleAssignMedicalFacility);
PREP(moduleAssignMedicalVehicle);
PREP(moduleAssignMedicRoles);
PREP(onInitForUnit);
PREP(onInjury_assignAirwayStatus);
PREP(onInjury_assignFractures);
PREP(onInjury_assignOpenWounds);
PREP(onKilled);
PREP(onLocal);
PREP(onMenuOpen);
PREP(onTreatmentCompleted);
PREP(onUnconscious);
PREP(onStartMovingUnit);
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);
// 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;

30
addons/medical/config.cpp Normal file
View File

@ -0,0 +1,30 @@
#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"

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View 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=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.

Binary file not shown.

Binary file not shown.

View 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};
};
};

Binary file not shown.

View 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\packingbandage_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\packingbandage_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.

Binary file not shown.

Binary file not shown.

View 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\data\Field-Dressing_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\data\Field-Dressing_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.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,92 @@
ambient[]={1.000000,1.000000,1.000000,1.000000};
diffuse[]={1.000000,1.000000,1.000000,1.000000};
forcedDiffuse[]={0.000000,0.000000,0.000000,0.000000};
emmisive[]={0.000000,0.000000,0.000000,1.000000};
specular[]={0.703999,0.703999,0.703999,0.000000};
specularPower=70.000000;
PixelShaderID="Super";
VertexShaderID="Super";
class Stage1
{
texture="z\ace\addons\medical\equipment\data\bodybag_nohq.paa";
uvSource="tex";
class uvTransform
{
aside[]={1.000000,0.000000,0.000000};
up[]={0.000000,1.000000,0.000000};
dir[]={0.000000,0.000000,0.000000};
pos[]={0.000000,0.000000,0.000000};
};
};
class Stage2
{
texture="#(argb,8,8,3)color(0.5,0.5,0.5,1,DT)";
uvSource="tex";
class uvTransform
{
aside[]={1.000000,0.000000,0.000000};
up[]={0.000000,1.000000,0.000000};
dir[]={0.000000,0.000000,0.000000};
pos[]={0.000000,0.000000,0.000000};
};
};
class Stage3
{
texture="#(argb,8,8,3)color(0,0,0,0,MC)";
uvSource="tex";
class uvTransform
{
aside[]={1.000000,0.000000,0.000000};
up[]={0.000000,1.000000,0.000000};
dir[]={0.000000,0.000000,0.000000};
pos[]={0.000000,0.000000,0.000000};
};
};
class Stage4
{
texture="#(argb,8,8,3)color(1,1,1,1,AS)";
uvSource="tex";
class uvTransform
{
aside[]={1.000000,0.000000,0.000000};
up[]={0.000000,1.000000,0.000000};
dir[]={0.000000,0.000000,0.000000};
pos[]={0.000000,0.000000,0.000000};
};
};
class Stage5
{
texture="#(argb,8,8,3)color(0,0.05,1,1,SMDI)";
uvSource="tex";
class uvTransform
{
aside[]={1.000000,0.000000,0.000000};
up[]={0.000000,1.000000,0.000000};
dir[]={0.000000,0.000000,0.000000};
pos[]={0.000000,0.000000,0.000000};
};
};
class Stage6
{
texture="#(ai,32,128,1)fresnel(0.98,1.02)";
uvSource="tex";
class uvTransform
{
aside[]={1.000000,0.000000,0.000000};
up[]={0.000000,1.000000,0.000000};
dir[]={0.000000,0.000000,0.000000};
pos[]={0.000000,0.000000,0.000000};
};
};
class Stage7
{
texture="z\ace\addons\medical\equipment\data\env_co.paa";
uvSource="tex";
class uvTransform
{
aside[]={1.000000,0.000000,0.000000};
up[]={0.000000,1.000000,0.000000};
dir[]={0.000000,0.000000,0.000000};
pos[]={0.000000,0.000000,0.000000};
};
};

View File

@ -0,0 +1,32 @@
ambient[]={1.000000,1.000000,1.000000,1.000000};
diffuse[]={1.000000,1.000000,1.000000,1.000000};
forcedDiffuse[]={0.000000,0.000000,0.000000,0.000000};
emmisive[]={0.000000,0.000000,0.000000,1.000000};
specular[]={1.000000,1.000000,1.000000,1.000000};
specularPower=20.000000;
PixelShaderID="NormalMapSpecularDIMap";
VertexShaderID="NormalMap";
class Stage1
{
texture="z\ace\addons\medical\equipment\data\bodybagItem_nohq.paa";
uvSource="tex";
class uvTransform
{
aside[]={1.000000,0.000000,0.000000};
up[]={0.000000,1.000000,0.000000};
dir[]={0.000000,0.000000,0.000000};
pos[]={0.000000,0.000000,0.000000};
};
};
class Stage2
{
texture="z\ace\addons\medical\equipment\data\bodybagItem_smdi.paa";
uvSource="tex";
class uvTransform
{
aside[]={1.000000,0.000000,0.000000};
up[]={0.000000,1.000000,0.000000};
dir[]={0.000000,0.000000,0.000000};
pos[]={0.000000,0.000000,0.000000};
};
};

Binary file not shown.

Binary file not shown.

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More