From d294989cb06f04bc941a6f40ea4de123328f7920 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Sat, 8 Aug 2015 19:08:27 +0100 Subject: [PATCH 01/57] Allow chat use on input disabled listen server Listen server technically doesn't have serverCommandAvailable. --- addons/common/functions/fnc_disableUserInput.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/common/functions/fnc_disableUserInput.sqf b/addons/common/functions/fnc_disableUserInput.sqf index 520e4131b2..d9485b11e7 100644 --- a/addons/common/functions/fnc_disableUserInput.sqf +++ b/addons/common/functions/fnc_disableUserInput.sqf @@ -84,7 +84,7 @@ if (_state) then { openMap true; }; - if (serverCommandAvailable "#missions" || {player getVariable ["ACE_isUnconscious", false] && {(call FUNC(player)) getVariable [QEGVAR(medical,AllowChatWhileUnconscious), missionNamespace getVariable [QEGVAR(medical,AllowChatWhileUnconscious), false]]}}) then { + if (isServer || {serverCommandAvailable "#kick"} || {player getVariable ["ACE_isUnconscious", false] && {(call FUNC(player)) getVariable [QEGVAR(medical,AllowChatWhileUnconscious), missionNamespace getVariable [QEGVAR(medical,AllowChatWhileUnconscious), false]]}}) then { if (!(_key in (actionKeys "DefaultAction" + actionKeys "Throw")) && {_key in (actionKeys "Chat" + actionKeys "PrevChannel" + actionKeys "NextChannel")}) then { _key = 0; }; From 416d559354971a0482f744b169a2de982006665a Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Sat, 8 Aug 2015 20:51:24 +0100 Subject: [PATCH 02/57] Expand common isFeatureCameraActive function The function is currently only used by ace_goggles and it makes sense to expand it to detect if any common feature camera is active rather than just BI cameras --- .../functions/fnc_isFeatureCameraActive.sqf | 36 ++++++++++--------- 1 file changed, 20 insertions(+), 16 deletions(-) diff --git a/addons/common/functions/fnc_isFeatureCameraActive.sqf b/addons/common/functions/fnc_isFeatureCameraActive.sqf index 250beaa3ca..0b91b19e55 100644 --- a/addons/common/functions/fnc_isFeatureCameraActive.sqf +++ b/addons/common/functions/fnc_isFeatureCameraActive.sqf @@ -1,31 +1,35 @@ /* * Author: Sniperwolf572 + * Checks if one of the following common feature cameras is active: * - * Checks if one of the following BI feature cameras are active: - * - * - Classic camera (BIS_fnc_cameraOld) - * - Splendid camera (BIS_fnc_camera) + * - Curator + * - ACE Spectator * - Arsenal camera (BIS_fnc_arsenal) - * - Animation viewer (BIS_fnc_animViewer) * - Establishing shot (BIS_fnc_establishingShot) + * - Splendid camera (BIS_fnc_camera) + * - Animation viewer (BIS_fnc_animViewer) + * - Classic camera (BIS_fnc_cameraOld) * * Arguments: - * None + * 0: None * - * Return value: - * Is BI feature camera active (bool) + * Return Value: + * A feature camera is active * * Example: - * call ace_common_fnc_isFeatureCameraActive; + * [] call ace_common_fnc_isFeatureCameraActive * + * Public: No */ #include "script_component.hpp" -( - !isNull (missionNamespace getVariable ["BIS_DEBUG_CAM", objNull]) || // Classic camera - {!isNull (missionNamespace getVariable ["BIS_fnc_camera_cam", objNull])} || // Splendid camera - {!isNull (uiNamespace getVariable ["BIS_fnc_arsenal_cam", objNull])} || // Arsenal camera - {!isNull (uiNamespace getVariable ["BIS_fnc_animViewer_cam", objNull])} || // Animation viewer camera - {!isNull (missionNamespace getVariable ["BIS_fnc_establishingShot_fakeUAV", objNull])} // Establishing shot camera -) \ No newline at end of file +!( + isNull curatorCamera && // Curator + {isNull (GETMVAR(EGVAR(spectator,camera),objNull))} && // ACE Spectator + {isNull (GETUVAR(BIS_fnc_arsenal_cam, objNull))} && // Arsenal camera + {isNull (GETMVAR(BIS_fnc_establishingShot_fakeUAV, objNull))} && // Establishing shot camera + {isNull (GETMVAR(BIS_fnc_camera_cam, objNull))} && // Splendid camera + {isNull (GETUVAR(BIS_fnc_animViewer_cam, objNull))} && // Animation viewer camera + {isNull (GETMVAR(BIS_DEBUG_CAM, objNull))} // Classic camera +) From 6bd4fcc4fdfcbd767d1131378fdb4e64a73a70a0 Mon Sep 17 00:00:00 2001 From: gienkov Date: Sat, 8 Aug 2015 23:39:29 +0200 Subject: [PATCH 03/57] Fix stringtable error --- addons/medical_menu/stringtable.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/medical_menu/stringtable.xml b/addons/medical_menu/stringtable.xml index 45da857c69..a04b72f8b2 100644 --- a/addons/medical_menu/stringtable.xml +++ b/addons/medical_menu/stringtable.xml @@ -1,4 +1,4 @@ - + From 1c0a6fb457697ca48b3facb9a7264af84a328348 Mon Sep 17 00:00:00 2001 From: gienkov Date: Sun, 9 Aug 2015 01:47:55 +0200 Subject: [PATCH 04/57] PL translation of common, medical_menu, optionsmenu --- addons/common/stringtable.xml | 4 ++-- addons/medical_menu/stringtable.xml | 14 ++++++++++++-- addons/optionsmenu/stringtable.xml | 4 +++- 3 files changed, 17 insertions(+), 5 deletions(-) diff --git a/addons/common/stringtable.xml b/addons/common/stringtable.xml index d0034d2c04..0bbe6564da 100644 --- a/addons/common/stringtable.xml +++ b/addons/common/stringtable.xml @@ -479,7 +479,6 @@ Verificar PBOs - Sprawdzaj spójność addonów z serwerem Este módulo verifica la integridad de los addons con los que iniciamos el simulador Dieses Modul überprüft ob jeder Spieler die richtigen PBO-Dateien hat. @@ -646,6 +645,7 @@ Vehicles only + Tylko pojazdy Do Not Force @@ -680,4 +680,4 @@ ACE3 Pojazdy - + \ No newline at end of file diff --git a/addons/medical_menu/stringtable.xml b/addons/medical_menu/stringtable.xml index a04b72f8b2..bb4e40a0f4 100644 --- a/addons/medical_menu/stringtable.xml +++ b/addons/medical_menu/stringtable.xml @@ -1,36 +1,46 @@ - + Medical Menu + Menu medyczne Allow Medical Menu + Akt. menu medyczne Allow clients to use the medical menu + Zezwalaj graczom korzystać z menu medycznego Use Medical menu + Użyj menu medycznego If allowed by server, enable the option to use the Medical Menu through keybinding and interaction menu + Jeżeli zezwolone przez serwer, aktywuj menu medyczne poprzez skrót klawiszowy i menu interakcji. Re-open Medical menu + Otwieraj ponownie menu medyczne Re-open the medical menu after succesful treatment + Otwórz ponownie menu medyczne po udanym zakończeniu leczenia Open Medical Menu + Otwórz menu medyczne Medical Menu Settings + Ustawienia menu medycznego Configure the usage of the Medical Menu + Skonfiguruj opcje menu medycznego EXAMINE & TREATMENT @@ -388,4 +398,4 @@ - + \ No newline at end of file diff --git a/addons/optionsmenu/stringtable.xml b/addons/optionsmenu/stringtable.xml index bde7803e5a..77cbc0961c 100644 --- a/addons/optionsmenu/stringtable.xml +++ b/addons/optionsmenu/stringtable.xml @@ -323,9 +323,11 @@ Headbug Fix + Fix Headbug Resets your animation state. + Resetuje aktualną animację. ACE News @@ -348,4 +350,4 @@ Wszystkie kategorie - + \ No newline at end of file From ce99404200fef7c6729ce2ff17461525f300ef9e Mon Sep 17 00:00:00 2001 From: gienkov Date: Sun, 9 Aug 2015 01:52:22 +0200 Subject: [PATCH 05/57] move english strings from original to english, remove original --- addons/medical_menu/stringtable.xml | 95 ++++++++++++++--------------- 1 file changed, 45 insertions(+), 50 deletions(-) diff --git a/addons/medical_menu/stringtable.xml b/addons/medical_menu/stringtable.xml index bb4e40a0f4..5f23dfc670 100644 --- a/addons/medical_menu/stringtable.xml +++ b/addons/medical_menu/stringtable.xml @@ -43,7 +43,6 @@ Skonfiguruj opcje menu medycznego - EXAMINE & TREATMENT ОСМОТР И ЛЕЧЕНИЕ EXAMINE & TREATMENT EXAMINAR & TRATAMIENTO @@ -51,7 +50,6 @@ BADANIE & LECZENIE - STATUS СОСТОЯНИЕ STATUS ESTADO @@ -59,7 +57,6 @@ STATUS - OVERVIEW ОБЩАЯ ИНФОРМАЦИЯ OVERVIEW DESCRIPCIÓN @@ -67,7 +64,6 @@ OPIS - ACTIVITY LOG ПРОВЕДЕННЫЕ МАНИПУЛЯЦИИ ACTIVITY LOG REGISTRO DE ACTIVIDAD @@ -75,7 +71,6 @@ LOGI AKTYWNOŚCI - QUICK VIEW БЫСТРЫЙ ОСМОТР QUICK VIEW VISTA RÁPIDA @@ -83,318 +78,318 @@ SZYBKI PODGLĄD - None Не ранен Ninguno Aucun Brak + None - Minor Несрочная помощь Menor Mineur Normalny + Minor - Delayed Срочная помощь Diferido Urgent Opóźniony + Delayed - Immediate Неотложная помощь Inmediato Immédiat Natychmiastowy + Immediate - Deceased Морг Fallecido Décédé Nie żyje + Deceased - View triage Card Смотреть первичную карточку Ver Triage Voir Carte de Triage Pokaż kartę segregacyjną + View triage Card - Examine Patient Осмотреть пациента Examinar Paciente Examiner Patient Zbadaj pacjenta + Examine Patient - Bandage / Fractures Раны / переломы Vendajes/Fracturas Bandages / Fractures Bandaże / Złamania + Bandage / Fractures - Medication Медикаменты Medicación Médications Leki + Medication - Airway Management Дыхательные пути Vías Aéreas Gestion Des Voie REspiratoire Drogi oddechowe + Airway Management - Advanced Treatments Специальная медпомощь Tratamientos Avanzados Traitement Avancé Zaawansowane zabiegi + Advanced Treatments - Drag/Carry Тащить/нести Arrastrar/Cargar Glisser/Porter Ciągnij/Nieś + Drag/Carry - Toggle (Self) Лечить себя/другого раненого Activer (sois) Przełącz (na siebie) Alternar + Toggle (Self) - Select triage status Сортировка Seleccionar estado de Triage Selectioner l'état de Triage Wybierz priorytet + Select triage status - Select Head Выбрать голову Seleccionar Cabeza Selectioner Tête Wybierz głowę + Select Head - Select Torso Выбрать торс Seleccionar Torso Selectioner Torse Wybierz tors + Select Torso - Select Left Arm Выбрать левую руку Seleccionar Brazo Izquierdo Selectioner Bras Gauche Wybierz lewą rękę + Select Left Arm - Select Right Arm Выбрать правую руку Seleccionar Brazo Derecho Selectioner Bras Droit Wybierz prawą rękę + Select Right Arm - Select Left Leg Выбрать левую ногу Seleccionar Pierna Izquierda Selectioner Jambe Gauche Wybierz lewą nogę + Select Left Leg - Select Right Leg Выбрать правую ногу Seleccionar Pierna Derecha Selectioner Jambe Droite Wybierz prawą nogę + Select Right Leg - Head Голова Cabeza Tête Głowa + Head - Torso Торс Torse Tors + Torso - Left Arm Левая рука Brazo Izquierdo Bras Gauche Lewa ręka + Left Arm - Right Arm Правая рука Brazo Derecho Bras Droit Prawa ręka + Right Arm - Left Leg Левая нога Pierna Izquierda Jambe Gauche Lewa noga + Left Leg - Right Leg Правая нога Pierna Derecha Jambe Droite Prawa noga + Right Leg - Body Part: %1 Часть тела: %1 Parte del cuerpo: %1 Partie du corps: %1 Część ciała: %1 + Body Part: %1 - Small малого размера Pequeña Petite małym + Small - Medium среднего размера Mediana moyenne średnim + Medium - Large большого размера Grande Grande dużym + Large - There are %2 %1 Open Wounds %2 открытые раны %1 Hay %2 Heridas Abiertas %1 Il y a %2 %1 Blessure Ouverte Widzisz otwarte rany w ilości %2 o %1 rozmiarze + There are %2 %1 Open Wounds - There is 1 %1 Open Wound Открытая рана %1 Hay 1 Herida Abierta %1 Il y a 1 blessure ouverte %1 Widzisz 1 otwartą ranę o %1 rozmiarze + There is 1 %1 Open Wound - There is a partial %1 Open wound Частично открытая рана %1 Hay una herida parcial abierta %1 Il y a une Blessure Patiellement Ouverte %1 Widzisz częściowo otwartą ranę o %1 rozmiarze + There is a partial %1 Open wound - There are %2 %1 Bandaged Wounds %2 перевязанные раны %1 Hay %2 Heridas %1 Vendadas Il y a %2 %1 Blessure Bandée Widzisz %2 zabandażowanych ran o %1 rozmiarze + There are %2 %1 Bandaged Wounds - There is 1 %1 Bandaged Wound 1 перевязанная рана %1 Hay 1 Herida Vendada %1 Il y a 1 %1 Blessure Bandée Widzisz 1 zabandażowaną ranę o %1 rozmiarze + There is 1 %1 Bandaged Wound - There is a partial %1 Bandaged wound Частично перевязанная рана %1 Hay una Herida parcial %1 Vendada Il y a %1 Blessure Partielment Bandée Widzisz 1 częściowo zabandażowaną ranę o %1 rozmiarze + There is a partial %1 Bandaged wound - Normal breathing Дыхание в норме Respiración normal Respiration Normale Normalny oddech + Normal breathing - No breathing Дыхания нет No respira Apnée Brak oddechu + No breathing - Difficult breathing Дыхание затруднено Dificultad para respirar Difficultée Respiratoire Trudności z oddychaniem + Difficult breathing - Almost no breathing Дыхания почти нет Casi sin respirar Respiration Faible Prawie brak oddechu + Almost no breathing - Bleeding Кровотечение Sangrando Seignement Krwawienie zewnętrzne + Bleeding - in Pain Испытывает боль Con Dolor A De La Douleur W bólu + in Pain - Lost a lot of Blood Большая кровопотеря Mucha Sangre perdida A Perdu Bcp de Sang Stracił dużo krwi + Lost a lot of Blood - Tourniquet [CAT] Жгут Torniquete [CAT] Garot [CAT] Opaska uciskowa [CAT] + Tourniquet [CAT] - Nasopharyngeal Tube [NPA] Назотрахеальная трубка Torniquete [CAT] Canule Naseaupharyngée [NPA] Rurka nosowo-gardłowa [NPA] + Nasopharyngeal Tube [NPA] From 3cac137851b1fb684d974c0c974bbc0e72a7b608 Mon Sep 17 00:00:00 2001 From: Glowbal Date: Sun, 9 Aug 2015 09:14:42 +0200 Subject: [PATCH 06/57] Fixed #1893 - Menu closes when patient is more as 10 meters away --- addons/medical/functions/fnc_displayPatientInformation.sqf | 6 ++++++ addons/medical/stringtable.xml | 3 +++ addons/medical_menu/functions/fnc_onMenuOpen.sqf | 7 +++++++ 3 files changed, 16 insertions(+) diff --git a/addons/medical/functions/fnc_displayPatientInformation.sqf b/addons/medical/functions/fnc_displayPatientInformation.sqf index cd61550152..e181328318 100644 --- a/addons/medical/functions/fnc_displayPatientInformation.sqf +++ b/addons/medical/functions/fnc_displayPatientInformation.sqf @@ -13,6 +13,7 @@ */ #include "script_component.hpp" +#define MAX_DISTANCE 10 // Exit for basic medical if (GVAR(level) < 2) exitWith {}; @@ -39,6 +40,11 @@ if (_show) then { if (GVAR(displayPatientInformationTarget) != _target || GVAR(currentSelectedSelectionN) != _selectionN) exitwith { [_this select 1] call CBA_fnc_removePerFrameHandler; }; + if (ACE_player distance _target > MAX_DISTANCE) exitwith { + ("ACE_MedicalRscDisplayInformation" call BIS_fnc_rscLayer) cutText ["","PLAIN"]; + [_this select 1] call CBA_fnc_removePerFrameHandler; + ["displayTextStructured", [ACE_player], [[LSTRING(DistanceToFar), [_target] call EFUNC(common,getName)], 1.75, ACE_player]] call EFUNC(common,targetEvent); + }; disableSerialization; _display = uiNamespace getvariable QGVAR(DisplayInformation); diff --git a/addons/medical/stringtable.xml b/addons/medical/stringtable.xml index b852c27f96..63bd431f95 100644 --- a/addons/medical/stringtable.xml +++ b/addons/medical/stringtable.xml @@ -3609,5 +3609,8 @@ Médico Orvosi + + Distance to %1 has become to far for treatment + diff --git a/addons/medical_menu/functions/fnc_onMenuOpen.sqf b/addons/medical_menu/functions/fnc_onMenuOpen.sqf index 52a957ae93..9c4d1865fa 100644 --- a/addons/medical_menu/functions/fnc_onMenuOpen.sqf +++ b/addons/medical_menu/functions/fnc_onMenuOpen.sqf @@ -14,6 +14,7 @@ * Public: No */ #include "script_component.hpp" +#define MAX_DISTANCE 10 private "_target"; @@ -72,6 +73,12 @@ setMousePosition [0.4, 0.4]; _status = [GVAR(INTERACTION_TARGET)] call FUNC(getTriageStatus); (_display displayCtrl 2000) ctrlSetText (_status select 0); (_display displayCtrl 2000) ctrlSetBackgroundColor (_status select 2); + + if (ACE_player distance _target > MAX_DISTANCE) exitwith { + closeDialog 314412; + ["displayTextStructured", [ACE_player], [[ELSTRING(medical,DistanceToFar), [_target] call EFUNC(common,getName)], 1.75, ACE_player]] call EFUNC(common,targetEvent); + }; + }, [_display]] call BIS_fnc_addStackedEventHandler; ["Medical_onMenuOpen", [ACE_player, _interactionTarget]] call EFUNC(common,localEvent); From be787883f2348aba27a311d9345f82984faf9a15 Mon Sep 17 00:00:00 2001 From: gienkov Date: Sun, 9 Aug 2015 22:38:34 +0200 Subject: [PATCH 07/57] captives translation --- addons/captives/stringtable.xml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/addons/captives/stringtable.xml b/addons/captives/stringtable.xml index 8ce7ab90c1..08982b7277 100644 --- a/addons/captives/stringtable.xml +++ b/addons/captives/stringtable.xml @@ -223,15 +223,19 @@ Require surrendering + Wymagaj kapitulacji Require Players to surrender before they can be arrested + Wymagaj od graczy kapitulacji zanim będzie można ich zaaresztować Surrendering only + Tylko kapitulacja Surrendering or No weapon + Kapitulacja lub brak broni - + \ No newline at end of file From 0914193e140c80ec508a212c49cea9d4fb084579 Mon Sep 17 00:00:00 2001 From: gienkov Date: Sun, 9 Aug 2015 22:45:01 +0200 Subject: [PATCH 08/57] fix captives module --- addons/captives/CfgVehicles.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/captives/CfgVehicles.hpp b/addons/captives/CfgVehicles.hpp index 187fe1a746..abd97f92a8 100644 --- a/addons/captives/CfgVehicles.hpp +++ b/addons/captives/CfgVehicles.hpp @@ -184,8 +184,8 @@ class CfgVehicles { defaultValue = 1; }; class allowSurrender { - displayName = CSTRING(ModuleSettings_allowSurrender_name); - description = CSTRING(ModuleSettings_allowSurrender_description); + displayName = CSTRING(ModuleSettings_requireSurrender_name); + description = CSTRING(ModuleSettings_requireSurrender_description); typeName = "BOOL"; defaultValue = 1; }; From 1c537c6739f48b7e06a58195b5b067d2844c2225 Mon Sep 17 00:00:00 2001 From: gienkov Date: Sun, 9 Aug 2015 23:04:16 +0200 Subject: [PATCH 09/57] fix captives again --- addons/captives/CfgVehicles.hpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/addons/captives/CfgVehicles.hpp b/addons/captives/CfgVehicles.hpp index abd97f92a8..774ecf87e3 100644 --- a/addons/captives/CfgVehicles.hpp +++ b/addons/captives/CfgVehicles.hpp @@ -184,14 +184,14 @@ class CfgVehicles { defaultValue = 1; }; class allowSurrender { - displayName = CSTRING(ModuleSettings_requireSurrender_name); - description = CSTRING(ModuleSettings_requireSurrender_description); + displayName = CSTRING(ModuleSettings_allowSurrender_name); + description = CSTRING(ModuleSettings_allowSurrender_description); typeName = "BOOL"; defaultValue = 1; }; class requireSurrender { - displayName = CSTRING(ModuleSettings_allowSurrender_name); - description = CSTRING(ModuleSettings_allowSurrender_description); + displayName = CSTRING(ModuleSettings_requireSurrender_name); + description = CSTRING(ModuleSettings_requireSurrender_description); typeName = "NUMBER"; class values { class disable { From 42e7340b79ef191a6d7b6b97cdd8f33f7b7e4cd3 Mon Sep 17 00:00:00 2001 From: Michael Braun Date: Sat, 8 Aug 2015 02:26:09 +0200 Subject: [PATCH 10/57] Code cleanup of Safemode module --- addons/safemode/XEH_preInit.sqf | 1 - addons/safemode/functions/fnc_firstMode.sqf | 9 ----- addons/safemode/functions/fnc_lockSafety.sqf | 40 +++++++++++++------ .../functions/fnc_playChangeFiremodeSound.sqf | 33 +++++++++++---- .../functions/fnc_setSafeModeVisual.sqf | 22 ++++++++-- .../safemode/functions/fnc_unlockSafety.sqf | 28 ++++++++++--- 6 files changed, 93 insertions(+), 40 deletions(-) delete mode 100644 addons/safemode/functions/fnc_firstMode.sqf diff --git a/addons/safemode/XEH_preInit.sqf b/addons/safemode/XEH_preInit.sqf index 6bedb35134..e6eb91b8bd 100644 --- a/addons/safemode/XEH_preInit.sqf +++ b/addons/safemode/XEH_preInit.sqf @@ -2,7 +2,6 @@ ADDON = false; -PREP(firstMode); PREP(lockSafety); PREP(playChangeFiremodeSound); PREP(setSafeModeVisual); diff --git a/addons/safemode/functions/fnc_firstMode.sqf b/addons/safemode/functions/fnc_firstMode.sqf deleted file mode 100644 index d10da3f896..0000000000 --- a/addons/safemode/functions/fnc_firstMode.sqf +++ /dev/null @@ -1,9 +0,0 @@ -// by commy2 -#include "script_component.hpp" - -PARAMS_1(_weapon); - -private ["_mode"]; -_mode = getArray (configFile >> "CfgWeapons" >> _weapon >> "modes") select 0; - -[_mode, _weapon] select (_mode == "this") diff --git a/addons/safemode/functions/fnc_lockSafety.sqf b/addons/safemode/functions/fnc_lockSafety.sqf index 42a8ef89fb..54fa254716 100644 --- a/addons/safemode/functions/fnc_lockSafety.sqf +++ b/addons/safemode/functions/fnc_lockSafety.sqf @@ -1,12 +1,29 @@ -// by commy2 +/* + * Author: commy2 + * Put weapon on safety, or take it off safety if safety is already put on. + * + * Arguments: + * 0: Unit + * 1: Weapon + * 2: Muzzle + * + * Return Value: + * None + * + * Example: + * [ACE_player, currentWeapon ACE_player, currentMuzzle ACE_player] call ace_safemode_fnc_lockSafety + * + * Public: No + */ #include "script_component.hpp" -PARAMS_3(_unit,_weapon,_muzzle); - // don't immediately switch back if (inputAction "nextWeapon" > 0) exitWith {}; -private ["_safedWeapons"]; +private ["_safedWeapons", "_condition", "_statement", "_id", "_picture"]; + +params ["_unit", "_weapon", "_muzzle"]; + _safedWeapons = _unit getVariable [QGVAR(safedWeapons), []]; if (_weapon in _safedWeapons) exitWith { @@ -18,15 +35,14 @@ _safedWeapons pushBack _weapon; _unit setVariable [QGVAR(safedWeapons), _safedWeapons]; if (_unit getVariable [QGVAR(actionID), -1] == -1) then { - private ["_condition", "_statement", "_id"]; - _condition = { + params ["", "_caller"]; if ( - [_this select 1] call EFUNC(common,canUseWeapon) + [_caller] call EFUNC(common,canUseWeapon) && { - if (currentMuzzle (_this select 1) in ((_this select 1) getVariable [QGVAR(safedWeapons), []])) then { + if (currentMuzzle _caller in (_caller getVariable [QGVAR(safedWeapons), []])) then { if (inputAction "nextWeapon" > 0) exitWith { - [_this select 1, currentWeapon (_this select 1), currentMuzzle (_this select 1)] call FUNC(unlockSafety); + [_this select 1, currentWeapon _caller, currentMuzzle _caller] call FUNC(unlockSafety); false }; true @@ -44,7 +60,8 @@ if (_unit getVariable [QGVAR(actionID), -1] == -1) then { }; _statement = { - [_this select 1, currentWeapon (_this select 1), currentMuzzle (_this select 1)] call FUNC(unlockSafety); + params ["", "_caller"]; + [_caller, currentWeapon _caller, currentMuzzle _caller] call FUNC(unlockSafety); }; //_id = [_unit, format ["%1", localize LSTRING(TakeOffSafety)], "DefaultAction", _condition, {}, {true}, _statement, 10] call EFUNC(common,addActionMenuEventHandler); @@ -54,12 +71,11 @@ if (_unit getVariable [QGVAR(actionID), -1] == -1) then { }; if ((typeName _muzzle) == (typeName "")) then { - _unit selectWeapon _muzzle;//_weapon + _unit selectWeapon _muzzle; //_weapon }; // play fire mode selector sound [_unit, _weapon, _muzzle] call FUNC(playChangeFiremodeSound); -private "_picture"; _picture = getText (configFile >> "CfgWeapons" >> _weapon >> "picture"); [localize LSTRING(PutOnSafety), _picture] call EFUNC(common,displayTextPicture); diff --git a/addons/safemode/functions/fnc_playChangeFiremodeSound.sqf b/addons/safemode/functions/fnc_playChangeFiremodeSound.sqf index 754a02005c..e691ace65d 100644 --- a/addons/safemode/functions/fnc_playChangeFiremodeSound.sqf +++ b/addons/safemode/functions/fnc_playChangeFiremodeSound.sqf @@ -1,9 +1,25 @@ -// by commy2 +/* + * Author: commy2 + * Play weapon firemode change sound. + * + * Arguments: + * 0: Unit + * 1: Weapon + * + * Return Value: + * None + * + * Example: + * [ACE_player, currentWeapon ACE_player] call ace_safemode_fnc_playChangeFiremodeSound + * + * Public: No + */ #include "script_component.hpp" -PARAMS_2(_unit,_weapon); +private ["_sound", "_position", "_soundCount"]; + +params ["_unit", "_weapon"]; -private ["_sound"]; _sound = getArray (configFile >> "CfgWeapons" >> _weapon >> "changeFiremodeSound"); if (count _sound == 0) exitWith { @@ -16,12 +32,13 @@ if ({(toLower (_sound select 0) find _x == (count toArray (_sound select 0) - co }; // add default volume, pitch and distance -if (count _sound < 2) then {_sound pushBack 1}; -if (count _sound < 3) then {_sound pushBack 1}; -if (count _sound < 4) then {_sound pushBack 0}; +_soundCount = count _sound; +if (_soundCount < 2) then {_sound pushBack 1}; +if (_soundCount < 3) then {_sound pushBack 1}; +if (_soundCount < 4) then {_sound pushBack 0}; -private "_position"; _position = _unit modelToWorldVisual (_unit selectionPosition "RightHand"); _position set [2, (_position select 2) + ((getPosASLW _unit select 2) - (getPosATL _unit select 2) max 0)]; -playSound3D [_sound select 0, objNull, false, _position, _sound select 1, _sound select 2, _sound select 3]; +_sound params ["_filename", "_volume", "_soundPitch", "_distance"] +playSound3D [_filename, objNull, false, _position, _volume, _soundPitch, _distance]; diff --git a/addons/safemode/functions/fnc_setSafeModeVisual.sqf b/addons/safemode/functions/fnc_setSafeModeVisual.sqf index cb8c679855..65efc747cb 100644 --- a/addons/safemode/functions/fnc_setSafeModeVisual.sqf +++ b/addons/safemode/functions/fnc_setSafeModeVisual.sqf @@ -1,17 +1,31 @@ -// by commy2 +/* + * Author: commy2 + * Show firemode indicator, representing safety lock + * + * Arguments: + * 0: Show firemode + * + * Return Value: + * + * + * Example: + * [true] call ace_safemode_fnc_setSafeModeVisual + * + * Public: No + */ #include "script_component.hpp" -PARAMS_1(_show); +private ["_control", "_config"]; + +params ["_show"]; disableSerialization; -private ["_control"]; _control = (uiNamespace getVariable ["ACE_dlgSoldier", displayNull]) displayCtrl 187; if (isNull _control) exitWith {}; if (_show) then { - private "_config"; _config = configFile >> "RscInGameUI" >> "RscUnitInfoSoldier" >> "WeaponInfoControlsGroupLeft" >> "controls" >> "CA_ModeTexture"; _control ctrlSetPosition [getNumber (_config >> "x"), getNumber (_config >> "y"), getNumber (_config >> "w"), getNumber (_config >> "h")]; diff --git a/addons/safemode/functions/fnc_unlockSafety.sqf b/addons/safemode/functions/fnc_unlockSafety.sqf index 2b4f00a4a9..35fdb0dee5 100644 --- a/addons/safemode/functions/fnc_unlockSafety.sqf +++ b/addons/safemode/functions/fnc_unlockSafety.sqf @@ -1,9 +1,26 @@ -// by commy2 +/* + * Author: commy2 + * Take weapon of safety lock. + * + * Arguments: + * 0: Unit + * 1: Weapon + * 2: Muzzle + * + * Return Value: + * None + * + * Example: + * [ACE_player, currentWeapon ACE_player, currentMuzzle ACE_player] call ace_safemode_fnc_unlockSafety + * + * Public: No + */ #include "script_component.hpp" -PARAMS_3(_unit,_weapon,_muzzle); +private ["_safedWeapons", "_id", "_picture"]; + +params ["_unit", "_weapon", "_muzzle"]; -private ["_safedWeapons"]; _safedWeapons = _unit getVariable [QGVAR(safedWeapons), []]; if (_weapon in _safedWeapons) then { @@ -12,7 +29,6 @@ if (_weapon in _safedWeapons) then { _unit setVariable [QGVAR(safedWeapons), _safedWeapons]; if (count _safedWeapons == 0) then { - private "_id"; _id = _unit getVariable [QGVAR(actionID), -1]; //[_unit, "DefaultAction", _id] call EFUNC(common,removeActionMenuEventHandler); @@ -36,7 +52,8 @@ if (inputAction "nextWeapon" > 0) then { if (_x == "this") then { _modes pushBack _weapon; }; - } forEach getArray (configfile >> "CfgWeapons" >> _weapon >> "modes"); + nil + } count getArray (configfile >> "CfgWeapons" >> _weapon >> "modes"); // select last mode _mode = _modes select (count _modes - 1); @@ -57,6 +74,5 @@ if (inputAction "nextWeapon" > 0) then { // player hud [true] call FUNC(setSafeModeVisual); -private "_picture"; _picture = getText (configFile >> "CfgWeapons" >> _weapon >> "picture"); [localize LSTRING(TookOffSafety), _picture] call EFUNC(common,displayTextPicture); From 4babfa0bf8c3cb27dca8b25ead1ace0e3e2f6e9b Mon Sep 17 00:00:00 2001 From: Michael Braun Date: Tue, 11 Aug 2015 17:56:46 +0200 Subject: [PATCH 11/57] Fixed missing return value description in safemode module --- addons/safemode/functions/fnc_setSafeModeVisual.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/safemode/functions/fnc_setSafeModeVisual.sqf b/addons/safemode/functions/fnc_setSafeModeVisual.sqf index 65efc747cb..43f4bc79b6 100644 --- a/addons/safemode/functions/fnc_setSafeModeVisual.sqf +++ b/addons/safemode/functions/fnc_setSafeModeVisual.sqf @@ -6,7 +6,7 @@ * 0: Show firemode * * Return Value: - * + * None * * Example: * [true] call ace_safemode_fnc_setSafeModeVisual From 2bbf631e71a6d5650b6c676790732d7b49a6b619 Mon Sep 17 00:00:00 2001 From: Michael Braun Date: Fri, 14 Aug 2015 11:39:22 +0200 Subject: [PATCH 12/57] Fixed missing semi-colon in safemode. --- addons/safemode/functions/fnc_playChangeFiremodeSound.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/safemode/functions/fnc_playChangeFiremodeSound.sqf b/addons/safemode/functions/fnc_playChangeFiremodeSound.sqf index e691ace65d..5b6cf72626 100644 --- a/addons/safemode/functions/fnc_playChangeFiremodeSound.sqf +++ b/addons/safemode/functions/fnc_playChangeFiremodeSound.sqf @@ -40,5 +40,5 @@ if (_soundCount < 4) then {_sound pushBack 0}; _position = _unit modelToWorldVisual (_unit selectionPosition "RightHand"); _position set [2, (_position select 2) + ((getPosASLW _unit select 2) - (getPosATL _unit select 2) max 0)]; -_sound params ["_filename", "_volume", "_soundPitch", "_distance"] +_sound params ["_filename", "_volume", "_soundPitch", "_distance"]; playSound3D [_filename, objNull, false, _position, _volume, _soundPitch, _distance]; From eaae6dfb7d932431cd4a13308bda17bb69232a4c Mon Sep 17 00:00:00 2001 From: Michael Braun Date: Fri, 14 Aug 2015 11:43:36 +0200 Subject: [PATCH 13/57] Replaced padding chain with params defaults --- .../safemode/functions/fnc_playChangeFiremodeSound.sqf | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/addons/safemode/functions/fnc_playChangeFiremodeSound.sqf b/addons/safemode/functions/fnc_playChangeFiremodeSound.sqf index 5b6cf72626..3fa29f3d88 100644 --- a/addons/safemode/functions/fnc_playChangeFiremodeSound.sqf +++ b/addons/safemode/functions/fnc_playChangeFiremodeSound.sqf @@ -16,7 +16,7 @@ */ #include "script_component.hpp" -private ["_sound", "_position", "_soundCount"]; +private ["_sound", "_position"]; params ["_unit", "_weapon"]; @@ -31,14 +31,8 @@ if ({(toLower (_sound select 0) find _x == (count toArray (_sound select 0) - co _sound set [0, (_sound select 0) + ".wss"]; }; -// add default volume, pitch and distance -_soundCount = count _sound; -if (_soundCount < 2) then {_sound pushBack 1}; -if (_soundCount < 3) then {_sound pushBack 1}; -if (_soundCount < 4) then {_sound pushBack 0}; - _position = _unit modelToWorldVisual (_unit selectionPosition "RightHand"); _position set [2, (_position select 2) + ((getPosASLW _unit select 2) - (getPosATL _unit select 2) max 0)]; -_sound params ["_filename", "_volume", "_soundPitch", "_distance"]; +_sound params ["_filename", ["_volume", 1], ["_soundPitch", 1], ["_distance", 0]]; playSound3D [_filename, objNull, false, _position, _volume, _soundPitch, _distance]; From 0e57d3d97ce33e1a3e789d54947124fee1256fa7 Mon Sep 17 00:00:00 2001 From: Glowbal Date: Sat, 15 Aug 2015 18:25:48 +0200 Subject: [PATCH 14/57] Added assign medic, medicalfacility and medical vehicle curator modules --- addons/zeus/CfgVehicles.hpp | 30 ++++++++++ addons/zeus/XEH_preInit.sqf | 3 + addons/zeus/config.cpp | 5 +- addons/zeus/functions/fnc_moduleSetMedic.sqf | 53 ++++++++++++++++++ .../fnc_moduleSetMedicalFacility.sqf | 52 +++++++++++++++++ .../functions/fnc_moduleSetMedicalVehicle.sqf | 53 ++++++++++++++++++ addons/zeus/stringtable.xml | 17 +++++- addons/zeus/ui/Icon_Module_Zeus_Medic_ca.paa | Bin 0 -> 5625 bytes 8 files changed, 211 insertions(+), 2 deletions(-) create mode 100644 addons/zeus/functions/fnc_moduleSetMedic.sqf create mode 100644 addons/zeus/functions/fnc_moduleSetMedicalFacility.sqf create mode 100644 addons/zeus/functions/fnc_moduleSetMedicalVehicle.sqf create mode 100644 addons/zeus/ui/Icon_Module_Zeus_Medic_ca.paa diff --git a/addons/zeus/CfgVehicles.hpp b/addons/zeus/CfgVehicles.hpp index 77273c60b7..35e4c6b1f6 100644 --- a/addons/zeus/CfgVehicles.hpp +++ b/addons/zeus/CfgVehicles.hpp @@ -115,4 +115,34 @@ class CfgVehicles { sync[] = {}; }; }; + class GVAR(moduleSetMedic): GVAR(moduleBase) { + curatorCanAttach = 1; + displayName = CSTRING(moduleSetMedic_displayName); + function = QFUNC(moduleSetMedic); + icon = QUOTE(PATHTOF(UI\Icon_Module_Zeus_Medic_ca.paa)); + class ModuleDescription { + description = ""; + sync[] = {}; + }; + }; + class GVAR(moduleSetMedicalVehicle): GVAR(moduleBase) { + curatorCanAttach = 1; + displayName = CSTRING(moduleSetMedicalVehicle_displayName); + function = QFUNC(moduleSetMedicalVehicle); + icon = QUOTE(PATHTOF(UI\Icon_Module_Zeus_Medic_ca.paa)); + class ModuleDescription { + description = ""; + sync[] = {}; + }; + }; + class GVAR(moduleSetMedicalFacility): GVAR(moduleBase) { + curatorCanAttach = 1; + displayName = CSTRING(moduleSetMedicalFacility_displayName); + function = QFUNC(moduleSetMedicalFacility); + icon = QUOTE(PATHTOF(UI\Icon_Module_Zeus_Medic_ca.paa)); + class ModuleDescription { + description = ""; + sync[] = {}; + }; + }; }; diff --git a/addons/zeus/XEH_preInit.sqf b/addons/zeus/XEH_preInit.sqf index 1b2ac19263..3817db218f 100644 --- a/addons/zeus/XEH_preInit.sqf +++ b/addons/zeus/XEH_preInit.sqf @@ -8,6 +8,9 @@ PREP(bi_moduleProjectile); PREP(bi_moduleRemoteControl); PREP(handleZeusUnitAssigned); PREP(moduleCaptive); +PREP(moduleSetMedic); +PREP(moduleSetMedicalVehicle); +PREP(moduleSetMedicalFacility); PREP(moduleSurrender); PREP(moduleUnconscious); PREP(moduleZeusSettings); diff --git a/addons/zeus/config.cpp b/addons/zeus/config.cpp index 7505f2770e..810ce17396 100644 --- a/addons/zeus/config.cpp +++ b/addons/zeus/config.cpp @@ -19,7 +19,10 @@ class CfgPatches { }; class GVAR(medical): ADDON { units[] = { - QGVAR(moduleUnconscious) + QGVAR(moduleUnconscious), + QGVAR(moduleSetMedic), + QGVAR(moduleSetMedicalVehicle), + QGVAR(moduleSetMedicalFacility) }; }; }; diff --git a/addons/zeus/functions/fnc_moduleSetMedic.sqf b/addons/zeus/functions/fnc_moduleSetMedic.sqf new file mode 100644 index 0000000000..4b3227e8f2 --- /dev/null +++ b/addons/zeus/functions/fnc_moduleSetMedic.sqf @@ -0,0 +1,53 @@ +/* + * Author: SilentSpike, Glowbal + * Assigns a medic role from the medical module to a unit + * + * Arguments: + * 0: The module logic + * 1: units + * 2: activated + * + * ReturnValue: + * nil + * + * Public: no + */ + +#include "script_component.hpp" + +private ["_mouseOver", "_unit", "_medicN"]; + +params ["_logic", "_units", "_activated"]; + +if !(_activated && local _logic) exitWith {}; + +if (isNil QEFUNC(captives,setSurrendered)) then { + [LSTRING(RequiresAddon)] call EFUNC(common,displayTextStructured); +} else { + _mouseOver = GETMVAR(bis_fnc_curatorObjectPlaced_mouseOver,[""]); + + if ((_mouseOver select 0) != "OBJECT") then { + [LSTRING(NothingSelected)] call EFUNC(common,displayTextStructured); + } else { + _unit = effectivecommander (_mouseOver select 1); + + if !(_unit isKindOf "CAManBase") then { + [LSTRING(OnlyInfantry)] call EFUNC(common,displayTextStructured); + } else { + if !(alive _unit) then { + [LSTRING(OnlyAlive)] call EFUNC(common,displayTextStructured); + } else { + if (GETVAR(_unit,EGVAR(captives,isHandcuffed),false)) then { + [LSTRING(OnlyNonCaptive)] call EFUNC(common,displayTextStructured); + } else { + _medicN = GETVAR(_unit,EGVAR(medical,medicClass),0); + if (_medicN < 1) then { + _unit setvariable [QEGVAR(medical,medicClass), 1, true]; + }; + }; + }; + }; + }; +}; + +deleteVehicle _logic; diff --git a/addons/zeus/functions/fnc_moduleSetMedicalFacility.sqf b/addons/zeus/functions/fnc_moduleSetMedicalFacility.sqf new file mode 100644 index 0000000000..c0f54e0ff2 --- /dev/null +++ b/addons/zeus/functions/fnc_moduleSetMedicalFacility.sqf @@ -0,0 +1,52 @@ +/* + * Author: SilentSpike, Glowbal + * Assigns a medic role from the medical module to a unit + * + * Arguments: + * 0: The module logic + * 1: units + * 2: activated + * + * ReturnValue: + * nil + * + * Public: no + */ + +#include "script_component.hpp" + +private ["_mouseOver", "_unit"]; + +params ["_logic", "_units", "_activated"]; + +if !(_activated && local _logic) exitWith {}; + +if (isNil QEFUNC(captives,setSurrendered)) then { + [LSTRING(RequiresAddon)] call EFUNC(common,displayTextStructured); +} else { + _mouseOver = GETMVAR(bis_fnc_curatorObjectPlaced_mouseOver,[""]); + + if ((_mouseOver select 0) != "OBJECT") then { + [LSTRING(NothingSelected)] call EFUNC(common,displayTextStructured); + } else { + _unit = (_mouseOver select 1); + + if (_unit isKindOf "CAManBase") then { + [LSTRING(NoMan)] call EFUNC(common,displayTextStructured); + } else { + if !(alive _unit) then { + [LSTRING(OnlyAlive)] call EFUNC(common,displayTextStructured); + } else { + if (GETVAR(_unit,EGVAR(captives,isHandcuffed),false)) then { + [LSTRING(OnlyNonCaptive)] call EFUNC(common,displayTextStructured); + } else { + if (!(GETVAR(_unit,EGVAR(medical,isMedicalFacility),false))) then { + _unit setvariable [QEGVAR(medical,isMedicalFacility), true, true]; + }; + }; + }; + }; + }; +}; + +deleteVehicle _logic; diff --git a/addons/zeus/functions/fnc_moduleSetMedicalVehicle.sqf b/addons/zeus/functions/fnc_moduleSetMedicalVehicle.sqf new file mode 100644 index 0000000000..e45826013b --- /dev/null +++ b/addons/zeus/functions/fnc_moduleSetMedicalVehicle.sqf @@ -0,0 +1,53 @@ +/* + * Author: SilentSpike, Glowbal + * Assigns a medic role from the medical module to a unit + * + * Arguments: + * 0: The module logic + * 1: units + * 2: activated + * + * ReturnValue: + * nil + * + * Public: no + */ + +#include "script_component.hpp" + +private ["_mouseOver", "_unit", "_medicN"]; + +params ["_logic", "_units", "_activated"]; + +if !(_activated && local _logic) exitWith {}; + +if (isNil QEFUNC(captives,setSurrendered)) then { + [LSTRING(RequiresAddon)] call EFUNC(common,displayTextStructured); +} else { + _mouseOver = GETMVAR(bis_fnc_curatorObjectPlaced_mouseOver,[""]); + + if ((_mouseOver select 0) != "OBJECT") then { + [LSTRING(NothingSelected)] call EFUNC(common,displayTextStructured); + } else { + _unit = (_mouseOver select 1); + + if (_unit isKindOf "CAManBase") then { + [LSTRING(NoMan)] call EFUNC(common,displayTextStructured); + } else { + if !(alive _unit) then { + [LSTRING(OnlyAlive)] call EFUNC(common,displayTextStructured); + } else { + if (GETVAR(_unit,EGVAR(captives,isHandcuffed),false)) then { + [LSTRING(OnlyNonCaptive)] call EFUNC(common,displayTextStructured); + } else { + _medicN = GETVAR(_unit,EGVAR(medical,medicClass),0); + if (_medicN < 1) then { + _unit setvariable [QEGVAR(medical,medicClass), 1, true]; + }; + }; + }; + }; + }; +}; + +deleteVehicle _logic; diff --git a/addons/zeus/stringtable.xml b/addons/zeus/stringtable.xml index 7c70978aa4..824b91129e 100644 --- a/addons/zeus/stringtable.xml +++ b/addons/zeus/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -137,6 +137,15 @@ Bewusstlosigkeit umschalten Alternar inconsciência + + Assign Medic + + + Assign Medical Vehicle + + + Assign Medical Facility + Unit must be alive Utiliser uniquement sur une unité vivante @@ -161,6 +170,12 @@ Si può usare solo su fanteria a piedi Usar somente em infantaria desmontada + + Object must be a vehicle + + + Object must not be a man + Unit must not be captive Jednostka nie może być więźniem diff --git a/addons/zeus/ui/Icon_Module_Zeus_Medic_ca.paa b/addons/zeus/ui/Icon_Module_Zeus_Medic_ca.paa new file mode 100644 index 0000000000000000000000000000000000000000..60963046a74724dbff798e0390f06141cd40c8c5 GIT binary patch literal 5625 zcmeHLF-sgl6n>toctzllqzZw92)0+*-W36nE)T1sp3I(Lu4wpRigj zw@hU%T);ymDN^J}T6OZ??7iK&mE&$$6_4z|a{JxBneV-CzS$jSO4sYPmBspM%>w|f zwJ>`{J%8)_%L4BuUfU&r-RA&@F95#d<<c zkNfb0hQ|I}QN?~T*z(sf%sGs!A2nd{cKy9o#`Unv2I0K^NCDPo-1Hdt`KR^iHI&Et zBQDS!jE;+D%HnuO|GV=w3S}sinJ=qfkYDxH@0$N(#{(9h*MHyhKgWKGrc=4%WWBih z!5G+y59fbB&M&L~v-ThN_g`LrqyYQhRgZlBar1{;VAjtpe+TTUcOIY3um78VWhevC z2}9J_rcWK?wrmzAO37z6wJm+<{56r={Hf1+R(>JQB zCpZ7ZSW*1e%^5$({;k*e7h`#@mw(_8j3Lx|9*1D8!o62#R(x7kAwTzx2ePW{`qJ?; zFhj?psuMI{1|P4OChP>y+Q&EF7^{xo`Wn2C(+oR%U)o1W+8(}9QP0ZB^v?9gJIt9+ Hd5G^Hg4uWg literal 0 HcmV?d00001 From ed66255b19e40ff4637a081fc75669db1e757ca1 Mon Sep 17 00:00:00 2001 From: Glowbal Date: Sat, 15 Aug 2015 18:39:43 +0200 Subject: [PATCH 15/57] Add objects to all curators --- addons/zeus/ACE_Settings.hpp | 6 +++++ addons/zeus/CfgEventHandlers.hpp | 8 +++++++ addons/zeus/XEH_preInit.sqf | 1 + .../zeus/functions/fnc_addObjectToCurator.sqf | 24 +++++++++++++++++++ addons/zeus/stringtable.xml | 8 ++++++- 5 files changed, 46 insertions(+), 1 deletion(-) create mode 100644 addons/zeus/functions/fnc_addObjectToCurator.sqf diff --git a/addons/zeus/ACE_Settings.hpp b/addons/zeus/ACE_Settings.hpp index 388e3c42cb..380cea122f 100644 --- a/addons/zeus/ACE_Settings.hpp +++ b/addons/zeus/ACE_Settings.hpp @@ -20,4 +20,10 @@ class ACE_Settings { value = 0; values[] = {"$STR_A3_OPTIONS_DISABLED", CSTRING(revealMines_partial), CSTRING(revealMines_full)}; }; + class GVAR(autoAddObjects) { + displayName = CSTRING(AddObjectsToCurator); + description = CSTRING(AddObjectsToCurator_descr); + value = 0; + typeName = "BOOL"; + }; }; diff --git a/addons/zeus/CfgEventHandlers.hpp b/addons/zeus/CfgEventHandlers.hpp index f0a9f14d91..dcd6b7410a 100644 --- a/addons/zeus/CfgEventHandlers.hpp +++ b/addons/zeus/CfgEventHandlers.hpp @@ -4,3 +4,11 @@ class Extended_PreInit_EventHandlers { init = QUOTE(call COMPILE_FILE(XEH_preInit)); }; }; + +class Extended_InitPost_EventHandlers { + class AllVehicles { + class ADDON { + init = QUOTE(call FUNC(addObjectToCurator)); + }; + }; +}; diff --git a/addons/zeus/XEH_preInit.sqf b/addons/zeus/XEH_preInit.sqf index 1b2ac19263..c1cbaeea91 100644 --- a/addons/zeus/XEH_preInit.sqf +++ b/addons/zeus/XEH_preInit.sqf @@ -2,6 +2,7 @@ ADDON = false; +PREP(addObjectToCurator); PREP(bi_moduleCurator); PREP(bi_moduleMine); PREP(bi_moduleProjectile); diff --git a/addons/zeus/functions/fnc_addObjectToCurator.sqf b/addons/zeus/functions/fnc_addObjectToCurator.sqf new file mode 100644 index 0000000000..be814266ab --- /dev/null +++ b/addons/zeus/functions/fnc_addObjectToCurator.sqf @@ -0,0 +1,24 @@ +/* + * Author: Glowbal + * Adds an object to curator upon spawn + * + * Arguments: + * Object + * + * Return Value: + * None + * + * Public: No + */ + +#include "script_component.hpp" + +if (!isServer) exitwith {}; + +params ["_object"]; + +if (!(_object getvariable [QGVAR(addObject), GVAR(autoAddObjects)])) exitwith {}; + +{ + _x addCuratorEditableObjects [[_object], true]; +}foreach allCurators; diff --git a/addons/zeus/stringtable.xml b/addons/zeus/stringtable.xml index 7c70978aa4..e8373907f8 100644 --- a/addons/zeus/stringtable.xml +++ b/addons/zeus/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -189,5 +189,11 @@ Benötigt ein Addon, das nicht vorhanden ist Requer um addon que não está presente + + Add Objects to Curator + + + Adds any spawned object to all curators in the mission + From 675cfc2da720d7097ad274a8cdbcc750d5ae983a Mon Sep 17 00:00:00 2001 From: bux578 Date: Sat, 15 Aug 2015 18:54:39 +0200 Subject: [PATCH 16/57] after respawn select last weapon, muzzle and mode #2138 --- addons/common/functions/fnc_getAllGear.sqf | 7 ++- addons/respawn/functions/fnc_restoreGear.sqf | 60 ++++++++++++++++---- 2 files changed, 54 insertions(+), 13 deletions(-) diff --git a/addons/common/functions/fnc_getAllGear.sqf b/addons/common/functions/fnc_getAllGear.sqf index aa2289309e..33c23c98a3 100644 --- a/addons/common/functions/fnc_getAllGear.sqf +++ b/addons/common/functions/fnc_getAllGear.sqf @@ -18,6 +18,7 @@ * 14-16: pistol (String, Array, Array) * 17: map, compass, watch, etc. (Array) * 18: binocluar (String) + * 19: active weapon, active muzzle, active weaponMode (Array) * */ #include "script_component.hpp" @@ -34,7 +35,8 @@ if (isNull _unit) exitWith {[ "", ["","","",""], [], "", ["","","",""], [], [], - "" + "", + ["","",""] ]}; [ @@ -47,5 +49,6 @@ if (isNull _unit) exitWith {[ secondaryWeapon _unit, secondaryWeaponItems _unit, secondaryWeaponMagazine _unit, handgunWeapon _unit, handgunItems _unit, handgunMagazine _unit, assignedItems _unit, - binocular _unit + binocular _unit, + [currentWeapon _unit, currentMuzzle _unit, currentWeaponMode _unit] ] diff --git a/addons/respawn/functions/fnc_restoreGear.sqf b/addons/respawn/functions/fnc_restoreGear.sqf index 285c560a6c..7b4d057d72 100644 --- a/addons/respawn/functions/fnc_restoreGear.sqf +++ b/addons/respawn/functions/fnc_restoreGear.sqf @@ -1,16 +1,16 @@ /* - Name: ACE_Respawn_fnc_removeBody - + Name: ACE_Respawn_fnc_restoreGear + Author(s): bux578 - + Description: Restores previously saved gear - + Parameters: 0: OBJECT - unit - 1: ARRAY - Array containing all gear - + 1: ARRAY - Array containing all gear (result of ACE_common_fnc_getAllGear) + Returns: VOID */ @@ -19,7 +19,15 @@ PARAMS_2(_unit,_allGear); -private ["_unit", "_allGear", "_headgear", "_goggles", "_uniform", "_uniformitems", "_vest", "_vestitems", "_backpack", "_backpackitems", "_primaryweapon", "_primaryweaponitems", "_primaryweaponmagazine", "_handgunweapon", "_handgunweaponitems", "_handgunweaponmagazine", "_assigneditems", "_binocular", "_backpa", "_secondaryweapon", "_secondaryweaponitems", "_secondaryweaponmagazine"]; +private ["_unit", "_allGear", "_headgear", "_goggles", +"_uniform", "_uniformitems", +"_vest", "_vestitems", +"_backpack", "_backpackitems", "_backpa", +"_primaryweapon", "_primaryweaponitems", "_primaryweaponmagazine", +"_secondaryweapon", "_secondaryweaponitems", "_secondaryweaponmagazine", +"_handgunweapon", "_handgunweaponitems", "_handgunweaponmagazine", +"_assigneditems", "_binocular", +"_activeWeaponAndMuzzle", "_activeWeapon", "_activeMuzzle", "_activeWeaponMode"]; // remove all starting gear of a player @@ -51,6 +59,7 @@ _handgunweaponitems = _allGear select 15; _handgunweaponmagazine = _allGear select 16; _assigneditems = _allGear select 17; _binocular = _allGear select 18; +_activeWeaponAndMuzzle = _allGear select 19; // start restoring the items @@ -69,16 +78,16 @@ if (_goggles != "") then { { _unit addItemToUniform _x; -}forEach _uniformitems; +} forEach _uniformitems; { _unit addItemToVest _x; -}forEach _vestitems; +} forEach _vestitems; private "_flagRemoveDummyBag"; _flagRemoveDummyBag = false; -if(format["%1", _backpack] != "") then { +if (format["%1", _backpack] != "") then { _unit addBackpack _backpack; _backpa = unitBackpack _unit; @@ -158,7 +167,36 @@ _assignedItems = _assignedItems - [_binocular]; _unit addWeapon _binocular; +// reload Laserdesignator +// we assume that if the unit had a Laserdesignator it probably had batteries for it if ("Laserdesignator" in assignedItems _unit) then { _unit selectWeapon "Laserdesignator"; - if (currentMagazine _unit == "") then {_unit addMagazine "Laserbatteries";}; + + if (currentMagazine _unit == "") then { + _unit addMagazine "Laserbatteries"; + }; +}; + +// restore the last active weapon, muzzle and weaponMode +_activeWeapon = _activeWeaponAndMuzzle select 0; +_activeMuzzle = _activeWeaponAndMuzzle select 1; +_activeWeaponMode = _activeWeaponAndMuzzle select 2; + +if (_activeMuzzle != "" and _activeMuzzle != _activeWeapon) then { + _unit selectWeapon _activeMuzzle; +} else { + if (_activeWeapon != "") then { + _unit selectWeapon _activeWeapon; + }; +}; + +if (currentWeapon _unit != "") then { + private ["_index"]; + _index = 0; + while { + _index < 100 && {currentWeaponMode _unit != _activeWeaponMode} + } do { + _unit action ["SwitchWeapon", _unit, _unit, _index]; + _index = _index + 1; + }; }; From 3d9b0d527ce08a845b6d47041305ccb8b0f0393b Mon Sep 17 00:00:00 2001 From: bux578 Date: Sat, 15 Aug 2015 18:58:31 +0200 Subject: [PATCH 17/57] fix indentation atom needed the editorconfig package --- addons/respawn/functions/fnc_restoreGear.sqf | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/addons/respawn/functions/fnc_restoreGear.sqf b/addons/respawn/functions/fnc_restoreGear.sqf index 7b4d057d72..7e55c1d8e2 100644 --- a/addons/respawn/functions/fnc_restoreGear.sqf +++ b/addons/respawn/functions/fnc_restoreGear.sqf @@ -194,9 +194,9 @@ if (currentWeapon _unit != "") then { private ["_index"]; _index = 0; while { - _index < 100 && {currentWeaponMode _unit != _activeWeaponMode} + _index < 100 && {currentWeaponMode _unit != _activeWeaponMode} } do { - _unit action ["SwitchWeapon", _unit, _unit, _index]; - _index = _index + 1; + _unit action ["SwitchWeapon", _unit, _unit, _index]; + _index = _index + 1; }; }; From d023139e8d27efb660f2dcea1c38387101339aae Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Sat, 15 Aug 2015 12:04:57 -0500 Subject: [PATCH 18/57] Stringtable fix --- addons/zeus/ACE_Settings.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/zeus/ACE_Settings.hpp b/addons/zeus/ACE_Settings.hpp index 380cea122f..6488a23e4e 100644 --- a/addons/zeus/ACE_Settings.hpp +++ b/addons/zeus/ACE_Settings.hpp @@ -22,7 +22,7 @@ class ACE_Settings { }; class GVAR(autoAddObjects) { displayName = CSTRING(AddObjectsToCurator); - description = CSTRING(AddObjectsToCurator_descr); + description = CSTRING(AddObjectsToCurator_desc); value = 0; typeName = "BOOL"; }; From 30828b83d23ee7f36f1e3efe4971e0b9da9d6e74 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Sat, 15 Aug 2015 12:21:49 -0500 Subject: [PATCH 19/57] Stringtable fixes --- addons/cargo/ACE_Settings.hpp | 2 +- addons/cargo/CfgVehicles.hpp | 4 ++-- addons/cargo/stringtable.xml | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/addons/cargo/ACE_Settings.hpp b/addons/cargo/ACE_Settings.hpp index 300add74d2..c8865f2097 100644 --- a/addons/cargo/ACE_Settings.hpp +++ b/addons/cargo/ACE_Settings.hpp @@ -1,7 +1,7 @@ class ACE_Settings { class GVAR(enable) { displayName = CSTRING(ModuleSettings_enable); - description = CSTRING(ModuleSettings_enable_desc); + description = CSTRING(ModuleSettings_enable_Description); typeName = "BOOL"; value = 1; category = CSTRING(settingsCategory); diff --git a/addons/cargo/CfgVehicles.hpp b/addons/cargo/CfgVehicles.hpp index d8df9e7da9..ecca6ee341 100644 --- a/addons/cargo/CfgVehicles.hpp +++ b/addons/cargo/CfgVehicles.hpp @@ -15,13 +15,13 @@ class CfgVehicles { class Arguments { class enable { displayName = CSTRING(ModuleSettings_enable); - description = CSTRING(ModuleSettings_enable_desc); + description = CSTRING(ModuleSettings_enable_Description); typeName = "BOOL"; defaultValue = 1; }; }; class ModuleDescription { - description = CSTRING(SettingsModule_Desc); + description = CSTRING(SettingsModule_Description); sync[] = {}; }; }; diff --git a/addons/cargo/stringtable.xml b/addons/cargo/stringtable.xml index eab51350a3..57ee916156 100644 --- a/addons/cargo/stringtable.xml +++ b/addons/cargo/stringtable.xml @@ -22,13 +22,13 @@ Enable Cargo - + Enable the load in cargo module Cargo Settings - + Configure the cargo module settings From c7f47c0b34a5400613ec0faecc8aef05cfdaf3d1 Mon Sep 17 00:00:00 2001 From: Glowbal Date: Sat, 15 Aug 2015 20:31:41 +0200 Subject: [PATCH 20/57] Replaced check for captive module by check for `ACE_medical` --- addons/zeus/functions/fnc_moduleSetMedic.sqf | 2 +- addons/zeus/functions/fnc_moduleSetMedicalFacility.sqf | 2 +- addons/zeus/functions/fnc_moduleSetMedicalVehicle.sqf | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/addons/zeus/functions/fnc_moduleSetMedic.sqf b/addons/zeus/functions/fnc_moduleSetMedic.sqf index 4b3227e8f2..656d7b1269 100644 --- a/addons/zeus/functions/fnc_moduleSetMedic.sqf +++ b/addons/zeus/functions/fnc_moduleSetMedic.sqf @@ -21,7 +21,7 @@ params ["_logic", "_units", "_activated"]; if !(_activated && local _logic) exitWith {}; -if (isNil QEFUNC(captives,setSurrendered)) then { +if !(["ACE_Medical"] call EFUNC(common,isModLoaded)) then { [LSTRING(RequiresAddon)] call EFUNC(common,displayTextStructured); } else { _mouseOver = GETMVAR(bis_fnc_curatorObjectPlaced_mouseOver,[""]); diff --git a/addons/zeus/functions/fnc_moduleSetMedicalFacility.sqf b/addons/zeus/functions/fnc_moduleSetMedicalFacility.sqf index c0f54e0ff2..ae075f8f5f 100644 --- a/addons/zeus/functions/fnc_moduleSetMedicalFacility.sqf +++ b/addons/zeus/functions/fnc_moduleSetMedicalFacility.sqf @@ -21,7 +21,7 @@ params ["_logic", "_units", "_activated"]; if !(_activated && local _logic) exitWith {}; -if (isNil QEFUNC(captives,setSurrendered)) then { +if !(["ACE_Medical"] call EFUNC(common,isModLoaded)) then { [LSTRING(RequiresAddon)] call EFUNC(common,displayTextStructured); } else { _mouseOver = GETMVAR(bis_fnc_curatorObjectPlaced_mouseOver,[""]); diff --git a/addons/zeus/functions/fnc_moduleSetMedicalVehicle.sqf b/addons/zeus/functions/fnc_moduleSetMedicalVehicle.sqf index e45826013b..a50761bba4 100644 --- a/addons/zeus/functions/fnc_moduleSetMedicalVehicle.sqf +++ b/addons/zeus/functions/fnc_moduleSetMedicalVehicle.sqf @@ -21,7 +21,7 @@ params ["_logic", "_units", "_activated"]; if !(_activated && local _logic) exitWith {}; -if (isNil QEFUNC(captives,setSurrendered)) then { +if !(["ACE_Medical"] call EFUNC(common,isModLoaded)) then { [LSTRING(RequiresAddon)] call EFUNC(common,displayTextStructured); } else { _mouseOver = GETMVAR(bis_fnc_curatorObjectPlaced_mouseOver,[""]); From 141742978289bab8b18a9ed5dcc34b25eed4a013 Mon Sep 17 00:00:00 2001 From: Glowbal Date: Sat, 15 Aug 2015 20:39:22 +0200 Subject: [PATCH 21/57] Switched to serverInit instead of init as per suggestion from @SilentSpike --- addons/zeus/CfgEventHandlers.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/zeus/CfgEventHandlers.hpp b/addons/zeus/CfgEventHandlers.hpp index dcd6b7410a..57d6a1afd0 100644 --- a/addons/zeus/CfgEventHandlers.hpp +++ b/addons/zeus/CfgEventHandlers.hpp @@ -8,7 +8,7 @@ class Extended_PreInit_EventHandlers { class Extended_InitPost_EventHandlers { class AllVehicles { class ADDON { - init = QUOTE(call FUNC(addObjectToCurator)); + serverInit = QUOTE(call FUNC(addObjectToCurator)); }; }; }; From c01052e5bf5a16dc53d95b302f6edc1a99bf0635 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Sat, 15 Aug 2015 21:11:49 +0100 Subject: [PATCH 22/57] Update ace_zeus function headers --- addons/zeus/functions/fnc_moduleCaptive.sqf | 15 +++++++-------- addons/zeus/functions/fnc_moduleSetMedic.sqf | 15 +++++++-------- .../functions/fnc_moduleSetMedicalFacility.sqf | 15 +++++++-------- .../functions/fnc_moduleSetMedicalVehicle.sqf | 15 +++++++-------- addons/zeus/functions/fnc_moduleSurrender.sqf | 15 +++++++-------- addons/zeus/functions/fnc_moduleUnconscious.sqf | 15 +++++++-------- 6 files changed, 42 insertions(+), 48 deletions(-) diff --git a/addons/zeus/functions/fnc_moduleCaptive.sqf b/addons/zeus/functions/fnc_moduleCaptive.sqf index 94e421e8d9..8273c8ba6f 100644 --- a/addons/zeus/functions/fnc_moduleCaptive.sqf +++ b/addons/zeus/functions/fnc_moduleCaptive.sqf @@ -3,21 +3,20 @@ * Flips the capture state of the unit the module is placed on. * * Arguments: - * 0: The module logic - * 1: units - * 2: activated + * 0: The module logic + * 1: Synchronized units + * 2: Activated * - * ReturnValue: - * nil + * Return Value: + * None * - * Public: no + * Public: No */ #include "script_component.hpp" -private ["_mouseOver", "_unit", "_captive"]; - params ["_logic", "_units", "_activated"]; +private ["_mouseOver", "_unit", "_captive"]; if !(_activated && local _logic) exitWith {}; diff --git a/addons/zeus/functions/fnc_moduleSetMedic.sqf b/addons/zeus/functions/fnc_moduleSetMedic.sqf index 656d7b1269..661e33f907 100644 --- a/addons/zeus/functions/fnc_moduleSetMedic.sqf +++ b/addons/zeus/functions/fnc_moduleSetMedic.sqf @@ -3,21 +3,20 @@ * Assigns a medic role from the medical module to a unit * * Arguments: - * 0: The module logic - * 1: units - * 2: activated + * 0: The module logic + * 1: Synchronized units + * 2: Activated * - * ReturnValue: - * nil + * Return Value: + * None * - * Public: no + * Public: No */ #include "script_component.hpp" -private ["_mouseOver", "_unit", "_medicN"]; - params ["_logic", "_units", "_activated"]; +private ["_mouseOver", "_unit", "_medicN"]; if !(_activated && local _logic) exitWith {}; diff --git a/addons/zeus/functions/fnc_moduleSetMedicalFacility.sqf b/addons/zeus/functions/fnc_moduleSetMedicalFacility.sqf index ae075f8f5f..f032be667f 100644 --- a/addons/zeus/functions/fnc_moduleSetMedicalFacility.sqf +++ b/addons/zeus/functions/fnc_moduleSetMedicalFacility.sqf @@ -3,21 +3,20 @@ * Assigns a medic role from the medical module to a unit * * Arguments: - * 0: The module logic - * 1: units - * 2: activated + * 0: The module logic + * 1: Synchronized units + * 2: Activated * - * ReturnValue: - * nil + * Return Value: + * None * - * Public: no + * Public: No */ #include "script_component.hpp" -private ["_mouseOver", "_unit"]; - params ["_logic", "_units", "_activated"]; +private ["_mouseOver", "_unit"]; if !(_activated && local _logic) exitWith {}; diff --git a/addons/zeus/functions/fnc_moduleSetMedicalVehicle.sqf b/addons/zeus/functions/fnc_moduleSetMedicalVehicle.sqf index a50761bba4..cd6e16a023 100644 --- a/addons/zeus/functions/fnc_moduleSetMedicalVehicle.sqf +++ b/addons/zeus/functions/fnc_moduleSetMedicalVehicle.sqf @@ -3,21 +3,20 @@ * Assigns a medic role from the medical module to a unit * * Arguments: - * 0: The module logic - * 1: units - * 2: activated + * 0: The module logic + * 1: Synchronized units + * 2: Activated * - * ReturnValue: - * nil + * Return Value: + * None * - * Public: no + * Public: No */ #include "script_component.hpp" -private ["_mouseOver", "_unit", "_medicN"]; - params ["_logic", "_units", "_activated"]; +private ["_mouseOver", "_unit", "_medicN"]; if !(_activated && local _logic) exitWith {}; diff --git a/addons/zeus/functions/fnc_moduleSurrender.sqf b/addons/zeus/functions/fnc_moduleSurrender.sqf index b5365f8fc9..95f35593a5 100644 --- a/addons/zeus/functions/fnc_moduleSurrender.sqf +++ b/addons/zeus/functions/fnc_moduleSurrender.sqf @@ -3,21 +3,20 @@ * Flips the surrender state of the unit the module is placed on. * * Arguments: - * 0: The module logic - * 1: units - * 2: activated + * 0: The module logic + * 1: Synchronized units + * 2: Activated * - * ReturnValue: - * nil + * Return Value: + * None * - * Public: no + * Public: No */ #include "script_component.hpp" -private ["_mouseOver", "_unit", "_surrendering"]; - params ["_logic", "_units", "_activated"]; +private ["_mouseOver", "_unit", "_surrendering"]; if !(_activated && local _logic) exitWith {}; diff --git a/addons/zeus/functions/fnc_moduleUnconscious.sqf b/addons/zeus/functions/fnc_moduleUnconscious.sqf index eeff54a0f8..d9f9031cee 100644 --- a/addons/zeus/functions/fnc_moduleUnconscious.sqf +++ b/addons/zeus/functions/fnc_moduleUnconscious.sqf @@ -3,21 +3,20 @@ * Flips the unconscious state of the unit the module is placed on. * * Arguments: - * 0: The module logic - * 1: units - * 2: activated + * 0: The module logic + * 1: Synchronized units + * 2: Activated * - * ReturnValue: - * nil + * Return Value: + * None * - * Public: no + * Public: No */ #include "script_component.hpp" -private ["_mouseOver", "_unit", "_conscious"]; - params ["_logic", "_units", "_activated"]; +private ["_mouseOver", "_unit", "_conscious"]; if !(_activated && local _logic) exitWith {}; From 508c6de2cbfa84a795f7eb7d20c22f0fb0c09a0c Mon Sep 17 00:00:00 2001 From: Glowbal Date: Sat, 15 Aug 2015 22:14:49 +0200 Subject: [PATCH 23/57] Fixed coding-guidelines.md --- .../development/coding-guidelines.md | 66 +++++++++---------- 1 file changed, 33 insertions(+), 33 deletions(-) diff --git a/documentation/development/coding-guidelines.md b/documentation/development/coding-guidelines.md index 1ab53046ec..a869911747 100644 --- a/documentation/development/coding-guidelines.md +++ b/documentation/development/coding-guidelines.md @@ -1,7 +1,7 @@ --- layout: wiki title: Coding Guidelines -description: +description: group: development parent: wiki order: 1 @@ -107,7 +107,7 @@ Every function should have a header of the following format: * Arguments: * 0: The first argument * 1: The second argument - * + * * Return Value: * The return value * @@ -124,26 +124,26 @@ Every function should have a header of the following format: ### 4.1 Module/PBO specific Macro Usage The family of `GVAR` macro's define global variable strings or constants for use within a module. Please use these to make sure we follow naming conventions across all modules and also prevent duplicate/overwriting between variables in different modules. The macro family expands as follows, for the example of the module 'balls': - -| Macros | is the same as | -| -------|---------| -| `GVAR(face)` | ace_balls_face | -|`QGVAR(face)` | ace_balls_face | + +| Macros | Expands to | +| -------|---------| +| `GVAR(face)` | ace_balls_face | +|`QGVAR(face)` | "ace_balls_face" | | `EGVAR(balls,face)` | ace_balls_face | | `EGVAR(leg,face)` | ace_leg_face | -| `QEGVAR(leg,face)` | ace_leg_face | +| `QEGVAR(leg,face)` | "ace_leg_face" | There also exists the FUNC family of Macros: -| Macros | is the same as | -| -------|---------| +| Macros | Expands to | +| -------|---------| |`FUNC(face)` | ace_balls_fnc_face or the call trace wrapper for that function.| |`EFUNC(balls,face)` | ace_balls_fnc_face or the call trace wrapper for that function.| |`EFUNC(leg,face) `| ace_leg_fnc_face or the call trace wrapper for that function.| |`DFUNC(face)` | ace_balls_fnc_face and will ALWAYS be the function global variable.| |`DEFUNC(leg,face)` | ace_leg_fnc_face and will ALWAYS be the function global variable.| -|`QFUNC(face)` | ace_balls_fnc_face | -|`QEFUNC(leg,face)` |ace_leg_fnc_face| +|`QFUNC(face)` | "ace_balls_fnc_face" | +|`QEFUNC(leg,face)` | "ace_leg_fnc_face" | The `FUNC` and `EFUNC` macros should NOT be used inside `QUOTE` macros if the intention is to get the function name or assumed to be the function variable due to call tracing (see below). If you need to 100% always be sure that you are getting the function name or variable use the `DFUNC` or `DEFUNC` macros. For example `QUOTE(FUNC(face)) == "ace_balls_fnc_face"` would be an illegal use of `FUNC` inside `QUOTE`. @@ -153,8 +153,8 @@ Using `FUNC` or `EFUNC` inside a `QUOTE` macro is fine if the intention is for i ACE3 implements a basic call tracing system that can dump the call stack on errors or wherever you want. To do this the `FUNC` macros in debug mode will expand out to include metadata about the call including line numbers and files. This functionality is automatic with the use of calls via `FUNC` and `EFUNC`, but any calls to other functions need to use the following macros: -| Macro | example | -| -------|---------| +| Macro | example | +| -------|---------| |`CALLSTACK(functionName)` | `[] call CALLSTACK(cba_fnc_someFunction)` | |`CALLSTACK_NAMED(function,functionName)` | `[] call CALLSTACK_NAMED(_anonymousFunction,'My anonymous function!')`| @@ -168,8 +168,8 @@ These macros will call these functions with the appropriate wrappers and enable #### 4.2.1 setVariable, getVariable family macros -| Macro | is the same as | -| -------|---------| +| Macro | Expands to | +| -------|---------| |`GETVAR(player,MyVarName,false)` | player getVariable ["MyVarName", false]| |`GETMVAR(MyVarName,objNull)` | missionNamespace getVariable ["MyVarName", objNull]| |`GETUVAR(MyVarName,displayNull)` | uiNamespace getVariable ["MyVarName", displayNull]| @@ -179,25 +179,25 @@ These macros will call these functions with the appropriate wrappers and enable #### 4.2.2 STRING family macros -Note that you need the strings in module stringtable.xml in the correct format +Note that you need the strings in module stringtable.xml in the correct format `STR_ACE__`
Example:
`STR_Balls_Banana`
Script strings: -| Macro | is the same as | -| -------|---------| +| Macro | Expands to | +| -------|---------| | `LSTRING(banana)` | "STR_ACE_balls_banana"| -| `ELSTRING(balls,banana)` | "STR_ACE_balls_banana"| +| `ELSTRING(balls,banana)` | "STR_ACE_balls_banana"| Config Strings (require `$` as first character): -| Macro | is the same as | -| -------|---------| -| `CSTRING(banana)` | "$STR_ACE_balls_banana" | -| `ECSTRING(balls,banana)` | "$STR_ACE_balls_banana" | +| Macro | Expands to | +| -------|---------| +| `CSTRING(banana)` | "$STR_ACE_balls_banana" | +| `ECSTRING(balls,banana)` | "$STR_ACE_balls_banana" | ## 5. Event Handlers @@ -206,8 +206,8 @@ Event handlers in ACE3 are implemented through our event system. They should be The commands are listed below. -| Even Handler | use | -| -------|---------| +| Even Handler | Use | +| -------|---------| |`[eventName, eventCodeBlock] call ace_common_fnc_addEventHandler` | adds an event handler with the event name and returns the event handler id.| | `[eventName, args] call ace_common_fnc_globalEvent` | calls an event with the listed args on all machines, the local machine, and the server. | |`[eventName, args] call ace_common_fnc_serverEvent` | calls an event just on the server computer (dedicated or self-hosted).| @@ -216,8 +216,8 @@ The commands are listed below. Events can be removed or cleared with the following commands. -| Even Handler | use | -| -------|---------| +| Even Handler | Use | +| -------|---------| |`[eventName, eventHandlerId] call ace_common_fnc_removeEventHandler` | will remove a specific event handler of the event name, using the ID returned from `ace_common_fnc_addEventHandler`.| |`[eventName] call ace_common_fnc_removeAllEventHandlers` | will remove all event handlers for that type of event.| @@ -243,8 +243,8 @@ if(HASH_HASKEY(_hash, "key")) then { A description of the above macros is below. -| Macro | use | -| -------|---------| +| Macro | Use | +| -------|---------| |`HASHCREATE` | used to create an empty hash.| | `HASH_SET(hash, key, val)` | will set the hash key to that value, a key can be anything, even objects. | |`HASH_GET(hash, key)` | will return the value of that key (or nil if it doesn't exist). | @@ -276,7 +276,7 @@ _anotherHash = HASHLIST_SELECT(_hashList, 0); // this should print "val: 1" player sideChat format["val: %1", HASH_GET(_anotherHash, "key1")]; -//Say we need to add a new key to the hashlist +//Say we need to add a new key to the hashlist //that we didn't initialize it with? We can simply //set a new key using the standard HASH_SET macro HASH_SET(_anotherHash, "anotherKey", "another value"); @@ -285,8 +285,8 @@ HASH_SET(_anotherHash, "anotherKey", "another value"); As you can see above working with hashlists are fairly simple, a more in depth explanation of the macros is below. -| Macro | use | -| -------|---------| +| Macro | Use | +| -------|---------| |`HASHLIST_CREATELIST(keys)` | creates a new hashlist with the default keys, pass [] for no default keys.| |`HASHLIST_CREATEHASH(hashlist)` | returns a blank hash template from a hashlist.| |`HASHLIST_PUSH(hashList, hash)` | pushes a new hash onto the end of the list.| From 05bf239d8ece819a04ff8b626412b7722f3147dd Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Sat, 15 Aug 2015 21:44:40 +0100 Subject: [PATCH 24/57] Specify zeus setMedic module conditions further --- addons/zeus/CfgVehicles.hpp | 6 +++--- .../functions/fnc_moduleSetMedicalFacility.sqf | 4 ++-- .../zeus/functions/fnc_moduleSetMedicalVehicle.sqf | 4 ++-- addons/zeus/stringtable.xml | 14 +++++++------- 4 files changed, 14 insertions(+), 14 deletions(-) diff --git a/addons/zeus/CfgVehicles.hpp b/addons/zeus/CfgVehicles.hpp index 35e4c6b1f6..e110970ae3 100644 --- a/addons/zeus/CfgVehicles.hpp +++ b/addons/zeus/CfgVehicles.hpp @@ -117,7 +117,7 @@ class CfgVehicles { }; class GVAR(moduleSetMedic): GVAR(moduleBase) { curatorCanAttach = 1; - displayName = CSTRING(moduleSetMedic_displayName); + displayName = CSTRING(ModuleSetMedic_displayName); function = QFUNC(moduleSetMedic); icon = QUOTE(PATHTOF(UI\Icon_Module_Zeus_Medic_ca.paa)); class ModuleDescription { @@ -127,7 +127,7 @@ class CfgVehicles { }; class GVAR(moduleSetMedicalVehicle): GVAR(moduleBase) { curatorCanAttach = 1; - displayName = CSTRING(moduleSetMedicalVehicle_displayName); + displayName = CSTRING(ModuleSetMedicalVehicle_displayName); function = QFUNC(moduleSetMedicalVehicle); icon = QUOTE(PATHTOF(UI\Icon_Module_Zeus_Medic_ca.paa)); class ModuleDescription { @@ -137,7 +137,7 @@ class CfgVehicles { }; class GVAR(moduleSetMedicalFacility): GVAR(moduleBase) { curatorCanAttach = 1; - displayName = CSTRING(moduleSetMedicalFacility_displayName); + displayName = CSTRING(ModuleSetMedicalFacility_displayName); function = QFUNC(moduleSetMedicalFacility); icon = QUOTE(PATHTOF(UI\Icon_Module_Zeus_Medic_ca.paa)); class ModuleDescription { diff --git a/addons/zeus/functions/fnc_moduleSetMedicalFacility.sqf b/addons/zeus/functions/fnc_moduleSetMedicalFacility.sqf index f032be667f..22826108e7 100644 --- a/addons/zeus/functions/fnc_moduleSetMedicalFacility.sqf +++ b/addons/zeus/functions/fnc_moduleSetMedicalFacility.sqf @@ -30,8 +30,8 @@ if !(["ACE_Medical"] call EFUNC(common,isModLoaded)) then { } else { _unit = (_mouseOver select 1); - if (_unit isKindOf "CAManBase") then { - [LSTRING(NoMan)] call EFUNC(common,displayTextStructured); + if (_unit isKindOf "Man" || {!(_unit isKindOf "Building")}) then { + [LSTRING(OnlyStructures)] call EFUNC(common,displayTextStructured); } else { if !(alive _unit) then { [LSTRING(OnlyAlive)] call EFUNC(common,displayTextStructured); diff --git a/addons/zeus/functions/fnc_moduleSetMedicalVehicle.sqf b/addons/zeus/functions/fnc_moduleSetMedicalVehicle.sqf index cd6e16a023..9e5e788461 100644 --- a/addons/zeus/functions/fnc_moduleSetMedicalVehicle.sqf +++ b/addons/zeus/functions/fnc_moduleSetMedicalVehicle.sqf @@ -30,8 +30,8 @@ if !(["ACE_Medical"] call EFUNC(common,isModLoaded)) then { } else { _unit = (_mouseOver select 1); - if (_unit isKindOf "CAManBase") then { - [LSTRING(NoMan)] call EFUNC(common,displayTextStructured); + if (_unit isKindOf "Man" || {_unit isKindOf "Building"}) then { + [LSTRING(OnlyVehicles)] call EFUNC(common,displayTextStructured); } else { if !(alive _unit) then { [LSTRING(OnlyAlive)] call EFUNC(common,displayTextStructured); diff --git a/addons/zeus/stringtable.xml b/addons/zeus/stringtable.xml index 824b91129e..fd1c978188 100644 --- a/addons/zeus/stringtable.xml +++ b/addons/zeus/stringtable.xml @@ -137,13 +137,13 @@ Bewusstlosigkeit umschalten Alternar inconsciência - + Assign Medic - + Assign Medical Vehicle - + Assign Medical Facility @@ -170,11 +170,11 @@ Si può usare solo su fanteria a piedi Usar somente em infantaria desmontada - - Object must be a vehicle + + Unit must be a structure - - Object must not be a man + + Unit must be a vehicle Unit must not be captive From 965b024bfa858b31999fd6b0b0d8a6c1cc709b10 Mon Sep 17 00:00:00 2001 From: jokoho48 Date: Sun, 16 Aug 2015 00:07:17 +0200 Subject: [PATCH 25/57] Code Cleanup Logistic UAV Battery. --- .../functions/fnc_canRefuelUAV.sqf | 2 +- .../functions/fnc_refuelUAV.sqf | 16 +++++++--------- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/addons/logistics_uavbattery/functions/fnc_canRefuelUAV.sqf b/addons/logistics_uavbattery/functions/fnc_canRefuelUAV.sqf index aaaac3077d..451753a9e2 100644 --- a/addons/logistics_uavbattery/functions/fnc_canRefuelUAV.sqf +++ b/addons/logistics_uavbattery/functions/fnc_canRefuelUAV.sqf @@ -16,6 +16,6 @@ */ #include "script_component.hpp" -PARAMS_2(_caller,_target); +params ["_caller", "_target"]; ("ACE_UAVBattery" in (items _caller)) && {(fuel _target) < 1} && {(speed _target) < 1} && {!(isEngineOn _target)} && {(_target distance _caller) <= 4} diff --git a/addons/logistics_uavbattery/functions/fnc_refuelUAV.sqf b/addons/logistics_uavbattery/functions/fnc_refuelUAV.sqf index e51f17777e..25f452882c 100644 --- a/addons/logistics_uavbattery/functions/fnc_refuelUAV.sqf +++ b/addons/logistics_uavbattery/functions/fnc_refuelUAV.sqf @@ -15,23 +15,21 @@ * Public: No */ #include "script_component.hpp" - -PARAMS_2(_caller,_target); - private ["_onFinish", "_onFailure"]; +params ["_caller", "_target"]; if (!(_this call FUNC(canRefuelUAV))) exitWith {}; _onFinish = { - EXPLODE_2_PVT((_this select 0),_caller,_target); - _caller removeItem "ACE_UAVBattery"; - playSound3D [QUOTE(PATHTO_R(sounds\exchange_battery.ogg)), objNull, false, getPosASL _caller, 1, 1, 10]; - ["setFuel", [_target], [_target, 1]] call EFUNC(common,targetEvent); //setFuel is local + (_this select 0) params ["_caller", "_target"]; + _caller removeItem "ACE_UAVBattery"; + playSound3D [QUOTE(PATHTO_R(sounds\exchange_battery.ogg)), objNull, false, getPosASL _caller, 1, 1, 10]; + ["setFuel", [_target], [_target, 1]] call EFUNC(common,targetEvent); //setFuel is local }; _onFailure = { - EXPLODE_2_PVT((_this select 0),_caller,_target); - [_caller, "AmovPknlMstpSrasWrflDnon", 1] call EFUNC(common,doAnimation); + (_this select 0) params ["_caller", "_target"]; + [_caller, "AmovPknlMstpSrasWrflDnon", 1] call EFUNC(common,doAnimation); }; [_caller, "AinvPknlMstpSnonWnonDr_medic5", 0] call EFUNC(common,doAnimation); From 0420f0b2164f42d9358690933ba98c1c00219a42 Mon Sep 17 00:00:00 2001 From: Glowbal Date: Sun, 16 Aug 2015 00:15:16 +0200 Subject: [PATCH 26/57] Fixed error pop-up kicking you out of game in case a third party vehicle has incorrect configured hitpoints/selections --- .../functions/fnc_getHitPointsWithSelections.sqf | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/addons/common/functions/fnc_getHitPointsWithSelections.sqf b/addons/common/functions/fnc_getHitPointsWithSelections.sqf index 2bf568ec8a..b66700881e 100644 --- a/addons/common/functions/fnc_getHitPointsWithSelections.sqf +++ b/addons/common/functions/fnc_getHitPointsWithSelections.sqf @@ -41,14 +41,15 @@ _hitpointClasses = [_config >> "HitPoints"]; while {isClass _class} do { for "_i" from 0 to (count _class - 1) do { - private ["_entry", "_selection"]; + if (isClass (_class select _i)) then { + private ["_entry", "_selection"]; + _entry = configName (_class select _i); + _selection = getText (_class select _i >> "name"); - _entry = configName (_class select _i); - _selection = getText (_class select _i >> "name"); - - if (!(_selection in _selections) && {!isNil {_vehicle getHit _selection}}) then { - _hitpoints pushBack _entry; - _selections pushBack _selection; + if (!(_selection in _selections) && {!isNil {_vehicle getHit _selection}}) then { + _hitpoints pushBack _entry; + _selections pushBack _selection; + }; }; }; From 4478be096ee23d3e52f2327e5d505afee5c752a3 Mon Sep 17 00:00:00 2001 From: jokoho48 Date: Sun, 16 Aug 2015 00:30:24 +0200 Subject: [PATCH 27/57] Code Cleanup Magazine Repack Module. --- .../functions/fnc_getMagazineChildren.sqf | 10 ++++++---- .../functions/fnc_magazineRepackFinish.sqf | 7 ++++--- .../functions/fnc_magazineRepackProgress.sqf | 18 ++++++++++-------- .../functions/fnc_simulateRepackEvents.sqf | 14 +++++++------- .../functions/fnc_startRepackingMagazine.sqf | 16 ++++++++-------- 5 files changed, 35 insertions(+), 30 deletions(-) diff --git a/addons/magazinerepack/functions/fnc_getMagazineChildren.sqf b/addons/magazinerepack/functions/fnc_getMagazineChildren.sqf index fbd07cf31a..34e369199f 100644 --- a/addons/magazinerepack/functions/fnc_getMagazineChildren.sqf +++ b/addons/magazinerepack/functions/fnc_getMagazineChildren.sqf @@ -7,7 +7,7 @@ * 1: Player * * Return value: - * ChildActiosn + * ChildActions * * Example: * [player, player] call ace_magazinerepack_fnc_getMagazineChildren @@ -16,15 +16,17 @@ */ #include "script_component.hpp" -private ["_unitMagazines", "_unitMagCounts", "_xFullMagazineCount", "_index", "_actions", "_displayName", "_picture", "_action"]; +private ["_unitMagazines", "_unitMagCounts", "_index", "_actions", "_displayName", "_picture", "_action"]; -PARAMS_2(_target,_player); +params ["_target", "_player"]; // get all mags and ammo count _unitMagazines = []; _unitMagCounts = []; { - EXPLODE_4_PVT(_x,_xClassname,_xCount,_xLoaded,_xType); + private "_xFullMagazineCount"; + _x params ["_xClassname", "_xCount", "_xLoaded", "_xType"]; + _xFullMagazineCount = getNumber (configfile >> "CfgMagazines" >> _xClassname >> "count"); //for every partial magazine, that is either in inventory or can be moved there diff --git a/addons/magazinerepack/functions/fnc_magazineRepackFinish.sqf b/addons/magazinerepack/functions/fnc_magazineRepackFinish.sqf index 1f5be8f72a..ab380cb1ed 100644 --- a/addons/magazinerepack/functions/fnc_magazineRepackFinish.sqf +++ b/addons/magazinerepack/functions/fnc_magazineRepackFinish.sqf @@ -10,7 +10,7 @@ * 3: Error Code * * Return Value: - * Nothing + * None * * Example: * (args from progressBar) call ace_magazinerepack_fnc_magazineRepackFinish @@ -21,8 +21,9 @@ private ["_structuredOutputText", "_picture", "_fullMags", "_partialMags", "_fullMagazineCount"]; -PARAMS_4(_args,_elapsedTime,_totalTime,_errorCode); -EXPLODE_2_PVT(_args,_magazineClassname,_lastAmmoCount); +params ["_args", "_elapsedTime", "_totalTime", "_errorCode"]; +_args params ["_magazineClassname", "_lastAmmoCount"]; + _fullMagazineCount = getNumber (configfile >> "CfgMagazines" >> _magazineClassname >> "count"); //Don't show anything if player can't interact: diff --git a/addons/magazinerepack/functions/fnc_magazineRepackProgress.sqf b/addons/magazinerepack/functions/fnc_magazineRepackProgress.sqf index 64ce05d12d..c1bf5ebdab 100644 --- a/addons/magazinerepack/functions/fnc_magazineRepackProgress.sqf +++ b/addons/magazinerepack/functions/fnc_magazineRepackProgress.sqf @@ -20,17 +20,19 @@ private ["_currentAmmoCount", "_addedMagazines", "_missingAmmo", "_index", "_updateMagazinesOnPlayerFnc"]; -PARAMS_3(_args,_elapsedTime,_totalTime); -EXPLODE_3_PVT(_args,_magazineClassname,_lastAmmoCount,_simEvents); -if ((count _simEvents) == 0) exitWith {ERROR("No Event"); false}; -EXPLODE_3_PVT((_simEvents select 0),_nextEventTime,_nextEventIsBullet,_nextEventMags); +params ["_ars", "_elapsedTime", "_totalTime"]; +_args params ["_magazineClassname", "_lastAmmoCount", "_simEvents"]; -if (_nextEventTime > _elapsedTime) exitWith {true};//waiting on next event +if !((_simEvents select 0) params ["_nextEventTime", "_nextEventIsBullet", "_nextEventMags"]) exitWith { ERROR("No Event"); false }; + + + +if (_nextEventTime > _elapsedTime) exitWith { true };//waiting on next event //Verify we aren't missing any ammo _currentAmmoCount = []; { - EXPLODE_2_PVT(_x,_xClassname,_xCount); + _x params ["_xClassname", "_xCount"]; if (_xClassname == _magazineClassname) then { _currentAmmoCount pushBack _xCount; }; @@ -50,7 +52,7 @@ _missingAmmo = false; }; } forEach _lastAmmoCount; -if (_missingAmmo) exitWith {false}; //something removed ammo that was being repacked (could be other players or scripts) +if (_missingAmmo) exitWith { false }; //something removed ammo that was being repacked (could be other players or scripts) _updateMagazinesOnPlayerFnc = { ACE_player removeMagazines _magazineClassname; //remove inventory magazines @@ -75,4 +77,4 @@ if (_nextEventIsBullet) then { _simEvents deleteAt 0; //pop off the event -true; +true diff --git a/addons/magazinerepack/functions/fnc_simulateRepackEvents.sqf b/addons/magazinerepack/functions/fnc_simulateRepackEvents.sqf index e57e569dc1..646bd880af 100644 --- a/addons/magazinerepack/functions/fnc_simulateRepackEvents.sqf +++ b/addons/magazinerepack/functions/fnc_simulateRepackEvents.sqf @@ -19,20 +19,20 @@ */ #include "script_component.hpp" -private ["_newMagFnc", "_time", "_events", "_swapAmmoFnc", "_ammoSwaped", "_lowIndex", "_highIndex", "_ammoToTransfer", "_ammoAvailable", "_ammoNeeded", "_swapProgress"]; +private ["_fnc_newMag", "_time", "_events", "_fnc_swapAmmo", "_ammoSwaped", "_lowIndex", "_highIndex", "_ammoToTransfer", "_ammoAvailable", "_ammoNeeded", "_swapProgress"]; -PARAMS_3(_fullMagazineCount,_arrayOfAmmoCounts,_isBelt); +params ["_fullMagazineCount", "_arrayOfAmmoCounts", "_isBelt"]; // Sort Ascending - Don't modify original _arrayOfAmmoCounts = +_arrayOfAmmoCounts; _arrayOfAmmoCounts sort true; -_newMagFnc = { +_fnc_newMag = { _time = _time + GVAR(TimePerMagazine); _events pushBack [_time, false, +_arrayOfAmmoCounts]; }; -_swapAmmoFnc = if (_isBelt) then { +_fnc_swapAmmo = if (_isBelt) then { { _time = _time + GVAR(TimePerBeltLink); _arrayOfAmmoCounts set [_lowIndex, ((_arrayOfAmmoCounts select _lowIndex) - _ammoSwaped)]; @@ -64,14 +64,14 @@ while {_lowIndex < _highIndex} do { if (_ammoAvailable == 0) then { _lowIndex = _lowIndex + 1; - call _newMagFnc; + call _fnc_newMag; } else { if (_ammoNeeded == 0) then { _highIndex = _highIndex - 1; - call _newMagFnc; + call _fnc_newMag; } else { _ammoSwaped = _ammoAvailable min _ammoNeeded; - call _swapAmmoFnc; + call _fnc_swapAmmo; }; }; }; diff --git a/addons/magazinerepack/functions/fnc_startRepackingMagazine.sqf b/addons/magazinerepack/functions/fnc_startRepackingMagazine.sqf index e0621a41be..b11fc3697d 100644 --- a/addons/magazinerepack/functions/fnc_startRepackingMagazine.sqf +++ b/addons/magazinerepack/functions/fnc_startRepackingMagazine.sqf @@ -21,7 +21,7 @@ private ["_magazineCfg", "_fullMagazineCount", "_isBelt", "_startingAmmoCounts", "_simEvents", "_totalTime"]; -PARAMS_3(_target,_player,_magazineClassname); +params ["_target", "_player", "_magazineClassname"]; if (isNil "_magazineClassname" || {_magazineClassname == ""}) exitWith {ERROR("Bad Mag Classname");}; _magazineCfg = configfile >> "CfgMagazines" >> _magazineClassname; @@ -63,11 +63,11 @@ _simEvents = [_fullMagazineCount, _startingAmmoCounts, _isBelt] call FUNC(simula _totalTime = (_simEvents select ((count _simEvents) - 1) select 0); [ -_totalTime, -[_magazineClassname, _startingAmmoCounts, _simEvents], -{_this call FUNC(magazineRepackFinish)}, -{_this call FUNC(magazineRepackFinish)}, -(localize LSTRING(RepackingMagazine)), -{_this call FUNC(magazineRepackProgress)}, -["isNotInside", "isNotSitting"] + _totalTime, + [_magazineClassname, _startingAmmoCounts, _simEvents], + {_this call FUNC(magazineRepackFinish)}, + {_this call FUNC(magazineRepackFinish)}, + (localize LSTRING(RepackingMagazine)), + {_this call FUNC(magazineRepackProgress)}, + ["isNotInside", "isNotSitting"] ] call EFUNC(common,progressBar); From 5b0168efdb636e27948ee7fe122d754bf26ec9c3 Mon Sep 17 00:00:00 2001 From: jonpas Date: Sun, 16 Aug 2015 14:14:49 +0200 Subject: [PATCH 28/57] Fixed Atropine autoinjector display name --- addons/medical/stringtable.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/medical/stringtable.xml b/addons/medical/stringtable.xml index b852c27f96..290690d442 100644 --- a/addons/medical/stringtable.xml +++ b/addons/medical/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -950,7 +950,7 @@ Analgetikum slouží k tlumení středně těžkých a těžkých bolestí - Atropin autoinjector + Atropine autoinjector Атропин в пневмошприце Atropina auto-inyectable Auto-injecteur d'Atropine From 9f3af45a8f2e56092015977c66b6b01e0d682685 Mon Sep 17 00:00:00 2001 From: Glowbal Date: Sun, 16 Aug 2015 16:16:04 +0200 Subject: [PATCH 29/57] Fixed repair items not registered as loadable --- addons/repair/CfgEventHandlers.hpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/addons/repair/CfgEventHandlers.hpp b/addons/repair/CfgEventHandlers.hpp index 5113b9c8f4..d03936c59b 100644 --- a/addons/repair/CfgEventHandlers.hpp +++ b/addons/repair/CfgEventHandlers.hpp @@ -41,4 +41,9 @@ class Extended_Init_EventHandlers { init = QUOTE(_this call DFUNC(addRepairActions)); }; }; + class ACE_RepairItem_Base { + class ADDON { + init = QUOTE(if (!isnil QUOTE(QEFUNC(cargo,initObject))) then {_this call EFUNC(cargo,initObject)}); + }; + }; }; From b7282e476c0a3ad9e4821a14c321cf3430458bcb Mon Sep 17 00:00:00 2001 From: jonpas Date: Sun, 16 Aug 2015 16:45:46 +0200 Subject: [PATCH 30/57] Used macros, getVariable capitalization, removed start of file newlines, separated CfgActions --- addons/repair/ACE_Settings.hpp | 1 - addons/repair/CfgActions.hpp | 9 +++++++++ addons/repair/CfgEventHandlers.hpp | 1 - addons/repair/CfgVehicleClasses.hpp | 1 - addons/repair/CfgVehicles.hpp | 9 ++++----- addons/repair/config.cpp | 15 +++------------ addons/repair/functions/fnc_canRepair.sqf | 8 ++++---- .../repair/functions/fnc_moduleAssignEngineer.sqf | 4 ++-- .../functions/fnc_moduleAssignRepairFacility.sqf | 4 ++-- .../functions/fnc_moduleAssignRepairVehicle.sqf | 4 ++-- addons/repair/functions/fnc_repair.sqf | 14 +++++++------- addons/repair/functions/fnc_repair_failure.sqf | 6 +++--- addons/repair/functions/fnc_repair_success.sqf | 6 +++--- 13 files changed, 39 insertions(+), 43 deletions(-) create mode 100644 addons/repair/CfgActions.hpp diff --git a/addons/repair/ACE_Settings.hpp b/addons/repair/ACE_Settings.hpp index 0762b51ec9..e956e853de 100644 --- a/addons/repair/ACE_Settings.hpp +++ b/addons/repair/ACE_Settings.hpp @@ -45,7 +45,6 @@ class ACE_Settings { values[] = {ECSTRING(common,No), ECSTRING(common,Yes)}; category = CSTRING(categoryName); }; - class GVAR(fullRepairLocation) { displayName = CSTRING(fullRepairLocation); description = CSTRING(fullRepairLocation_description); diff --git a/addons/repair/CfgActions.hpp b/addons/repair/CfgActions.hpp new file mode 100644 index 0000000000..5dbd0ca7a6 --- /dev/null +++ b/addons/repair/CfgActions.hpp @@ -0,0 +1,9 @@ +class CfgActions { + class None; + class Repair: None { + show = 0; + }; + class RepairVehicle: None { + show = 0; + }; +}; diff --git a/addons/repair/CfgEventHandlers.hpp b/addons/repair/CfgEventHandlers.hpp index d03936c59b..27e14937cf 100644 --- a/addons/repair/CfgEventHandlers.hpp +++ b/addons/repair/CfgEventHandlers.hpp @@ -1,4 +1,3 @@ - class Extended_PreInit_EventHandlers { class ADDON { init = QUOTE(call COMPILE_FILE(XEH_preInit)); diff --git a/addons/repair/CfgVehicleClasses.hpp b/addons/repair/CfgVehicleClasses.hpp index 0cd2e70942..585b8f2858 100644 --- a/addons/repair/CfgVehicleClasses.hpp +++ b/addons/repair/CfgVehicleClasses.hpp @@ -1,4 +1,3 @@ - class CfgVehicleClasses { class GVAR(items) { displayName = "ACE"; diff --git a/addons/repair/CfgVehicles.hpp b/addons/repair/CfgVehicles.hpp index b70e415b53..dde6b94e1c 100644 --- a/addons/repair/CfgVehicles.hpp +++ b/addons/repair/CfgVehicles.hpp @@ -1,4 +1,3 @@ - #define MACRO_REPAIRVEHICLE \ class ACE_Actions { \ class ACE_MainActions { \ @@ -261,8 +260,8 @@ class CfgVehicles { }; class ACE_Track: ACE_RepairItem_Base { - ace_cargo_size = 2; - ace_cargo_canLoad = 1; + EGVAR(cargo,size) = 2; + EGVAR(cargo,canLoad) = 1; author = "Hawkins"; scope = 2; model = QUOTE(PATHTOF(data\ace_track.p3d)); @@ -270,8 +269,8 @@ class CfgVehicles { }; class ACE_Wheel: ACE_RepairItem_Base { - ace_cargo_size = 1; - ace_cargo_canLoad = 1; + EGVAR(cargo,size) = 1; + EGVAR(cargo,canLoad) = 1; author = "Hawkins"; scope = 2; model = QUOTE(PATHTOF(data\ace_wheel.p3d)); diff --git a/addons/repair/config.cpp b/addons/repair/config.cpp index 9d447ffe5f..bf22746272 100644 --- a/addons/repair/config.cpp +++ b/addons/repair/config.cpp @@ -5,7 +5,7 @@ class CfgPatches { units[] = {"ACE_Wheel", "ACE_Track"}; weapons[] = {}; requiredVersion = REQUIRED_VERSION; - requiredAddons[] = {"ace_common","ace_interact_menu"}; + requiredAddons[] = {"ace_common", "ace_interaction"}; author[] = {"commy2", "Glowbal"}; authorUrl = "https://ace3mod.com"; VERSION_CONFIG; @@ -14,18 +14,9 @@ class CfgPatches { #include "CfgEventHandlers.hpp" +#include "CfgActions.hpp" #include "CfgVehicleClasses.hpp" #include "CfgVehicles.hpp" #include "ACE_Settings.hpp" -#include "ACE_repair.hpp" - -class CfgActions { - class None; - class Repair: None { - show = 0; - }; - class RepairVehicle: None { - show = 0; - }; -}; \ No newline at end of file +#include "ACE_Repair.hpp" diff --git a/addons/repair/functions/fnc_canRepair.sqf b/addons/repair/functions/fnc_canRepair.sqf index 0254dfbe14..19d1ccce88 100644 --- a/addons/repair/functions/fnc_canRepair.sqf +++ b/addons/repair/functions/fnc_canRepair.sqf @@ -30,7 +30,7 @@ _engineerRequired = if (isNumber (_config >> "requiredEngineer")) then { } else { // Check for required class if (isText (_config >> "requiredEngineer")) exitwith { - missionNamespace getvariable [(getText (_config >> "requiredEngineer")), 0]; + missionNamespace getVariable [(getText (_config >> "requiredEngineer")), 0]; }; 0; }; @@ -45,7 +45,7 @@ if (getText (_config >> "condition") != "") then { if (isnil _condition) then { _condition = compile _condition; } else { - _condition = missionNamespace getvariable _condition; + _condition = missionNamespace getVariable _condition; }; if (typeName _condition == "BOOL") then { _return = _condition; @@ -57,7 +57,7 @@ if (getText (_config >> "condition") != "") then { if (!_return) exitwith {false}; _vehicleStateCondition = if (isText(_config >> "vehicleStateCondition")) then { - missionNamespace getvariable [getText(_config >> "vehicleStateCondition"), 0] + missionNamespace getVariable [getText(_config >> "vehicleStateCondition"), 0] } else { getNumber(_config >> "vehicleStateCondition") }; @@ -76,7 +76,7 @@ _repairVeh = {([_caller] call FUNC(isNearRepairVehicle)) || ([_target] call FUNC if (_x == "RepairVehicle" && _repairVeh) exitwith {_return = true;}; if !(isnil _x) exitwith { private "_val"; - _val = missionNamespace getvariable _x; + _val = missionNamespace getVariable _x; if (typeName _val == "SCALAR") then { _return = switch (_val) do { case 0: {true}; diff --git a/addons/repair/functions/fnc_moduleAssignEngineer.sqf b/addons/repair/functions/fnc_moduleAssignEngineer.sqf index e5310bfa5a..a273b2a750 100644 --- a/addons/repair/functions/fnc_moduleAssignEngineer.sqf +++ b/addons/repair/functions/fnc_moduleAssignEngineer.sqf @@ -19,8 +19,8 @@ params ["_logic"]; if (!isNull _logic) then { private ["_list", "_setting"]; - _list = _logic getvariable ["EnableList",""]; - _setting = _logic getvariable ["role",0]; + _list = _logic getVariable ["EnableList",""]; + _setting = _logic getVariable ["role",0]; [_list, "ACE_IsEngineer", _setting, true] call EFUNC(common,assignObjectsInList); [synchronizedObjects _logic, "ACE_IsEngineer", _setting, true] call EFUNC(common,assignObjectsInList); diff --git a/addons/repair/functions/fnc_moduleAssignRepairFacility.sqf b/addons/repair/functions/fnc_moduleAssignRepairFacility.sqf index e9e60f4190..2c1020f48a 100644 --- a/addons/repair/functions/fnc_moduleAssignRepairFacility.sqf +++ b/addons/repair/functions/fnc_moduleAssignRepairFacility.sqf @@ -19,8 +19,8 @@ params ["_logic"]; if (!isNull _logic) then { private ["_list", "_setting"]; - _list = _logic getvariable ["EnableList",""]; - _setting = _logic getvariable ["role",0]; + _list = _logic getVariable ["EnableList",""]; + _setting = _logic getVariable ["role",0]; [_list, "ACE_isRepairFacility", _setting, true] call EFUNC(common,assignObjectsInList); [synchronizedObjects _logic, "ACE_isRepairFacility", _setting, true] call EFUNC(common,assignObjectsInList); diff --git a/addons/repair/functions/fnc_moduleAssignRepairVehicle.sqf b/addons/repair/functions/fnc_moduleAssignRepairVehicle.sqf index 991de2d8d6..77b4d10f7a 100644 --- a/addons/repair/functions/fnc_moduleAssignRepairVehicle.sqf +++ b/addons/repair/functions/fnc_moduleAssignRepairVehicle.sqf @@ -19,8 +19,8 @@ params ["_logic"]; if (!isNull _logic) then { private ["_list", "_setting"]; - _list = _logic getvariable ["EnableList",""]; - _setting = _logic getvariable ["role",0]; + _list = _logic getVariable ["EnableList",""]; + _setting = _logic getVariable ["role",0]; [_list, "ACE_isRepairVehicle", _setting, true] call EFUNC(common,assignObjectsInList); [synchronizedObjects _logic, "ACE_isRepairVehicle", _setting, true] call EFUNC(common,assignObjectsInList); diff --git a/addons/repair/functions/fnc_repair.sqf b/addons/repair/functions/fnc_repair.sqf index 263e0fec23..91ae0c6c46 100644 --- a/addons/repair/functions/fnc_repair.sqf +++ b/addons/repair/functions/fnc_repair.sqf @@ -29,7 +29,7 @@ _engineerRequired = if (isNumber (_config >> "requiredEngineer")) then { } else { // Check for required class if (isText (_config >> "requiredEngineer")) exitwith { - missionNamespace getvariable [(getText (_config >> "requiredEngineer")), 0]; + missionNamespace getVariable [(getText (_config >> "requiredEngineer")), 0]; }; 0; }; @@ -44,7 +44,7 @@ if (getText (_config >> "condition") != "") then { if (isnil _condition) then { _condition = compile _condition; } else { - _condition = missionNamespace getvariable _condition; + _condition = missionNamespace getVariable _condition; }; if (typeName _condition == "BOOL") then { _return = _condition; @@ -55,7 +55,7 @@ if (getText (_config >> "condition") != "") then { if (!_return) exitwith {false}; _vehicleStateCondition = if (isText(_config >> "vehicleStateCondition")) then { - missionNamespace getvariable [getText(_config >> "vehicleStateCondition"), 0] + missionNamespace getVariable [getText(_config >> "vehicleStateCondition"), 0] } else { getNumber(_config >> "vehicleStateCondition") }; @@ -74,7 +74,7 @@ _repairVeh = {([_caller] call FUNC(isNearRepairVehicle)) || ([_target] call FUNC if (_x == "RepairVehicle" && _repairVeh) exitwith {_return = true;}; if !(isnil _x) exitwith { private "_val"; - _val = missionNamespace getvariable _x; + _val = missionNamespace getVariable _x; if (typeName _val == "SCALAR") then { _return = switch (_val) do { case 0: {true}; @@ -94,7 +94,7 @@ _consumeItems = if (isNumber (_config >> "itemConsumed")) then { } else { // Check for required class if (isText (_config >> "itemConsumed")) exitwith { - missionNamespace getvariable [(getText (_config >> "itemConsumed")), 0]; + missionNamespace getVariable [(getText (_config >> "itemConsumed")), 0]; }; 0; }; @@ -112,7 +112,7 @@ if (_callbackProgress == "") then { if (isNil _callbackProgress) then { _callbackProgress = compile _callbackProgress; } else { - _callbackProgress = missionNamespace getvariable _callbackProgress; + _callbackProgress = missionNamespace getVariable _callbackProgress; }; @@ -152,7 +152,7 @@ _repairTime = if (isNumber (_config >> "repairingTime")) then { if (isnil _repairTimeConfig) then { _repairTimeConfig = compile _repairTimeConfig; } else { - _repairTimeConfig = missionNamespace getvariable _repairTimeConfig; + _repairTimeConfig = missionNamespace getVariable _repairTimeConfig; }; if (typeName _repairTimeConfig == "SCALAR") exitwith { _repairTimeConfig; diff --git a/addons/repair/functions/fnc_repair_failure.sqf b/addons/repair/functions/fnc_repair_failure.sqf index b1f62cecb9..e478fca3f9 100644 --- a/addons/repair/functions/fnc_repair_failure.sqf +++ b/addons/repair/functions/fnc_repair_failure.sqf @@ -26,11 +26,11 @@ if (primaryWeapon _caller == "ACE_FakePrimaryWeapon") then { _caller removeWeapon "ACE_FakePrimaryWeapon"; }; if (vehicle _caller == _caller) then { - [_caller, _caller getvariable [QGVAR(repairPrevAnimCaller), ""], 2] call EFUNC(common,doAnimation); + [_caller, _caller getVariable [QGVAR(repairPrevAnimCaller), ""], 2] call EFUNC(common,doAnimation); }; _caller setvariable [QGVAR(repairPrevAnimCaller), nil]; -_weaponSelect = (_caller getvariable [QGVAR(selectedWeaponOnrepair), ""]); +_weaponSelect = (_caller getVariable [QGVAR(selectedWeaponOnrepair), ""]); if (_weaponSelect != "") then { _caller selectWeapon _weaponSelect; } else { @@ -48,7 +48,7 @@ _callback = getText (_config >> "callbackFailure"); if (isNil _callback) then { _callback = compile _callback; } else { - _callback = missionNamespace getvariable _callback; + _callback = missionNamespace getVariable _callback; }; _args call _callback; diff --git a/addons/repair/functions/fnc_repair_success.sqf b/addons/repair/functions/fnc_repair_success.sqf index 7b19ef64de..5cbe045685 100644 --- a/addons/repair/functions/fnc_repair_success.sqf +++ b/addons/repair/functions/fnc_repair_success.sqf @@ -27,11 +27,11 @@ if (primaryWeapon _caller == "ACE_FakePrimaryWeapon") then { _caller removeWeapon "ACE_FakePrimaryWeapon"; }; if (vehicle _caller == _caller) then { - [_caller, _caller getvariable [QGVAR(repairPrevAnimCaller), ""], 2] call EFUNC(common,doAnimation); + [_caller, _caller getVariable [QGVAR(repairPrevAnimCaller), ""], 2] call EFUNC(common,doAnimation); }; _caller setvariable [QGVAR(repairPrevAnimCaller), nil]; -_weaponSelect = (_caller getvariable [QGVAR(selectedWeaponOnrepair), ""]); +_weaponSelect = (_caller getVariable [QGVAR(selectedWeaponOnrepair), ""]); if (_weaponSelect != "") then { _caller selectWeapon _weaponSelect; } else { @@ -45,7 +45,7 @@ _callback = getText (_config >> "callbackSuccess"); if (isNil _callback) then { _callback = compile _callback; } else { - _callback = missionNamespace getvariable _callback; + _callback = missionNamespace getVariable _callback; }; _args call _callback; From 68359974f198daa7d16e6669a857f6350e2b680d Mon Sep 17 00:00:00 2001 From: jonpas Date: Sun, 16 Aug 2015 16:46:17 +0200 Subject: [PATCH 31/57] ACE_Repair capitalization 1/2 --- addons/repair/{ACE_repair.hpp => ACE_repairT.hpp} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename addons/repair/{ACE_repair.hpp => ACE_repairT.hpp} (100%) diff --git a/addons/repair/ACE_repair.hpp b/addons/repair/ACE_repairT.hpp similarity index 100% rename from addons/repair/ACE_repair.hpp rename to addons/repair/ACE_repairT.hpp From 85cc662fa4a3ead5e9ed61caae7d393c4668c728 Mon Sep 17 00:00:00 2001 From: jonpas Date: Sun, 16 Aug 2015 16:46:32 +0200 Subject: [PATCH 32/57] ACE_Repair capitalization 2/2 --- addons/repair/{ACE_repairT.hpp => ACE_Repair.hpp} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename addons/repair/{ACE_repairT.hpp => ACE_Repair.hpp} (100%) diff --git a/addons/repair/ACE_repairT.hpp b/addons/repair/ACE_Repair.hpp similarity index 100% rename from addons/repair/ACE_repairT.hpp rename to addons/repair/ACE_Repair.hpp From 8a5e572baf1afa9434eca170c6ca865f652309db Mon Sep 17 00:00:00 2001 From: jokoho48 Date: Sun, 16 Aug 2015 19:52:28 +0200 Subject: [PATCH 33/57] Fix Model Warning Unsupported UVSet --- addons/repair/data/ace_track.p3d | Bin 110145 -> 107211 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/addons/repair/data/ace_track.p3d b/addons/repair/data/ace_track.p3d index 904eebfc4860d94b934cbd38922a0b719de91919..86b07f0ef814f833d89ce6d18345304b4d8e8864 100644 GIT binary patch delta 59 zcmX?jhwb!HwuUW?mf72-^BHBOw@dXg`g2WxSaxfu6Zf`X>OT0 Nsmcr>u;ufyNC19u6e9ot delta 291 zcmX?ol}caTRtC)1OUJ9 BU1$IR From 701c98e0da35bb4b3e02a285caa914bbad773d84 Mon Sep 17 00:00:00 2001 From: jonpas Date: Sun, 16 Aug 2015 20:14:54 +0200 Subject: [PATCH 34/57] Cleaned up repair function headers and some code --- .../repair/functions/fnc_addRepairActions.sqf | 11 ++++++--- .../repair/functions/fnc_canRemoveTrack.sqf | 9 ++++++-- .../repair/functions/fnc_canRemoveWheel.sqf | 9 ++++++-- addons/repair/functions/fnc_canRepair.sqf | 16 +++++++------ .../repair/functions/fnc_canRepairTrack.sqf | 14 +++++++---- .../repair/functions/fnc_canReplaceTrack.sqf | 14 +++++++---- .../repair/functions/fnc_canReplaceWheel.sqf | 14 +++++++---- addons/repair/functions/fnc_doFullRepair.sqf | 12 +++++++--- addons/repair/functions/fnc_doRemoveTrack.sqf | 12 +++++++--- addons/repair/functions/fnc_doRemoveWheel.sqf | 12 +++++++--- addons/repair/functions/fnc_doRepair.sqf | 11 +++++++-- addons/repair/functions/fnc_doRepairTrack.sqf | 12 ++++++++-- .../repair/functions/fnc_doReplaceTrack.sqf | 12 ++++++++-- .../repair/functions/fnc_doReplaceWheel.sqf | 12 ++++++++-- .../functions/fnc_getPostRepairDamage.sqf | 16 ++++++++++++- .../fnc_getWheelHitPointsWithSelections.sqf | 10 ++++++-- addons/repair/functions/fnc_hasItems.sqf | 20 ++++++++-------- addons/repair/functions/fnc_isEngineer.sqf | 15 +++++++----- .../functions/fnc_isInRepairFacility.sqf | 10 ++++---- .../functions/fnc_isNearRepairVehicle.sqf | 10 ++++---- .../repair/functions/fnc_isRepairVehicle.sqf | 9 +++++--- .../functions/fnc_moduleAssignEngineer.sqf | 14 ++++++----- .../fnc_moduleAssignRepairFacility.sqf | 14 ++++++----- .../fnc_moduleAssignRepairVehicle.sqf | 14 ++++++----- .../functions/fnc_moduleRepairSettings.sqf | 11 ++++++--- .../functions/fnc_normalizeHitPoints.sqf | 23 ++++++++----------- addons/repair/functions/fnc_repair.sqf | 16 +++++++------ addons/repair/functions/fnc_repairVehicle.sqf | 16 ++++++++----- .../repair/functions/fnc_repair_failure.sqf | 19 +++++++++------ .../repair/functions/fnc_repair_success.sqf | 18 ++++++++------- addons/repair/functions/fnc_setDamage.sqf | 13 +++++++---- .../functions/fnc_setHitPointDamage.sqf | 15 ++++++++---- addons/repair/functions/fnc_spawnObject.sqf | 18 ++++++++++++++- addons/repair/functions/fnc_useItem.sqf | 20 ++++++++-------- addons/repair/functions/fnc_useItems.sqf | 18 ++++++++------- addons/repair/functions/script_component.hpp | 2 +- 36 files changed, 325 insertions(+), 166 deletions(-) diff --git a/addons/repair/functions/fnc_addRepairActions.sqf b/addons/repair/functions/fnc_addRepairActions.sqf index c267832298..3503dff3f0 100644 --- a/addons/repair/functions/fnc_addRepairActions.sqf +++ b/addons/repair/functions/fnc_addRepairActions.sqf @@ -1,12 +1,17 @@ /* * Author: commy2 - * Called from init eventhandler. Checks if the vehicles class already has the actions initialized. Otherwise add all available repair options. + * Checks if the vehicles class already has the actions initialized, otherwise add all available repair options. Calleed from init EH. * * Arguments: - * 0: vehicle + * 0: Vehicle * * Return Value: - * NONE + * None + * + * Example: + * [vehicle] call ace_repair_fnc_addRepairActions + * + * Public: No */ #include "script_component.hpp" #define TRACK_HITPOINTS ["HitLTrack", "HitRTrack"] diff --git a/addons/repair/functions/fnc_canRemoveTrack.sqf b/addons/repair/functions/fnc_canRemoveTrack.sqf index e428ac00a8..ef1e3a6a00 100644 --- a/addons/repair/functions/fnc_canRemoveTrack.sqf +++ b/addons/repair/functions/fnc_canRemoveTrack.sqf @@ -4,11 +4,16 @@ * * Arguments: * 0: Unit that does the repairing - * 1: vehicle to repair + * 1: Vehicle to repair * 2: Selected hitpoint * * Return Value: - * NONE + * None + * + * Example: + * [unit, vehicle, "hitpoint"] call ace_repair_fnc_canRemoveTrack + * + * Public: No */ #include "script_component.hpp" diff --git a/addons/repair/functions/fnc_canRemoveWheel.sqf b/addons/repair/functions/fnc_canRemoveWheel.sqf index e428ac00a8..079f5e1fff 100644 --- a/addons/repair/functions/fnc_canRemoveWheel.sqf +++ b/addons/repair/functions/fnc_canRemoveWheel.sqf @@ -4,11 +4,16 @@ * * Arguments: * 0: Unit that does the repairing - * 1: vehicle to repair + * 1: Vehicle to repair * 2: Selected hitpoint * * Return Value: - * NONE + * None + * + * Example: + * [unit, vehicle, "hitpoint"] call ace_repair_fnc_canRemoveWheel + * + * Public: No */ #include "script_component.hpp" diff --git a/addons/repair/functions/fnc_canRepair.sqf b/addons/repair/functions/fnc_canRepair.sqf index 19d1ccce88..aadbea57c9 100644 --- a/addons/repair/functions/fnc_canRepair.sqf +++ b/addons/repair/functions/fnc_canRepair.sqf @@ -3,17 +3,19 @@ * Check if the repair action can be performed. * * Arguments: - * 0: The caller - * 1: The target - * 2: Selection name - * 3: ACE_Engineeral_Treatments Classname + * 0: Unit that does the repairing + * 1: Vehicle to repair + * 2: Selected hitpoint + * 3: Repair Action Classname * - * ReturnValue: - * Can Treat + * Return Value: + * Can Repair + * + * Example: + * ["something", player] call ace_repair_fnc_canRepair * * Public: Yes */ - #include "script_component.hpp" params ["_caller", "_target", "_hitPoint", "_className"]; diff --git a/addons/repair/functions/fnc_canRepairTrack.sqf b/addons/repair/functions/fnc_canRepairTrack.sqf index 847715c5cb..34165068d7 100644 --- a/addons/repair/functions/fnc_canRepairTrack.sqf +++ b/addons/repair/functions/fnc_canRepairTrack.sqf @@ -3,12 +3,17 @@ * Check if the unit can replace given wheel of the vehicle. * * Arguments: - * 0: Unit that does the repairing (Object) - * 1: vehicle to repair (Object) - * 2: Selected hitpoint (String) + * 0: Unit that does the repairing + * 1: Vehicle to repair + * 2: Selected hitpoint * * Return Value: - * NONE + * None + * + * Example: + * [unit, vehicle, "hitpoint"] call ace_repair_fnc_canRepairTrack + * + * Public: No */ #include "script_component.hpp" @@ -34,4 +39,3 @@ if (typeName _wheel == "OBJECT") then { if (isNull _wheel || damage _wheel >= 1) exitWith {false}; alive _target && {_target getHitPointDamage _hitPoint > 0} - diff --git a/addons/repair/functions/fnc_canReplaceTrack.sqf b/addons/repair/functions/fnc_canReplaceTrack.sqf index 8ced60d63e..0d584e0544 100644 --- a/addons/repair/functions/fnc_canReplaceTrack.sqf +++ b/addons/repair/functions/fnc_canReplaceTrack.sqf @@ -3,12 +3,17 @@ * Check if the unit can replace given wheel of the vehicle. * * Arguments: - * 0: Unit that does the repairing (Object) - * 1: vehicle to repair (Object) - * 2: Selected hitpoint (String) + * 0: Unit that does the repairing + * 1: Vehicle to repair + * 2: Selected hitpoint * * Return Value: - * NONE + * None + * + * Example: + * [unit, vehicle, "hipoint"] call ace_repair_fnc_canReplaceTrack + * + * Public: No */ #include "script_component.hpp" @@ -34,4 +39,3 @@ if (typeName _wheel == "OBJECT") then { if (isNull _wheel) exitWith {false}; alive _target && {_target getHitPointDamage _hitPoint >= 1} - diff --git a/addons/repair/functions/fnc_canReplaceWheel.sqf b/addons/repair/functions/fnc_canReplaceWheel.sqf index 9251650e7f..2c4339ea18 100644 --- a/addons/repair/functions/fnc_canReplaceWheel.sqf +++ b/addons/repair/functions/fnc_canReplaceWheel.sqf @@ -3,12 +3,17 @@ * Check if the unit can replace given wheel of the vehicle. * * Arguments: - * 0: Unit that does the repairing (Object) - * 1: vehicle to repair (Object) - * 2: Selected hitpoint (String) + * 0: Unit that does the repairing + * 1: Vehicle to repair + * 2: Selected hitpoint * * Return Value: - * NONE + * None + * + * Example: + * [unit, vehicle, "hitpoint"] call ace_repair_fnc_canReplaceWheel + * + * Public: No */ #include "script_component.hpp" @@ -40,4 +45,3 @@ if (typeName _wheel == "OBJECT") then { if (isNull _wheel) exitWith {false}; alive _target && {_target getHitPointDamage _hitPoint >= 1} - diff --git a/addons/repair/functions/fnc_doFullRepair.sqf b/addons/repair/functions/fnc_doFullRepair.sqf index 24454bbd62..6beec4c4c7 100644 --- a/addons/repair/functions/fnc_doFullRepair.sqf +++ b/addons/repair/functions/fnc_doFullRepair.sqf @@ -1,13 +1,19 @@ /* * Author: Glowbal - * * Called by repair action / progress bar. Raise events to set the new hitpoint damage. * * Arguments: - * Stuff from progress bar. + * 0: Unit that does the repairing + * 1: Vehicle to repair + * 2: Selected hitpoint * * Return Value: - * NONE + * None + * + * Example: + * [unit, vehicle, "hitpoint"] call ace_repair_fnc_doFullRepair + * + * Public: No */ #include "script_component.hpp" diff --git a/addons/repair/functions/fnc_doRemoveTrack.sqf b/addons/repair/functions/fnc_doRemoveTrack.sqf index 740edabf09..68755658ca 100644 --- a/addons/repair/functions/fnc_doRemoveTrack.sqf +++ b/addons/repair/functions/fnc_doRemoveTrack.sqf @@ -1,13 +1,19 @@ /* * Author: commy2 - * * Called by repair action / progress bar. Raise events to set the new hitpoint damage. * * Arguments: - * Stuff from progress bar. + * 0: Unit that does the repairing + * 1: Vehicle to repair + * 2: Selected hitpoint * * Return Value: - * NONE + * None + * + * Example: + * [unit, vehicle, "hitpoint"] call ace_repair_fnc_doRemoveTrack + * + * Public: No */ #include "script_component.hpp" diff --git a/addons/repair/functions/fnc_doRemoveWheel.sqf b/addons/repair/functions/fnc_doRemoveWheel.sqf index 89fc76a341..0ffeb7ad23 100644 --- a/addons/repair/functions/fnc_doRemoveWheel.sqf +++ b/addons/repair/functions/fnc_doRemoveWheel.sqf @@ -1,13 +1,19 @@ /* * Author: commy2 - * * Called by repair action / progress bar. Raise events to set the new hitpoint damage. * * Arguments: - * Stuff from progress bar. + * 0: Unit that does the repairing + * 1: Vehicle to repair + * 2: Selected hitpoint * * Return Value: - * NONE + * None + * + * Example: + * [unit, vehicle, "hitpoint"] call ace_repair_fnc_doRemoveWheel + * + * Public: No */ #include "script_component.hpp" diff --git a/addons/repair/functions/fnc_doRepair.sqf b/addons/repair/functions/fnc_doRepair.sqf index 8059003845..dfc21830c9 100644 --- a/addons/repair/functions/fnc_doRepair.sqf +++ b/addons/repair/functions/fnc_doRepair.sqf @@ -3,10 +3,17 @@ * Called by repair action / progress bar. Raise events to set the new hitpoint damage. * * Arguments: - * 0: Stuff from progress bar. + * 0: Unit that does the repairing + * 1: Vehicle to repair + * 2: Selected hitpoint * * Return Value: - * NONE + * None + * + * Example: + * [unit, vehicle, "hitpoint"] call ace_repair_fnc_doRepair + * + * Public: No */ #include "script_component.hpp" diff --git a/addons/repair/functions/fnc_doRepairTrack.sqf b/addons/repair/functions/fnc_doRepairTrack.sqf index 621d933d64..4803518e3d 100644 --- a/addons/repair/functions/fnc_doRepairTrack.sqf +++ b/addons/repair/functions/fnc_doRepairTrack.sqf @@ -3,10 +3,18 @@ * Called by repair action / progress bar. Raise events to set the new hitpoint damage. * * Arguments: - * 0: Stuff from progress bar. + * 0: Unit that does the repairing + * 1: Vehicle to repair + * 2: Selected hitpoint + * 3: Repair Action Classname * * Return Value: - * NONE + * None + * + * Example: + * [unit, vehicle, "hitpoint", "classname"] call ace_repair_fnc_doRepairTrack + * + * Public: No */ #include "script_component.hpp" diff --git a/addons/repair/functions/fnc_doReplaceTrack.sqf b/addons/repair/functions/fnc_doReplaceTrack.sqf index 224508684b..13e53b3f3a 100644 --- a/addons/repair/functions/fnc_doReplaceTrack.sqf +++ b/addons/repair/functions/fnc_doReplaceTrack.sqf @@ -3,10 +3,18 @@ * Called by repair action / progress bar. Raise events to set the new hitpoint damage. * * Arguments: - * 0: Stuff from progress bar. + * 0: Unit that does the repairing + * 1: Vehicle to repair + * 2: Selected hitpoint + * 3: Repair Action Classname * * Return Value: - * NONE + * None + * + * Example: + * [unit, vehicle, "hitpoint", "classname"] call ace_repair_fnc_doReplaceTrack + * + * Public: No */ #include "script_component.hpp" diff --git a/addons/repair/functions/fnc_doReplaceWheel.sqf b/addons/repair/functions/fnc_doReplaceWheel.sqf index 5051699497..62db39aa6d 100644 --- a/addons/repair/functions/fnc_doReplaceWheel.sqf +++ b/addons/repair/functions/fnc_doReplaceWheel.sqf @@ -3,10 +3,18 @@ * Called by repair action / progress bar. Raise events to set the new hitpoint damage. * * Arguments: - * 0: Stuff from progress bar. + * 0: Unit that does the repairing + * 1: Vehicle to repair + * 2: Selected hitpoint + * 3: Repair Action Classname * * Return Value: - * NONE + * None + * + * Example: + * [unit, vehicle, "hitpoint", "classname"] call ace_repair_fnc_doReplaceWheel + * + * Public: No */ #include "script_component.hpp" diff --git a/addons/repair/functions/fnc_getPostRepairDamage.sqf b/addons/repair/functions/fnc_getPostRepairDamage.sqf index c425f6569e..797f7a4f22 100644 --- a/addons/repair/functions/fnc_getPostRepairDamage.sqf +++ b/addons/repair/functions/fnc_getPostRepairDamage.sqf @@ -1,4 +1,18 @@ -// by comm2 +/* + * Author: commy2 + * Returns the damage threshold based on settings and unit type. + * + * Arguments: + * 0: Unit that does the repairing + * + * Return Value: + * 0: Rpair Damage Threshold + * + * Example: + * [unit] call ace_repair_fnc_getPostRepairDamage + * + * Public: No + */ #include "script_component.hpp" params ["_unit"]; diff --git a/addons/repair/functions/fnc_getWheelHitPointsWithSelections.sqf b/addons/repair/functions/fnc_getWheelHitPointsWithSelections.sqf index 6719047737..182c6f54f0 100644 --- a/addons/repair/functions/fnc_getWheelHitPointsWithSelections.sqf +++ b/addons/repair/functions/fnc_getWheelHitPointsWithSelections.sqf @@ -3,10 +3,16 @@ * Returns the wheel hitpoints and their selections. * * Arguments: - * 0: A vehicle + * 0: Vehicle * * Return Value: - * Wheel positions in model coordinates. + * 0: Wheel hitpoints + * 1: Wheel hitpoint selections in model coordinates + * + * Example: + * [unit, vehicle, "hitpoint"] call ace_repair_fnc_getWheelHitPointsWithSelections + * + * Public: No */ #include "script_component.hpp" diff --git a/addons/repair/functions/fnc_hasItems.sqf b/addons/repair/functions/fnc_hasItems.sqf index 6167689faf..2f070c8bb6 100644 --- a/addons/repair/functions/fnc_hasItems.sqf +++ b/addons/repair/functions/fnc_hasItems.sqf @@ -3,28 +3,30 @@ * Check if the engineer has all items. * * Arguments: - * 0: Engineer - * 1: Patient - * 2: Items > + * 0: Unit that does the repairing + * 1: Items required * - * ReturnValue: - * Has the items + * Return Value: + * Has Items + * + * Example: + * [engineer, [items]] call ace_repair_fnc_hasItems * * Public: Yes */ #include "script_component.hpp" -params ["_engineer", "_items"]; -TRACE_2("params",_engineer,_items); +params ["_unit", "_items"]; +TRACE_2("params",_unit,_items); private ["_return"]; _return = true; { - if (typeName _x == "ARRAY" && {({[_engineer, _x] call EFUNC(common,hasItem)} count _x == 0)}) exitwith { + if (typeName _x == "ARRAY" && {({[_unit, _x] call EFUNC(common,hasItem)} count _x == 0)}) exitwith { _return = false; }; - if (typeName _x == "STRING" && {!([_engineer, _x] call EFUNC(common,hasItem))}) exitwith { + if (typeName _x == "STRING" && {!([_unit, _x] call EFUNC(common,hasItem))}) exitwith { _return = false; }; } forEach _items; diff --git a/addons/repair/functions/fnc_isEngineer.sqf b/addons/repair/functions/fnc_isEngineer.sqf index aa2368184a..453ba5b229 100644 --- a/addons/repair/functions/fnc_isEngineer.sqf +++ b/addons/repair/functions/fnc_isEngineer.sqf @@ -1,13 +1,16 @@ /* * Author: Glowbal, KoffeinFlummi, commy2 - * Check if a unit is any engineer class + * Check if a unit is any engineer class. * * Arguments: - * 0: The Unit - * 1: Class + * 0: Unit + * 1: Class (Optional) * - * ReturnValue: - * Is in of engineer class + * Return Value: + * Is Engineer Class + * + * Example: + * [unit, 1] call ace_repair_fnc_isEngineer * * Public: Yes */ @@ -23,4 +26,4 @@ _class = _unit getVariable ["ACE_IsEngineer", getNumber (configFile >> "CfgVehic // We cannot move this function to common because we require the GVAR(engineerSetting_Repair), which only makes sense to include in the repair module. if (typeName _class == "BOOL") then {_class = 1}; -_class >= (_engineerN min GVAR(engineerSetting_Repair)); \ No newline at end of file +_class >= (_engineerN min GVAR(engineerSetting_Repair)); diff --git a/addons/repair/functions/fnc_isInRepairFacility.sqf b/addons/repair/functions/fnc_isInRepairFacility.sqf index 725cddd4c2..0c062ff0b3 100644 --- a/addons/repair/functions/fnc_isInRepairFacility.sqf +++ b/addons/repair/functions/fnc_isInRepairFacility.sqf @@ -1,16 +1,18 @@ /* * Author: Glowbal - * Checks if a unit is in a repair facility + * Checks if a unit is in a repair facility. * * Arguments: - * 0: The Unit + * 0: Unit * - * ReturnValue: + * Return Value: * Is inside a repair facility * + * Example: + * [unit] call ace_repair_fnc_isInRepairFacility + * * Public: Yes */ - #include "script_component.hpp" params ["_object"]; diff --git a/addons/repair/functions/fnc_isNearRepairVehicle.sqf b/addons/repair/functions/fnc_isNearRepairVehicle.sqf index 126a0c40cb..677f489a88 100644 --- a/addons/repair/functions/fnc_isNearRepairVehicle.sqf +++ b/addons/repair/functions/fnc_isNearRepairVehicle.sqf @@ -1,16 +1,18 @@ /* * Author: KoffeinFlummi - * Checks if a unit is in a engineeral vehicle. + * Checks if a unit is near an engineering vehicle. * * Arguments: - * 0: unit to be checked + * 0: Unit * * Return Value: - * Is unit in engineeral vehicle? + * Is near engineering vehicle + * + * Example: + * [unit] call ace_repair_fnc_isNearRepairVehicle * * Public: Yes */ - #include "script_component.hpp" params ["_unit"]; diff --git a/addons/repair/functions/fnc_isRepairVehicle.sqf b/addons/repair/functions/fnc_isRepairVehicle.sqf index 72da9783d1..121bda0fe3 100644 --- a/addons/repair/functions/fnc_isRepairVehicle.sqf +++ b/addons/repair/functions/fnc_isRepairVehicle.sqf @@ -1,12 +1,15 @@ /* * Author: Glowbal - * Check if vehicle is a engineeral vehicle + * Check if vehicle is a engineering vehicle. * * Arguments: - * 0: The Vehicle + * 0: Vehicle * * ReturnValue: - * Is in of engineer class + * Is engineering vehicle + * + * Example: + * [vehicle] call ace_repair_fnc_isRepairVehicle * * Public: Yes */ diff --git a/addons/repair/functions/fnc_moduleAssignEngineer.sqf b/addons/repair/functions/fnc_moduleAssignEngineer.sqf index a273b2a750..9fb9ed8431 100644 --- a/addons/repair/functions/fnc_moduleAssignEngineer.sqf +++ b/addons/repair/functions/fnc_moduleAssignEngineer.sqf @@ -1,18 +1,20 @@ /* * Author: Glowbal - * Assign an engineer role to a unit + * Assign an engineer role to a unit. * * Arguments: - * 0: The module logic - * 1: units - * 2: activated + * 0: The module logic + * 1: Synchronized units + * 2: Activated * * Return Value: - * None + * None + * + * Example: + * function = "ace_repair_fnc_moduleAssignEngineer" * * Public: No */ - #include "script_component.hpp" params ["_logic"]; diff --git a/addons/repair/functions/fnc_moduleAssignRepairFacility.sqf b/addons/repair/functions/fnc_moduleAssignRepairFacility.sqf index 2c1020f48a..00cb847866 100644 --- a/addons/repair/functions/fnc_moduleAssignRepairFacility.sqf +++ b/addons/repair/functions/fnc_moduleAssignRepairFacility.sqf @@ -1,18 +1,20 @@ /* * Author: Glowbal - * Assign an repair facility + * Assign a repair facility. * * Arguments: - * 0: The module logic - * 1: units - * 2: activated + * 0: The module logic + * 1: Synchronized units + * 2: Activated * * Return Value: - * None + * None + * + * Example: + * function = "ace_repair_fnc_moduleAssignRepairFacility" * * Public: No */ - #include "script_component.hpp" params ["_logic"]; diff --git a/addons/repair/functions/fnc_moduleAssignRepairVehicle.sqf b/addons/repair/functions/fnc_moduleAssignRepairVehicle.sqf index 77b4d10f7a..69d2a2c52f 100644 --- a/addons/repair/functions/fnc_moduleAssignRepairVehicle.sqf +++ b/addons/repair/functions/fnc_moduleAssignRepairVehicle.sqf @@ -1,18 +1,20 @@ /* * Author: Glowbal - * Assign an repair vehicle + * Assign a repair vehicle. * * Arguments: - * 0: The module logic - * 1: units - * 2: activated + * 0: The module logic + * 1: Synchronized units + * 2: Activated * * Return Value: - * None + * None + * + * Example: + * function = "ace_repair_fnc_moduleAssignRepairVehicle" * * Public: No */ - #include "script_component.hpp" params ["_logic"]; diff --git a/addons/repair/functions/fnc_moduleRepairSettings.sqf b/addons/repair/functions/fnc_moduleRepairSettings.sqf index 7517d819c5..3b97d2f168 100644 --- a/addons/repair/functions/fnc_moduleRepairSettings.sqf +++ b/addons/repair/functions/fnc_moduleRepairSettings.sqf @@ -1,12 +1,17 @@ /* * Author: commy2 - * Module for adjusting the repair damage settings + * Adjusts repair damage settings. * * Arguments: - * 0: The module logic + * 0: The module logic + * 1: Synchronized units + * 2: Activated * * Return Value: - * None + * None + * + * Example: + * function = "ace_repair_fnc_moduleRepairSettings" * * Public: No */ diff --git a/addons/repair/functions/fnc_normalizeHitPoints.sqf b/addons/repair/functions/fnc_normalizeHitPoints.sqf index 7a39940794..88c72f4de8 100644 --- a/addons/repair/functions/fnc_normalizeHitPoints.sqf +++ b/addons/repair/functions/fnc_normalizeHitPoints.sqf @@ -3,29 +3,31 @@ * Used to normalize dependant hitpoints. May overwrite some global variables that are named like hitpoints or "Total" though... * * Arguments: - * 0: A local vehicle with hitpoints. + * 0: Local Vehicle * * Return Value: - * NONE + * None + * + * Example: + * [vehicle] call ace_repair_fnc_normalizeHitPoints + * + * Public: No */ #include "script_component.hpp" params ["_vehicle"]; TRACE_1("params",_vehicle); -// can't execute all commands if the vehicle isn't local. exit here. +// Can't execute all commands if the vehicle isn't local, exit if that's so if !(local _vehicle) exitWith {}; -private ["_hitPoints", "_config"]; +private ["_hitPoints", "_config", "_dependentHitPoints", "_dependentHitPointScripts", "_damage"]; _hitPoints = [_vehicle] call EFUNC(common,getHitPoints); - _config = configFile >> "CfgVehicles" >> typeOf _vehicle >> "HitPoints"; // define global variables. Needed to parse the depends config entries. Also find dependent hitpoints. -private ["_dependentHitPoints", "_dependentHitPointScripts"]; - _dependentHitPoints = []; _dependentHitPointScripts = []; @@ -33,21 +35,14 @@ Total = damage _vehicle; { missionNamespace setVariable [_x, _vehicle getHitPointDamage _x]; - if (isText (_config >> _x >> "depends")) then { _dependentHitPoints pushBack _x; _dependentHitPointScripts pushBack compile getText (_config >> _x >> "depends"); }; - } forEach _hitPoints; // apply normalized damage to all dependand hitpoints - { - private "_damage"; - _damage = call (_dependentHitPointScripts select _forEachIndex); - _vehicle setHitPointDamage [_x, _damage]; - } forEach _dependentHitPoints; diff --git a/addons/repair/functions/fnc_repair.sqf b/addons/repair/functions/fnc_repair.sqf index 91ae0c6c46..68dd93d083 100644 --- a/addons/repair/functions/fnc_repair.sqf +++ b/addons/repair/functions/fnc_repair.sqf @@ -1,19 +1,21 @@ /* * Author: Glowbal, KoffeinFlummi - * Starts the repair process + * Starts the repair process. * * Arguments: - * 0: The engineer - * 1: The patient - * 2: SelectionName - * 3: repair classname + * 0: Unit that does the repairing + * 1: Vehicle to repair + * 3: Repair Action Classname * * Return Value: - * Succesful repair started + * Succesful Repair Started + * + * Example: + * [unit, vehicle, "hitpoint", "classname"] call ace_repair_fnc_repair * * Public: Yes */ - #include "script_component.hpp" params ["_caller", "_target", "_hitPoint", "_className"]; diff --git a/addons/repair/functions/fnc_repairVehicle.sqf b/addons/repair/functions/fnc_repairVehicle.sqf index becdcb366d..8313e4cdf1 100644 --- a/addons/repair/functions/fnc_repairVehicle.sqf +++ b/addons/repair/functions/fnc_repairVehicle.sqf @@ -1,15 +1,19 @@ /* * Author: commy2 - * - * Start a repair action and open progress bar. + * Starts a repair action with a progress bar. * * Arguments: - * 0: Unit that does the repairing (Object) - * 1: vehicle to repair (Object) - * 2: Selected hitpoint (String) + * 0: Unit that does the repairing + * 1: Vehicle to repair * * Return Value: - * NONE + * None + * + * Example: + * [unit, vehicle, "hitpoint"] call ace_repair_fnc_repairVehicle + * + * Public: No */ #include "script_component.hpp" diff --git a/addons/repair/functions/fnc_repair_failure.sqf b/addons/repair/functions/fnc_repair_failure.sqf index e478fca3f9..6e27ab07a7 100644 --- a/addons/repair/functions/fnc_repair_failure.sqf +++ b/addons/repair/functions/fnc_repair_failure.sqf @@ -1,16 +1,21 @@ /* * Author: KoffeinFlummi, Glowbal - * Callback when the repair fails + * Callback when repair fails. * * Arguments: - * 0: The engineer - * 1: The patient - * 2: SelectionName - * 3: Treatment classname - * 4: Items available > + * 0: Arguments + * 0: Unit that does the repairing + * 1: Vehicle to repair + * 3: Repair Action Classname + * 4: None + * 5: Items available * * Return Value: - * nil + * None + * + * Example: + * [[unit, vehicle, "hitpoint", "classname", nil, [items]]] call ace_repair_fnc_repair_failure * * Public: No */ diff --git a/addons/repair/functions/fnc_repair_success.sqf b/addons/repair/functions/fnc_repair_success.sqf index 5cbe045685..ccad93663f 100644 --- a/addons/repair/functions/fnc_repair_success.sqf +++ b/addons/repair/functions/fnc_repair_success.sqf @@ -1,20 +1,22 @@ /* * Author: KoffeinFlummi, Glowbal - * Callback when the repair is completed + * Callback when repair completes. * * Arguments: - * 0: The engineer - * 1: The patient - * 2: SelectionName - * 3: Treatment classname - * 4: Items available > + * 0: Arguments + * 0: Unit that does the repairing + * 1: Vehicle to repair + * 3: Repair Action Classname * * Return Value: - * nil + * None + * + * Example: + * [[unit, vehicle, "hitpoint", "classname"]] call ace_repair_fnc_repair_success * * Public: No */ - #include "script_component.hpp" params ["_args"]; diff --git a/addons/repair/functions/fnc_setDamage.sqf b/addons/repair/functions/fnc_setDamage.sqf index c739a2c9fc..410a9b0396 100644 --- a/addons/repair/functions/fnc_setDamage.sqf +++ b/addons/repair/functions/fnc_setDamage.sqf @@ -1,13 +1,18 @@ /* * Author: commy2 - * Sets the structural damage of a vehicle without altering the hitPoints. Requires local vehicle. + * Sets the structural damage of a vehicle without altering the hitPoints, requires local vehicle. * * Arguments: - * 0: vehicle to damage - * 1: Total damage + * 0: Local Vehicle to Damage + * 1: Total Damage * * Return Value: - * NONE + * None + * + * Example: + * [vehicle, 0.5] call ace_repair_fnc_setDamage + * + * Public: No */ #include "script_component.hpp" diff --git a/addons/repair/functions/fnc_setHitPointDamage.sqf b/addons/repair/functions/fnc_setHitPointDamage.sqf index d4595960e4..a8b4cd347b 100644 --- a/addons/repair/functions/fnc_setHitPointDamage.sqf +++ b/addons/repair/functions/fnc_setHitPointDamage.sqf @@ -1,14 +1,19 @@ /* * Author: commy2 - * Set the hitpoint damage and change the structural damage acordingly. Requires local vehicle. + * Set the hitpoint damage and change the structural damage acordingly, requires local vehicle. * * Arguments: - * 0: vehicle - * 1: hitpoint - * 2: damage + * 0: Local Vehicle to Damage + * 1: Selected hitpoint + * 2: Total Damage * * Return Value: - * NONE + * None + * + * Example: + * [vehicle, "hitpoint", 0.5] call ace_repair_fnc_setHitPointDamage + * + * Public: No */ #include "script_component.hpp" diff --git a/addons/repair/functions/fnc_spawnObject.sqf b/addons/repair/functions/fnc_spawnObject.sqf index efe64ec9d5..1ea4b7363a 100644 --- a/addons/repair/functions/fnc_spawnObject.sqf +++ b/addons/repair/functions/fnc_spawnObject.sqf @@ -1,4 +1,20 @@ -// by commy2 +/* + * Author: commy2 + * Spawns an object of specified string, at specified position with specified damage taken. + * + * Arguments: + * 0: Item classname + * 1: Position + * 2: Damage + * + * Return Value: + * None + * + * Example: + * ["classname", [0, 0, 0], 1] call ace_repair_fnc_spawnObject + * + * Public: No + */ #include "script_component.hpp" params ["_item", "_position", ["_damage", 0]]; diff --git a/addons/repair/functions/fnc_useItem.sqf b/addons/repair/functions/fnc_useItem.sqf index 2309c25bd8..218a7a1ee4 100644 --- a/addons/repair/functions/fnc_useItem.sqf +++ b/addons/repair/functions/fnc_useItem.sqf @@ -3,22 +3,24 @@ * Use Equipment if any is available. * * Arguments: - * 0: Engineer - * 2: Item + * 0: Unit + * 2: Item classname * * ReturnValue: - * + * None + * + * Example: + * [unit, "classname"] call ace_repair_fnc_useItem * * Public: Yes */ - #include "script_component.hpp" -params ["_engineer", "_item"]; -TRACE_2("params",_engineer,_item); +params ["_unit", "_item"]; +TRACE_2("params",_unit,_item); -if ([_engineer, _item] call EFUNC(common,hasItem)) exitwith { - [[_engineer, _item], QUOTE(EFUNC(common,useItem)), _engineer] call EFUNC(common,execRemoteFnc); /* TODO Replace by event system */ - [true, _engineer]; +if ([_unit, _item] call EFUNC(common,hasItem)) exitwith { + [[_unit, _item], QUOTE(EFUNC(common,useItem)), _unit] call EFUNC(common,execRemoteFnc); /* TODO Replace by event system */ + [true, _unit]; }; [false, objNull]; diff --git a/addons/repair/functions/fnc_useItems.sqf b/addons/repair/functions/fnc_useItems.sqf index cf27105190..f8aa176018 100644 --- a/addons/repair/functions/fnc_useItems.sqf +++ b/addons/repair/functions/fnc_useItems.sqf @@ -3,19 +3,21 @@ * Use Equipment items if any is available. * * Arguments: - * 0: Engineer - * 1: Items > + * 0: Unit + * 1: Item classnames * * ReturnValue: - * + * None + * + * Example: + * [unit, ["classname1", "classname2"]] call ace_repair_fnc_useItems * * Public: Yes */ - #include "script_component.hpp" -params ["_engineer", "_items"]; -TRACE_2("params",_engineer,_items); +params ["_unit", "_items"]; +TRACE_2("params",_unit,_items); private ["_itemUsedInfo", "_itemsUsedBy"]; @@ -24,14 +26,14 @@ _itemsUsedBy = []; // handle a one of type use item if (typeName _x == "ARRAY") then { { - _itemUsedInfo = [_engineer, _x] call FUNC(useItem); + _itemUsedInfo = [_unit, _x] call FUNC(useItem); if (_itemUsedInfo select 0) exitwith { _itemsUsedBy pushback [(_itemUsedInfo select 1), _x]}; } forEach _x; }; // handle required item if (typeName _x == "STRING") then { - _itemUsedInfo = [_engineer, _x] call FUNC(useItem); + _itemUsedInfo = [_unit, _x] call FUNC(useItem); if (_itemUsedInfo select 0) exitwith { _itemsUsedBy pushback [(_itemUsedInfo select 1), _x]}; }; } forEach _items; diff --git a/addons/repair/functions/script_component.hpp b/addons/repair/functions/script_component.hpp index ea8f8ef9f9..80a7b2eb74 100644 --- a/addons/repair/functions/script_component.hpp +++ b/addons/repair/functions/script_component.hpp @@ -1 +1 @@ -#include "\z\ace\addons\repair\script_component.hpp" \ No newline at end of file +#include "\z\ace\addons\repair\script_component.hpp" From 161a75adc778ae833b24776925b36ca97ac924ad Mon Sep 17 00:00:00 2001 From: jonpas Date: Sun, 16 Aug 2015 20:34:02 +0200 Subject: [PATCH 35/57] Added missing arguments in header, replaced QOUTE(DFUNC()) with QFUNC() --- addons/repair/CfgVehicles.hpp | 9 ++++----- addons/repair/functions/fnc_canReplaceTrack.sqf | 1 + addons/repair/functions/fnc_canReplaceWheel.sqf | 1 + 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/addons/repair/CfgVehicles.hpp b/addons/repair/CfgVehicles.hpp index dde6b94e1c..f24cd9bc9a 100644 --- a/addons/repair/CfgVehicles.hpp +++ b/addons/repair/CfgVehicles.hpp @@ -22,7 +22,7 @@ class CfgVehicles { displayName = CSTRING(moduleName); icon = QUOTE(PATHTOF(ui\Icon_Module_Repair_ca.paa)); //@todo category = "ACE"; - function = QUOTE(DFUNC(moduleRepairSettings)); + function = QFUNC(moduleRepairSettings); functionPriority = 1; isGlobal = 1; isTriggerActivated = 0; @@ -104,7 +104,7 @@ class CfgVehicles { displayName = CSTRING(AssignEngineerRole_Module_DisplayName); icon = QUOTE(PATHTOF(ui\Icon_Module_Repair_ca.paa)); category = "ACE"; - function = QUOTE(DFUNC(moduleAssignEngineer)); + function = QFUNC(moduleAssignEngineer); functionPriority = 10; isGlobal = 2; isTriggerActivated = 0; @@ -148,7 +148,7 @@ class CfgVehicles { displayName = CSTRING(AssignRepairVehicle_Module_DisplayName); icon = QUOTE(PATHTOF(ui\Icon_Module_Repair_ca.paa)); category = "ACE"; - function = QUOTE(DFUNC(moduleAssignRepairVehicle)); + function = QFUNC(moduleAssignRepairVehicle); functionPriority = 10; isGlobal = 2; isTriggerActivated = 0; @@ -185,7 +185,7 @@ class CfgVehicles { }; class ACE_moduleAssignRepairFacility: ACE_moduleAssignRepairVehicle { displayName = CSTRING(AssignRepairFacility_Module_DisplayName); - function = QUOTE(DFUNC(moduleAssignRepairFacility)); + function = QFUNC(moduleAssignRepairFacility); class Arguments { class EnableList { displayName = CSTRING(AssignRepairFacility_EnableList_DisplayName); @@ -220,7 +220,6 @@ class CfgVehicles { class LandVehicle; class Car: LandVehicle { MACRO_REPAIRVEHICLE - class ACE_Cargo { class Cargo { class ACE_Wheel { diff --git a/addons/repair/functions/fnc_canReplaceTrack.sqf b/addons/repair/functions/fnc_canReplaceTrack.sqf index 0d584e0544..437c9ab5e4 100644 --- a/addons/repair/functions/fnc_canReplaceTrack.sqf +++ b/addons/repair/functions/fnc_canReplaceTrack.sqf @@ -6,6 +6,7 @@ * 0: Unit that does the repairing * 1: Vehicle to repair * 2: Selected hitpoint + * 3: Track (Optional) * * Return Value: * None diff --git a/addons/repair/functions/fnc_canReplaceWheel.sqf b/addons/repair/functions/fnc_canReplaceWheel.sqf index 2c4339ea18..90984ff022 100644 --- a/addons/repair/functions/fnc_canReplaceWheel.sqf +++ b/addons/repair/functions/fnc_canReplaceWheel.sqf @@ -6,6 +6,7 @@ * 0: Unit that does the repairing * 1: Vehicle to repair * 2: Selected hitpoint + * 3: Wheel (Optional) * * Return Value: * None From 21f46f4401736c553c1b07d8686ffed3925db491 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Sun, 16 Aug 2015 13:58:58 -0500 Subject: [PATCH 36/57] #2178 - Fix treatment when weapon deployed --- addons/medical/functions/fnc_treatment.sqf | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/addons/medical/functions/fnc_treatment.sqf b/addons/medical/functions/fnc_treatment.sqf index 9c218de540..dd9e763fc4 100644 --- a/addons/medical/functions/fnc_treatment.sqf +++ b/addons/medical/functions/fnc_treatment.sqf @@ -176,6 +176,11 @@ if (vehicle _caller == _caller && {_callerAnim != ""}) then { _caller selectWeapon (primaryWeapon _caller); // unit always has a primary weapon here }; + if (isWeaponDeployed _caller) then { + TRACE_1("Weapon Deployed, breaking out first",(stance _caller)); + [_caller, "", 0] call EFUNC(common,doAnimation); + }; + if (stance _caller == "STAND") then { _caller setvariable [QGVAR(treatmentPrevAnimCaller), "amovpknlmstpsraswrfldnon"]; } else { From dd58eef4152c93c334f8d384faa58bfcecb46bac Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Sun, 16 Aug 2015 14:12:26 -0500 Subject: [PATCH 37/57] Fix double weapon switch for standing treatment --- addons/medical/functions/fnc_treatment.sqf | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/addons/medical/functions/fnc_treatment.sqf b/addons/medical/functions/fnc_treatment.sqf index dd9e763fc4..a319d50440 100644 --- a/addons/medical/functions/fnc_treatment.sqf +++ b/addons/medical/functions/fnc_treatment.sqf @@ -181,8 +181,12 @@ if (vehicle _caller == _caller && {_callerAnim != ""}) then { [_caller, "", 0] call EFUNC(common,doAnimation); }; - if (stance _caller == "STAND") then { - _caller setvariable [QGVAR(treatmentPrevAnimCaller), "amovpknlmstpsraswrfldnon"]; + if ((stance _caller) == "STAND") then { + switch (_wpn) do {//If standing, end in a crouched animation based on their current weapon + case ("rfl"): {_caller setvariable [QGVAR(treatmentPrevAnimCaller), "AmovPknlMstpSrasWrflDnon"];}; + case ("pst"): {_caller setvariable [QGVAR(treatmentPrevAnimCaller), "AmovPknlMstpSrasWpstDnon"];}; + case ("non"): {_caller setvariable [QGVAR(treatmentPrevAnimCaller), "AmovPknlMstpSnonWnonDnon"];}; + }; } else { _caller setvariable [QGVAR(treatmentPrevAnimCaller), animationState _caller]; }; From fda0850ad76cbd907082d9019d91bf85e6d5c9e3 Mon Sep 17 00:00:00 2001 From: jonpas Date: Sun, 16 Aug 2015 21:39:42 +0200 Subject: [PATCH 38/57] Condensed duplicated function, alphabetized PREPs --- addons/repair/ACE_Repair.hpp | 4 ++-- addons/repair/XEH_preInit.sqf | 15 ++++++------ ...c_canRemoveTrack.sqf => fnc_canRemove.sqf} | 6 ++--- .../repair/functions/fnc_canRemoveWheel.sqf | 23 ------------------- 4 files changed, 12 insertions(+), 36 deletions(-) rename addons/repair/functions/{fnc_canRemoveTrack.sqf => fnc_canRemove.sqf} (72%) delete mode 100644 addons/repair/functions/fnc_canRemoveWheel.sqf diff --git a/addons/repair/ACE_Repair.hpp b/addons/repair/ACE_Repair.hpp index 01ad3aee23..c12566d5b1 100644 --- a/addons/repair/ACE_Repair.hpp +++ b/addons/repair/ACE_Repair.hpp @@ -25,7 +25,7 @@ class ACE_Repair { class RemoveWheel: ReplaceWheel { displayName = CSTRING(RemoveWheel); displayNameProgress = CSTRING(RemovingWheel); - condition = QUOTE(call FUNC(canRemoveWheel)); + condition = QUOTE(call FUNC(canRemove)); callbackSuccess = QUOTE(call FUNC(doRemoveWheel)); }; class MiscRepair: ReplaceWheel { @@ -46,7 +46,7 @@ class ACE_Repair { class RemoveTrack: MiscRepair { displayName = CSTRING(RemoveTrack); displayNameProgress = CSTRING(RemovingTrack); - condition = QUOTE(call FUNC(canRemoveTrack)); + condition = QUOTE(call FUNC(canRemove)); callbackSuccess = QUOTE(call FUNC(doRemoveTrack)); requiredEngineer = QGVAR(engineerSetting_Wheel); }; diff --git a/addons/repair/XEH_preInit.sqf b/addons/repair/XEH_preInit.sqf index 38de84a452..ebf4c87537 100644 --- a/addons/repair/XEH_preInit.sqf +++ b/addons/repair/XEH_preInit.sqf @@ -3,19 +3,18 @@ ADDON = false; PREP(addRepairActions); -PREP(canRemoveWheel); -PREP(canRemoveTrack); +PREP(canRemove); PREP(canRepair); PREP(canRepairTrack); -PREP(canReplaceWheel); PREP(canReplaceTrack); -PREP(doRemoveWheel); -PREP(doRemoveTrack); -PREP(doRepair); +PREP(canReplaceWheel); PREP(doFullRepair); +PREP(doRemoveTrack); +PREP(doRemoveWheel); +PREP(doRepair); PREP(doRepairTrack); -PREP(doReplaceWheel); PREP(doReplaceTrack); +PREP(doReplaceWheel); PREP(getPostRepairDamage); PREP(getWheelHitPointsWithSelections); PREP(hasItems); @@ -23,10 +22,10 @@ PREP(isEngineer); PREP(isInRepairFacility); PREP(isNearRepairVehicle); PREP(isRepairVehicle); -PREP(moduleRepairSettings); PREP(moduleAssignEngineer); PREP(moduleAssignRepairVehicle); PREP(moduleAssignRepairFacility); +PREP(moduleRepairSettings); PREP(normalizeHitPoints); PREP(repair); PREP(repair_failure); diff --git a/addons/repair/functions/fnc_canRemoveTrack.sqf b/addons/repair/functions/fnc_canRemove.sqf similarity index 72% rename from addons/repair/functions/fnc_canRemoveTrack.sqf rename to addons/repair/functions/fnc_canRemove.sqf index ef1e3a6a00..9fa657a2bb 100644 --- a/addons/repair/functions/fnc_canRemoveTrack.sqf +++ b/addons/repair/functions/fnc_canRemove.sqf @@ -1,6 +1,6 @@ /* * Author: commy2 - * Check if the unit can remove given wheel of the vehicle. + * Check if the unit can remove given wheel/track of the vehicle. * * Arguments: * 0: Unit that does the repairing @@ -8,10 +8,10 @@ * 2: Selected hitpoint * * Return Value: - * None + * Can Remove * * Example: - * [unit, vehicle, "hitpoint"] call ace_repair_fnc_canRemoveTrack + * [unit, vehicle, "hitpoint"] call ace_repair_fnc_canRemove * * Public: No */ diff --git a/addons/repair/functions/fnc_canRemoveWheel.sqf b/addons/repair/functions/fnc_canRemoveWheel.sqf deleted file mode 100644 index 079f5e1fff..0000000000 --- a/addons/repair/functions/fnc_canRemoveWheel.sqf +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Author: commy2 - * Check if the unit can remove given wheel of the vehicle. - * - * Arguments: - * 0: Unit that does the repairing - * 1: Vehicle to repair - * 2: Selected hitpoint - * - * Return Value: - * None - * - * Example: - * [unit, vehicle, "hitpoint"] call ace_repair_fnc_canRemoveWheel - * - * Public: No - */ -#include "script_component.hpp" - -params ["_unit", "_target", "_hitPoint"]; -TRACE_3("params",_unit,_target,_hitPoint); - -alive _target && {_target getHitPointDamage _hitPoint < 1} From b2824c82bbf2ca00b2d00f3c7677cb1347b5d892 Mon Sep 17 00:00:00 2001 From: jonpas Date: Sun, 16 Aug 2015 21:54:04 +0200 Subject: [PATCH 39/57] Removed redundant function --- addons/repair/functions/fnc_repairVehicle.sqf | 49 ------------------- 1 file changed, 49 deletions(-) delete mode 100644 addons/repair/functions/fnc_repairVehicle.sqf diff --git a/addons/repair/functions/fnc_repairVehicle.sqf b/addons/repair/functions/fnc_repairVehicle.sqf deleted file mode 100644 index 8313e4cdf1..0000000000 --- a/addons/repair/functions/fnc_repairVehicle.sqf +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Author: commy2 - * Starts a repair action with a progress bar. - * - * Arguments: - * 0: Unit that does the repairing - * 1: Vehicle to repair - * - * Return Value: - * None - * - * Example: - * [unit, vehicle, "hitpoint"] call ace_repair_fnc_repairVehicle - * - * Public: No - */ -#include "script_component.hpp" - -params ["_unit", "_vehicle", "_hitPoint"]; -TRACE_3("params",_unit,_vehicle,_hitPoint); - -// exit if not a valid hitpoint -if !(_hitPoint in ([_vehicle] call EFUNC(common,getHitPoints))) exitWith {}; - -// calculate time to fully repair the hitpoint -private ["_damage", "_time"]; - -_damage = _vehicle getHitPointDamage _hitPoint; - -_time = (5 + 10 * _damage) * ([1.5, 1] select ([_unit, GVAR(engineerSetting_Repair) + 1] call FUNC(isEngineer))); - -// get string of the hitpoint -private "_text"; -_text = format ["STR_ACE_Repair_%1", _hitPoint]; - -if (isLocalized _text) then { - _text = format [localize LSTRING(RepairingHitPoint), localize _text]; -} else { - _text = localize LSTRING(Repairing); -}; - -// open the loading bar -[_time, [_unit, _vehicle, _hitPoint], {_this call DFUNC(doRepair)}, {_this call DFUNC(doRepair)}, _text, {(_this select 0) call DFUNC(canRepair)}, []] call EFUNC(common,progressBar); - -// do animation -[_unit] call EFUNC(common,goKneeling); - -// @todo play sound From fb73d3a43651ab5ce27166fbfadbd0a2c7ac7563 Mon Sep 17 00:00:00 2001 From: jonpas Date: Sun, 16 Aug 2015 22:17:04 +0200 Subject: [PATCH 40/57] Fixed dependencies --- addons/repair/config.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/repair/config.cpp b/addons/repair/config.cpp index bf22746272..d97f9e30e5 100644 --- a/addons/repair/config.cpp +++ b/addons/repair/config.cpp @@ -5,7 +5,7 @@ class CfgPatches { units[] = {"ACE_Wheel", "ACE_Track"}; weapons[] = {}; requiredVersion = REQUIRED_VERSION; - requiredAddons[] = {"ace_common", "ace_interaction"}; + requiredAddons[] = {"ace_interaction"}; author[] = {"commy2", "Glowbal"}; authorUrl = "https://ace3mod.com"; VERSION_CONFIG; From 98dd60c6cacf8fd047020c810bc1aca333420a50 Mon Sep 17 00:00:00 2001 From: jonpas Date: Sun, 16 Aug 2015 22:21:39 +0200 Subject: [PATCH 41/57] Alphabetized PREPs, removed newlines and repair references --- addons/cargo/CfgEventHandlers.hpp | 1 - addons/cargo/CfgVehicles.hpp | 11 ++--------- addons/cargo/XEH_preInit.sqf | 13 +++++++------ addons/cargo/config.cpp | 2 +- addons/cargo/menu.hpp | 3 +-- 5 files changed, 11 insertions(+), 19 deletions(-) diff --git a/addons/cargo/CfgEventHandlers.hpp b/addons/cargo/CfgEventHandlers.hpp index f5dd29da0e..f80fefa3aa 100644 --- a/addons/cargo/CfgEventHandlers.hpp +++ b/addons/cargo/CfgEventHandlers.hpp @@ -1,4 +1,3 @@ - class Extended_PreInit_EventHandlers { class ADDON { init = QUOTE(call COMPILE_FILE(XEH_preInit)); diff --git a/addons/cargo/CfgVehicles.hpp b/addons/cargo/CfgVehicles.hpp index ecca6ee341..d5572741da 100644 --- a/addons/cargo/CfgVehicles.hpp +++ b/addons/cargo/CfgVehicles.hpp @@ -1,13 +1,11 @@ - class CfgVehicles { - class ACE_Module; class ACE_moduleCargoSettings: ACE_Module { scope = 2; displayName = CSTRING(SettingsModule_DisplayName); icon = QUOTE(PATHTOF(UI\Icon_Module_Cargo_ca.paa)); category = "ACE"; - function = QUOTE(DFUNC(moduleSettings)); + function = QFUNC(moduleSettings); functionPriority = 1; isGlobal = 1; isTriggerActivated = 0; @@ -41,11 +39,11 @@ class CfgVehicles { };*/ }; }; - class Tank: LandVehicle { GVAR(space) = 4; GVAR(hasCargo) = 1; }; + class Car_F; class Truck_F: Car_F { GVAR(space) = 8; @@ -53,25 +51,20 @@ class CfgVehicles { }; class Air; - // Repair helicopters class Helicopter: Air { GVAR(space) = 8; GVAR(hasCargo) = 1; }; - class Heli_Transport_02_base_F; class I_Heli_Transport_02_F : Heli_Transport_02_base_F { GVAR(space) = 20; GVAR(hasCargo) = 1; }; - - // Repair fixed wing aircraft class Plane: Air { GVAR(space) = 4; GVAR(hasCargo) = 1; }; - // boats class Ship; class Ship_F: Ship { GVAR(space) = 4; diff --git a/addons/cargo/XEH_preInit.sqf b/addons/cargo/XEH_preInit.sqf index f0cf3357cd..9cc90501c1 100644 --- a/addons/cargo/XEH_preInit.sqf +++ b/addons/cargo/XEH_preInit.sqf @@ -2,22 +2,23 @@ ADDON = false; +PREP(canLoad); PREP(canLoadItemIn); PREP(canUnloadItem); -PREP(canLoad); PREP(findNearestVehicle); PREP(getCargoSpaceLeft); -PREP(GetSizeItem); +PREP(getSizeItem); +PREP(handleDestroyed); PREP(initObject); PREP(initVehicle); -PREP(handleDestroyed); -PREP(moduleSettings); PREP(loadItem); +PREP(moduleSettings); PREP(onMenuOpen); -PREP(unloadItem); -PREP(validateCargoSpace); PREP(startLoadIn); PREP(startUnload); +PREP(unloadItem); +PREP(validateCargoSpace); + GVAR(initializedItemClasses) = []; if (isServer) then { diff --git a/addons/cargo/config.cpp b/addons/cargo/config.cpp index 2972e8ef1b..1aefa49616 100644 --- a/addons/cargo/config.cpp +++ b/addons/cargo/config.cpp @@ -12,7 +12,7 @@ class CfgPatches { }; }; +#include "ACE_Settings.hpp" #include "CfgEventHandlers.hpp" #include "CfgVehicles.hpp" #include "menu.hpp" -#include "ACE_Settings.hpp" diff --git a/addons/cargo/menu.hpp b/addons/cargo/menu.hpp index 35976d19ad..6e2bf45a47 100644 --- a/addons/cargo/menu.hpp +++ b/addons/cargo/menu.hpp @@ -1,4 +1,3 @@ - #include "\z\ace\addons\common\define.hpp" class GVAR(menu) { @@ -101,4 +100,4 @@ class GVAR(menu) { action = QUOTE([] call FUNC(startUnload);); }; }; -}; \ No newline at end of file +}; From 359ee1d23b4ba9b1b392f6e7bc74d83f8ba5aeba Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Sun, 16 Aug 2015 15:31:20 -0500 Subject: [PATCH 42/57] #2180 - Fix QGVAR(fullRepairLocation) switch statement --- addons/repair/functions/fnc_canRepair.sqf | 10 +++++----- addons/repair/functions/fnc_repair.sqf | 10 +++++----- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/addons/repair/functions/fnc_canRepair.sqf b/addons/repair/functions/fnc_canRepair.sqf index 0254dfbe14..4a8524e518 100644 --- a/addons/repair/functions/fnc_canRepair.sqf +++ b/addons/repair/functions/fnc_canRepair.sqf @@ -79,12 +79,12 @@ _repairVeh = {([_caller] call FUNC(isNearRepairVehicle)) || ([_target] call FUNC _val = missionNamespace getvariable _x; if (typeName _val == "SCALAR") then { _return = switch (_val) do { - case 0: {true}; - case 1: _repairVeh; - case 2: _repairFacility; - case 3: {{call _repairFacility || call _repairVeh}}; + case 0: {true}; //useAnywhere + case 1: {call _repairVeh}; //repairVehicleOnly + case 2: {call _repairFacility}; //repairFacilityOnly + case 3: {(call _repairFacility) || {call _repairVeh}}; //vehicleAndFacility + default {false}; //Disabled }; - _return = call _return; }; }; } forEach _locations; diff --git a/addons/repair/functions/fnc_repair.sqf b/addons/repair/functions/fnc_repair.sqf index 263e0fec23..3eb8f77ca6 100644 --- a/addons/repair/functions/fnc_repair.sqf +++ b/addons/repair/functions/fnc_repair.sqf @@ -77,12 +77,12 @@ _repairVeh = {([_caller] call FUNC(isNearRepairVehicle)) || ([_target] call FUNC _val = missionNamespace getvariable _x; if (typeName _val == "SCALAR") then { _return = switch (_val) do { - case 0: {true}; - case 1: _repairVeh; - case 2: _repairFacility; - case 3: {{call _repairFacility || call _repairVeh}}; + case 0: {true}; //useAnywhere + case 1: {call _repairVeh}; //repairVehicleOnly + case 2: {call _repairFacility}; //repairFacilityOnly + case 3: {(call _repairFacility) || {call _repairVeh}}; //vehicleAndFacility + default {false}; //Disabled }; - _return = call _return; }; }; } forEach _locations; From bbc715b2ee90a20c76f0369412f9e7f79ac4139e Mon Sep 17 00:00:00 2001 From: jonpas Date: Sun, 16 Aug 2015 22:41:35 +0200 Subject: [PATCH 43/57] Cleaned function headers --- addons/cargo/functions/fnc_canLoad.sqf | 13 ++++++------ addons/cargo/functions/fnc_canLoadItemIn.sqf | 10 +++++---- addons/cargo/functions/fnc_canUnloadItem.sqf | 16 ++++++++------ .../functions/fnc_findNearestVehicle.sqf | 21 +++++++++++-------- .../cargo/functions/fnc_getCargoSpaceLeft.sqf | 11 ++++++---- addons/cargo/functions/fnc_getSizeItem.sqf | 16 +++++++++----- .../cargo/functions/fnc_handleDestroyed.sqf | 10 +++++---- addons/cargo/functions/fnc_initObject.sqf | 10 +++++---- addons/cargo/functions/fnc_initVehicle.sqf | 12 ++++++----- addons/cargo/functions/fnc_loadItem.sqf | 15 +++++++------ addons/cargo/functions/fnc_moduleSettings.sqf | 17 ++++++++++----- addons/cargo/functions/fnc_onMenuOpen.sqf | 21 +++++++++++-------- addons/cargo/functions/fnc_startLoadIn.sqf | 15 ++++++------- addons/cargo/functions/fnc_startUnload.sqf | 20 +++++++++++------- addons/cargo/functions/fnc_unloadItem.sqf | 19 ++++++++++------- .../functions/fnc_validateCargoSpace.sqf | 16 +++++++++----- addons/cargo/functions/script_component.hpp | 2 +- addons/cargo/menu.hpp | 8 +++---- 18 files changed, 152 insertions(+), 100 deletions(-) diff --git a/addons/cargo/functions/fnc_canLoad.sqf b/addons/cargo/functions/fnc_canLoad.sqf index 88391e80da..f61c145fdf 100644 --- a/addons/cargo/functions/fnc_canLoad.sqf +++ b/addons/cargo/functions/fnc_canLoad.sqf @@ -1,6 +1,6 @@ /* * Author: Glowbal - * Check if player can load item into the nearest vehicle + * Check if player can load an item into the nearest vehicle. * * Arguments: * 0: Player @@ -9,9 +9,11 @@ * Return value: * Can load * + * Example: + * [player, object] call ace_cargo_fnc_canLoad + * * Public: No */ - #include "script_component.hpp" params ["_player", "_object"]; @@ -20,12 +22,11 @@ private ["_nearestVehicle"]; _nearestVehicle = [_player] call FUNC(findNearestVehicle); if (_nearestVehicle isKindOf "Cargo_Base_F" || isNull _nearestVehicle) then { - { - if ([_object, _x] call FUNC(canLoadItemIn)) exitwith {_nearestVehicle = _x}; - }foreach (nearestObjects [_player, ["Cargo_base_F", "Land_PaperBox_closed_F"], MAX_LOAD_DISTANCE]); + if ([_object, _x] call FUNC(canLoadItemIn)) exitWith {_nearestVehicle = _x}; + } forEach (nearestObjects [_player, ["Cargo_base_F", "Land_PaperBox_closed_F"], MAX_LOAD_DISTANCE]); }; -if (isNull _nearestVehicle) exitwith {false}; +if (isNull _nearestVehicle) exitWith {false}; [_object, _nearestVehicle] call FUNC(canLoadItemIn); diff --git a/addons/cargo/functions/fnc_canLoadItemIn.sqf b/addons/cargo/functions/fnc_canLoadItemIn.sqf index 5d844cc91c..d3553b91bf 100644 --- a/addons/cargo/functions/fnc_canLoadItemIn.sqf +++ b/addons/cargo/functions/fnc_canLoadItemIn.sqf @@ -1,22 +1,24 @@ /* * Author: Glowbal - * Check if item can be loaded into other Object + * Check if item can be loaded into other Object. * * Arguments: * 0: Item Object - * 1: Holder Object (vehicle) + * 1: Holder Object (Vehicle) * * Return value: * Can load in * + * Example: + * [item, holder] call ace_cargo_fnc_canLoadItemIn + * * Public: No */ - #include "script_component.hpp" params ["_item", "_vehicle"]; -if (speed _vehicle > 1 || (((getPos _vehicle) select 2) > 3)) exitwith {false}; +if (speed _vehicle > 1 || (((getPos _vehicle) select 2) > 3)) exitWith {false}; private "_itemSize"; _itemSize = ([_item] call FUNC(getSizeItem)); diff --git a/addons/cargo/functions/fnc_canUnloadItem.sqf b/addons/cargo/functions/fnc_canUnloadItem.sqf index 74b4c1bb9e..c390092ad1 100644 --- a/addons/cargo/functions/fnc_canUnloadItem.sqf +++ b/addons/cargo/functions/fnc_canUnloadItem.sqf @@ -1,23 +1,27 @@ /* * Author: Glowbal, ViperMaul - * Check if item can be unloaded + * Check if item can be unloaded. * * Arguments: - * 0: loaded object + * 0: loaded Object * 1: Object * * Return value: * Can be unloaded * + * Example: + * [item, holder] call ace_cargo_fnc_canUnloadItem + * * Public: No */ - #include "script_component.hpp" private ["_loaded", "_validVehiclestate", "_emptyPos"]; + params ["_item", "_vehicle"]; -_loaded = _vehicle getvariable [QGVAR(loaded), []]; -if !(_item in _loaded) exitwith {false}; + +_loaded = _vehicle getVariable [QGVAR(loaded), []]; +if !(_item in _loaded) exitWith {false}; _validVehiclestate = true; _emptyPos = []; @@ -35,5 +39,5 @@ if (_vehicle isKindOf "Ship" ) then { }; }; -if (!_validVehiclestate) exitwith { false }; +if (!_validVehiclestate) exitWith {false}; (count _emptyPos != 0); diff --git a/addons/cargo/functions/fnc_findNearestVehicle.sqf b/addons/cargo/functions/fnc_findNearestVehicle.sqf index 40f554adc1..3f6b6ae9dc 100644 --- a/addons/cargo/functions/fnc_findNearestVehicle.sqf +++ b/addons/cargo/functions/fnc_findNearestVehicle.sqf @@ -1,34 +1,37 @@ /* * Author: Glowbal - * Get nearest vehicle, priority car, air, tank, ship + * Get nearest vehicle from unit, priority: Car-Air-Tank-Ship. * * Arguments: - * 0: Object + * 0: Unit * * Return value: - * Vehicle that is in Distance + * Vehicle in Distance + * + * Example: + * [unit] call ace_cargo_fnc_findNearestVehicle * * Public: No */ - #include "script_component.hpp" private ["_loadCar", "_loadHelicopter", "_loadTank", "_loadShip", "_loadContainer"]; + params ["_unit"]; _loadCar = nearestObject [_unit, "car"]; -if (_unit distance _loadCar <= MAX_LOAD_DISTANCE) exitwith {_loadCar}; +if (_unit distance _loadCar <= MAX_LOAD_DISTANCE) exitWith {_loadCar}; _loadHelicopter = nearestObject [_unit, "air"]; -if (_unit distance _loadHelicopter <= MAX_LOAD_DISTANCE) exitwith {_loadHelicopter}; +if (_unit distance _loadHelicopter <= MAX_LOAD_DISTANCE) exitWith {_loadHelicopter}; _loadTank = nearestObject [_unit, "tank"]; -if (_unit distance _loadTank <= MAX_LOAD_DISTANCE) exitwith {_loadTank}; +if (_unit distance _loadTank <= MAX_LOAD_DISTANCE) exitWith {_loadTank}; _loadShip = nearestObject [_unit, "ship"]; -if (_unit distance _loadShip <= MAX_LOAD_DISTANCE) exitwith {_loadShip}; +if (_unit distance _loadShip <= MAX_LOAD_DISTANCE) exitWith {_loadShip}; _loadContainer = nearestObject [_unit,"Cargo_base_F"]; -if (_unit distance _loadContainer <= MAX_LOAD_DISTANCE) exitwith {_loadContainer}; +if (_unit distance _loadContainer <= MAX_LOAD_DISTANCE) exitWith {_loadContainer}; objNull; diff --git a/addons/cargo/functions/fnc_getCargoSpaceLeft.sqf b/addons/cargo/functions/fnc_getCargoSpaceLeft.sqf index 3c50e24ad3..2f8d32201d 100644 --- a/addons/cargo/functions/fnc_getCargoSpaceLeft.sqf +++ b/addons/cargo/functions/fnc_getCargoSpaceLeft.sqf @@ -1,6 +1,6 @@ /* * Author: Glowbal - * Get the cargo space left on object + * Get the cargo space left on object. * * Arguments: * 0: Object @@ -8,10 +8,13 @@ * Return value: * Cargo space left * + * Example: + * [object] call ace_cargo_fnc_getCargoSpaceLeft + * * Public: No */ - #include "script_component.hpp" -params ["_vehicle"]; -_vehicle getvariable [QGVAR(space), getNumber (configFile >> "CfgVehicles" >> typeof _vehicle >> QGVAR(space))]; +params ["_object"]; + +_object getVariable [QGVAR(space), getNumber (configFile >> "CfgVehicles" >> typeof _object >> QGVAR(space))]; diff --git a/addons/cargo/functions/fnc_getSizeItem.sqf b/addons/cargo/functions/fnc_getSizeItem.sqf index 02e5313217..0ee4e0aafd 100644 --- a/addons/cargo/functions/fnc_getSizeItem.sqf +++ b/addons/cargo/functions/fnc_getSizeItem.sqf @@ -1,22 +1,28 @@ /* * Author: Glowbal - * Get the cargo size of an object + * Get the cargo size of an object. * * Arguments: * 0: Object * * Return value: - * Cargo size. (default: -1) + * Cargo size (default: -1) + * + * Example: + * [object] call ace_cargo_fnc_getSizeItem * * Public: No */ - #include "script_component.hpp" private "_config"; + params ["_item"]; + _config = (configFile >> "CfgVehicles" >> typeof _item >> QGVAR(size)); -if (isNumber (_config)) exitwith { - _item getvariable [QGVAR(size), getNumber (_config)]; + +if (isNumber (_config)) exitWith { + _item getVariable [QGVAR(size), getNumber (_config)]; }; + -1 diff --git a/addons/cargo/functions/fnc_handleDestroyed.sqf b/addons/cargo/functions/fnc_handleDestroyed.sqf index 25e7a6a4e0..c11dd3bfad 100644 --- a/addons/cargo/functions/fnc_handleDestroyed.sqf +++ b/addons/cargo/functions/fnc_handleDestroyed.sqf @@ -1,6 +1,6 @@ /* * Author: Glowbal - * Handle object being destroyed + * Handle object being destroyed. * * Arguments: * 0: Object @@ -8,17 +8,19 @@ * Return value: * None * + * Example: + * [object] call ace_cargo_fnc_handleDestroyed + * * Public: No */ - #include "script_component.hpp" params ["_vehicle"]; private["_loaded"]; -_loaded = _vehicle getvariable [QGVAR(loaded), []]; -if (count _loaded == 0) exitwith {}; +_loaded = _vehicle getVariable [QGVAR(loaded), []]; +if (count _loaded == 0) exitWith {}; { // TODO deleteVehicle or just delete vehicle? Do we want to be able to recover destroyed equipment? diff --git a/addons/cargo/functions/fnc_initObject.sqf b/addons/cargo/functions/fnc_initObject.sqf index c834bcf7b0..f9b48b19e1 100644 --- a/addons/cargo/functions/fnc_initObject.sqf +++ b/addons/cargo/functions/fnc_initObject.sqf @@ -1,21 +1,23 @@ /* * Author: Glowbal - * Initialize variables for loadable objects. Called from init EH. + * Initializes variables for loadable objects. Called from init EH. * * Arguments: - * 0: Any object + * 0: Object * * Return value: * None * + * Example: + * [object] call ace_cargo_fnc_initObject + * * Public: No */ - #include "script_component.hpp" params ["_object"]; -if (getNumber (configFile >> "CfgVehicles" >> typeOf _object >> QGVAR(canLoad)) != 1) exitwith {}; +if (getNumber (configFile >> "CfgVehicles" >> typeOf _object >> QGVAR(canLoad)) != 1) exitWith {}; private ["_type", "_action"]; _type = typeOf _object; diff --git a/addons/cargo/functions/fnc_initVehicle.sqf b/addons/cargo/functions/fnc_initVehicle.sqf index 48e83c3858..8449a316b2 100644 --- a/addons/cargo/functions/fnc_initVehicle.sqf +++ b/addons/cargo/functions/fnc_initVehicle.sqf @@ -1,16 +1,18 @@ /* * Author: Glowbal - * initalize vehicle. Adds open caro menu action if available + * Initializes vehicle, adds open caro menu action if available. * * Arguments: - * 0: vehicle + * 0: Vehicle * * Return Value: * None * + * Example: + * [vehicle] call ace_cargo_fnc_initVehicle + * * Public: No */ - #include "script_component.hpp" params ["_vehicle"]; @@ -31,7 +33,7 @@ if (isServer) then { _position set [2, (_position select 2) + 7.5]; for "_i" from 1 to _amount do { _object = createVehicle [_className, _position, [], 0, "CAN_COLLIDE"]; - if !([_object, _vehicle] call FUNC(loadItem)) exitwith { + if !([_object, _vehicle] call FUNC(loadItem)) exitWith { deleteVehicle _object; }; }; @@ -46,7 +48,7 @@ if (_type in _initializedClasses) exitWith {}; _initializedClasses pushBack _type; SETMVAR(GVAR(initializedClasses),_initializedClasses); -if (getNumber (configFile >> "CfgVehicles" >> _type >> QGVAR(hasCargo)) != 1) exitwith {}; +if (getNumber (configFile >> "CfgVehicles" >> _type >> QGVAR(hasCargo)) != 1) exitWith {}; private ["_text", "_condition", "_statement", "_icon", "_action"]; _condition = {GVAR(enable)}; diff --git a/addons/cargo/functions/fnc_loadItem.sqf b/addons/cargo/functions/fnc_loadItem.sqf index 0abebdd43c..52ec517889 100644 --- a/addons/cargo/functions/fnc_loadItem.sqf +++ b/addons/cargo/functions/fnc_loadItem.sqf @@ -1,6 +1,6 @@ /* * Author: Glowbal - * Load object into vehicle + * Load object into vehicle. * * Arguments: * 0: Object @@ -9,23 +9,26 @@ * Return value: * None * + * Example: + * [object, vehicle] call ace_cargo_fnc_loadItem + * * Public: No */ - #include "script_component.hpp" private ["_loaded", "_space", "_itemSize"]; + params ["_item", "_vehicle"]; -if !([_item, _vehicle] call FUNC(canLoadItemIn)) exitwith {false}; +if !([_item, _vehicle] call FUNC(canLoadItemIn)) exitWith {false}; -_loaded = _vehicle getvariable [QGVAR(loaded), []]; +_loaded = _vehicle getVariable [QGVAR(loaded), []]; _loaded pushback _item; -_vehicle setvariable [QGVAR(loaded), _loaded, true]; +_vehicle setVariable [QGVAR(loaded), _loaded, true]; _space = [_vehicle] call FUNC(getCargoSpaceLeft); _itemSize = [_item] call FUNC(getSizeItem); -_vehicle setvariable [QGVAR(space), _space - _itemSize, true]; +_vehicle setVariable [QGVAR(space), _space - _itemSize, true]; detach _item; _item attachTo [_vehicle,[0,0,100]]; diff --git a/addons/cargo/functions/fnc_moduleSettings.sqf b/addons/cargo/functions/fnc_moduleSettings.sqf index bb876c2840..35e6aede7a 100644 --- a/addons/cargo/functions/fnc_moduleSettings.sqf +++ b/addons/cargo/functions/fnc_moduleSettings.sqf @@ -3,19 +3,26 @@ * Module for adjusting the cargo settings * * Arguments: - * 0: The module logic - * 1: units - * 2: activated + * 0: The module logic + * 1: Synchronized units + * 2: Activated * * Return Value: * None * + * Example: + * function = "ace_cargo_fnc_loadItem" + * * Public: No */ - #include "script_component.hpp" +if (!isServer) exitWith {}; + params ["_logic", "_units", "_activated"]; -if !(_activated) exitWith {}; + +if (!_activated) exitWith {}; [_logic, QGVAR(enable), "enable"] call EFUNC(common,readSettingFromModule); + +diag_log text "[ACE]: Cargo Module Initialized."; diff --git a/addons/cargo/functions/fnc_onMenuOpen.sqf b/addons/cargo/functions/fnc_onMenuOpen.sqf index 8c3bbfecf2..031bea01cc 100644 --- a/addons/cargo/functions/fnc_onMenuOpen.sqf +++ b/addons/cargo/functions/fnc_onMenuOpen.sqf @@ -1,37 +1,40 @@ /* * Author: Glowbal - * Handle the UI data display + * Handle the UI data display. * * Arguments: - * 0: display + * 0: Display * * Return value: * None * + * Example: + * [display] call ace_cargo_fnc_onMenuOpen + * * Public: No */ - #include "script_component.hpp" disableSerialization; -params["_display"]; -uiNamespace setvariable [QGVAR(menuDisplay), _display]; +params ["_display"]; + +uiNamespace setVariable [QGVAR(menuDisplay), _display]; [{ private ["_display","_loaded", "_ctrl", "_label"]; disableSerialization; - _display = uiNamespace getvariable QGVAR(menuDisplay); - if (isnil "_display") exitwith { + _display = uiNamespace getVariable QGVAR(menuDisplay); + if (isnil "_display") exitWith { [_this select 1] call CBA_fnc_removePerFrameHandler; }; - if (isNull GVAR(interactionVehicle) || ACE_player distance GVAR(interactionVehicle) >= 10) exitwith { + if (isNull GVAR(interactionVehicle) || ACE_player distance GVAR(interactionVehicle) >= 10) exitWith { closeDialog 0; [_this select 1] call CBA_fnc_removePerFrameHandler; }; - _loaded = GVAR(interactionVehicle) getvariable [QGVAR(loaded), []]; + _loaded = GVAR(interactionVehicle) getVariable [QGVAR(loaded), []]; _ctrl = _display displayCtrl 100; _label = _display displayCtrl 2; diff --git a/addons/cargo/functions/fnc_startLoadIn.sqf b/addons/cargo/functions/fnc_startLoadIn.sqf index 0da44ba04c..31b63f1d6c 100644 --- a/addons/cargo/functions/fnc_startLoadIn.sqf +++ b/addons/cargo/functions/fnc_startLoadIn.sqf @@ -1,16 +1,18 @@ /* * Author: Glowbal - * Start load item + * Start load item. * * Arguments: - * 0: Any object + * 0: Object * * Return value: * None * + * Example: + * [object] call ace_cargo_fnc_starLoadIn + * * Public: No */ - #include "script_component.hpp" params ["_player", "_object"]; @@ -19,11 +21,10 @@ private ["_nearestVehicle"]; _nearestVehicle = [_player] call FUNC(findNearestVehicle); if (isNull _nearestVehicle || _nearestVehicle isKindOf "Cargo_Base_F") then { - { - if ([_object, _x] call FUNC(canLoadItemIn)) exitwith {_nearestVehicle = _x}; - }foreach (nearestObjects [_player, ["Cargo_base_F", "Land_PaperBox_closed_F"], MAX_LOAD_DISTANCE]); + if ([_object, _x] call FUNC(canLoadItemIn)) exitWith {_nearestVehicle = _x}; + } foreach (nearestObjects [_player, ["Cargo_base_F", "Land_PaperBox_closed_F"], MAX_LOAD_DISTANCE]); }; -if (isNull _nearestVehicle) exitwith {false}; +if (isNull _nearestVehicle) exitWith {false}; [_object, _nearestVehicle] call FUNC(loadItem); diff --git a/addons/cargo/functions/fnc_startUnload.sqf b/addons/cargo/functions/fnc_startUnload.sqf index 615c1cafbd..28ae034167 100644 --- a/addons/cargo/functions/fnc_startUnload.sqf +++ b/addons/cargo/functions/fnc_startUnload.sqf @@ -1,6 +1,6 @@ /* * Author: Glowbal - * Start unload action + * Start unload action. * * Arguments: * None @@ -8,24 +8,28 @@ * Return value: * None * + * Example: + * [] call ace_cargo_fnc_startUnload + * * Public: No */ - #include "script_component.hpp" private ["_display", "_loaded", "_ctrl", "_selected", "_item"]; -disableSerialization; -_display = uiNamespace getvariable QGVAR(menuDisplay); -if (isnil "_display") exitwith {}; -_loaded = GVAR(interactionVehicle) getvariable [QGVAR(loaded), []]; -if (count _loaded == 0) exitwith {}; +disableSerialization; + +_display = uiNamespace getVariable QGVAR(menuDisplay); +if (isnil "_display") exitWith {}; + +_loaded = GVAR(interactionVehicle) getVariable [QGVAR(loaded), []]; +if (count _loaded == 0) exitWith {}; _ctrl = _display displayCtrl 100; _selected = (lbCurSel _ctrl) max 0; -if (count _loaded <= _selected) exitwith {}; +if (count _loaded <= _selected) exitWith {}; _item = _loaded select _selected; [_item, GVAR(interactionVehicle)] call FUNC(unloadItem); diff --git a/addons/cargo/functions/fnc_unloadItem.sqf b/addons/cargo/functions/fnc_unloadItem.sqf index 0209c5256e..705ba37e85 100644 --- a/addons/cargo/functions/fnc_unloadItem.sqf +++ b/addons/cargo/functions/fnc_unloadItem.sqf @@ -1,6 +1,6 @@ /* * Author: Glowbal, ViperMaul - * Unload object from vehicle + * Unload object from vehicle. * * Arguments: * 0: Object @@ -9,15 +9,18 @@ * Return value: * None * + * Example: + * [object, vehicle] call ace_cargo_fnc_unloadItem + * * Public: No */ - #include "script_component.hpp" private ["_loaded", "_space", "_itemSize", "_emptyPos", "_validVehiclestate"]; + params ["_item", "_vehicle"]; -if !([_item, _vehicle] call FUNC(canUnloadItem)) exitwith { +if !([_item, _vehicle] call FUNC(canUnloadItem)) exitWith { false }; @@ -41,17 +44,17 @@ if (_vehicle isKindOf "Ship" ) then { }; TRACE_1("getPosASL Vehicle Check", getPosASL _vehicle); -if (!_validVehiclestate) exitwith { false }; +if (!_validVehiclestate) exitWith { false }; -if (count _emptyPos == 0) exitwith { false }; //consider displaying text saying there are no safe places to exit the vehicle +if (count _emptyPos == 0) exitWith { false }; //consider displaying text saying there are no safe places to exit the vehicle -_loaded = _vehicle getvariable [QGVAR(loaded), []]; +_loaded = _vehicle getVariable [QGVAR(loaded), []]; _loaded = _loaded - [_item]; -_vehicle setvariable [QGVAR(loaded), _loaded, true]; +_vehicle setVariable [QGVAR(loaded), _loaded, true]; _space = [_vehicle] call FUNC(getCargoSpaceLeft); _itemSize = [_item] call FUNC(getSizeItem); -_vehicle setvariable [QGVAR(space), (_space + _itemSize), true]; +_vehicle setVariable [QGVAR(space), (_space + _itemSize), true]; detach _item; _item setPosASL (_emptyPos call EFUNC(common,PositiontoASL)); diff --git a/addons/cargo/functions/fnc_validateCargoSpace.sqf b/addons/cargo/functions/fnc_validateCargoSpace.sqf index 6452e850bc..6caf664ca5 100644 --- a/addons/cargo/functions/fnc_validateCargoSpace.sqf +++ b/addons/cargo/functions/fnc_validateCargoSpace.sqf @@ -1,6 +1,6 @@ /* * Author: Glowbal - * Validate the vehicle cargo space + * Validate the vehicle cargo space. * * Arguments: * 0: Object @@ -8,14 +8,19 @@ * Return value: * None * + * Example: + * [object] call ace_cargo_fnc_validateCargoSpace + * * Public: No */ - #include "script_component.hpp" private ["_loaded", "_newLoaded", "_totalSpaceOccupied"]; + params ["_vehicle"]; -_loaded = _vehicle getvariable [QGVAR(loaded), []]; + +_loaded = _vehicle getVariable [QGVAR(loaded), []]; + _newLoaded = []; _totalSpaceOccupied = 0; { @@ -27,6 +32,7 @@ _totalSpaceOccupied = 0; } count _loaded; if (count _loaded != count _newLoaded) then { - _vehicle setvariable [QGVAR(loaded), _newLoaded, true]; + _vehicle setVariable [QGVAR(loaded), _newLoaded, true]; }; -_vehicle setvariable [QGVAR(space), getNumber (configFile >> "CfgVehicles" >> typeof _vehicle >> QGVAR(space)) - _totalSpaceOccupied, true]; + +_vehicle setVariable [QGVAR(space), getNumber (configFile >> "CfgVehicles" >> typeof _vehicle >> QGVAR(space)) - _totalSpaceOccupied, true]; diff --git a/addons/cargo/functions/script_component.hpp b/addons/cargo/functions/script_component.hpp index bd91738fd3..cc6204b83b 100644 --- a/addons/cargo/functions/script_component.hpp +++ b/addons/cargo/functions/script_component.hpp @@ -1 +1 @@ -#include "\z\ace\addons\cargo\script_component.hpp" \ No newline at end of file +#include "\z\ace\addons\cargo\script_component.hpp" diff --git a/addons/cargo/menu.hpp b/addons/cargo/menu.hpp index 6e2bf45a47..bde617b311 100644 --- a/addons/cargo/menu.hpp +++ b/addons/cargo/menu.hpp @@ -4,7 +4,7 @@ class GVAR(menu) { idd = 314614; movingEnable = true; onLoad = QUOTE([_this select 0] call FUNC(onMenuOpen)); - onUnload = QUOTE(uiNamespace setvariable [ARR_2(QUOTE(QGVAR(menuDisplay)),nil)];); + onUnload = QUOTE(uiNamespace setVariable [ARR_2(QUOTE(QGVAR(menuDisplay)),nil)];); class controlsBackground { class HeaderBackground: ACE_gui_backgroundBase{ idc = -1; @@ -19,8 +19,8 @@ class GVAR(menu) { y = "2.1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; h = "14 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; text = "#(argb,8,8,3)color(0,0,0,0.8)"; - colorText[] = {0, 0, 0, "(profilenamespace getvariable ['GUI_BCG_RGB_A',0.9])"}; - colorBackground[] = {0,0,0,"(profilenamespace getvariable ['GUI_BCG_RGB_A',0.9])"}; + colorText[] = {0, 0, 0, "(profilenamespace getVariable ['GUI_BCG_RGB_A',0.9])"}; + colorBackground[] = {0,0,0,"(profilenamespace getVariable ['GUI_BCG_RGB_A',0.9])"}; }; }; @@ -36,7 +36,7 @@ class GVAR(menu) { font = "PuristaMedium"; SizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; colorText[] = {0.95, 0.95, 0.95, 0.75}; - colorBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.69])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])", "(profilenamespace getvariable ['GUI_BCG_RGB_A',0.9])"}; + colorBackground[] = {"(profilenamespace getVariable ['GUI_BCG_RGB_R',0.69])","(profilenamespace getVariable ['GUI_BCG_RGB_G',0.75])","(profilenamespace getVariable ['GUI_BCG_RGB_B',0.5])", "(profilenamespace getVariable ['GUI_BCG_RGB_A',0.9])"}; text = CSTRING(cargoMenu); }; class SubHeader: HeaderName { From 7b89784aae7fc6c10602237a31286ee28d20e8ef Mon Sep 17 00:00:00 2001 From: jonpas Date: Sun, 16 Aug 2015 22:48:52 +0200 Subject: [PATCH 44/57] Removed semi-colons from return statements, command capitalization --- addons/cargo/functions/fnc_canLoad.sqf | 2 +- addons/cargo/functions/fnc_canLoadItemIn.sqf | 6 +++++- addons/cargo/functions/fnc_canUnloadItem.sqf | 3 ++- addons/cargo/functions/fnc_findNearestVehicle.sqf | 2 +- addons/cargo/functions/fnc_getCargoSpaceLeft.sqf | 2 +- addons/cargo/functions/fnc_getSizeItem.sqf | 2 +- addons/cargo/functions/fnc_loadItem.sqf | 4 ++-- addons/cargo/functions/fnc_startLoadIn.sqf | 5 +++-- addons/cargo/functions/fnc_unloadItem.sqf | 8 ++++---- 9 files changed, 20 insertions(+), 14 deletions(-) diff --git a/addons/cargo/functions/fnc_canLoad.sqf b/addons/cargo/functions/fnc_canLoad.sqf index f61c145fdf..da41d93358 100644 --- a/addons/cargo/functions/fnc_canLoad.sqf +++ b/addons/cargo/functions/fnc_canLoad.sqf @@ -29,4 +29,4 @@ if (_nearestVehicle isKindOf "Cargo_Base_F" || isNull _nearestVehicle) then { if (isNull _nearestVehicle) exitWith {false}; -[_object, _nearestVehicle] call FUNC(canLoadItemIn); +[_object, _nearestVehicle] call FUNC(canLoadItemIn) diff --git a/addons/cargo/functions/fnc_canLoadItemIn.sqf b/addons/cargo/functions/fnc_canLoadItemIn.sqf index d3553b91bf..8cfe9e194b 100644 --- a/addons/cargo/functions/fnc_canLoadItemIn.sqf +++ b/addons/cargo/functions/fnc_canLoadItemIn.sqf @@ -22,4 +22,8 @@ if (speed _vehicle > 1 || (((getPos _vehicle) select 2) > 3)) exitWith {false}; private "_itemSize"; _itemSize = ([_item] call FUNC(getSizeItem)); -_itemSize > 0 && {alive _item && alive _vehicle} && {(_item distance _vehicle <= MAX_LOAD_DISTANCE)} && {_itemSize <= ([_vehicle] call FUNC(getCargoSpaceLeft))}; + +(_itemSize > 0) && +{alive _item && alive _vehicle} && +{(_item distance _vehicle <= MAX_LOAD_DISTANCE)} && +{_itemSize <= ([_vehicle] call FUNC(getCargoSpaceLeft))} diff --git a/addons/cargo/functions/fnc_canUnloadItem.sqf b/addons/cargo/functions/fnc_canUnloadItem.sqf index c390092ad1..779a7533a9 100644 --- a/addons/cargo/functions/fnc_canUnloadItem.sqf +++ b/addons/cargo/functions/fnc_canUnloadItem.sqf @@ -40,4 +40,5 @@ if (_vehicle isKindOf "Ship" ) then { }; if (!_validVehiclestate) exitWith {false}; -(count _emptyPos != 0); + +(count _emptyPos != 0) diff --git a/addons/cargo/functions/fnc_findNearestVehicle.sqf b/addons/cargo/functions/fnc_findNearestVehicle.sqf index 3f6b6ae9dc..c0ec154d47 100644 --- a/addons/cargo/functions/fnc_findNearestVehicle.sqf +++ b/addons/cargo/functions/fnc_findNearestVehicle.sqf @@ -34,4 +34,4 @@ if (_unit distance _loadShip <= MAX_LOAD_DISTANCE) exitWith {_loadShip}; _loadContainer = nearestObject [_unit,"Cargo_base_F"]; if (_unit distance _loadContainer <= MAX_LOAD_DISTANCE) exitWith {_loadContainer}; -objNull; +objNull diff --git a/addons/cargo/functions/fnc_getCargoSpaceLeft.sqf b/addons/cargo/functions/fnc_getCargoSpaceLeft.sqf index 2f8d32201d..cae27a2d58 100644 --- a/addons/cargo/functions/fnc_getCargoSpaceLeft.sqf +++ b/addons/cargo/functions/fnc_getCargoSpaceLeft.sqf @@ -17,4 +17,4 @@ params ["_object"]; -_object getVariable [QGVAR(space), getNumber (configFile >> "CfgVehicles" >> typeof _object >> QGVAR(space))]; +_object getVariable [QGVAR(space), getNumber (configFile >> "CfgVehicles" >> typeof _object >> QGVAR(space))] diff --git a/addons/cargo/functions/fnc_getSizeItem.sqf b/addons/cargo/functions/fnc_getSizeItem.sqf index 0ee4e0aafd..a3556c8a25 100644 --- a/addons/cargo/functions/fnc_getSizeItem.sqf +++ b/addons/cargo/functions/fnc_getSizeItem.sqf @@ -22,7 +22,7 @@ params ["_item"]; _config = (configFile >> "CfgVehicles" >> typeof _item >> QGVAR(size)); if (isNumber (_config)) exitWith { - _item getVariable [QGVAR(size), getNumber (_config)]; + _item getVariable [QGVAR(size), getNumber (_config)] }; -1 diff --git a/addons/cargo/functions/fnc_loadItem.sqf b/addons/cargo/functions/fnc_loadItem.sqf index 52ec517889..f8816f3b8f 100644 --- a/addons/cargo/functions/fnc_loadItem.sqf +++ b/addons/cargo/functions/fnc_loadItem.sqf @@ -7,7 +7,7 @@ * 1: Vehicle * * Return value: - * None + * Object loaded * * Example: * [object, vehicle] call ace_cargo_fnc_loadItem @@ -34,4 +34,4 @@ detach _item; _item attachTo [_vehicle,[0,0,100]]; ["cargo_hideItem", [_item, true]] call EFUNC(common,serverEvent); -true; +true diff --git a/addons/cargo/functions/fnc_startLoadIn.sqf b/addons/cargo/functions/fnc_startLoadIn.sqf index 31b63f1d6c..b4ba50fbb6 100644 --- a/addons/cargo/functions/fnc_startLoadIn.sqf +++ b/addons/cargo/functions/fnc_startLoadIn.sqf @@ -6,7 +6,7 @@ * 0: Object * * Return value: - * None + * Object loaded * * Example: * [object] call ace_cargo_fnc_starLoadIn @@ -27,4 +27,5 @@ if (isNull _nearestVehicle || _nearestVehicle isKindOf "Cargo_Base_F") then { }; if (isNull _nearestVehicle) exitWith {false}; -[_object, _nearestVehicle] call FUNC(loadItem); + +[_object, _nearestVehicle] call FUNC(loadItem) diff --git a/addons/cargo/functions/fnc_unloadItem.sqf b/addons/cargo/functions/fnc_unloadItem.sqf index 705ba37e85..f6d70591df 100644 --- a/addons/cargo/functions/fnc_unloadItem.sqf +++ b/addons/cargo/functions/fnc_unloadItem.sqf @@ -7,7 +7,7 @@ * 1: Vehicle * * Return value: - * None + * Object unloaded * * Example: * [object, vehicle] call ace_cargo_fnc_unloadItem @@ -44,9 +44,9 @@ if (_vehicle isKindOf "Ship" ) then { }; TRACE_1("getPosASL Vehicle Check", getPosASL _vehicle); -if (!_validVehiclestate) exitWith { false }; +if (!_validVehiclestate) exitWith {false}; -if (count _emptyPos == 0) exitWith { false }; //consider displaying text saying there are no safe places to exit the vehicle +if (count _emptyPos == 0) exitWith {false}; //consider displaying text saying there are no safe places to exit the vehicle _loaded = _vehicle getVariable [QGVAR(loaded), []]; _loaded = _loaded - [_item]; @@ -62,4 +62,4 @@ _item setPosASL (_emptyPos call EFUNC(common,PositiontoASL)); // TOOO maybe drag/carry the unloaded item? -true; +true From dcf074ed5a04a31cd738c0dc3b3868154aad5e7c Mon Sep 17 00:00:00 2001 From: jonpas Date: Sun, 16 Aug 2015 23:05:26 +0200 Subject: [PATCH 45/57] Changed Optional parameter comment to default value --- .../repair/functions/fnc_canReplaceTrack.sqf | 22 +++++++++---------- .../repair/functions/fnc_canReplaceWheel.sqf | 4 ++-- addons/repair/functions/fnc_isEngineer.sqf | 2 +- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/addons/repair/functions/fnc_canReplaceTrack.sqf b/addons/repair/functions/fnc_canReplaceTrack.sqf index 437c9ab5e4..94a62a5289 100644 --- a/addons/repair/functions/fnc_canReplaceTrack.sqf +++ b/addons/repair/functions/fnc_canReplaceTrack.sqf @@ -6,37 +6,37 @@ * 0: Unit that does the repairing * 1: Vehicle to repair * 2: Selected hitpoint - * 3: Track (Optional) + * 3: Track / (default: false) * * Return Value: * None * * Example: - * [unit, vehicle, "hipoint"] call ace_repair_fnc_canReplaceTrack + * [unit, vehicle, "hitpoint"] call ace_repair_fnc_canReplaceTrack * * Public: No */ #include "script_component.hpp" -params ["_unit", "_target", "_hitPoint", ["_wheel",false]]; -TRACE_4("params",_unit,_target,_hitPoint,_wheel); -// TODO [_unit, _wheel] call EFUNC(common,claim); on start of action +params ["_unit", "_target", "_hitPoint", ["_track", false]]; +TRACE_4("params",_unit,_target,_hitPoint,_track); +// TODO [_unit, _track] call EFUNC(common,claim); on start of action -if (typeName _wheel == "OBJECT") then { +if (typeName _track == "OBJECT") then { // not near interpret as objNull - if !(_wheel in nearestObjects [_unit, ["ACE_Track"], 5]) then { - _wheel = objNull; + if !(_track in nearestObjects [_unit, ["ACE_Track"], 5]) then { + _track = objNull; }; } else { - _wheel = objNull; + _track = objNull; { if ([_unit, _x, ["isNotDragging", "isNotCarrying"]] call EFUNC(common,canInteractWith)) exitWith { - _wheel = _x; + _track = _x; }; } forEach nearestObjects [_unit, ["ACE_Track"], 5]; }; -if (isNull _wheel) exitWith {false}; +if (isNull _track) exitWith {false}; alive _target && {_target getHitPointDamage _hitPoint >= 1} diff --git a/addons/repair/functions/fnc_canReplaceWheel.sqf b/addons/repair/functions/fnc_canReplaceWheel.sqf index 90984ff022..9497504370 100644 --- a/addons/repair/functions/fnc_canReplaceWheel.sqf +++ b/addons/repair/functions/fnc_canReplaceWheel.sqf @@ -6,7 +6,7 @@ * 0: Unit that does the repairing * 1: Vehicle to repair * 2: Selected hitpoint - * 3: Wheel (Optional) + * 3: Wheel / (default: false) * * Return Value: * None @@ -18,7 +18,7 @@ */ #include "script_component.hpp" -params ["_unit", "_target", "_hitPoint", ["_wheel",false]]; +params ["_unit", "_target", "_hitPoint", ["_wheel", false]]; TRACE_4("params",_unit,_target,_hitPoint,_wheel); // TODO [_unit, _wheel] call EFUNC(common,claim); on start of action //if !([_unit, _target, _hitpoint, "ReplaceWheel"] call FUNC(canRepair)) exitwith {false}; diff --git a/addons/repair/functions/fnc_isEngineer.sqf b/addons/repair/functions/fnc_isEngineer.sqf index 453ba5b229..9d6af3a1ff 100644 --- a/addons/repair/functions/fnc_isEngineer.sqf +++ b/addons/repair/functions/fnc_isEngineer.sqf @@ -4,7 +4,7 @@ * * Arguments: * 0: Unit - * 1: Class (Optional) + * 1: Class (default: 1) * * Return Value: * Is Engineer Class From e56ba38cee80322dd9bb6ba0df70744348672609 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Sun, 16 Aug 2015 23:55:58 +0100 Subject: [PATCH 46/57] Update spectator doc with new information --- documentation/feature/spectator.md | 184 ++++++++++++++++++----------- 1 file changed, 114 insertions(+), 70 deletions(-) diff --git a/documentation/feature/spectator.md b/documentation/feature/spectator.md index 438d731c3e..ebed68b941 100644 --- a/documentation/feature/spectator.md +++ b/documentation/feature/spectator.md @@ -18,22 +18,58 @@ The ACE3 spectator system is designed to act as a flexible and easy to configure ### 1.1 Spectator System -The current iteration of the ACE3 spectator system only officially supports scenarios using [respawn type](https://community.bistudio.com/wiki/Arma_3_Respawn#Respawn_Types) 3 (or "BASE"). However there's nothing to stop its use alongside anything else, just be aware that it might not function entirely as expected. +By default, the ACE3 spectator system does nothing - meaning existing missions will behave exactly as before. There are two tools available to enable the spectator system in your missions: +- An `"ace_spectator"` [respawn template](https://community.bistudio.com/wiki/Arma_3_Respawn) +- Public functions `ace_spectator_fnc_setSpectator` and `ace_spectator_fnc_stageSpectator` -By default, the ACE3 spectator system does nothing - meaning existing missions will behave exactly as before. The setting `ace_spectator_onDeath` can be used to automatically put players into spectator mode each time they die. +With respawn template `"ace_spectator"` in effect players will enter spectator mode upon death and exit upon respawn. The template is compatible with all respawn types and allows you to take advantage of the vanilla framework's flexibility (combining templates, side specific templates, etc.). This makes for very simple combination of a wide variety of spectator and respawn setups. -For mission makers who seek a more advanced setup (such as multiple lives or wave respawning) the function `ace_spectator_fnc_setSpectator` is provided to transition players to/from spectator mode as desired: +An example description.ext file using the respawn template: ``` - * Arguments: - * 0: Unit to put into spectator state - * 1: New spectator state - * - * Return Value: - * None - * - * Example: - * [player, true] call ace_spectator_fnc_setSpectator +respawn = 3; +respawnDelay = 180; +respawnTemplates[] = {"ace_spectator"}; +respawnTemplatesWest[] = {"ace_spectator","Counter","Wave"}; +``` + +For groups using custom respawn frameworks - or for missions where you want finer control over who, how and when players enter spectator - the two following functions are provided: + +`ace_spectator_fnc_setSpectator` +``` +* Sets local client to the given spectator state (virtually) +* To physically handle a spectator see ace_spectator_fnc_stageSpectator +* +* Client will be able to communicate in ACRE/TFAR as appropriate +* The spectator interface will be opened/closed +* +* Arguments: +* 0: Spectator state of local client (default: true) +* +* Return Value: +* None +* +* Example: +* [true] call ace_spectator_fnc_setSpectator +``` + +`ace_spectator_fnc_stageSpectator` +``` +* Sets target unit to the given spectator state (physically) +* To virtually handle a spectator see ace_spectator_fnc_setSpectator +* +* Units will be gathered at marker ace_spectator_respawn (or [0,0,0] by default) +* Upon unstage, units will be moved to the position they were in upon staging +* +* Arguments: +* 0: Unit to put into spectator stage (default: player) +* 1: Spectator stage (default: true) +* +* Return Value: +* None +* +* Example: +* [player, false] call ace_spectator_fnc_stageSpectator ``` ### 1.2 Spectatable Units @@ -43,10 +79,11 @@ Spectatable units are stored in an automatically maintained list (`ace_spectator - Unit filter - Unit whitelist/blacklist -The unit filter determines which units will automatically be used to populate the spectatable unit list. It's controlled by setting `ace_spectator_filterUnits` and there are three possible options: +The unit filter determines which units will automatically be used to populate the spectatable unit list. It's controlled by setting `ace_spectator_filterUnits` and there are four possible options: - **No units** -- **Player units** *(default)* +- **Player units** +- **Playable units** *(default)* - **All units** In cases where more specific control is required function `ace_spectator_fnc_updateUnits` can be used to whitelist units from the filter or blacklist them from the list (on the local client): @@ -209,30 +246,30 @@ Shortcuts are currently hardcoded in the ACE3 spectator system. Future versions - - H - Toggle help - - - M - Toggle map - 1 Toggle unit list 2 - Toggle toolbar + Toggle help 3 - Toggle compass + Toggle toolbar 4 + Toggle compass + + + 5 Toggle unit icons + + M + Toggle map + Backspace Toggle interface @@ -274,59 +311,26 @@ Shortcuts are currently hardcoded in the ACE3 spectator system. Future versions Z Camera down + + RMB + Pan camera + LMB - Camera dolly + Dolly camera - RMB - Camera pan and tilt + ⇧ Shift + Speed boost - Scrollwheel - Zoom +/- - - - Ctrl+Scrollwheel - Speed +/- - - - N - Next vision mode - - - Ctrl+N - Previous vision mode + F + Focus on unit -#### 2.1.3 Unit Camera Shortcuts - - - - - - - - - - - - - - - - - - - - - - -
ShortcutAction
Right arrowNext unit
Left arrowPrevious unit
RMBToggle gun camera
- -#### 2.1.4 General shortcuts +#### 2.1.3 Camera Attribute Shortcuts @@ -344,6 +348,46 @@ Shortcuts are currently hardcoded in the ACE3 spectator system. Future versions + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Down arrow Previous camera
Right arrowNext unit
Left arrowPrevious unit
NNext vision mode
Ctrl+NPrevious vision mode
ScrollwheelAdjust zoom
Ctrl+ScrollwheelAdjust speed
Num-/Num+Increment zoom
Ctrl+Num-/Num+Increment speed
Alt+Num-Reset zoom
Alt+Num+Reset speed
@@ -361,14 +405,14 @@ The toolbar along the bottom of the screen displays various useful values. From - Unit name - Camera mode -- Camera zoom/Unit side +- Vision mode/Unit side - 24-hour Clock -- Vision mode/Unit depth +- Camera zoom/Unit depth - Camera/Unit speed #### 2.2.3 Map -The map overlay will show the current position of the free camera and all spectatable units. The unit icons are tied into the unit icon toggle shortcut. When spectating a unit the map will also show the icons of units it knows about. In free camera you can double click on the map to teleport the camera to the position of the mouse. +The map overlay will show the current position of the free camera and all spectatable units. In free camera you can alt-click on the map to teleport the camera to the position of the cursor. ## 3. Dependencies From 360230984bf5ee3abfb9cdc315058099d2ec299f Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Mon, 17 Aug 2015 13:27:41 +0100 Subject: [PATCH 47/57] Fix spectator documentation typo --- documentation/feature/spectator.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/documentation/feature/spectator.md b/documentation/feature/spectator.md index ebed68b941..fda2f1833a 100644 --- a/documentation/feature/spectator.md +++ b/documentation/feature/spectator.md @@ -203,7 +203,7 @@ The spectator camera has 8 manipulatable attributes: - **Camera zoom:** The zoom level of the free camera - **Camera speed:** The movement speed of the free camera -Function `ace_spectator_fnc_setCameraAttributes` can be used to change any of these attributes at ay point (including before spectator has ever opened): +Function `ace_spectator_fnc_setCameraAttributes` can be used to change any of these attributes at any point (including before spectator has ever opened): ``` * Arguments: From 42bd8751aa8b1937e5fd4b7df187c302209fe708 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Mon, 17 Aug 2015 13:50:41 +0100 Subject: [PATCH 48/57] Fix spectator documentation formatting --- documentation/feature/spectator.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/documentation/feature/spectator.md b/documentation/feature/spectator.md index fda2f1833a..08919c369d 100644 --- a/documentation/feature/spectator.md +++ b/documentation/feature/spectator.md @@ -19,6 +19,7 @@ The ACE3 spectator system is designed to act as a flexible and easy to configure ### 1.1 Spectator System By default, the ACE3 spectator system does nothing - meaning existing missions will behave exactly as before. There are two tools available to enable the spectator system in your missions: + - An `"ace_spectator"` [respawn template](https://community.bistudio.com/wiki/Arma_3_Respawn) - Public functions `ace_spectator_fnc_setSpectator` and `ace_spectator_fnc_stageSpectator` @@ -36,6 +37,7 @@ respawnTemplatesWest[] = {"ace_spectator","Counter","Wave"}; For groups using custom respawn frameworks - or for missions where you want finer control over who, how and when players enter spectator - the two following functions are provided: `ace_spectator_fnc_setSpectator` + ``` * Sets local client to the given spectator state (virtually) * To physically handle a spectator see ace_spectator_fnc_stageSpectator @@ -54,6 +56,7 @@ For groups using custom respawn frameworks - or for missions where you want fine ``` `ace_spectator_fnc_stageSpectator` + ``` * Sets target unit to the given spectator state (physically) * To virtually handle a spectator see ace_spectator_fnc_setSpectator From e14c640c6f3e8556cff74ba15df054c93ba862f6 Mon Sep 17 00:00:00 2001 From: jokoho48 Date: Mon, 17 Aug 2015 16:11:23 +0200 Subject: [PATCH 49/57] Fix Some LandContactPoints Fix Positions of some Model --- addons/medical/data/QuikClot.p3d | Bin 9548 -> 9548 bytes addons/medical/data/atropine.p3d | Bin 10214 -> 10214 bytes addons/medical/data/bandage.p3d | Bin 31328 -> 31328 bytes addons/medical/data/bodybagItem.p3d | Bin 14032 -> 14116 bytes addons/medical/data/epinephrine.p3d | Bin 10359 -> 10359 bytes .../medical/data/littergeneric_Quikclot.p3d | Bin 19052 -> 18983 bytes .../medical/data/littergeneric_atropine.p3d | Bin 17647 -> 17876 bytes .../data/littergeneric_epinephrine.p3d | Bin 17757 -> 17982 bytes addons/medical/data/littergeneric_gloves.p3d | Bin 42684 -> 56245 bytes .../medical/data/littergeneric_morphine.p3d | Bin 17758 -> 18187 bytes .../data/littergeneric_packingbandage.p3d | Bin 22933 -> 23343 bytes addons/medical/data/morphine.p3d | Bin 10364 -> 10364 bytes addons/medical/data/packingbandage.p3d | Bin 18889 -> 18708 bytes .../data/ace_tacticalladder_pack.p3d | Bin 279423 -> 278163 bytes 14 files changed, 0 insertions(+), 0 deletions(-) diff --git a/addons/medical/data/QuikClot.p3d b/addons/medical/data/QuikClot.p3d index 85ec2e9923d59ba737b21c421a628a4bc287208d..9fe747cb54f248d8f4716c386c396bdf95b757e5 100644 GIT binary patch delta 737 zcmX@(b;fIgPW?01>3gSMUTnhv1fC}x_a@z)1m|DX47JUyX|7(%z3z5WX?Diftf+mu(eP{&#^~ z{odCbJ>UY#d*f`Z7#Hp-*~o4Sa*()>$sV&w3*h`D_Y51&z;c^nsJzMx=RK-ZOW}N& zd`Al_*a1Kbz~(E6^n&>?2f+ADcj_T7R)Z=?1zK?9<;7hN$3Iwu9H0cW;Ks@OaDF&T zkS!?01U}3L8wd+A7#|j5Tu^yfh{5=<5bI;<0PFu)&-mZ+EnllGpU(`40F>X6F#*gE zk-BD+>e_1iX<;`CKWASvm>(?`Wy5aJWXqA+j>2c*t_SniN*M3!$Pn81II(j7|M{YJ zkLr2$F`uj2uU-(er_Ru5-((FYli2h-`gnC!_BNAQ!}Gi>6N=h&1%4p4d=t; zdsgX!9R#!hZ2r7P4lp0)02rU?PCdlMv!M!7ffgh@l(Ihd$pEZD31~sWM`1WWoF&K> z6k^MS8Nu?f5QFhyA+{1K4+}9E9~NTioZMjjAL|+aTh7<*wO#&{2_gXHXI*Cl^FySr z*@&m~+HSStMB!KH@Phf#Vo^3b{km+m!XXC2_-{S~ESh@fId{Mhc z^*sBS&sFW$CL|C}^*NLG z_PndHSKH>bFFa|M)xXI*nbZZZR~_H`qV~=N ze>L{DXE*FU641K$Vtt*x`#x2>TxYwz>Jc^e9)59q?>)b{N57+fzm!a(ZQp{Adr}+f p_jd)i?hSO>vuAN~{eI!HL$=9{`ujF=R_~vxb1d_FMF8AQAi@9u diff --git a/addons/medical/data/atropine.p3d b/addons/medical/data/atropine.p3d index 2b3ea52e616dc3370064d8d434037705e82f1c0c..fa9fb72c84a5298edadb7e4a94c97941408c94b7 100644 GIT binary patch delta 1965 zcmX|=eNa?Y7>6$-s3@kPsWi&klo*N$vg^lgoU4MlV;~BNI;JEWUn-boy6VKml>mhp z1WjgAX55A>*MJceSlD~gm8=A8HB9+fM-vE~RPZZtgnsAjrTu50=RLpkzVE#|+Zovz zng6!b=r!qGhp{juvZJxQ8kY2RB^Nn7@yjB?#&CRCM*(Q_%}7gM$(s z=cgBwQXT5oj;rWwaM5;$y7!ohb{yU<9ucxMfo%rT0*-gf()5AdWBr_@C_$(0C`k~X zPj`|$a2Ghp&nf@z)>zpB{&Tuh-Z{`v*$YM^I(+oc6+x~>blgCF#RKpwetO#KomDvr zg9E@1zM_AAsOO=BMaP}&=OyP~$#s6onVZrEjvo#-m8ApK+ zfbU^H-&V7=4SPHRtH5l(KI}KO#cXW_;~6-!I_}c&7PG%~kE;n<>spiVGb0&k4o z0t;BY@S*$U!cT^~7kG?RzN8E-A>z73nzpZA-lrp^e{CYoFxAUzz|X)%U_CO6k&%!| z(Gqz+_yjlt%YpYGr>PYJ4Kaqad&_nKmM~Sua58w{4 zCs?C5&1IR<$gGI>7VY5cCp`$`i{NWuXM~Ad1dqci(KkGn ziFN9mwt{oM^yI3A!I!|Xd1+KM?iM#8zvY5~WCR$+3#jK7#u3TONiO2M_<&^C>*v=2yx4nrZf@jS5B}RPN-XteL-U3%8 XC(&5&RfN!pZU!$zqlynl9#s7Ya|vAT delta 1956 zcmY+De@s(X9K|1rqQ*v)F_c88+XPW`nh0#6^*(11iN7ElYPZRNR#1`QG%P|QKByoC zGc|xgHjJ)r>g-f9aMeQJOWI+`f+$Y5*+OwdREQvmLS&=t+)JOa{Pj8Cd+zz3%S#_6 zJW4nbE@T``Rk!6?#>cqtpK@)UR?jHsx=ofOR$DqaRL-TGO# zmky{(W`VN5rs{;(f*U18Oy9bAOg*dMxU!Y7#`8aahw0vTAA0Fob=%nsW&fV4<4nteahAhO52Y2UGY#>t z7p@sjX8OAqH7xH%{=X`E9vz?+*q~Coh7DYSPrdZ)8yXfUUob0=GA#!Ng%&WK=@ity zIi;@`W~FPGKG1!M(0qhxIWYE@GZN%3rZPzG&cxbKZ>Z#0= z`oUVCk|+nbC*{WszB)q{IW^2BJ_a8LkA=EK2e{GaR{i^7E;0nxx?AeoLtSJgE>E9% zvkpQ0Gw^J8Qyqf%x3SpiUsCTE7S9i1@iXu;aQT!K!tjJ3ZRjvs=%=2*SuNNfrQG1F z;5lIGS?}?bA~&(qXt|4m#o&*@e}FsCBgAR640!r20KWn|F%NbaEzi-9_NI(EDa754 z4&!2anLjuw7>{Fd7fb;t$e}o8l;A6N_(ljkt(jlgB=Vo`lnP^rSgdan$22=7K}E!B z@F;i-xB#9t@WjD$5gZLZ5JQLn{s^4-2E#)xdp!HWK1#dQ51xD1+leZ~ZjA+xncK;c z5W#MZgXo7yhG`b~Z>o}rjNV~&o&PSAyWX`wrNdbB}5{`cAZHq11Es9!M@-^a5Fr6 zgYDKVu*TdjI`IMp`0@32u@I$afCs>@;Moga4Nt}3lzA0j`Nj*1#eq`mmIT&dCf^`F z1fOr|6K8n%0{BhOy$e%`9iGkU{?Z+=4V(yGvVIzW7u>Z;FGhIS37!w`#Jp{jo=|py zZ-Y9~c9qFHc*ueoClB1QE$J1v&+sy`&7Snr2IMh$8AjWe zUsUXsfa>p7s4DK4?9sC|Vt2M*(d=*gakgXIZJx8 Nh0#=&&AXLEMF6_s5%d56 delta 26 icmZ3IcOiFz&SoR!Crq0Kn6soeKQMA++03sjDgpqMhY4K( diff --git a/addons/medical/data/epinephrine.p3d b/addons/medical/data/epinephrine.p3d index 47149c4eca50e2663a1ad38c9d0e2187f7928158..45f0aee1f78b54d26e04d9ad557603543574dae9 100644 GIT binary patch delta 1962 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 XU506y-^9<6gG#cJ_@)f?wr+?^UM0I)C-6 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 E0S~$}d;kCd literal 19052 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%0A5IM)&R@+bTWK zSLiS{G_WPs%24Du<{~y59z>URm(ml$7GOVi9U6bC0WbF~myNoz4vpyBO3dOMXfzO* J!+c!l`Y)~6^v3`I diff --git a/addons/medical/data/littergeneric_gloves.p3d b/addons/medical/data/littergeneric_gloves.p3d index abc55ebcc9e583edf8e8601561964b6119c4032a..ca920176882f8cfdbe803b7b136d1a92694b1f59 100644 GIT binary patch delta 4181 zcmZ`*2~<>95~TrI1QAgXMWk68m3eh1||;yvn5Ka!w2eh zq(ss*Y)vhBB9RffvC?AVph8`OiKK~?89S0zW2yO`4Rdrh1#gLq$&iHXTa$FsLgS{R zb#Iy|Z~pW|QGZdnQ%m&`o*#+&-m>0W)Yr;PMLj0$xt3;ZG*%u#Hd%O(pDk?F%`XRuM%;JiqLJn>-|*(G8ve6r zO?ZRn(qk9~PR167pVQ6bw74!`?yI1|>AK3Y2wo2{M3z8QQ2Fap*XrSxiJ%Q^vd`=*pLRKQS)n@3(M+Fq+6Jtb6;9@Va}f1?K5$`Ojx z?c+GQx-S8~LuGiK!_9Xof{?yhu;xYzX zcl{!FB=?k}8iUPFH*PG9S{42ld5Tt5VC(49yG>i0?G(*uGp$0)sUx#fxmT!UtyY95 zWI72gh%<*hfSgmbi_3fVkZ9YvFK46-NhZPivJB|7tw<1o5JKd4jn-oqLIR z!<%FB+Fz~;ZHTp@dj;*dV(t&bvp28cUe@2|enZ@uvQc<40ysJoPx_za4qa5|aQ9Im z&nme``SXPzv82g0W)YTE=Y*?WY8ZaUIbvMro<@7LNuPR6_)tlEt}jg9+31FqD4(HI zIR4|cP>-BNk$oae(8$^c9cmHS z2j3nGS_IX1N_f_jO~eju&Bzd^B}5r$DlAr&YfXloyVw%O3S&Lv+$rXbqk$M#VB`@nO#(8H=^QSBOw9~-!@725w zV(Jm1&4AX^4|p@g{Ybl~M%E7zeVcDK1ALSZczeYCQPw2Rgo^dg44!272#t*8WIe?g z)Y6~U)fOfCaU$4tR`3)LKuM@ffK&ZCdD^{3BDBz(OWwB z;fM#JoQ_e!?fO>+4sy>|BV*ZFPca&`^mjvlx*vr;5}s;mc*;+^S8+iOW_w$Ccf^BH zq}j1h>DEN^Aj|DcT^(`l#fc#38vAdaj^PlLPc{UB?n;}1gXlvHU11~8jC*>E5xcGZ z#YsVnf0f2V)&JsoYB>~TPoxTL`@V{#ahy<&*zlnL+)=CxQ!Abx3Hr4^6EXn`5ANp0 zYLKxp8kq;K(iu8utO9ArLY`KfR&n#K7|1IrGI)~LF~zPur<=`5WFa-N8ksmF=)Y~- z95Cv?hi4}nUl|!Dnaz=%l=sudTCzEdyTcrNM;D{vpYBunK2MgD&AZ!@o@`T~wWB?S z=0NCLk;~KiOHtMe-jKUGou~D8McI7G3rhEY#ZyeX{8H}=HS%xBq0tLu>M|YXrN~UDP_rNi^sl3MI*lI0Dq&fuh)@fuje>&HalI_ryv2PH9eT2TXJ?d| z`akF5Q4+nsEWBkHvt(U1Jae7~euzC$cJz&d7q@c27x4&`YbA3aW9w2fz%9?8>OFnv zzd$2V&W};Sls_`SAMq%ZDL3N4s%$Rxk+D9EjUg_{O%Xe$r0iZO0qb)>J~$l05PPG% znivnm>!N{;$g-0Q0ondO=s+bl`3uln217Jrx}9vFCGbniKnO%kx9jS=5ET6##5CE! z0r;M#YG?ZmC?^j#aFC)5!&SgWV7j5QCUDc2jgDtUqZ9G-d>OxKQIy2Qm_+V0RL9)cFFr9B z9EltxD_TP8@MA=-pp-zakSkU!ak(8PlWNvv(hk&d&Ec%U;vP=G|>69`Dd7 zj7UW~O937wJ`jhPo|Uw;FqoJ(3Y3WH#3U^ZhBYg_fc7AUOkcmupFQ|&J$iR&IsF7E zS-S{ij73pdN5K<64k)Hs*v}6EuTgSfJ5RnGnjOkIvD*;SM3U%^AShAz8AwU4W{Lg8 zsQ7q^`zI;M=?mPAn);v(KBT2sMO-#XN#^D;#CA(Oxw1t?TDGbPlsJ-o+fNYnj$E>} zR7z5Js!0AWDfxA`isY23NPIckRHz1b--g}e**%svd-s!H_vYG5++*j@O3a9xGcTQf M0E~?GProtg|3r@1k^lez delta 369 zcmdnGoq5k$CQe@;e-}nZ1_s8BoE#JDgHv--lS@)llo{MXV)O>}^tKSqzHl@?wYZ!4 ICx(dt0JldCa{vGU diff --git a/addons/medical/data/littergeneric_morphine.p3d b/addons/medical/data/littergeneric_morphine.p3d index 754bce29a49c91e050f454f14be0601b468c378d..906280227c323b115683f7e423e9e3dc306e8b8e 100644 GIT binary patch delta 3881 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 delta 3471 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 delta 20 bcmZ3#jdAK`MowQJe-}nZ1_s8BoIQ~MLgEF7 diff --git a/addons/medical/data/morphine.p3d b/addons/medical/data/morphine.p3d index 8657b87c8a034184aec3e3aa7ad53c0a0cda133e..3328630ac99c7c2d15c9b0680f91ccf36c5399e6 100644 GIT binary patch delta 1968 zcmYk5dr(wm7>AGC#6&>^!!(vkRuaq0uAy%}YA_kP zj(?O+ikiTVmvDuhUH5zip^g;^$|wlfsN~FgD=(udYQOK>!;Jj(Jn#EE@B5zJrDs;p ztnwI{=yKyPC}jyYokH)KGF!KXyUQ*w1@UKJp z8!~5KL9eq<;JamU2}fs_^1dhhEf@1enYkj{FNC}*;DyvHJ^YOui?&T>fl-r2a~EBm zd_b(~IceiW)}OEDhyO5?I~&O6v4y!|lM{Bjzv4c)?U|GL*6IxI+l_Nw%#G^>nHPLA zd=0EnDW&j*iDz5+fGX8r=EaDtKV`kZ^Y!aOx%Uoa3;mszgn2V9ynpbW1}F1l!xwT- zFB$J*ZeQ)gJu%K`U>>~zmLlsO=py!M=qPYp!vo!;y&8IRw^@qyJk^UGCejWba`&nJK3G_+ z?II^yMSb_-T&WMZ2K+ZTR@5spJ8sx@-a&Lk*$uk~ z9HdRANqf)RhhcFnI2+6sTZ8;YSoa6`S%>=t%2RIrd9wOyh4bMnnGV8rdpjzeuMi4V z`6ZZre>OGKf=f>!^EDP+1lNMg!2d>fk<-Yu`?e37!fzf@N?rxHmHiJYCInI$D(h;DMS3cTZibG7UT>vcY{1jEqco zK&~ScgvN4&MrPZT5b*S4+sTzIo3b7pe{?&!2{wa6!5<^T^5c-1w=;SITlQ$;RdTF6 zdcsCT*F$hy=| zsT?ze2LA3LAA-w>OYv2?9L#SxO!I_;h}~iIj{kkbXgZk2Q;w1a*-c zcy>)$t~9;7gPhRIZSHIHbEMLsE~NvF)!v3;!vm~tEHKl{s4wvjqSdIEVo*$QGQEv@ z9gfiW&!9h{z6(c~GYwMCKBuCu2;=`s3&9smD`;)rQt5N>?J=K`2c1oXWk#M$m7c!W f*`#DZw2->IrIc|yLSJSYXcjmQgHEOgMn(M(L;^Gt delta 1983 zcmY+Cdr(wW9LMhv4>8O_bbO59R3fibW)~m3%ef(wP)brFX)?&mRm8~0=!mZio7$q2 zP?$5BG|h&|Lnsqg+I8=7Ad}L;=b9k9jv|gwY63EvAbro_UPt$@&-Zt}=llEKd$&Ka zKe0GOGWL5I&dYnE{eK&05b*opNVA^lsZ$qn?Rn)*t`k$zxvn_xYh&lPzn}er-q_ru zXZKbAp^wVAR`WWKo#gt=S|3Aw#d61cYqzlbl2Ey21|I|{1@;f#)iHy)sgN&tIy}YB z^xuybyr4G+p5}q7zqx);#|r$REXZG)HgtYLG)zd{?oc1FFLngi?$iS0NrKRx?$R+s z;iA2K!GAw(voqc5mBjT$MQ3_a9;o`wcdUHj4J9xwG?t&AgKj7{I_~iWg0LS2m{uQ< z`I%nD{MavioaWN8L7x&B^7A%3(+$ePCn&&ln^GuC@$Xa$>orFG^H0e1^PhA~uGVlM zXXdj{JU+~u>y#^b2DV?Ab@+jf85TB~`4itMOR_WF7BKY6Rc*fA#Gg?0ce{MJ9;XD3 zK5gXM9UE>i2F!l8aL#&xYtJL=cz(|lLC?-Di8~}dSXHXAv%$^r^Ip)V*7H2@o^oOD zx8YpJD1mR+7jV65>FWkBTfwu1m;ZdIXL?Ls4$qT2hjIP*!O*^5(k;ghZ#~D?z`-8Lwc){T zav%K7lSQ>xCcB9Sm#uZq+KzpBA`3GA;;coG$QBp>RbGq5B3oPmjsUaIi-ILZ-l0+t zidJ2-*p_rfX$ANXwpnbiq1;pWRaQNz=I=DSkpC+@7g5vZEcuH0k(N~+vM)1{)D&h~$ z1K$Ei!s7>?4^QumYh*6CEGe{ZG{=W{W%Po$>~hW^d>|_+NNf=sWO~tnm&i z$?+bGKf`E={cBl+pTjyGwt4ttRx zcrIo6({zO|gKOXQ5vOCGn_!abz>(ljz~x{)I4i*cP6grG{ykt14B;yUIbBjd#{QKANOln|pV0d#q(P2QNUqvtYn zX&RUn>eNq5BFiAG*(>Rkreu+sdR@(OFgOF;=V~S{cv8T}vsa3<5R?wykggMtr3{-i F>3>&wOyU3l diff --git a/addons/medical/data/packingbandage.p3d b/addons/medical/data/packingbandage.p3d index 002c68ed136621db3608fef744c0dcbbc03cd047..0e083c4766afd6e562cbbe2f89383e2f942190c1 100644 GIT binary patch delta 14 WcmX>(nQ_V_#tjGTHkaCmZ~*`@o(1>- delta 195 rcmbO-iSguQ#tjGT>Vs2rQj<$kQD6vprDoppEA+DS}=3Whc?Ld4Bj0{7k-#AF{7g`l;kbje0R)&;R$0u`ez zD6(wKyJ{HWgZ9*mVj#pm2E8pkdRqoHSs33)6A>Y zc!Jm618wXy>yK*cds^DNPBH`v_gh{*X-zsW zT(NhvC{*i&-2z_C6vZsqTz17P@DuPUupj&syu9d&tJ$)D1>69hM}B6(6=CoK_#rrP zkRMrc#rUnFm`45q_!sijvj?71wm2!~u(^QEFiccP%)6rTpivS$gTc>`ubp#64*VQ! zfGv2Iz;sI=L}B^I?6>_Rl7sOf*tR}qn`;?KOrC<1wVm~h1Tyk`bG+pDwrB;A+Bk`{ z-MN;R0k9vseI;!-)+|b5@_g7HwO8vFC3yo(O}x`OqCqgpx$nh#qaURKCKVogvEk5` ztO8fkzV&xZH@75l6;r7yUq`eWOtMad#CzwBJOU;;4IvTxvMEF0qflWbF4jt$k~qZF z^e11NitqYrCLJUw4(~^IqQe~?m@YzxqXU%(mj}|2ax=WU|HIWHqam>TThUjGL>Sd5 z{;Q*;1uv(EQUm8%t(uDSdUbY#=Yx03UZw^M+){%-@F)dzJfv Date: Tue, 18 Aug 2015 19:36:18 +0200 Subject: [PATCH 50/57] Moved spare parts cargo init to cargo --- addons/cargo/CfgEventHandlers.hpp | 6 ++++++ addons/repair/CfgEventHandlers.hpp | 5 ----- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/addons/cargo/CfgEventHandlers.hpp b/addons/cargo/CfgEventHandlers.hpp index f80fefa3aa..c396c7d9a7 100644 --- a/addons/cargo/CfgEventHandlers.hpp +++ b/addons/cargo/CfgEventHandlers.hpp @@ -76,4 +76,10 @@ class Extended_Init_EventHandlers { init = QUOTE(_this call DFUNC(initVehicle)); }; }; + + class ACE_RepairItem_Base { + class ADDON { + init = QUOTE(_this call DFUNC(initObject)); + }; + }; }; diff --git a/addons/repair/CfgEventHandlers.hpp b/addons/repair/CfgEventHandlers.hpp index 27e14937cf..08ec6bad15 100644 --- a/addons/repair/CfgEventHandlers.hpp +++ b/addons/repair/CfgEventHandlers.hpp @@ -40,9 +40,4 @@ class Extended_Init_EventHandlers { init = QUOTE(_this call DFUNC(addRepairActions)); }; }; - class ACE_RepairItem_Base { - class ADDON { - init = QUOTE(if (!isnil QUOTE(QEFUNC(cargo,initObject))) then {_this call EFUNC(cargo,initObject)}); - }; - }; }; From de033f0ff23067e1b61a02d3b50168c7d7abf2b3 Mon Sep 17 00:00:00 2001 From: jonpas Date: Wed, 19 Aug 2015 04:18:33 +0200 Subject: [PATCH 51/57] README.md files added to all modules --- addons/advanced_ballistics/README.md | 3 ++- addons/aircraft/README.md | 7 ++++--- addons/apl/README.md | 11 +++++++++++ addons/atragmx/README.md | 3 ++- addons/attach/README.md | 1 - addons/backpacks/README.md | 3 ++- addons/ballistics/README.md | 3 ++- addons/captives/README.md | 5 +---- addons/cargo/README.md | 12 ++++++++++++ addons/concertina_wire/README.md | 3 ++- addons/dagr/README.md | 5 +++-- addons/disposable/README.md | 2 +- addons/dragging/README.md | 12 ++++++++++++ addons/dragging/config.cpp | 2 +- addons/fcs/README.md | 2 +- addons/fonts/README.md | 11 +++++++++++ addons/hitreactions/README.md | 11 +++++++++++ addons/huntir/README.md | 11 +++++++++++ addons/interact_menu/README.md | 12 ++++++++++++ addons/interaction/README.md | 1 + addons/inventory/README.md | 2 +- addons/kestrel4500/README.md | 5 +++-- addons/logistics_uavbattery/README.md | 2 +- addons/logistics_wirecutter/README.md | 2 +- addons/magazinerepack/README.md | 3 ++- addons/map/README.md | 4 ++-- addons/maptools/README.md | 3 ++- addons/medical/README.md | 1 + addons/medical_menu/README.md | 1 + addons/microdagr/{readme.md => readmeN.md} | 7 ++++--- addons/missionmodules/README.md | 11 +++++++++++ addons/mk6mortar/README.md | 3 ++- addons/modules/README.md | 11 +++++++++++ addons/mx2a/README.md | 3 ++- addons/noidle/README.md | 11 +++++++++++ addons/norearm/README.md | 11 +++++++++++ addons/optics/README.md | 2 +- addons/overpressure/README.md | 2 +- addons/parachute/README.md | 1 + addons/ragdolls/README.md | 2 +- addons/rangecard/README.md | 5 +++-- addons/realisticnames/README.md | 2 +- addons/recoil/README.md | 11 +++++++++++ addons/reloadlaunchers/README.md | 11 +++++++++++ addons/reloadlaunchers/config.cpp | 4 ++-- addons/repair/README.md | 12 ++++++++++++ addons/sandbag/README.md | 5 +++-- addons/sitting/README.md | 5 +++-- addons/slideshow/README.md | 3 ++- addons/spottingscope/README.md | 3 ++- addons/tacticalladder/README.md | 3 ++- addons/testmissions/README.md | 11 +++++++++++ addons/tripod/README.md | 3 ++- addons/ui/README.md | 4 +++- addons/ui/config.cpp | 2 +- addons/vehiclelock/{readme.md => readmeN.md} | 15 ++++++++------- addons/viewdistance/README.md | 11 +++++++++++ addons/weather/README.md | 1 + addons/winddeflection/README.md | 3 ++- addons/winddeflection/config.cpp | 4 ++-- addons/yardage450/README.md | 3 ++- addons/zeus/README.md | 5 +++-- 62 files changed, 270 insertions(+), 63 deletions(-) create mode 100644 addons/apl/README.md create mode 100644 addons/cargo/README.md create mode 100644 addons/dragging/README.md create mode 100644 addons/fonts/README.md create mode 100644 addons/hitreactions/README.md create mode 100644 addons/huntir/README.md create mode 100644 addons/interact_menu/README.md rename addons/microdagr/{readme.md => readmeN.md} (81%) create mode 100644 addons/missionmodules/README.md create mode 100644 addons/modules/README.md create mode 100644 addons/noidle/README.md create mode 100644 addons/norearm/README.md create mode 100644 addons/recoil/README.md create mode 100644 addons/reloadlaunchers/README.md create mode 100644 addons/repair/README.md create mode 100644 addons/testmissions/README.md rename addons/vehiclelock/{readme.md => readmeN.md} (76%) create mode 100644 addons/viewdistance/README.md diff --git a/addons/advanced_ballistics/README.md b/addons/advanced_ballistics/README.md index ef98bcd2b6..122769b191 100644 --- a/addons/advanced_ballistics/README.md +++ b/addons/advanced_ballistics/README.md @@ -3,8 +3,9 @@ ace_advanced_ballistics The Advanced Ballistics module introduces advanced external- and internal ballistics to the game. + ## Maintainers The people responsible for merging changes to this component or answering potential questions. -- [Ruthberg] (http://github.com/Ulteq) \ No newline at end of file +- [Ruthberg](http://github.com/Ulteq) diff --git a/addons/aircraft/README.md b/addons/aircraft/README.md index 1049493f45..3db71ca51a 100644 --- a/addons/aircraft/README.md +++ b/addons/aircraft/README.md @@ -1,9 +1,10 @@ ace_aircraft ============ -Changes to air weaponry, flightmodels and HUDs. +Changes to air weaponry, flight models and HUDs. + +- Contributions by Kimi (geraldbolso1899) for HUD updates -* Contributations by Kimi (geraldbolso1899) for HUD updates ## Maintainers @@ -11,4 +12,4 @@ The people responsible for merging changes to this component or answering potent - [KoffeinFlummi](https://github.com/KoffeinFlummi) - [commy2](https://github.com/commy2) -- [jaynus](https://github.com/walterpearce) \ No newline at end of file +- [jaynus](https://github.com/walterpearce) diff --git a/addons/apl/README.md b/addons/apl/README.md new file mode 100644 index 0000000000..13b5f9d268 --- /dev/null +++ b/addons/apl/README.md @@ -0,0 +1,11 @@ +ace_apl +============ + +Assets licensed under Arma Public License (APL). + + +## Maintainers + +The people responsible for merging changes to this component or answering potential questions. + +- None diff --git a/addons/atragmx/README.md b/addons/atragmx/README.md index f68b38c4a3..1b68573051 100644 --- a/addons/atragmx/README.md +++ b/addons/atragmx/README.md @@ -3,8 +3,9 @@ ace_atragmx ATragMX - Handheld ballistics calculator + ## Maintainers The people responsible for merging changes to this component or answering potential questions. -- [Ruthberg] (http://github.com/Ulteq) \ No newline at end of file +- [Ruthberg](http://github.com/Ulteq) diff --git a/addons/attach/README.md b/addons/attach/README.md index 5fb73d0645..7e033dfef6 100644 --- a/addons/attach/README.md +++ b/addons/attach/README.md @@ -2,7 +2,6 @@ ace_attach ========== Introducing the ability to attach various throwables to yourself or vehicles, to mark your position and assist in IFF. -Adds item `ACE_IR_Strobe_Item`. ## Maintainers diff --git a/addons/backpacks/README.md b/addons/backpacks/README.md index 6fa54a9897..64e37f337b 100644 --- a/addons/backpacks/README.md +++ b/addons/backpacks/README.md @@ -1,7 +1,8 @@ ace_backpacks ================= -Adds indication when someone else opens your backpack (soundeffect / camShake). +Adds indication when someone else opens your backpack (sound effect and camera shake). + ## Maintainers diff --git a/addons/ballistics/README.md b/addons/ballistics/README.md index ac727f83c6..18d81bceb3 100644 --- a/addons/ballistics/README.md +++ b/addons/ballistics/README.md @@ -3,10 +3,11 @@ ace_ballistics Changes to weapon, magazine and ammunition values. + ## Maintainers The people responsible for merging changes to this component or answering potential questions. -- [Ruthberg] (http://github.com/Ulteq) +- [Ruthberg](http://github.com/Ulteq) - [KoffeinFlummi](https://github.com/KoffeinFlummi) - [commy2](https://github.com/commy2) diff --git a/addons/captives/README.md b/addons/captives/README.md index 3938720f08..0d2fd0e1e1 100644 --- a/addons/captives/README.md +++ b/addons/captives/README.md @@ -1,10 +1,7 @@ ace_captives ============ -Allows taking people captive/handcuffed - -####Items: -`ACE_CableTie` - adds ability to take someone captive +Adds ability to handcuff and surrender. ## Maintainers diff --git a/addons/cargo/README.md b/addons/cargo/README.md new file mode 100644 index 0000000000..eda7079b7b --- /dev/null +++ b/addons/cargo/README.md @@ -0,0 +1,12 @@ +ace_cargo +============ + +Adds cargo menu to vehicles and allows loading and unloading of cargo items. + + +## Maintainers + +The people responsible for merging changes to this component or answering potential questions. + +- [commy2](https://github.com/commy2) +- [Glowbal](https://github.com/Glowbal) diff --git a/addons/concertina_wire/README.md b/addons/concertina_wire/README.md index ab62458de9..e1e6530f5b 100644 --- a/addons/concertina_wire/README.md +++ b/addons/concertina_wire/README.md @@ -3,8 +3,9 @@ ace_concertina_wire Adds concertina wire. + ## Maintainers The people responsible for merging changes to this component or answering potential questions. -- [Ruthberg] (http://github.com/Ulteq) \ No newline at end of file +- [Ruthberg](http://github.com/Ulteq) diff --git a/addons/dagr/README.md b/addons/dagr/README.md index 33d095dca4..eb502e7a24 100644 --- a/addons/dagr/README.md +++ b/addons/dagr/README.md @@ -1,10 +1,11 @@ ace_dagr =============== -Defense Advanced GPS Receiver +Adds Defense Advanced GPS Receiver. + ## Maintainers The people responsible for merging changes to this component or answering potential questions. -- [Ruthberg] (http://github.com/Ulteq) \ No newline at end of file +- [Ruthberg](http://github.com/Ulteq) diff --git a/addons/disposable/README.md b/addons/disposable/README.md index 73418cd49d..82281a3c52 100644 --- a/addons/disposable/README.md +++ b/addons/disposable/README.md @@ -1,7 +1,7 @@ ace_disposable ============== -Makes the NLAW a disposable one-shot weapon. +Makes the NLAW a disposable one-shot weapon and provides disposable launchers framework for use by other mods. ## Maintainers diff --git a/addons/dragging/README.md b/addons/dragging/README.md new file mode 100644 index 0000000000..b69484eccf --- /dev/null +++ b/addons/dragging/README.md @@ -0,0 +1,12 @@ +ace_dragging +============== + +Adds ability to drag and carry objects. + + +## Maintainers + +The people responsible for merging changes to this component or answering potential questions. + +- [Garth "L-H" de Wet](https://github.com/CorruptedHeart) +- [commy2](https://github.com/commy2) diff --git a/addons/dragging/config.cpp b/addons/dragging/config.cpp index cc843d4a68..0c9cfb3c43 100644 --- a/addons/dragging/config.cpp +++ b/addons/dragging/config.cpp @@ -6,7 +6,7 @@ class CfgPatches { weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_interaction"}; - author[] = {"Garth 'L-H' de Wet","commy2"}; + author[] = {"Garth 'L-H' de Wet", "commy2"}; authorUrl = "https://github.com/commy2/"; VERSION_CONFIG; }; diff --git a/addons/fcs/README.md b/addons/fcs/README.md index dfe9b8d8e9..c4abbe3253 100644 --- a/addons/fcs/README.md +++ b/addons/fcs/README.md @@ -1,7 +1,7 @@ ace_fcs ======= -Adds a fire control system to armoured vehicles and helicoters, allowing the precise engagement of stationary and moving targets. +Adds a fire control system to armoured vehicles and helicopters, allowing precise engagement of stationary and moving targets. ## Maintainers diff --git a/addons/fonts/README.md b/addons/fonts/README.md new file mode 100644 index 0000000000..7e6f704d67 --- /dev/null +++ b/addons/fonts/README.md @@ -0,0 +1,11 @@ +ace_fonts +======== + +Custom fonts including fixed-width font. + + +## Maintainers + +The people responsible for merging changes to this component or answering potential questions. + +- [jaynus](https://github.com/jaynus/) diff --git a/addons/hitreactions/README.md b/addons/hitreactions/README.md new file mode 100644 index 0000000000..f770470e44 --- /dev/null +++ b/addons/hitreactions/README.md @@ -0,0 +1,11 @@ +ace_hitreactions +=========== + +Adds reactions when getting shot. + + +## Maintainers + +The people responsible for merging changes to this component or answering potential questions. + +- [commy2](https://github.com/commy2) diff --git a/addons/huntir/README.md b/addons/huntir/README.md new file mode 100644 index 0000000000..b6c8128cbc --- /dev/null +++ b/addons/huntir/README.md @@ -0,0 +1,11 @@ +ace_huntir +=========== + +Adds High-altitude Unit Navigated Tactical Imaging Round and its Monitor. + + +## Maintainers + +The people responsible for merging changes to this component or answering potential questions. + +- [Ruthberg](http://github.com/Ulteq) diff --git a/addons/interact_menu/README.md b/addons/interact_menu/README.md new file mode 100644 index 0000000000..77ac2d814a --- /dev/null +++ b/addons/interact_menu/README.md @@ -0,0 +1,12 @@ +ace_interact_menu +=========== + +Base framework for interaction menu. + + +## Maintainers + +The people responsible for merging changes to this component or answering potential questions. + +- [NouberNou](https://github.com/NouberNou) +- [esteldunedain](https://github.com/esteldunedain) diff --git a/addons/interaction/README.md b/addons/interaction/README.md index 8e841e9a58..92401b2547 100644 --- a/addons/interaction/README.md +++ b/addons/interaction/README.md @@ -3,6 +3,7 @@ ace_interaction Provides interaction options between units. + ## Maintainers The people responsible for merging changes to this component or answering potential questions. diff --git a/addons/inventory/README.md b/addons/inventory/README.md index 1e41aa4a8b..7d644143cf 100644 --- a/addons/inventory/README.md +++ b/addons/inventory/README.md @@ -1,7 +1,7 @@ ace_inventory ============= -Increases the size of the inventory dialog. +Adds options to increase the size of the inventory dialog. ## Maintainers diff --git a/addons/kestrel4500/README.md b/addons/kestrel4500/README.md index 36a324beb9..c0b50a3555 100644 --- a/addons/kestrel4500/README.md +++ b/addons/kestrel4500/README.md @@ -1,10 +1,11 @@ ace_kestrel4500 =============== -Kestrel 4500 Pocket Weather Tracker +Adds Kestrel 4500 Pocket Weather Tracker. + ## Maintainers The people responsible for merging changes to this component or answering potential questions. -- [Ruthberg] (http://github.com/Ulteq) \ No newline at end of file +- [Ruthberg](http://github.com/Ulteq) diff --git a/addons/logistics_uavbattery/README.md b/addons/logistics_uavbattery/README.md index 8c89913459..7698511b86 100644 --- a/addons/logistics_uavbattery/README.md +++ b/addons/logistics_uavbattery/README.md @@ -1,7 +1,7 @@ ace_logistics_uavbattery =========== -Adds an item `ACE_UAVBattery` that allows refueling/recharging of the "Dartar" quadcopter UAVs. +Adds an item that allows refueling/recharging of the Darter quadcopter UAVs. ## Maintainers diff --git a/addons/logistics_wirecutter/README.md b/addons/logistics_wirecutter/README.md index e0bef0bed6..8be72fbadf 100644 --- a/addons/logistics_wirecutter/README.md +++ b/addons/logistics_wirecutter/README.md @@ -1,7 +1,7 @@ ace_logistics_wirecutter =========== -Adds an item `ACE_wirecutter` that allows cutting of fences in A3 and AiA maps. +Adds an item that allows cutting of fences in Aarma 3 and AiA/CUP maps. ## Maintainers diff --git a/addons/magazinerepack/README.md b/addons/magazinerepack/README.md index 28b7c3115a..e86adcd976 100644 --- a/addons/magazinerepack/README.md +++ b/addons/magazinerepack/README.md @@ -1,7 +1,8 @@ ace_magazinerepack ================== -Adds the ability to consolidate multiple half-empty magazines. +Adds the ability to consolidate multiple unfull magazines. + ## Maintainers diff --git a/addons/map/README.md b/addons/map/README.md index 6544d0f236..7567986ba5 100644 --- a/addons/map/README.md +++ b/addons/map/README.md @@ -1,12 +1,12 @@ ace_map ======= -Various tweaks to the in-game map. Including: +Various tweaks to the in-game map, including: - Better map styling (countours, legend, hiding bushes and trees, etc). - Max zoom level (optional) - Map shaking while walking (optional) - Map illumination (optional) -- Blufor tracker (optional) +- Blue Force Tracker (optional) ## Maintainers diff --git a/addons/maptools/README.md b/addons/maptools/README.md index 9248948efa..f03474b5c0 100644 --- a/addons/maptools/README.md +++ b/addons/maptools/README.md @@ -1,11 +1,12 @@ ace_maptools ============ -Map tools: +Adds the following map tools: - Roamer - Map drawing - Showing GPS on map + ## Maintainers The people responsible for merging changes to this component or answering potential questions. diff --git a/addons/medical/README.md b/addons/medical/README.md index b7a5fd2a3b..ecf8f5793e 100644 --- a/addons/medical/README.md +++ b/addons/medical/README.md @@ -3,6 +3,7 @@ ace_medical Provides a basic and advanced medical system. + ## Maintainers The people responsible for merging changes to this component or answering potential questions. diff --git a/addons/medical_menu/README.md b/addons/medical_menu/README.md index 0755083712..86ae2039ea 100644 --- a/addons/medical_menu/README.md +++ b/addons/medical_menu/README.md @@ -3,6 +3,7 @@ ace_medical_menu Provides the CSE medical menu for the advanced medical system. + ## Maintainers The people responsible for merging changes to this component or answering potential questions. diff --git a/addons/microdagr/readme.md b/addons/microdagr/readmeN.md similarity index 81% rename from addons/microdagr/readme.md rename to addons/microdagr/readmeN.md index f2dc25a656..d7bcf01b40 100644 --- a/addons/microdagr/readme.md +++ b/addons/microdagr/readmeN.md @@ -1,7 +1,7 @@ ace_microdagr =============== -Adds a microDAGR infentry GPS device. +Adds a MicroDAGR infantry GPS device. Press home to open. Then home again to toggle an interactive version. Press CTRL+Home to close. Info/Compass/Minimap modes are selectable by the bottom buttons. Tap the top bar to open the menu and access Mark/Waypoints/Connect To/Settings modes. Tap the minimap button again to toggle map modes (if available). @@ -9,13 +9,14 @@ Enter waypoints from the menu or double tapping on the minimap. Can interface with the `ace_vector`. Hold Azimuth+Range and release (see page 14 of vector's manual) #### Items Added: - `ACE_microDAGR` + ## For Mission Makers: #### Modules: -* MicroDAGR Map Fill - Controls the amount of map data avaialbe for the minimap. Can limit to just roads/topographical or disable entirely. +- MicroDAGR Map Fill - Controls the amount of map data available for the minimap. Can limit to just roads/topographical or disable entirely. + ## Maintainers diff --git a/addons/missionmodules/README.md b/addons/missionmodules/README.md new file mode 100644 index 0000000000..0b8950d3fe --- /dev/null +++ b/addons/missionmodules/README.md @@ -0,0 +1,11 @@ +ace_missionmodules +=========== + +Adds mission modules. + + +## Maintainers + +The people responsible for merging changes to this component or answering potential questions. + +- [Glowbal](https://github.com/Glowbal) diff --git a/addons/mk6mortar/README.md b/addons/mk6mortar/README.md index 84c7a6e984..3e5109f38f 100644 --- a/addons/mk6mortar/README.md +++ b/addons/mk6mortar/README.md @@ -1,7 +1,8 @@ ace_mk6mortar ========== -Tweaks the mk6 mortar from Arma3 +Tweaks the Nk6 Mortar system. + ## Maintainers diff --git a/addons/modules/README.md b/addons/modules/README.md new file mode 100644 index 0000000000..b13743b981 --- /dev/null +++ b/addons/modules/README.md @@ -0,0 +1,11 @@ +ace_modules +=========== + +Provides framework for module handling. + + +## Maintainers + +The people responsible for merging changes to this component or answering potential questions. + +- [Glowbal](https://github.com/Glowbal) diff --git a/addons/mx2a/README.md b/addons/mx2a/README.md index cbaf9add1b..f03edf1849 100644 --- a/addons/mx2a/README.md +++ b/addons/mx2a/README.md @@ -3,8 +3,9 @@ ace_mx2a Adds the MX-2A thermal imaging device. + ## Maintainers The people responsible for merging changes to this component or answering potential questions. -- [Ruthberg] (http://github.com/Ulteq) +- [Ruthberg](http://github.com/Ulteq) diff --git a/addons/noidle/README.md b/addons/noidle/README.md new file mode 100644 index 0000000000..4ea313bd57 --- /dev/null +++ b/addons/noidle/README.md @@ -0,0 +1,11 @@ +ace_noidle +=========== + +Removes idle animations. + + +## Maintainers + +The people responsible for merging changes to this component or answering potential questions. + +- [commy2](https://github.com/commy2) diff --git a/addons/norearm/README.md b/addons/norearm/README.md new file mode 100644 index 0000000000..f0035e5749 --- /dev/null +++ b/addons/norearm/README.md @@ -0,0 +1,11 @@ +ace_norearm +=========== + +Removes rearm action. + + +## Maintainers + +The people responsible for merging changes to this component or answering potential questions. + +- [commy2](https://github.com/commy2) diff --git a/addons/optics/README.md b/addons/optics/README.md index 2d7281cee7..a5224267b7 100644 --- a/addons/optics/README.md +++ b/addons/optics/README.md @@ -1,7 +1,7 @@ ace_optics =============== -Adds animated 2D optics. Some of them use picture in picture. +Adds animated 2D and PiP (picture-in-picture) optics. ## Maintainers diff --git a/addons/overpressure/README.md b/addons/overpressure/README.md index 3d3f242e40..fce4db7d3f 100644 --- a/addons/overpressure/README.md +++ b/addons/overpressure/README.md @@ -1,7 +1,7 @@ ace_overpressure ============= -Adds backblast to AT launchers and overpressure zones to tank cannons. +Adds backblast area to AT launchers and overpressure zones to tank cannons. ## Maintainers diff --git a/addons/parachute/README.md b/addons/parachute/README.md index fcf1a36333..3dd2608152 100644 --- a/addons/parachute/README.md +++ b/addons/parachute/README.md @@ -3,6 +3,7 @@ ace_parachute Improves parachutes and adds an altimeter. + ## Maintainers The people responsible for merging changes to this component or answering potential questions. diff --git a/addons/ragdolls/README.md b/addons/ragdolls/README.md index b90ba9e5c9..86739775c3 100644 --- a/addons/ragdolls/README.md +++ b/addons/ragdolls/README.md @@ -1,7 +1,7 @@ ace_ragdolls ============ -Tweaks the ragdoll behaviour to be more resposive to bullet impacts and explosions. +Tweaks the ragdoll behaviour to be more responsive to bullet impacts and explosions. ## Maintainers diff --git a/addons/rangecard/README.md b/addons/rangecard/README.md index c96e151869..94169a3075 100644 --- a/addons/rangecard/README.md +++ b/addons/rangecard/README.md @@ -1,10 +1,11 @@ ace_rangecards =============== -Adds range cards +Adds range cards. + ## Maintainers The people responsible for merging changes to this component or answering potential questions. -- [Ruthberg] (http://github.com/Ulteq) \ No newline at end of file +- [Ruthberg](http://github.com/Ulteq) diff --git a/addons/realisticnames/README.md b/addons/realisticnames/README.md index 145ec16a61..6cd05351f6 100644 --- a/addons/realisticnames/README.md +++ b/addons/realisticnames/README.md @@ -1,7 +1,7 @@ ace_realisticnames ================== -Changes the names of various weapons and vehicles to those of their RL counterparts. +Changes the names of various weapons and vehicles to those of their real life counterparts. ## Maintainers diff --git a/addons/recoil/README.md b/addons/recoil/README.md new file mode 100644 index 0000000000..0c81cde34a --- /dev/null +++ b/addons/recoil/README.md @@ -0,0 +1,11 @@ +ace_recoil +=========== + +Tweaks weapon recoils and adds camera shake. + + +## Maintainers + +The people responsible for merging changes to this component or answering potential questions. + +- [commy2](https://github.com/commy2) diff --git a/addons/reloadlaunchers/README.md b/addons/reloadlaunchers/README.md new file mode 100644 index 0000000000..2b6357200b --- /dev/null +++ b/addons/reloadlaunchers/README.md @@ -0,0 +1,11 @@ +ace_reloadlaunchers +=========== + +Add the ability to reload someone else's launcher. + + +## Maintainers + +The people responsible for merging changes to this component or answering potential questions. + +- [commy2](https://github.com/commy2) diff --git a/addons/reloadlaunchers/config.cpp b/addons/reloadlaunchers/config.cpp index 3a66b39719..6a04f6339a 100644 --- a/addons/reloadlaunchers/config.cpp +++ b/addons/reloadlaunchers/config.cpp @@ -6,8 +6,8 @@ class CfgPatches { weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_interaction"}; - author[] = {""}; - authorUrl = ""; + author[] = {"commy2"}; + authorUrl = "https://github.com/commy2"; VERSION_CONFIG; }; }; diff --git a/addons/repair/README.md b/addons/repair/README.md new file mode 100644 index 0000000000..180ae38128 --- /dev/null +++ b/addons/repair/README.md @@ -0,0 +1,12 @@ +ace_repair +=========== + +Adds repair system. + + +## Maintainers + +The people responsible for merging changes to this component or answering potential questions. + +- [commy2](https://github.com/commy2) +- [Glowbal](https://github.com/Glowbal) diff --git a/addons/sandbag/README.md b/addons/sandbag/README.md index 8c67ed9a6d..e1bd40eee5 100644 --- a/addons/sandbag/README.md +++ b/addons/sandbag/README.md @@ -1,10 +1,11 @@ ace_sandbag =============== -Stackable sandbags. +Adds stackable sandbags. + ## Maintainers The people responsible for merging changes to this component or answering potential questions. -- [Ruthberg] (http://github.com/Ulteq) \ No newline at end of file +- [Ruthberg](http://github.com/Ulteq) diff --git a/addons/sitting/README.md b/addons/sitting/README.md index 41db2ce8ee..5237c7145e 100644 --- a/addons/sitting/README.md +++ b/addons/sitting/README.md @@ -1,10 +1,11 @@ ace_sitting =============== -The Sitting module introduces ability to sit on different chairs and toilets. +The Sitting module introduces ability to sit on chairs. + ## Maintainers The people responsible for merging changes to this component or answering potential questions. -- [Jonpas] (https://github.com/jonpas) +- [Jonpas](https://github.com/jonpas) diff --git a/addons/slideshow/README.md b/addons/slideshow/README.md index 58b22c1e17..627e1fe660 100644 --- a/addons/slideshow/README.md +++ b/addons/slideshow/README.md @@ -3,8 +3,9 @@ ace_slideshow Adds ability to have slide-shows on them and control them with a controller (another object). + ## Maintainers The people responsible for merging changes to this component or answering potential questions. -- [Jonpas] (https://github.com/jonpas) +- [Jonpas](https://github.com/jonpas) diff --git a/addons/spottingscope/README.md b/addons/spottingscope/README.md index ea9f2b819d..a07b9c6c85 100644 --- a/addons/spottingscope/README.md +++ b/addons/spottingscope/README.md @@ -3,8 +3,9 @@ ace_spottingscope Adds a spotting scope. + ## Maintainers The people responsible for merging changes to this component or answering potential questions. -- [Ruthberg] (http://github.com/Ulteq) \ No newline at end of file +- [Ruthberg](http://github.com/Ulteq) diff --git a/addons/tacticalladder/README.md b/addons/tacticalladder/README.md index ff6b8ecad3..c4b84b1613 100644 --- a/addons/tacticalladder/README.md +++ b/addons/tacticalladder/README.md @@ -3,8 +3,9 @@ ace_tacticalladder Adds a packable tactical ladder. + ## Maintainers The people responsible for merging changes to this component or answering potential questions. -- [Ruthberg] (http://github.com/Ulteq) \ No newline at end of file +- [Ruthberg](http://github.com/Ulteq) diff --git a/addons/testmissions/README.md b/addons/testmissions/README.md new file mode 100644 index 0000000000..e8737f0ab6 --- /dev/null +++ b/addons/testmissions/README.md @@ -0,0 +1,11 @@ +ace_testmissions +=========== + +Provides test missions. + + +## Maintainers + +The people responsible for merging changes to this component or answering potential questions. + +- None diff --git a/addons/tripod/README.md b/addons/tripod/README.md index 1f4282f1ab..beb6791b6d 100644 --- a/addons/tripod/README.md +++ b/addons/tripod/README.md @@ -3,8 +3,9 @@ ace_tripod Adds a packable tripod. + ## Maintainers The people responsible for merging changes to this component or answering potential questions. -- [Ruthberg] (http://github.com/Ulteq) \ No newline at end of file +- [Ruthberg](http://github.com/Ulteq) diff --git a/addons/ui/README.md b/addons/ui/README.md index f11027038f..c16d2c04e5 100644 --- a/addons/ui/README.md +++ b/addons/ui/README.md @@ -1,9 +1,11 @@ ace_ui ======= -Changes the chat contrast on the map to allow easier reading +Changes the chat contrast on the map to allow easier reading. + ## Maintainers The people responsible for merging changes to this component or answering potential questions. +- [VKing](https://github.com/VKing6) diff --git a/addons/ui/config.cpp b/addons/ui/config.cpp index e7ea4b32eb..d2f4d114e4 100644 --- a/addons/ui/config.cpp +++ b/addons/ui/config.cpp @@ -7,7 +7,7 @@ class CfgPatches { requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_common"}; author[] = {"VKing"}; - authorUrl = "https://github.com/ACEMod/"; + authorUrl = "http://ace3mod.com/"; VERSION_CONFIG; }; }; diff --git a/addons/vehiclelock/readme.md b/addons/vehiclelock/readmeN.md similarity index 76% rename from addons/vehiclelock/readme.md rename to addons/vehiclelock/readmeN.md index 64ae01a99c..c31402c6e3 100644 --- a/addons/vehiclelock/readme.md +++ b/addons/vehiclelock/readmeN.md @@ -5,11 +5,10 @@ Adds keys as an item, to lock and unlock vehicles. Primary target would be role play or TVT, but has uses in all game types, even co-ops (e.g.: DAC AI will steal unlocked vehicles) Two key modes (can be used together): -* Simple Side based keys (e.g. "ACE_key_west" works on any [WEST] vehicle like the M-ATV//hunter) -* Custom keys (one key will only open a specific vehicle and nothing else) +- Simple Side based keys (e.g. "ACE_key_west" works on any [WEST] vehicle like the M-ATV//hunter) +- Custom keys (one key will only open a specific vehicle and nothing else) #### Items Added: - `ACE_key_lockpick` `ACE_key_master` `ACE_key_west` @@ -20,19 +19,21 @@ Two key modes (can be used together): #### Magazine added: `ACE_key_customKeyMagazine` (should never be manualy added, needs to be "programed" to work on a vehicle, see `ACE_VehicleLock_fnc_addKeyForVehicle`) + ## For Mission Makers: #### Modules: -* Vehicle Lock Setup - Settings for locking inventory of locked vehicles, default lockpick time, and initial vehicle lock state. -* Vehicle Key Assign - Sync with vehicles and players. Will handout custom keys to players for every synced vehicle. Will NOT work for JIP units. +- Vehicle Lock Setup - Settings for locking inventory of locked vehicles, default lockpick time, and initial vehicle lock state. +- Vehicle Key Assign - Sync with vehicles and players. Will handout custom keys to players for every synced vehicle. Will NOT work for JIP units. #### Vehicle setVariables: -* `ACE_VehicleLock_lockSide` - SIDE: overrides a vehicle's side, allows indfor to use little-bird's with indp keys -* `ACE_vehicleLock_lockpickStrength` - NUMBER: secons, determines how long lockpicking with take, overrides ACE_VehicleLock_DefaultLockpickStrength +- `ACE_VehicleLock_lockSide` - SIDE: overrides a vehicle's side, allows indfor to use little-bird's with indp keys +- `ACE_vehicleLock_lockpickStrength` - NUMBER: secons, determines how long lockpicking with take, overrides ACE_VehicleLock_DefaultLockpickStrength #### Public Functions: `[bob, car1, true] call ACE_VehicleLock_fnc_addKeyForVehicle;` - will add a `ACE_key_customKeyMagazine` to bob and program it to work on car1 + ## Maintainers The people responsible for merging changes to this component or answering potential questions. diff --git a/addons/viewdistance/README.md b/addons/viewdistance/README.md new file mode 100644 index 0000000000..67860b1ad0 --- /dev/null +++ b/addons/viewdistance/README.md @@ -0,0 +1,11 @@ +ace_viewdistance +=========== + +Adds various View Distance settings and allows limiting maximum view distance that can be set by players. + + +## Maintainers + +The people responsible for merging changes to this component or answering potential questions. + +- [Winter](https://github.com/Winter259) diff --git a/addons/weather/README.md b/addons/weather/README.md index a2b719fc11..da83f62fd2 100644 --- a/addons/weather/README.md +++ b/addons/weather/README.md @@ -4,6 +4,7 @@ ace_weather This module simulates realistic weather effects, according to the geographical location of the map, the date and time. It also ensures that all players experience the same weather effects. + ## Maintainers The people responsible for merging changes to this component or answering potential questions. diff --git a/addons/winddeflection/README.md b/addons/winddeflection/README.md index c2908a6f85..926b957715 100644 --- a/addons/winddeflection/README.md +++ b/addons/winddeflection/README.md @@ -3,9 +3,10 @@ ace_winddeflection Wind deflection for projectiles/bullets. + ## Maintainers The people responsible for merging changes to this component or answering potential questions. - [Glowbal](https://github.com/Glowbal) -- [Ruthberg] (http://github.com/Ulteq) \ No newline at end of file +- [Ruthberg](http://github.com/Ulteq) diff --git a/addons/winddeflection/config.cpp b/addons/winddeflection/config.cpp index 82a51a4b73..df2b55d221 100644 --- a/addons/winddeflection/config.cpp +++ b/addons/winddeflection/config.cpp @@ -8,7 +8,7 @@ class CfgPatches { requiredAddons[] = {"ace_weather"}; versionDesc = "ACE Wind Deflection"; author[] = {ECSTRING(common,ACETeam), "Glowbal", "Ruthberg"}; - authorUrl = "http://csemod.com"; + authorUrl = "http://ace3mod.com/"; VERSION_CONFIG; }; }; @@ -23,4 +23,4 @@ class CfgAddons { #include "CfgEventHandlers.hpp" #include "CfgVehicles.hpp" -#include "ACE_Settings.hpp" \ No newline at end of file +#include "ACE_Settings.hpp" diff --git a/addons/yardage450/README.md b/addons/yardage450/README.md index 6301233fe4..991c4f8a22 100644 --- a/addons/yardage450/README.md +++ b/addons/yardage450/README.md @@ -3,8 +3,9 @@ ace_yardage450 Adds the Bushnell Yardage Pro Sport 450 Laser Rangefinder. + ## Maintainers The people responsible for merging changes to this component or answering potential questions. -- [Ruthberg] (http://github.com/Ulteq) +- [Ruthberg](http://github.com/Ulteq) diff --git a/addons/zeus/README.md b/addons/zeus/README.md index b99edb66bb..35e7da1cdd 100644 --- a/addons/zeus/README.md +++ b/addons/zeus/README.md @@ -1,15 +1,16 @@ ace_zeus ========== -Provides control over various aspects of zeus: +Provides control over various aspects of Zeus: - Ascension messages - Eagle - Wind sounds - Ordnance radio messages - Mine markers + ## Maintainers The people responsible for merging changes to this component or answering potential questions. -- [SilentSpike] (http://github.com/SilentSpike) +- [SilentSpike](http://github.com/SilentSpike) From 5a0a3a53e0de7f1afd0f46cc693570e0881bffa6 Mon Sep 17 00:00:00 2001 From: jonpas Date: Wed, 19 Aug 2015 04:19:00 +0200 Subject: [PATCH 52/57] Uppercased 2 readme files --- addons/microdagr/{readmeN.md => README.md} | 0 addons/vehiclelock/{readmeN.md => README.md} | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename addons/microdagr/{readmeN.md => README.md} (100%) rename addons/vehiclelock/{readmeN.md => README.md} (100%) diff --git a/addons/microdagr/readmeN.md b/addons/microdagr/README.md similarity index 100% rename from addons/microdagr/readmeN.md rename to addons/microdagr/README.md diff --git a/addons/vehiclelock/readmeN.md b/addons/vehiclelock/README.md similarity index 100% rename from addons/vehiclelock/readmeN.md rename to addons/vehiclelock/README.md From 683e727cb451337c9c1ab668fc556b78ba6165a5 Mon Sep 17 00:00:00 2001 From: jonpas Date: Wed, 19 Aug 2015 04:22:39 +0200 Subject: [PATCH 53/57] Readded items --- addons/attach/README.md | 3 +++ addons/captives/README.md | 3 +++ addons/logistics_uavbattery/README.md | 3 +++ addons/logistics_wirecutter/README.md | 3 +++ 4 files changed, 12 insertions(+) diff --git a/addons/attach/README.md b/addons/attach/README.md index 7e033dfef6..3bce88839c 100644 --- a/addons/attach/README.md +++ b/addons/attach/README.md @@ -3,6 +3,9 @@ ace_attach Introducing the ability to attach various throwables to yourself or vehicles, to mark your position and assist in IFF. +#### Items Added: +`ACE_IR_Strobe_Item` + ## Maintainers diff --git a/addons/captives/README.md b/addons/captives/README.md index 0d2fd0e1e1..37c26db159 100644 --- a/addons/captives/README.md +++ b/addons/captives/README.md @@ -3,6 +3,9 @@ ace_captives Adds ability to handcuff and surrender. +#### Items Added: +`ACE_CableTie` + ## Maintainers diff --git a/addons/logistics_uavbattery/README.md b/addons/logistics_uavbattery/README.md index 7698511b86..d32175cb44 100644 --- a/addons/logistics_uavbattery/README.md +++ b/addons/logistics_uavbattery/README.md @@ -3,6 +3,9 @@ ace_logistics_uavbattery Adds an item that allows refueling/recharging of the Darter quadcopter UAVs. +#### Items Added: +`ACE_UAVBattery` + ## Maintainers diff --git a/addons/logistics_wirecutter/README.md b/addons/logistics_wirecutter/README.md index 8be72fbadf..89d42c419f 100644 --- a/addons/logistics_wirecutter/README.md +++ b/addons/logistics_wirecutter/README.md @@ -3,6 +3,9 @@ ace_logistics_wirecutter Adds an item that allows cutting of fences in Aarma 3 and AiA/CUP maps. +#### Items Added: +`ACE_wirecutter` + ## Maintainers From b627e32a00038cdfd2ca166e5d197559aedbfb58 Mon Sep 17 00:00:00 2001 From: jonpas Date: Tue, 18 Aug 2015 05:26:55 +0200 Subject: [PATCH 54/57] Added shared logistics categories --- addons/cargo/ACE_Settings.hpp | 2 +- addons/cargo/CfgVehicles.hpp | 2 +- addons/cargo/stringtable.xml | 5 +---- addons/main/CfgModuleCategories.hpp | 3 +++ addons/main/CfgVehicleClasses.hpp | 5 +++++ addons/main/config.cpp | 3 ++- addons/main/stringtable.xml | 8 ++++++++ addons/optionsmenu/stringtable.xml | 7 +++++-- addons/repair/ACE_Settings.hpp | 16 ++++++++-------- addons/repair/CfgVehicleClasses.hpp | 5 ----- addons/repair/CfgVehicles.hpp | 15 +++++++-------- addons/repair/config.cpp | 11 ++++------- addons/repair/stringtable.xml | 3 --- 13 files changed, 45 insertions(+), 40 deletions(-) create mode 100644 addons/main/CfgVehicleClasses.hpp create mode 100644 addons/main/stringtable.xml delete mode 100644 addons/repair/CfgVehicleClasses.hpp diff --git a/addons/cargo/ACE_Settings.hpp b/addons/cargo/ACE_Settings.hpp index c8865f2097..574000155e 100644 --- a/addons/cargo/ACE_Settings.hpp +++ b/addons/cargo/ACE_Settings.hpp @@ -4,6 +4,6 @@ class ACE_Settings { description = CSTRING(ModuleSettings_enable_Description); typeName = "BOOL"; value = 1; - category = CSTRING(settingsCategory); + category = ECSTRING(OptionsMenu,CategoryLogistics); }; }; diff --git a/addons/cargo/CfgVehicles.hpp b/addons/cargo/CfgVehicles.hpp index d5572741da..25bd441b90 100644 --- a/addons/cargo/CfgVehicles.hpp +++ b/addons/cargo/CfgVehicles.hpp @@ -4,7 +4,7 @@ class CfgVehicles { scope = 2; displayName = CSTRING(SettingsModule_DisplayName); icon = QUOTE(PATHTOF(UI\Icon_Module_Cargo_ca.paa)); - category = "ACE"; + category = "ACE_Logistics"; function = QFUNC(moduleSettings); functionPriority = 1; isGlobal = 1; diff --git a/addons/cargo/stringtable.xml b/addons/cargo/stringtable.xml index 57ee916156..f80787911e 100644 --- a/addons/cargo/stringtable.xml +++ b/addons/cargo/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -16,9 +16,6 @@ Cargo space left: %1 - - Cargo - Enable Cargo diff --git a/addons/main/CfgModuleCategories.hpp b/addons/main/CfgModuleCategories.hpp index 5297ec1e99..a3dd65c544 100644 --- a/addons/main/CfgModuleCategories.hpp +++ b/addons/main/CfgModuleCategories.hpp @@ -5,4 +5,7 @@ class CfgFactionClasses { priority = 2; side = 7; }; + class ACE_Logistics: ACE { + displayName = CSTRING(Category_Logistics); + }; }; diff --git a/addons/main/CfgVehicleClasses.hpp b/addons/main/CfgVehicleClasses.hpp new file mode 100644 index 0000000000..9aa807f3f5 --- /dev/null +++ b/addons/main/CfgVehicleClasses.hpp @@ -0,0 +1,5 @@ +class CfgVehicleClasses { + class ACE_Logistics_Items { + displayName = CSTRING(Category_Logistics); + }; +}; diff --git a/addons/main/config.cpp b/addons/main/config.cpp index eb136f84cf..9399b14279 100644 --- a/addons/main/config.cpp +++ b/addons/main/config.cpp @@ -1,4 +1,4 @@ -#include "script_component.hpp" +#include "script_component.hpp" class CfgPatches { class ADDON { @@ -587,3 +587,4 @@ class CfgSettings { }; #include "CfgModuleCategories.hpp" +#include "CfgVehicleClasses.hpp" diff --git a/addons/main/stringtable.xml b/addons/main/stringtable.xml new file mode 100644 index 0000000000..482725a446 --- /dev/null +++ b/addons/main/stringtable.xml @@ -0,0 +1,8 @@ + + + + + ACE Logistics + + + diff --git a/addons/optionsmenu/stringtable.xml b/addons/optionsmenu/stringtable.xml index 77cbc0961c..9e8618eb5c 100644 --- a/addons/optionsmenu/stringtable.xml +++ b/addons/optionsmenu/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -349,5 +349,8 @@ All Categories Wszystkie kategorie + + Logistics + - \ No newline at end of file + diff --git a/addons/repair/ACE_Settings.hpp b/addons/repair/ACE_Settings.hpp index e956e853de..48d3a9c0c6 100644 --- a/addons/repair/ACE_Settings.hpp +++ b/addons/repair/ACE_Settings.hpp @@ -5,7 +5,7 @@ class ACE_Settings { typeName = "BOOL"; isClientSettable = 1; value = 1; - category = CSTRING(categoryName); + category = ECSTRING(OptionsMenu,CategoryLogistics); }; class GVAR(engineerSetting_Repair) { displayName = CSTRING(enginerSetting_Repair_name); @@ -13,7 +13,7 @@ class ACE_Settings { typeName = "SCALAR"; value = 1; values[] = {CSTRING(engineerSetting_anyone), CSTRING(engineerSetting_EngineerOnly), CSTRING(engineerSetting_RepairSpecialistOnly)}; - category = CSTRING(categoryName); + category = ECSTRING(OptionsMenu,CategoryLogistics); }; class GVAR(engineerSetting_Wheel) { displayName = CSTRING(enginerSetting_Wheel_name); @@ -21,21 +21,21 @@ class ACE_Settings { typeName = "SCALAR"; value = 0; values[] = {CSTRING(engineerSetting_anyone), CSTRING(engineerSetting_EngineerOnly), CSTRING(engineerSetting_RepairSpecialistOnly)}; - category = CSTRING(categoryName); + category = ECSTRING(OptionsMenu,CategoryLogistics); }; class GVAR(repairDamageThreshold) { displayName = CSTRING(repairDamageThreshold_name); description = CSTRING(repairDamageThreshold_description); typeName = "SCALAR"; value = 0.6; - category = CSTRING(categoryName); + category = ECSTRING(OptionsMenu,CategoryLogistics); }; class GVAR(repairDamageThreshold_Engineer) { displayName = CSTRING(repairDamageThreshold_Engineer_name); description = CSTRING(repairDamageThreshold_Engineer_description); typeName = "SCALAR"; value = 0.4; - category = CSTRING(categoryName); + category = ECSTRING(OptionsMenu,CategoryLogistics); }; class GVAR(consumeItem_ToolKit) { displayName = CSTRING(consumeItem_ToolKit_name); @@ -43,7 +43,7 @@ class ACE_Settings { typeName = "SCALAR"; value = 1; values[] = {ECSTRING(common,No), ECSTRING(common,Yes)}; - category = CSTRING(categoryName); + category = ECSTRING(OptionsMenu,CategoryLogistics); }; class GVAR(fullRepairLocation) { displayName = CSTRING(fullRepairLocation); @@ -51,7 +51,7 @@ class ACE_Settings { typeName = "SCALAR"; value = 2; values[] = {CSTRING(useAnywhere), CSTRING(repairVehicleOnly), CSTRING(repairFacilityOnly), CSTRING(vehicleAndFacility), ECSTRING(common,Disabled)}; - category = CSTRING(categoryName); + category = ECSTRING(OptionsMenu,CategoryLogistics); }; class GVAR(engineerSetting_fullRepair) { displayName = CSTRING(engineerSetting_fullRepair_name); @@ -59,6 +59,6 @@ class ACE_Settings { typeName = "SCALAR"; value = 3; values[] = {CSTRING(engineerSetting_anyone), CSTRING(engineerSetting_EngineerOnly), CSTRING(engineerSetting_RepairSpecialistOnly)}; - category = CSTRING(categoryName); + category = ECSTRING(OptionsMenu,CategoryLogistics); }; }; diff --git a/addons/repair/CfgVehicleClasses.hpp b/addons/repair/CfgVehicleClasses.hpp deleted file mode 100644 index 585b8f2858..0000000000 --- a/addons/repair/CfgVehicleClasses.hpp +++ /dev/null @@ -1,5 +0,0 @@ -class CfgVehicleClasses { - class GVAR(items) { - displayName = "ACE"; - }; -}; diff --git a/addons/repair/CfgVehicles.hpp b/addons/repair/CfgVehicles.hpp index f24cd9bc9a..7c465f50ce 100644 --- a/addons/repair/CfgVehicles.hpp +++ b/addons/repair/CfgVehicles.hpp @@ -16,12 +16,11 @@ class CfgVehicles { class ACE_Module; - // @todo localization for all the modules class ACE_moduleRepairSettings: ACE_Module { scope = 2; displayName = CSTRING(moduleName); - icon = QUOTE(PATHTOF(ui\Icon_Module_Repair_ca.paa)); //@todo - category = "ACE"; + icon = QUOTE(PATHTOF(ui\Icon_Module_Repair_ca.paa)); + category = "ACE_Logistics"; function = QFUNC(moduleRepairSettings); functionPriority = 1; isGlobal = 1; @@ -103,7 +102,7 @@ class CfgVehicles { scope = 2; displayName = CSTRING(AssignEngineerRole_Module_DisplayName); icon = QUOTE(PATHTOF(ui\Icon_Module_Repair_ca.paa)); - category = "ACE"; + category = "ACE_Logistics"; function = QFUNC(moduleAssignEngineer); functionPriority = 10; isGlobal = 2; @@ -147,7 +146,7 @@ class CfgVehicles { scope = 2; displayName = CSTRING(AssignRepairVehicle_Module_DisplayName); icon = QUOTE(PATHTOF(ui\Icon_Module_Repair_ca.paa)); - category = "ACE"; + category = "ACE_Logistics"; function = QFUNC(moduleAssignRepairVehicle); functionPriority = 10; isGlobal = 2; @@ -254,7 +253,7 @@ class CfgVehicles { icon = "iconObject_circle"; mapSize = 0.7; accuracy = 0.2; - vehicleClass = QGVAR(items); + vehicleClass = "ACE_Logistics_Items"; destrType = "DesturctNo"; }; @@ -264,7 +263,7 @@ class CfgVehicles { author = "Hawkins"; scope = 2; model = QUOTE(PATHTOF(data\ace_track.p3d)); - displayName = "$STR_ACE_Repair_SpareTrack"; + displayName = CSTRING(SpareTrack); }; class ACE_Wheel: ACE_RepairItem_Base { @@ -273,7 +272,7 @@ class CfgVehicles { author = "Hawkins"; scope = 2; model = QUOTE(PATHTOF(data\ace_wheel.p3d)); - displayName = "$STR_ACE_Repair_SpareWheel"; + displayName = CSTRING(SpareWheel); picture = QUOTE(PATHTOF(ui\tire_ca.paa)); }; diff --git a/addons/repair/config.cpp b/addons/repair/config.cpp index d97f9e30e5..c7015f4650 100644 --- a/addons/repair/config.cpp +++ b/addons/repair/config.cpp @@ -12,11 +12,8 @@ class CfgPatches { }; }; -#include "CfgEventHandlers.hpp" - -#include "CfgActions.hpp" -#include "CfgVehicleClasses.hpp" -#include "CfgVehicles.hpp" - -#include "ACE_Settings.hpp" #include "ACE_Repair.hpp" +#include "ACE_Settings.hpp" +#include "CfgEventHandlers.hpp" +#include "CfgActions.hpp" +#include "CfgVehicles.hpp" diff --git a/addons/repair/stringtable.xml b/addons/repair/stringtable.xml index ffafc56683..6f341f6484 100644 --- a/addons/repair/stringtable.xml +++ b/addons/repair/stringtable.xml @@ -635,8 +635,5 @@ Assign one or multiple objects as a repair Facility - - Vehicle Repair - From 3aab62fa7cca10836139b77f699316847f24323b Mon Sep 17 00:00:00 2001 From: nsgundy Date: Wed, 19 Aug 2015 15:32:46 -0300 Subject: [PATCH 55/57] Return true / false if event was handled so that CBA keybinding doesn't have a reason to complain. Converted tabs to spaces --- addons/medical_menu/XEH_postInit.sqf | 3 ++- .../medical_menu/functions/fnc_openMenu.sqf | 20 ++++++++++++------- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/addons/medical_menu/XEH_postInit.sqf b/addons/medical_menu/XEH_postInit.sqf index a72c1a8887..eaf356f608 100644 --- a/addons/medical_menu/XEH_postInit.sqf +++ b/addons/medical_menu/XEH_postInit.sqf @@ -26,9 +26,10 @@ if (!hasInterface) exitwith {}; false }, { - if (ACE_time - GVAR(lastOpenedOn) > 0.5) then { + if (ACE_time - GVAR(lastOpenedOn) > 0.5) exitWith { [ObjNull] call FUNC(openMenu); }; + false }, [35, [false, false, false]], false, 0] call CBA_fnc_addKeybind; diff --git a/addons/medical_menu/functions/fnc_openMenu.sqf b/addons/medical_menu/functions/fnc_openMenu.sqf index 3bc67f0028..34a2da7fb9 100644 --- a/addons/medical_menu/functions/fnc_openMenu.sqf +++ b/addons/medical_menu/functions/fnc_openMenu.sqf @@ -6,7 +6,7 @@ * 0: Target * * Return Value: - * None + * If action was taken * * Example: * [some_player] call ace_medical_menu_openMenu @@ -18,16 +18,22 @@ params ["_interactionTarget"]; if (dialog || isNull _interactionTarget) exitwith { - disableSerialization; + disableSerialization; - private "_display"; - _display = uiNamespace getVariable QGVAR(medicalMenu); - if (!isNil "_display") then { - closeDialog 314412; - }; + private ["_display", "_handled"]; + _handled = false; + _display = uiNamespace getVariable QGVAR(medicalMenu); + if (!isNil "_display") then { + closeDialog 314412; + _handled = true; + }; + + _handled }; GVAR(INTERACTION_TARGET) = _interactionTarget; createDialog QGVAR(medicalMenu); GVAR(lastOpenedOn) = ACE_time; + +true \ No newline at end of file From 33ef60266b8915617452ee99a444df2026407e36 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Wed, 19 Aug 2015 23:30:13 +0100 Subject: [PATCH 56/57] Fix medical CPR code and log message Performing CPR would never succeed when the patient was in revive state because the code was accidentally using `exitWith` instead of `then`. The log message string was also incorrect. --- .../medical/functions/fnc_treatmentAdvanced_CPRLocal.sqf | 8 ++++---- addons/medical/stringtable.xml | 3 +++ 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/addons/medical/functions/fnc_treatmentAdvanced_CPRLocal.sqf b/addons/medical/functions/fnc_treatmentAdvanced_CPRLocal.sqf index c3151f2c90..a7c8ea6744 100644 --- a/addons/medical/functions/fnc_treatmentAdvanced_CPRLocal.sqf +++ b/addons/medical/functions/fnc_treatmentAdvanced_CPRLocal.sqf @@ -18,20 +18,20 @@ private ["_caller","_target", "_reviveStartTime"]; _caller = _this select 0; _target = _this select 1; -if (_target getvariable [QGVAR(inReviveState), false]) exitwith { +if (_target getvariable [QGVAR(inReviveState), false]) then { _reviveStartTime = _target getvariable [QGVAR(reviveStartTime),0]; if (_reviveStartTime > 0) then { _target setvariable [QGVAR(reviveStartTime), (_reviveStartTime + random(20)) min ACE_time]; }; }; -if (random(1)>= 0.6) exitwith { +if ((random 1) >= 0.6) then { _target setvariable [QGVAR(inCardiacArrest), nil,true]; _target setvariable [QGVAR(heartRate), 40]; _target setvariable [QGVAR(bloodPressure), [50,70]]; }; -[_target, "activity", LSTRING(Activity_fullHeal), [[_caller] call EFUNC(common,getName)]] call FUNC(addToLog); -[_target, "activity_view", LSTRING(Activity_fullHeal), [[_caller] call EFUNC(common,getName)]] call FUNC(addToLog); // TODO expand message +[_target, "activity", LSTRING(Activity_CPR), [[_caller] call EFUNC(common,getName)]] call FUNC(addToLog); +[_target, "activity_view", LSTRING(Activity_CPR), [[_caller] call EFUNC(common,getName)]] call FUNC(addToLog); // TODO expand message true; diff --git a/addons/medical/stringtable.xml b/addons/medical/stringtable.xml index 290690d442..75650e36da 100644 --- a/addons/medical/stringtable.xml +++ b/addons/medical/stringtable.xml @@ -2098,6 +2098,9 @@ %1 aplicou um torniquete %1 použil škrtidlo + + %1 performed CPR + Heavily wounded Schwer verwundet: From a8c11a249d40d0bc4e37a8a66adea8a385834837 Mon Sep 17 00:00:00 2001 From: SzwedzikPL Date: Thu, 20 Aug 2015 21:41:28 +0200 Subject: [PATCH 57/57] cargo sup for bodybag and concertina --- addons/cargo/CfgEventHandlers.hpp | 12 ++++++++++++ addons/concertina_wire/CfgVehicles.hpp | 10 ++++++---- addons/medical/CfgVehicles.hpp | 2 ++ 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/addons/cargo/CfgEventHandlers.hpp b/addons/cargo/CfgEventHandlers.hpp index c396c7d9a7..76e367bbd3 100644 --- a/addons/cargo/CfgEventHandlers.hpp +++ b/addons/cargo/CfgEventHandlers.hpp @@ -82,4 +82,16 @@ class Extended_Init_EventHandlers { init = QUOTE(_this call DFUNC(initObject)); }; }; + + class ACE_bodyBagObject { + class ADDON { + init = QUOTE(_this call DFUNC(initObject)); + }; + }; + + class ACE_ConcertinaWireCoil { + class ADDON { + init = QUOTE(_this call DFUNC(initObject)); + }; + }; }; diff --git a/addons/concertina_wire/CfgVehicles.hpp b/addons/concertina_wire/CfgVehicles.hpp index cf1be40487..d0514aa700 100644 --- a/addons/concertina_wire/CfgVehicles.hpp +++ b/addons/concertina_wire/CfgVehicles.hpp @@ -3,7 +3,7 @@ class CfgVehicles { class Fence; class thingX; class NonStrategic; - + class ACE_ConcertinaWireNoGeo: Fence { XEH_ENABLED; scope = 1; @@ -48,7 +48,7 @@ class CfgVehicles { class wire_16: wire_2{}; class wire_17: wire_2{}; class wire_18: wire_2{}; - + class wire_2_1: wire_2 { animPeriod = 8; }; @@ -67,7 +67,7 @@ class CfgVehicles { class wire_15_1: wire_2_1 {}; class wire_16_1: wire_2_1 {}; class wire_17_1: wire_2_1 {}; - class wire_18_1: wire_2_1 {}; + class wire_18_1: wire_2_1 {}; }; }; class ACE_ConcertinaWire: ACE_ConcertinaWireNoGeo { @@ -113,6 +113,8 @@ class CfgVehicles { EGVAR(dragging,canDrag) = 1; EGVAR(dragging,dragPosition[]) = {0,0.5,0.5}; EGVAR(dragging,dragDirection) = 0; + EGVAR(cargo,size) = 1; + EGVAR(cargo,canLoad) = 1; class ACE_Actions { class ACE_MainActions { selection = ""; @@ -133,7 +135,7 @@ class CfgVehicles { }; }; }; - + class Land_Razorwire_F: NonStrategic { XEH_ENABLED; }; diff --git a/addons/medical/CfgVehicles.hpp b/addons/medical/CfgVehicles.hpp index aef45b115d..350f83b3f7 100644 --- a/addons/medical/CfgVehicles.hpp +++ b/addons/medical/CfgVehicles.hpp @@ -697,6 +697,8 @@ class CfgVehicles { EGVAR(dragging,canDrag) = 1; EGVAR(dragging,dragPosition[]) = {0,1.2,0}; EGVAR(dragging,dragDirection) = 0; + EGVAR(cargo,size) = 1; + EGVAR(cargo,canLoad) = 1; class ACE_Actions { class ACE_MainActions { displayName = ECSTRING(interaction,MainAction);