move settings to sqf

This commit is contained in:
PabstMirror 2019-03-24 00:37:39 -05:00
parent c492f184b4
commit 2d0090422c
33 changed files with 512 additions and 319 deletions

View File

@ -19,11 +19,6 @@ class ACE_Settings {
};
*/
class GVAR(spontaneousWakeUpChance) {
category = CSTRING(Category_Medical);
displayName = CSTRING(MedicalSettings_spontaneousWakeUpChance_DisplayName);
description = CSTRING(MedicalSettings_spontaneousWakeUpChance_Description);
typeName = "SCALAR";
value = 0.05;
sliderSettings[] = {0, 1, 0.05, 2};
movedToSQF = 1;
};
};

View File

@ -6,46 +6,6 @@ PREP_RECOMPILE_START;
#include "XEH_PREP.hpp"
PREP_RECOMPILE_END;
/*
[
QGVAR(advancedBandages),
"CHECKBOX",
["Advanced Bandages", "All bandages have different wound effectivenesses and reopening chances."], //@todo
"ACE Medical", // @todo
false,
true
] call CBA_Settings_fnc_init;
[
QGVAR(advancedMedication),
"CHECKBOX",
["Advanced Medication", "Enables advanced simulation of Morphine, Epinephrine etc."], //@todo
"ACE Medical", // @todo
false,
true
] call CBA_Settings_fnc_init;
[
QGVAR(fatalInjuryCondition),
"LIST",
["Allow Fatal Injury", "Governs when a fatal injury can occur."], //@todo
"ACE Medical", // @todo
[
[0, 1, 2],
["Always", "In Cardiac Arrest", "Never"],
0
],
true
] call CBA_Settings_fnc_init;
[
QGVAR(cardiacArrestTime),
"SLIDER",
["Cardiac Arrest Time", "Sets how long cardiac arrest will last for on average (in seconds)."], //@todo
"ACE Medical", // @todo
[0, 300, 30, 0],
true
] call CBA_Settings_fnc_init;
*/
#include "initSettings.sqf"
ADDON = true;

View File

@ -0,0 +1,14 @@
// CBA Settings [ADDON: ace_medical]:
private _categoryArray = [LELSTRING(medical,Category_DisplayName), "?"];
// todo: Check the description is still accurate
[
QGVAR(spontaneousWakeUpChance), "SLIDER",
[LSTRING(MedicalSettings_spontaneousWakeUpChance_DisplayName), LSTRING(MedicalSettings_spontaneousWakeUpChance_Description)],
_categoryArray,
[0,1,0.05,2], // [min, max, default value, trailing decimals (-1 for whole numbers only)]
true, // isGlobal
{[QGVAR(spontaneousWakeUpChance), _this] call EFUNC(common,cbaSettings_settingChanged)},
true // Needs mission restart
] call CBA_settings_fnc_init;

View File

@ -662,20 +662,6 @@
<Chinesesimp>这部位没有止血带!</Chinesesimp>
<Chinese>這部位沒有止血帶!</Chinese>
</Key>
<Key ID="STR_ACE_Medical_Attributes_isMedicalVehicle_Description">
<English>Whether or not the object will be a medical vehicle.</English>
<Polish>Czy pojazd ma być pojazdem medycznym?</Polish>
<Italian>L'oggetto in questione sarà un veicolo medico o meno.</Italian>
<German>Legt fest, ob das Objekt ein Sanitätsfahrzeug ist.</German>
<Spanish>Es un vehículo médico?</Spanish>
<French>Détermine si c'est un véhicule sanitaire.</French>
<Portuguese>Se o objeto será ou não um veículo médico</Portuguese>
<Russian>Будет ли объект считаться медицинским транспортом.</Russian>
<Japanese>どれでも、またはオブジェクトを医療車両として割り当てます。</Japanese>
<Korean>무엇이 되었던간에 이 목록에 있는 물체는 의료 차량이 됩니다.</Korean>
<Chinesesimp>是否使该载具为医疗载具?</Chinesesimp>
<Chinese>是否使該載具為醫療載具?</Chinese>
</Key>
<Key ID="STR_ACE_Medical_MedicalSettings_spontaneousWakeUpChance_DisplayName">
<English>Unconscious Wake Up Chance</English>
</Key>

View File

@ -1,10 +1,5 @@
class ACE_Settings {
class GVAR(enabledFor) {
category = ECSTRING(medical,Category_Medical);
displayName = CSTRING(MedicalBloodSettings_enabledFor_DisplayName);
description = CSTRING(MedicalBloodSettings_enabledFor_Description);
value = 2;
typeName = "SCALAR";
values[] = {ECSTRING(Common,Disabled), CSTRING(enabledFor_OnlyPlayers), ECSTRING(Common,Enabled)};
movedToSQF = 1;
};
};

View File

@ -6,6 +6,8 @@ PREP_RECOMPILE_START;
#include "XEH_PREP.hpp"
PREP_RECOMPILE_END;
#include "initSettings.sqf"
// blood object model namespace
GVAR(models) = [] call CBA_fnc_createNamespace;

View File

@ -0,0 +1,13 @@
// CBA Settings [ADDON: ace_medical_blood]:
private _categoryArray = [LELSTRING(medical,Category_DisplayName), LLSTRING(subCategory)];
[
QGVAR(enabledFor), "LIST",
[LSTRING(MedicalBloodSettings_enabledFor_DisplayName), LSTRING(MedicalBloodSettings_enabledFor_Description)],
_categoryArray,
[[0,1,2],[LELSTRING(Common,Disabled),LLSTRING(enabledFor_OnlyPlayers),LELSTRING(Common,Enabled)],2], // [values, titles, defaultIndex]
true, // isGlobal
{[QGVAR(enabledFor), _this] call EFUNC(common,cbaSettings_settingChanged)},
true // Needs mission restart
] call CBA_settings_fnc_init;

View File

@ -1,6 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<Project name="ACE">
<Package name="medical_blood">
<Key ID="STR_ACE_medical_blood_subCategory">
<English>Bleeding Effect</English>
</Key>
<Key ID="STR_ACE_medical_blood_enabledFor_OnlyPlayers">
<English>Only Players</English>
<Japanese>プレイヤーのみ</Japanese>

View File

@ -1,18 +1,8 @@
class ACE_Settings {
class EGVAR(medical,playerDamageThreshold) {
category = CSTRING(Category_Medical);
displayName = CSTRING(playerDamageThreshold_DisplayName);
description = CSTRING(playerDamageThreshold_Description);
typeName = "SCALAR";
value = 1.0;
sliderSettings[] = {0, 25, 1, 2};
movedToSQF = 1;
};
class EGVAR(medical,AIDamageThreshold) {
category = CSTRING(Category_Medical);
displayName = CSTRING(AIDamageThreshold_DisplayName);
description = CSTRING(AIDamageThreshold_Description);
typeName = "SCALAR";
value = 1.0;
sliderSettings[] = {0, 25, 1, 2};
movedToSQF = 1;
};
};

View File

@ -6,6 +6,8 @@ PREP_RECOMPILE_START;
#include "XEH_PREP.hpp"
PREP_RECOMPILE_END;
#include "initSettings.sqf"
call FUNC(parseConfigForInjuries);
addMissionEventHandler ["Loaded",{

View File

@ -0,0 +1,23 @@
// CBA Settings [ADDON: ace_medical_damage]:
private _categoryArray = [LELSTRING(medical,Category_DisplayName), LLSTRING(subCategory)];
[
QEGVAR(medical,playerDamageThreshold), "SLIDER",
[LSTRING(playerDamageThreshold_DisplayName), LSTRING(playerDamageThreshold_Description)],
_categoryArray,
[0,25,1,2], // [min, max, default value, trailing decimals (-1 for whole numbers only)]
true, // isGlobal
{[QEGVAR(medical,playerDamageThreshold), _this] call EFUNC(common,cbaSettings_settingChanged)},
true // Needs mission restart
] call CBA_settings_fnc_init;
[
QEGVAR(medical,AIDamageThreshold), "SLIDER",
[LSTRING(AIDamageThreshold_DisplayName), LSTRING(AIDamageThreshold_Description)],
_categoryArray,
[0,25,1,2], // [min, max, default value, trailing decimals (-1 for whole numbers only)]
true, // isGlobal
{[QEGVAR(medical,AIDamageThreshold), _this] call EFUNC(common,cbaSettings_settingChanged)},
true // Needs mission restart
] call CBA_settings_fnc_init;

View File

@ -2,6 +2,9 @@
<Project name="ACE">
<Package name="Medical_Damage">
<Container name="Settings">
<Key ID="STR_ACE_Medical_damage_subCategory">
<English>Damage Threshold</English>
</Key>
<Key ID="STR_ACE_Medical_damage_playerDamageThreshold_DisplayName">
<English>Player Damage</English>
<Russian>Урон игроку</Russian>

View File

@ -6,24 +6,6 @@ PREP_RECOMPILE_START;
#include "XEH_PREP.hpp"
PREP_RECOMPILE_END;
[
QGVAR(painEffectType),
"LIST",
[localize LSTRING(painEffectType), "Selects the used pain effect type"], //@todo
"ACE Medical", // @todo
[
[0, 1],
[localize LSTRING(painEffectType_whiteFlashing), localize LSTRING(painEffectType_pulsingBlur)],
0
],
false,
{
if (isNil QGVAR(ppPain)) exitWith {TRACE_1("Before Post-Init",_this)};
TRACE_1("reseting ppEffect type",_this);
[true] call FUNC(initEffects);
}
] call CBA_Settings_fnc_init;
GVAR(lastHeartBeatSound) = 0;
// HitScream

View File

@ -14,7 +14,7 @@ class CfgPatches {
};
};
#include "ACE_Settings.hpp"
// #include "ACE_Settings.hpp" // ToDo: setting not used
#include "CfgEventHandlers.hpp"
#include "CfgInGameUI.hpp"
#include "CfgSounds.hpp"

View File

@ -0,0 +1,21 @@
// CBA Settings [ADDON: ace_medical_feedback]:
private _categoryArray = [LELSTRING(medical,Category_DisplayName), LLSTRING(subCategory)];
[
QGVAR(painEffectType),
"LIST",
[localize LSTRING(painEffectType), "Selects the used pain effect type"], //@todo
_categoryArray,
[
[0, 1],
[LLSTRING(painEffectType_whiteFlashing), LLSTRING(painEffectType_pulsingBlur)],
0
],
false,
{
if (isNil QGVAR(ppPain)) exitWith {TRACE_1("Before Post-Init",_this)};
TRACE_1("reseting ppEffect type",_this);
[true] call FUNC(initEffects);
}
] call CBA_Settings_fnc_init;

View File

@ -2,6 +2,9 @@
<Project name="ACE">
<Package name="Medical_Feedback">
<Container name="Settings">
<Key ID="STR_ACE_Medical_feedback_subCategory">
<English>Feedback</English>
</Key>
<Key ID="STR_ACE_Medical_feedback_enableScreams_DisplayName">
<English>Enable Screams</English>
<Russian>Включить крики</Russian>

View File

@ -1,56 +1,23 @@
class ACE_Settings {
class GVAR(allow) {
displayName = CSTRING(allow);
description = CSTRING(allow_Descr);
value = 1;
typeName = "SCALAR";
values[] = {ECSTRING(common,Disabled), ECSTRING(common,Enabled), ECSTRING(common,VehiclesOnly)};
category = ECSTRING(medical,Category_Medical);
movedToSQF = 1;
};
class GVAR(useMenu) {
displayName = CSTRING(useMenu);
description = CSTRING(useMenu_Descr);
value = 1;
typeName = "SCALAR";
values[] = {ECSTRING(common,Disabled), ECSTRING(common,Enabled), ECSTRING(common,VehiclesOnly)};
isClientSettable = 1;
category = ECSTRING(medical,Category_Medical);
movedToSQF = 1;
};
class GVAR(openAfterTreatment) {
displayName = CSTRING(openAfterTreatment);
description = CSTRING(openAfterTreatment_Descr);
typeName = "BOOL";
value = 1;
isClientSettable = 1;
category = ECSTRING(medical,Category_Medical);
movedToSQF = 1;
};
class GVAR(maxRange) {
//for ref: 3d interaction (MEDICAL_ACTION_DISTANCE) is 1.75
value = 3;
typeName = "SCALAR";
category = ECSTRING(medical,Category_Medical);
sliderSettings[] = {0, 10, 3, 1};
movedToSQF = 1;
};
class EGVAR(medical,menuTypeStyle) {
category = CSTRING(Category_Medical);
displayName = CSTRING(menuTypeDisplay);
description = CSTRING(menuTypeDescription);
typeName = "SCALAR";
value = 0;
values[] = {CSTRING(useSelection), CSTRING(useRadial), "Disabled"};
isClientSettable = 1;
movedToSQF = 1;
};
class GVAR(painVisualization) {
displayName = CSTRING(painVisualization_DisplayName);
description = CSTRING(painVisualization_Description);
typeName = "SCALAR";
value = 0;
values[] = {"Anyone", "Medics only", "Doctors only"};
movedToSQF = 1;
};
class GVAR(showPainInMenu) {
displayName = CSTRING(showPainInMenu_DisplayName);
description = CSTRING(showPainInMenu_Description);
typeName = "BOOL";
value = 0;
movedToSQF = 1;
};
};

View File

@ -6,6 +6,8 @@ PREP_RECOMPILE_START;
#include "XEH_PREP.hpp"
PREP_RECOMPILE_END;
#include "initSettings.sqf"
GVAR(INTERACTION_TARGET) = objNull;
GVAR(actionsOther) = [];
GVAR(actionsSelf) = [];

View File

@ -0,0 +1,73 @@
// CBA Settings [ADDON: ace_medical_gui]:
private _categoryArray = [LELSTRING(medical,Category_DisplayName), LLSTRING(subCategory)];
[
QGVAR(allow), "LIST",
[LSTRING(allow), LSTRING(allow_Descr)],
_categoryArray,
[[0,1,2],[LELSTRING(common,Disabled), LELSTRING(common,Enabled), LELSTRING(common,VehiclesOnly)],1], // [values, titles, defaultIndex]
true, // isGlobal
{[QGVAR(allow), _this] call EFUNC(common,cbaSettings_settingChanged)},
true // Needs mission restart
] call CBA_settings_fnc_init;
[
QGVAR(useMenu), "LIST",
[LSTRING(useMenu), LSTRING(useMenu_Descr)],
_categoryArray,
[[0,1,2],[LELSTRING(common,Disabled), LELSTRING(common,Enabled), LELSTRING(common,VehiclesOnly)],1], // [values, titles, defaultIndex]
false, // isGlobal
{[QGVAR(useMenu), _this] call EFUNC(common,cbaSettings_settingChanged)},
false // Needs mission restart
] call CBA_settings_fnc_init;
[
QGVAR(openAfterTreatment), "CHECKBOX",
[LSTRING(openAfterTreatment), LSTRING(openAfterTreatment_Descr)],
_categoryArray,
true, // default value
false, // isGlobal
{[QGVAR(openAfterTreatment), _this] call EFUNC(common,cbaSettings_settingChanged)},
false // Needs mission restart
] call CBA_settings_fnc_init;
[ // for ref: 3d interaction (MEDICAL_ACTION_DISTANCE) is 1.75
QGVAR(maxRange), "SLIDER",
QGVAR(maxRange-localizeMe),
_categoryArray,
[0,10,3,1], // [min, max, default value, trailing decimals (-1 for whole numbers only)]
true, // isGlobal
{[QGVAR(maxRange), _this] call EFUNC(common,cbaSettings_settingChanged)},
true // Needs mission restart
] call CBA_settings_fnc_init;
[
QEGVAR(medical,menuTypeStyle), "LIST",
[LSTRING(menuTypeDisplay), LSTRING(menuTypeDescription)],
_categoryArray,
[[0,1,2],[LLSTRING(useSelection), LLSTRING(useRadial),"Disabled"],0], // [values, titles, defaultIndex]
false, // isGlobal
{[QEGVAR(medical,menuTypeStyle), _this] call EFUNC(common,cbaSettings_settingChanged)},
false // Needs mission restart
] call CBA_settings_fnc_init;
[
QGVAR(painVisualization), "LIST",
[LSTRING(menuTypeDisplay), LSTRING(menuTypeDescription)],
_categoryArray,
[[0,1,2],["Anyone","Medics only","Doctors only"],0], // [values, titles, defaultIndex] // ToDo: Localize
true, // isGlobal
{[QGVAR(painVisualization), _this] call EFUNC(common,cbaSettings_settingChanged)},
true // Needs mission restart
] call CBA_settings_fnc_init;
[
QGVAR(showPainInMenu), "CHECKBOX",
[LSTRING(showPainInMenu_DisplayName), LSTRING(showPainInMenu_Description)],
_categoryArray,
false, // default value
true, // isGlobal
{[QGVAR(showPainInMenu), _this] call EFUNC(common,cbaSettings_settingChanged)},
true // Needs mission restart
] call CBA_settings_fnc_init;

View File

@ -2,6 +2,9 @@
<Project name="ACE">
<Package name="Medical GUI">
<Container name="Settings">
<Key ID="STR_ACE_Medical_gui_subCategory">
<English>User Interface</English>
</Key>
<Key ID="STR_ACE_Medical_gui_Injuries">
<English>INJURIES</English>
<German>VERLETZUNGEN</German>

View File

@ -1,28 +1,14 @@
class ACE_Settings {
class GVAR(fatalInjuryCondition) {
displayName = CSTRING(fatalInjuryCondition_DisplayName);
description = CSTRING(fatalInjuryCondition_Description);
value = 0;
typeName = "SCALAR";
values[] = {"Always", "In Cardiac Arrest", "Never"};
movedToSQF = 1;
};
class GVAR(fatalInjuryConditionAI) {
displayName = CSTRING(fatalInjuryConditionAI_DisplayName);
description = CSTRING(fatalInjuryConditionAI_Description);
value = 1;
typeName = "BOOL";
movedToSQF = 1;
};
class GVAR(unconsciousConditionAI) {
displayName = CSTRING(unconsciousConditionAI_DisplayName);
description = CSTRING(unconsciousConditionAI_Description);
value = 1;
typeName = "BOOL";
movedToSQF = 1;
};
class GVAR(cardiacArrestTime) {
displayName = CSTRING(cardiacArrestTime_DisplayName);
description = CSTRING(cardiacArrestTime_Description);
value = 30;
typeName = "SCALAR";
sliderSettings[] = {1, 3600, 30, 0};
movedToSQF = 1;
};
};

View File

@ -4,6 +4,8 @@ ADDON = false;
#include "XEH_PREP.hpp"
#include "initSettings.sqf"
EGVAR(medical,STATE_MACHINE) = (configFile >> "ACE_Medical_StateMachine") call CBA_statemachine_fnc_createFromConfig;
ADDON = true;

View File

@ -0,0 +1,43 @@
// CBA Settings [ADDON: ace_medical_statemachine]:
private _categoryArray = [LELSTRING(medical,Category_DisplayName), LLSTRING(subCategory)];
[
QGVAR(fatalInjuryCondition), "LIST",
[LSTRING(fatalInjuryCondition_DisplayName), LSTRING(fatalInjuryCondition_Description)],
_categoryArray,
[[0,1,2],["Always","In Cardiac Arrest","Never"],0], // [values, titles, defaultIndex] //ToDo: Localize
true, // isGlobal
{[QGVAR(fatalInjuryCondition), _this] call EFUNC(common,cbaSettings_settingChanged)},
true // Needs mission restart
] call CBA_settings_fnc_init;
[
QGVAR(fatalInjuryConditionAI), "CHECKBOX",
[LSTRING(fatalInjuryConditionAI_DisplayName), LSTRING(fatalInjuryConditionAI_Description)],
_categoryArray,
true, // default value
true, // isGlobal
{[QGVAR(fatalInjuryConditionAI), _this] call EFUNC(common,cbaSettings_settingChanged)},
true // Needs mission restart
] call CBA_settings_fnc_init;
[
QGVAR(unconsciousConditionAI), "CHECKBOX",
[LSTRING(unconsciousConditionAI_DisplayName), LSTRING(unconsciousConditionAI_Description)],
_categoryArray,
true, // default value
true, // isGlobal
{[QGVAR(unconsciousConditionAI), _this] call EFUNC(common,cbaSettings_settingChanged)},
true // Needs mission restart
] call CBA_settings_fnc_init;
[
QGVAR(cardiacArrestTime), "SLIDER",
[LSTRING(cardiacArrestTime_DisplayName), LSTRING(cardiacArrestTime_Description)],
_categoryArray,
[1,3600,30,0], // [min, max, default value, trailing decimals (-1 for whole numbers only)]
true, // isGlobal
{[QGVAR(cardiacArrestTime), _this] call EFUNC(common,cbaSettings_settingChanged)},
true // Needs mission restart
] call CBA_settings_fnc_init;

View File

@ -2,6 +2,9 @@
<Project name="ACE">
<Package name="Medical_Statemachine">
<Container name="Settings">
<Key ID="STR_ACE_Medical_statemachine_subCategory">
<English>States</English>
</Key>
<Key ID="STR_ACE_Medical_statemachine_fatalInjuryCondition_DisplayName">
<English>Fatal Injury Player</English>
</Key>

View File

@ -1,24 +1,11 @@
class ACE_Settings {
class EGVAR(medical,bleedingCoefficient) {
category = CSTRING(Category_Medical);
displayName = CSTRING(bleedingCoefficient_DisplayName);
description = CSTRING(bleedingCoefficient_Description);
typeName = "SCALAR";
value = 1;
sliderSettings[] = {0, 25, 1, 1};
movedToSQF = 1;
};
class EGVAR(medical,painCoefficient) {
category = CSTRING(Category_Medical);
displayName = CSTRING(painCoefficient_DisplayName);
description = CSTRING(painCoefficient_Description);
typeName = "SCALAR";
value = 1;
sliderSettings[] = {0, 25, 1, 1};
movedToSQF = 1;
};
class GVAR(ivFlowRate) {
displayName = CSTRING(ivFlowRate_DisplayName);
description = CSTRING(ivFlowRate_Description);
typeName = "SCALAR";
value = 1;
movedToSQF = 1;
};
};

View File

@ -6,4 +6,6 @@ PREP_RECOMPILE_START;
#include "XEH_PREP.hpp"
PREP_RECOMPILE_END;
#include "initSettings.sqf"
ADDON = true;

View File

@ -0,0 +1,33 @@
// CBA Settings [ADDON: ace_medical_status]:
private _categoryArray = [LELSTRING(medical,Category_DisplayName), LLSTRING(subCategory)];
[
QEGVAR(medical,bleedingCoefficient), "SLIDER",
[LSTRING(bleedingCoefficient_DisplayName), LSTRING(bleedingCoefficient_Description)],
_categoryArray,
[0,25,1,1], // [min, max, default value, trailing decimals (-1 for whole numbers only)]
true, // isGlobal
{[QEGVAR(medical,bleedingCoefficient), _this] call EFUNC(common,cbaSettings_settingChanged)},
true // Needs mission restart
] call CBA_settings_fnc_init;
[
QEGVAR(medical,painCoefficient), "SLIDER",
[LSTRING(painCoefficient_DisplayName), LSTRING(painCoefficient_Description)],
_categoryArray,
[0,25,1,1], // [min, max, default value, trailing decimals (-1 for whole numbers only)]
true, // isGlobal
{[QEGVAR(medical,painCoefficient), _this] call EFUNC(common,cbaSettings_settingChanged)},
true // Needs mission restart
] call CBA_settings_fnc_init;
[
QGVAR(ivFlowRate), "SLIDER",
[LSTRING(ivFlowRate_DisplayName), LSTRING(ivFlowRate_Description)],
_categoryArray,
[0,25,1,1], // [min, max, default value, trailing decimals (-1 for whole numbers only)]
true, // isGlobal
{[QGVAR(ivFlowRate), _this] call EFUNC(common,cbaSettings_settingChanged)},
true // Needs mission restart
] call CBA_settings_fnc_init;

View File

@ -2,6 +2,9 @@
<Project name="ACE">
<Package name="Medical_Status">
<Container name="Settings">
<Key ID="STR_ACE_Medical_Status_subCategory">
<English>Status</English>
</Key>
<Key ID="STR_ACE_Medical_Status_bleedingCoefficient_DisplayName">
<English>Bleeding coefficient</English>
<Russian>Коэффициент кровопотери</Russian>

View File

@ -1,146 +1,48 @@
class ACE_Settings {
// Settings without EGVAR are new and don't need backwards compat
class GVAR(advancedBandages) {
displayName = CSTRING(advancedBandages_DisplayName);
description = CSTRING(advancedBandages_Description);
typeName = "BOOL";
value = 1;
// todo: I don't like that wound reopening requires this setting to be enabled, they should be independent
};
class GVAR(advancedDiagnose) {
displayName = CSTRING(advancedDiagnose_DisplayName);
description = CSTRING(advancedDiagnose_Description);
typeName = "BOOL";
value = 1;
// todo: this setting just disables some treatment options, remove?
};
class GVAR(advancedMedication) {
displayName = CSTRING(advancedMedication_DisplayName);
description = CSTRING(advancedMedication_Description);
typeName = "BOOL";
value = 1;
};
// todo: the strings for all three advanced bandages/medication/diagnose settings are terribly ambigious
class EGVAR(medical,allowLitterCreation) {
category = ECSTRING(medical,Category_Medical);
displayName = CSTRING(allowLitterCreation);
description = CSTRING(allowLitterCreation_Description);
typeName = "BOOL";
value = 1;
movedToSqf = 1;
};
class EGVAR(medical,CPRcreatesPulse) {
category = ECSTRING(medical,Category_Medical);
displayName = CSTRING(CPRcreatesPulse);
description = CSTRING(CPRcreatesPulse_Description);
typeName = "BOOL";
value = 1;
movedToSqf = 1;
};
class EGVAR(medical,litterCleanUpDelay) {
category = ECSTRING(medical,Category_Medical);
displayName = CSTRING(litterCleanUpDelay);
description = CSTRING(litterCleanUpDelay_Description);
typeName = "SCALAR";
value = 0;
movedToSqf = 1;
};
class EGVAR(medical,litterSimulationDetail) {
category = ECSTRING(medical,Category_Medical);
displayName = CSTRING(litterSimulationDetail);
description = CSTRING(litterSimulationDetail_Description);
typeName = "SCALAR";
value = 3;
values[] = {"Off", "Low", "Medium", "High", "Ultra"};
movedToSqf = 1;
_values[] = { 0, 50, 100, 1000, 5000 };
};
class EGVAR(medical,increaseTrainingInLocations) {
category = CSTRING(Category_Medical);
displayName = CSTRING(increaseTrainingInLocations_DisplayName);
description = CSTRING(increaseTrainingInLocations_Description);
value = 0;
typeName = "BOOL";
movedToSqf = 1;
};
class EGVAR(medical,PAKTime) {
category = ECSTRING(medical,Category_Medical);
displayName = CSTRING(PAKTime);
description = CSTRING(PAKTime_Description);
typeName = "SCALAR";
value = 0;
};
class GVAR(woundReopening) {
displayName = CSTRING(woundReopening_DisplayName);
description = CSTRING(woundReopening_Description);
typeName = "BOOL";
value = 1;
movedToSqf = 1;
};
class EGVAR(medical,medicSetting_Epi) {
displayName = CSTRING(medicSetting_Epi_DisplayName);
description = CSTRING(medicSetting_Epi_Description);
typeName = "SCALAR";
value = 0;
values[] = {CSTRING(anyone), CSTRING(medicsOnly), CSTRING(doctorsOnly)};
movedToSqf = 1;
};
class EGVAR(medical,medicSetting_PAK) {
displayName = CSTRING(medicSetting_PAK_DisplayName);
description = CSTRING(medicSetting_PAK_Description);
typeName = "SCALAR";
value = 0;
values[] = {CSTRING(anyone), CSTRING(medicsOnly), CSTRING(doctorsOnly)};
movedToSqf = 1;
};
class EGVAR(medical,medicSetting_SurgicalKit) {
displayName = CSTRING(medicSetting_SurgicalKit_DisplayName);
description = CSTRING(medicSetting_SurgicalKit_Description);
typeName = "SCALAR";
value = 0;
values[] = {CSTRING(anyone), CSTRING(medicsOnly), CSTRING(doctorsOnly)};
movedToSqf = 1;
};
class EGVAR(medical,consumeItem_PAK) {
displayName = CSTRING(consumeItem_PAK_DisplayName);
description = CSTRING(consumeItem_PAK_Description);
typeName = "SCALAR";
value = 1;
values[] = {"No", "Yes"};
movedToSqf = 1;
};
class EGVAR(medical,consumeItem_SurgicalKit) {
displayName = CSTRING(consumeItem_SurgicalKit_DisplayName);
description = CSTRING(consumeItem_SurgicalKit_Description);
typeName = "SCALAR";
value = 1;
values[] = {"No", "Yes"};
movedToSqf = 1;
};
class EGVAR(medical,useLocation_Epi) {
displayName = CSTRING(useLocation_Epi_DisplayName);
description = CSTRING(useLocation_Epi_Description);
typeName = "SCALAR";
value = 0;
values[] = {ECSTRING(common,Anywhere), ECSTRING(common,Vehicle), CSTRING(medicalFacility), CSTRING(vehicleAndFacility), ECSTRING(common,Disabled)};
movedToSqf = 1;
};
class EGVAR(medical,useLocation_PAK) {
displayName = CSTRING(useLocation_PAK_DisplayName);
description = CSTRING(useLocation_PAK_Description);
typeName = "SCALAR";
value = 0;
values[] = {ECSTRING(common,Anywhere), ECSTRING(common,Vehicle), CSTRING(medicalFacility), CSTRING(vehicleAndFacility), ECSTRING(common,Disabled)};
movedToSqf = 1;
};
class EGVAR(medical,useLocation_SurgicalKit) {
displayName = CSTRING(useLocation_SurgicalKit_DisplayName);
description = CSTRING(useLocation_SurgicalKit_Description);
typeName = "SCALAR";
value = 0;
values[] = {ECSTRING(common,Anywhere), ECSTRING(common,Vehicle), CSTRING(medicalFacility), CSTRING(vehicleAndFacility), ECSTRING(common,Disabled)};
movedToSqf = 1;
};
class GVAR(allowSelfIV) {
displayName = CSTRING(allowSelfIV_DisplayName);
description = CSTRING(allowSelfIV_Description);
typeName = "SCALAR";
value = 0;
values[] = {"No", "Yes"};
};
class GVAR(convertItems) {
category = CSTRING(Category_Medical);
displayName = CSTRING(convertItems_DisplayName);
description = CSTRING(convertItems_Description);
typeName = "SCALAR";
value = 0;
values[] = {ECSTRING(common,Enabled), CSTRING(convertItems_remove), ECSTRING(common,Disabled)};
class EGVAR(medical,convertItems) {
movedToSqf = 1;
};
};

View File

@ -6,6 +6,8 @@ PREP_RECOMPILE_START;
#include "XEH_PREP.hpp"
PREP_RECOMPILE_END;
#include "initSettings.sqf"
// config to determine animation acceleration coefficient
// adjusting these is trail and error
// if the animation is cut of ingame, increase these values

View File

@ -12,6 +12,8 @@
* Public: No
*/
if (EGVAR(medical,convertItems) == 2) exitWith {};
params ["_unit"];
private _countFirstAidKit = [_unit, "FirstAidKit"] call EFUNC(common,getCountOfItem);
@ -20,7 +22,7 @@ _unit removeItems "FirstAidKit";
private _countMedikit = [_unit, "Medikit"] call EFUNC(common,getCountOfItem);
_unit removeItems "Medikit";
if (GVAR(convertItems) != 0) exitWith {};
if (EGVAR(medical,convertItems) != 0) exitWith {};
for "_i" from 1 to _countFirstAidKit do {
_unit addItem "ACE_fieldDressing";

View File

@ -0,0 +1,206 @@
// CBA Settings [ADDON: ace_medical_treatment]:
private _categoryArray = [LELSTRING(medical,Category_DisplayName), LLSTRING(subCategory)];
// todo: the strings for all three advanced bandages/medication/diagnose settings are terribly ambigious
[// todo: I don't like that wound reopening requires this setting to be enabled, they should be independent
QGVAR(advancedBandages), "CHECKBOX",
[LSTRING(advancedBandages_DisplayName), LSTRING(advancedBandages_Description)],
_categoryArray,
true, // default value
true, // isGlobal
{[QGVAR(advancedBandages), _this] call EFUNC(common,cbaSettings_settingChanged)},
true // Needs mission restart
] call CBA_settings_fnc_init;
[// todo: this setting just disables some treatment options, remove?
QGVAR(advancedDiagnose), "CHECKBOX",
[LSTRING(advancedDiagnose_DisplayName), LSTRING(advancedDiagnose_Description)],
_categoryArray,
true, // default value
true, // isGlobal
{[QGVAR(advancedDiagnose), _this] call EFUNC(common,cbaSettings_settingChanged)},
true // Needs mission restart
] call CBA_settings_fnc_init;
[
QGVAR(advancedMedication), "CHECKBOX",
[LSTRING(advancedMedication_DisplayName), LSTRING(advancedMedication_Description)],
_categoryArray,
true, // default value
true, // isGlobal
{[QGVAR(advancedMedication), _this] call EFUNC(common,cbaSettings_settingChanged)},
true // Needs mission restart
] call CBA_settings_fnc_init;
[
QGVAR(woundReopening), "CHECKBOX",
[LSTRING(woundReopening_DisplayName), LSTRING(woundReopening_Description)],
_categoryArray,
true, // default value
true, // isGlobal
{[QGVAR(woundReopening), _this] call EFUNC(common,cbaSettings_settingChanged)},
true // Needs mission restart
] call CBA_settings_fnc_init;
[
QGVAR(allowSelfIV), "LIST", // This setting is list because we want number for treatment config
[LSTRING(allowSelfIV_DisplayName), LSTRING(allowSelfIV_Description)],
_categoryArray,
[[0,1],["No","Yes"],0], // [values, titles, defaultIndex]
true, // isGlobal
{[QGVAR(allowSelfIV), _this] call EFUNC(common,cbaSettings_settingChanged)},
true // Needs mission restart
] call CBA_settings_fnc_init;
// Ported Settings:
[
QEGVAR(medical,convertItems), "LIST",
[LSTRING(convertItems_DisplayName), LSTRING(convertItems_Description)],
_categoryArray,
[[0,1,2],[LELSTRING(common,Enabled),LLSTRING(convertItems_remove),LELSTRING(common,Disabled)],0], // [values, titles, defaultIndex]
true, // isGlobal
{[QEGVAR(medical,convertItems), _this] call EFUNC(common,cbaSettings_settingChanged)},
true // Needs mission restart
] call CBA_settings_fnc_init;
[
QEGVAR(medical,allowLitterCreation), "CHECKBOX",
[LSTRING(allowLitterCreation), LSTRING(allowLitterCreation_Description)],
_categoryArray,
true, // default value
true, // isGlobal
{[QEGVAR(medical,allowLitterCreation), _this] call EFUNC(common,cbaSettings_settingChanged)},
true // Needs mission restart
] call CBA_settings_fnc_init;
[
QEGVAR(medical,CPRcreatesPulse), "CHECKBOX",
[LSTRING(CPRcreatesPulse), LSTRING(CPRcreatesPulse_Description)],
_categoryArray,
true, // default value
true, // isGlobal
{[QEGVAR(medical,CPRcreatesPulse), _this] call EFUNC(common,cbaSettings_settingChanged)},
true // Needs mission restart
] call CBA_settings_fnc_init;
[
QEGVAR(medical,litterCleanUpDelay), "SLIDER",
[LSTRING(litterCleanUpDelay), LSTRING(litterCleanUpDelay_Description)],
_categoryArray,
[-1,5000,0,1], // [min, max, default value, trailing decimals (-1 for whole numbers only)]
true, // isGlobal
{[QEGVAR(medical,litterCleanUpDelay), _this] call EFUNC(common,cbaSettings_settingChanged)},
true // Needs mission restart
] call CBA_settings_fnc_init;
[
QEGVAR(medical,litterSimulationDetail), "LIST",
[LSTRING(litterSimulationDetail), LSTRING(litterSimulationDetail_Description)],
_categoryArray,
[[0,1,2,3,4],["Off","Low","Medium","High","Ultra"],3], // [values, titles, defaultIndex]
true, // isGlobal
{[QEGVAR(medical,litterSimulationDetail), _this] call EFUNC(common,cbaSettings_settingChanged)},
true // Needs mission restart
] call CBA_settings_fnc_init;
[
QEGVAR(medical,increaseTrainingInLocations), "CHECKBOX",
[LSTRING(increaseTrainingInLocations_DisplayName), LSTRING(increaseTrainingInLocations_Description)],
_categoryArray,
false, // default value
true, // isGlobal
{[QEGVAR(medical,increaseTrainingInLocations), _this] call EFUNC(common,cbaSettings_settingChanged)},
true // Needs mission restart
] call CBA_settings_fnc_init;
[
QEGVAR(medical,PAKTime), "SLIDER",
[LSTRING(PAKTime), LSTRING(PAKTime_Description)],
_categoryArray,
[-1,5000,0,1], // [min, max, default value, trailing decimals (-1 for whole numbers only)]
true, // isGlobal
{[QEGVAR(medical,PAKTime), _this] call EFUNC(common,cbaSettings_settingChanged)},
true // Needs mission restart
] call CBA_settings_fnc_init;
[
QEGVAR(medical,medicSetting_Epi), "LIST",
[LSTRING(medicSetting_Epi_DisplayName), LSTRING(medicSetting_Epi_Description)],
_categoryArray,
[[0,1,2],["Anyone","Medics only","Doctors only"],0], // [values, titles, defaultIndex]
true, // isGlobal
{[QEGVAR(medical,medicSetting_Epi), _this] call EFUNC(common,cbaSettings_settingChanged)},
true // Needs mission restart
] call CBA_settings_fnc_init;
[
QEGVAR(medical,medicSetting_PAK), "LIST",
[LSTRING(medicSetting_PAK_DisplayName), LSTRING(medicSetting_PAK_Description)],
_categoryArray,
[[0,1,2],["Anyone","Medics only","Doctors only"],0], // [values, titles, defaultIndex]
true, // isGlobal
{[QEGVAR(medical,medicSetting_PAK), _this] call EFUNC(common,cbaSettings_settingChanged)},
true // Needs mission restart
] call CBA_settings_fnc_init;
[
QEGVAR(medical,medicSetting_SurgicalKit), "LIST",
[LSTRING(medicSetting_SurgicalKit_DisplayName), LSTRING(medicSetting_SurgicalKit_Description)],
_categoryArray,
[[0,1,2],["Anyone","Medics only","Doctors only"],0], // [values, titles, defaultIndex]
true, // isGlobal
{[QEGVAR(medical,medicSetting_SurgicalKit), _this] call EFUNC(common,cbaSettings_settingChanged)},
true // Needs mission restart
] call CBA_settings_fnc_init;
[
QEGVAR(medical,consumeItem_PAK), "LIST",
[LSTRING(consumeItem_PAK_DisplayName), LSTRING(consumeItem_PAK_Description)],
_categoryArray,
[[0,1],["No","Yes"],1], // [values, titles, defaultIndex]
true, // isGlobal
{[QEGVAR(medical,consumeItem_PAK), _this] call EFUNC(common,cbaSettings_settingChanged)},
true // Needs mission restart
] call CBA_settings_fnc_init;
[
QEGVAR(medical,consumeItem_SurgicalKit), "LIST",
[LSTRING(consumeItem_SurgicalKit_DisplayName), LSTRING(consumeItem_SurgicalKit_Description)],
_categoryArray,
[[0,1],["No","Yes"],1], // [values, titles, defaultIndex]
true, // isGlobal
{[QEGVAR(medical,consumeItem_SurgicalKit), _this] call EFUNC(common,cbaSettings_settingChanged)},
true // Needs mission restart
] call CBA_settings_fnc_init;
[
QEGVAR(medical,useLocation_Epi), "LIST",
[LSTRING(useLocation_Epi_DisplayName), LSTRING(useLocation_Epi_Description)],
_categoryArray,
[[0,1,2,3,4],[LELSTRING(common,Anywhere), LELSTRING(common,Vehicle), LLSTRING(medicalFacility), LLSTRING(vehicleAndFacility), LELSTRING(common,Disabled)],0], // [values, titles, defaultIndex]
true, // isGlobal
{[QEGVAR(medical,useLocation_Epi), _this] call EFUNC(common,cbaSettings_settingChanged)},
true // Needs mission restart
] call CBA_settings_fnc_init;
[
QEGVAR(medical,useLocation_PAK), "LIST",
[LSTRING(useLocation_PAK_DisplayName), LSTRING(useLocation_PAK_Description)],
_categoryArray,
[[0,1,2,3,4],[LELSTRING(common,Anywhere), LELSTRING(common,Vehicle), LLSTRING(medicalFacility), LLSTRING(vehicleAndFacility), LELSTRING(common,Disabled)],0], // [values, titles, defaultIndex]
true, // isGlobal
{[QEGVAR(medical,useLocation_PAK), _this] call EFUNC(common,cbaSettings_settingChanged)},
true // Needs mission restart
] call CBA_settings_fnc_init;
[
QEGVAR(medical,useLocation_SurgicalKit), "LIST",
[LSTRING(useLocation_SurgicalKit_DisplayName), LSTRING(useLocation_SurgicalKit_Description)],
_categoryArray,
[[0,1,2,3,4],[LELSTRING(common,Anywhere), LELSTRING(common,Vehicle), LLSTRING(medicalFacility), LLSTRING(vehicleAndFacility), LELSTRING(common,Disabled)],0], // [values, titles, defaultIndex]
true, // isGlobal
{[QEGVAR(medical,useLocation_SurgicalKit), _this] call EFUNC(common,cbaSettings_settingChanged)},
true // Needs mission restart
] call CBA_settings_fnc_init;

View File

@ -2,6 +2,9 @@
<Project name="ACE">
<Package name="Medical_Treatment">
<Container name="Settings">
<Key ID="STR_ACE_Medical_treatment_subCategory">
<English>Treatment</English>
</Key>
<Key ID="STR_ACE_Medical_treatment_advancedBandages_DisplayName">
<English>Advanced Bandages</English>
</Key>
@ -397,6 +400,20 @@
<Chinesesimp>[ACE] 医疗补给箱(进阶)</Chinesesimp>
<Chinese>[ACE] 醫療補給箱(進階)</Chinese>
</Key>
<Key ID="STR_ACE_Medical_treatment_Attributes_isMedicalVehicle_Description">
<English>Whether or not the object will be a medical vehicle.</English>
<Polish>Czy pojazd ma być pojazdem medycznym?</Polish>
<Italian>L'oggetto in questione sarà un veicolo medico o meno.</Italian>
<German>Legt fest, ob das Objekt ein Sanitätsfahrzeug ist.</German>
<Spanish>Es un vehículo médico?</Spanish>
<French>Détermine si c'est un véhicule sanitaire.</French>
<Portuguese>Se o objeto será ou não um veículo médico</Portuguese>
<Russian>Будет ли объект считаться медицинским транспортом.</Russian>
<Japanese>どれでも、またはオブジェクトを医療車両として割り当てます。</Japanese>
<Korean>무엇이 되었던간에 이 목록에 있는 물체는 의료 차량이 됩니다.</Korean>
<Chinesesimp>是否使该载具为医疗载具?</Chinesesimp>
<Chinese>是否使該載具為醫療載具?</Chinese>
</Key>
<Key ID="STR_ACE_Medical_treatment_Attributes_isMedic_Description">
<English>Medical training</English>
<Polish>Wyszkolenie medyczne</Polish>
@ -1417,38 +1434,6 @@
<Chinesesimp>此身体部位没有受伤</Chinesesimp>
<Chinese>此身體部位沒有受傷</Chinese>
</Key>
<Key ID="STR_ACE_Medical_treatment_litterSimulationDetail">
<English>Litter Simulation Detail</English>
<Polish>Detale zużytych medykamentów</Polish>
<Spanish>Detalle de simulación de basura</Spanish>
<Russian>Количество мусора от медицины</Russian>
<Italian>Dettagli Simulazione Rifiuti</Italian>
<French>Niveau de simulation des détritus</French>
<German>Abfall-Detaillevel</German>
<Hungarian>Hulladékszimuláció részletessége</Hungarian>
<Portuguese>Detalhe da simulação de sujeira</Portuguese>
<Czech>Počet zobrazených předmětů po použití zdravotnického materiálu</Czech>
<Japanese>医療廃棄物シミュレーション詳細度</Japanese>
<Korean>의료폐기물 재현 상세도</Korean>
<Chinesesimp>医疗废弃物模拟细节</Chinesesimp>
<Chinese>醫療廢棄物模擬細節</Chinese>
</Key>
<Key ID="STR_ACE_Medical_treatment_litterSimulationDetail_Desc">
<English>Litter simulation detail level sets the number of litter items which will be locally spawned in the client. Excessive amounts in local areas could cause FPS lag, so this is a client only setting.</English>
<Polish>Opcja ta ustawia liczbę zużytych medykamentów, jakie pojawiają się lokalnie wokół gracza. Ich zbyt duża ilość może spowodować spadki FPS, dlatego jest to ustawienie tylko po stronie klienta.</Polish>
<Spanish>Detalle simulación de basura establece el número de artículos de basura que se generan a nivel local en el cliente. Las cantidades excesivas en áreas locales podrían causar caída de rendimiento, así que esto es un ajuste de cliente únicamente.</Spanish>
<Russian>Устанавливает количество мусора, который появляется после использования мед. препаратов. Большое количество мусора может уменьшить производительность, поэтому данная настройка локальна для клиента.</Russian>
<Italian>Il numero di rifiuti che verranno creati localmente. La creazione di troppi rifiuti in aree locali potrebbe causare lag e calo di FPS. Questo è un settaggio lato client.</Italian>
<French>Le niveau de simulation des détritus règle la quantité de déchets qui vont être créés localement chez le client. Des quantitées excessive chez certains clients peuvent causer des chutes de FPS, c'est donc une option client uniquement.</French>
<German>Die Einstellung für das Abfall-Detaillevel stellt die Menge des lokal angezeigten medizinischen Abfalls ein. Zuviel Abfall kann FPS-Einbrüche erzeugen, weswegen diese Einstellung nur clientseitig ist.</German>
<Hungarian>A hulladékszimuláció részletessége megszabja a kliens által megjelenített hulladékobjektumok mennyiségét. Súlyos mennyiségek izolált területeken alacsony FPS-t okozhatnak, így ez egy kliensoldali beállítás.</Hungarian>
<Portuguese>O nível de detalhe de sujeira determina o número de itens que irão aparecer no cliente. Quantidades excessivas em áreas locais podem aumentar o lag do FPS, então esta é uma opção somente para o cliente.</Portuguese>
<Czech>Počet zobrazených předmětů po použití zdravotnického materiálu ovlivňuje počet objektů, které budou zobrazeny klientovi v místě použití zdravotnického materiálu. Vyšší množství objektů může způsobovat poklesy FPS a proto je toto nastavení čistě na klientovi.</Czech>
<Japanese>医療廃棄物シミュレーションは各クライアントでローカルに作成される、医療廃棄物の詳細度を決定できます。ローカルで多くのアイテムがあると FPS の低下を引き起こすため、クライアント側のみの設定です。</Japanese>
<Korean>의료폐기물 재현 상세도의 경우 얼마나 많은 수의 폐기물이 클라이언트 주변에 생성되는지를 정합니다. 매우 많은 수의 지역은 프레임드랍을 유발할 수 있습니다, 고로 이는 클라이언트 전용 설정입니다.</Korean>
<Chinesesimp>设定医疗废弃物的最大产生数量,过多的数量会导致画面更新率延迟,因此这由用户端来设定。</Chinesesimp>
<Chinese>設定醫療廢棄物的最大產生數量,過多的數量會導致畫面更新率延遲,因此這由用戶端來設定。</Chinese>
</Key>
<Key ID="STR_ACE_Medical_treatment_Inject_Adenosine">
<English>Inject Adenosine</English>
<German>Adenosin injizieren</German>