mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
Merge branch 'master' into pr/9273
This commit is contained in:
commit
c4b29e6ae7
@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
<p align="center">
|
<p align="center">
|
||||||
<a href="https://github.com/acemod/ACE3/releases/latest">
|
<a href="https://github.com/acemod/ACE3/releases/latest">
|
||||||
<img src="https://img.shields.io/badge/Version-3.16.1-blue.svg?style=flat-square" alt="ACE3 Version">
|
<img src="https://img.shields.io/badge/Version-3.16.3-blue.svg?style=flat-square" alt="ACE3 Version">
|
||||||
</a>
|
</a>
|
||||||
<a href="https://github.com/acemod/ACE3/issues">
|
<a href="https://github.com/acemod/ACE3/issues">
|
||||||
<img src="https://img.shields.io/github/issues-raw/acemod/ACE3.svg?style=flat-square&label=Issues" alt="ACE3 Issues">
|
<img src="https://img.shields.io/github/issues-raw/acemod/ACE3.svg?style=flat-square&label=Issues" alt="ACE3 Issues">
|
||||||
|
@ -12,57 +12,10 @@ PREP_RECOMPILE_END;
|
|||||||
#include "initSettings.inc.sqf"
|
#include "initSettings.inc.sqf"
|
||||||
|
|
||||||
// Arsenal events
|
// Arsenal events
|
||||||
[QGVAR(statsToggle), {
|
[QGVAR(statsChangePage), LINKFUNC(buttonStatsPage)] call CBA_fnc_addEventHandler;
|
||||||
params ["_display", "_showStats"];
|
[QGVAR(displayStats), LINKFUNC(handleStats)] call CBA_fnc_addEventHandler;
|
||||||
|
[QGVAR(actionsChangePage), LINKFUNC(buttonActionsPage)] call CBA_fnc_addEventHandler;
|
||||||
private _statsCtrlGroupCtrl = _display displayCtrl IDC_statsBox;
|
[QGVAR(displayActions), LINKFUNC(handleActions)] call CBA_fnc_addEventHandler;
|
||||||
private _statsPreviousPageCtrl = _display displayCtrl IDC_statsPreviousPage;
|
|
||||||
private _statsNextPageCtrl = _display displayCtrl IDC_statsNextPage;
|
|
||||||
private _statsCurrentPageCtrl = _display displayCtrl IDC_statsCurrentPage;
|
|
||||||
|
|
||||||
{
|
|
||||||
_x ctrlShow (GVAR(showStats) && {_showStats});
|
|
||||||
} forEach [
|
|
||||||
_statsCtrlGroupCtrl,
|
|
||||||
_statsPreviousPageCtrl,
|
|
||||||
_statsNextPageCtrl,
|
|
||||||
_statsCurrentPageCtrl
|
|
||||||
];
|
|
||||||
}] call CBA_fnc_addEventHandler;
|
|
||||||
|
|
||||||
[QGVAR(statsChangePage), {
|
|
||||||
_this call FUNC(buttonStatsPage);
|
|
||||||
}] call CBA_fnc_addEventHandler;
|
|
||||||
|
|
||||||
[QGVAR(displayStats), {
|
|
||||||
_this call FUNC(handleStats);
|
|
||||||
}] call CBA_fnc_addEventHandler;
|
|
||||||
|
|
||||||
[QGVAR(actionsChangePage), {
|
|
||||||
_this call FUNC(buttonActionsPage);
|
|
||||||
}] call CBA_fnc_addEventHandler;
|
|
||||||
|
|
||||||
[QGVAR(displayActions), {
|
|
||||||
_this call FUNC(handleActions);
|
|
||||||
}] call CBA_fnc_addEventHandler;
|
|
||||||
|
|
||||||
[QGVAR(actionsToggle), {
|
|
||||||
params ["_display", "_showActions"];
|
|
||||||
|
|
||||||
private _actionsCtrlGroupCtrl = _display displayCtrl IDC_actionsBox;
|
|
||||||
private _actionsPreviousPageCtrl = _display displayCtrl IDC_actionsPreviousPage;
|
|
||||||
private _actionsNextPageCtrl = _display displayCtrl IDC_actionsNextPage;
|
|
||||||
private _actionsCurrentPageCtrl = _display displayCtrl IDC_actionsCurrentPage;
|
|
||||||
|
|
||||||
{
|
|
||||||
_x ctrlShow (GVAR(showActions) && {_showActions});
|
|
||||||
} forEach [
|
|
||||||
_actionsCtrlGroupCtrl,
|
|
||||||
_actionsPreviousPageCtrl,
|
|
||||||
_actionsNextPageCtrl,
|
|
||||||
_actionsCurrentPageCtrl
|
|
||||||
];
|
|
||||||
}] call CBA_fnc_addEventHandler;
|
|
||||||
|
|
||||||
call FUNC(compileActions);
|
call FUNC(compileActions);
|
||||||
call FUNC(compileSorts);
|
call FUNC(compileSorts);
|
||||||
@ -86,5 +39,4 @@ call FUNC(compileStats);
|
|||||||
// Setup Tools tab
|
// Setup Tools tab
|
||||||
[keys (uiNamespace getVariable [QGVAR(configItemsTools), createHashMap]), LLSTRING(toolsTab), TOOLS_TAB_ICON, -1, true] call FUNC(addRightPanelButton);
|
[keys (uiNamespace getVariable [QGVAR(configItemsTools), createHashMap]), LLSTRING(toolsTab), TOOLS_TAB_ICON, -1, true] call FUNC(addRightPanelButton);
|
||||||
|
|
||||||
|
|
||||||
ADDON = true;
|
ADDON = true;
|
||||||
|
@ -2,12 +2,12 @@
|
|||||||
#include "..\defines.hpp"
|
#include "..\defines.hpp"
|
||||||
/*
|
/*
|
||||||
* Author: Brett Mayson
|
* Author: Brett Mayson
|
||||||
* Handles the previous / next page buttons for actions
|
* Handles the previous / next page buttons for actions.
|
||||||
*
|
*
|
||||||
* Arguments:
|
* Arguments:
|
||||||
* 0: Arsenal display <DISPLAY>
|
* 0: Arsenal display <DISPLAY>
|
||||||
* 1: Actions control <CONTROL>
|
* 1: Actions page <CONTROL>
|
||||||
* 2: Previous or next <BOOL> (false = previous, true = next)
|
* 2: Previous (false) or next (true) page <BOOL>
|
||||||
*
|
*
|
||||||
* Return Value:
|
* Return Value:
|
||||||
* None
|
* None
|
||||||
@ -23,4 +23,5 @@ if !(ctrlEnabled _control) exitWith {};
|
|||||||
GVAR(currentActionPage) = GVAR(currentActionPage) + ([-1, 1] select _nextPage);
|
GVAR(currentActionPage) = GVAR(currentActionPage) + ([-1, 1] select _nextPage);
|
||||||
|
|
||||||
GVAR(actionsInfo) params ["_panelControl", "_curSel", "_itemCfg"];
|
GVAR(actionsInfo) params ["_panelControl", "_curSel", "_itemCfg"];
|
||||||
|
|
||||||
[QGVAR(displayActions), [_display, _panelControl, _curSel, _itemCfg]] call CBA_fnc_localEvent;
|
[QGVAR(displayActions), [_display, _panelControl, _curSel, _itemCfg]] call CBA_fnc_localEvent;
|
||||||
|
@ -52,10 +52,20 @@ private _ctrl = controlNull;
|
|||||||
IDC_buttonCurrentMag2,
|
IDC_buttonCurrentMag2,
|
||||||
IDC_iconBackgroundCurrentMag,
|
IDC_iconBackgroundCurrentMag,
|
||||||
IDC_iconBackgroundCurrentMag2,
|
IDC_iconBackgroundCurrentMag2,
|
||||||
|
IDC_statsBox,
|
||||||
IDC_statsPreviousPage,
|
IDC_statsPreviousPage,
|
||||||
IDC_statsNextPage,
|
IDC_statsNextPage,
|
||||||
IDC_statsCurrentPage
|
IDC_statsCurrentPage,
|
||||||
|
IDC_actionsBox,
|
||||||
|
IDC_actionsPreviousPage,
|
||||||
|
IDC_actionsNextPage,
|
||||||
|
IDC_actionsCurrentPage
|
||||||
];
|
];
|
||||||
|
|
||||||
[QGVAR(statsToggle), [_display, _showToggle]] call CBA_fnc_localEvent;
|
if (!_showToggle) exitWith {};
|
||||||
[QGVAR(actionsToggle), [_display, _showToggle]] call CBA_fnc_localEvent;
|
|
||||||
|
// When showing the stats/actions again, update them to fit with currently selected item
|
||||||
|
GVAR(actionsInfo) params ["_control", "_curSel", "_itemCfg"];
|
||||||
|
|
||||||
|
[QGVAR(displayStats), [_display, _control, _curSel, _itemCfg]] call CBA_fnc_localEvent;
|
||||||
|
[QGVAR(displayActions), [_display, _control, _curSel, _itemCfg]] call CBA_fnc_localEvent;
|
||||||
|
@ -20,8 +20,8 @@ params ["_display", "_control", "_nextPage"];
|
|||||||
TRACE_1("control enabled", ctrlEnabled _control);
|
TRACE_1("control enabled", ctrlEnabled _control);
|
||||||
if !(ctrlEnabled _control) exitWith {};
|
if !(ctrlEnabled _control) exitWith {};
|
||||||
|
|
||||||
GVAR(currentStatPage) = [GVAR(currentStatPage) - 1, GVAR(currentStatPage) + 1] select _nextPage;
|
GVAR(currentStatPage) = GVAR(currentStatPage) + ([-1, 1] select _nextPage);
|
||||||
|
|
||||||
GVAR(statsInfo) params ["_isLeftPanel", "_panelControl", "_curSel", "_itemCfg"];
|
GVAR(statsInfo) params ["", "_panelControl", "_curSel", "_itemCfg"];
|
||||||
|
|
||||||
[QGVAR(displayStats), [_display, _panelControl, _curSel, _itemCfg]] call CBA_fnc_localEvent;
|
[QGVAR(displayStats), [_display, _panelControl, _curSel, _itemCfg]] call CBA_fnc_localEvent;
|
||||||
|
@ -115,12 +115,11 @@ GVAR(currentVoice) = nil;
|
|||||||
GVAR(currentInsignia) = nil;
|
GVAR(currentInsignia) = nil;
|
||||||
GVAR(currentAction) = nil;
|
GVAR(currentAction) = nil;
|
||||||
|
|
||||||
GVAR(showStats) = nil;
|
|
||||||
GVAR(currentStatPage) = nil;
|
GVAR(currentStatPage) = nil;
|
||||||
GVAR(statsInfo) = nil;
|
GVAR(statsInfo) = nil;
|
||||||
|
|
||||||
GVAR(showActions) = nil;
|
|
||||||
GVAR(currentActionPage) = nil;
|
GVAR(currentActionPage) = nil;
|
||||||
|
GVAR(actionsInfo) = nil;
|
||||||
|
|
||||||
profileNamespace setVariable [QGVAR(favorites), GVAR(favorites)];
|
profileNamespace setVariable [QGVAR(favorites), GVAR(favorites)];
|
||||||
GVAR(favoritesOnly) = nil;
|
GVAR(favoritesOnly) = nil;
|
||||||
|
@ -74,12 +74,11 @@ GVAR(currentInsignia) = GVAR(center) call BIS_fnc_getUnitInsignia;
|
|||||||
GVAR(currentAction) = "Stand";
|
GVAR(currentAction) = "Stand";
|
||||||
GVAR(shiftState) = false;
|
GVAR(shiftState) = false;
|
||||||
|
|
||||||
GVAR(showStats) = true;
|
|
||||||
GVAR(currentStatPage) = 0;
|
GVAR(currentStatPage) = 0;
|
||||||
GVAR(statsInfo) = [true, controlNull, nil, nil];
|
GVAR(statsInfo) = [true, controlNull, nil, nil];
|
||||||
|
|
||||||
GVAR(showActions) = true;
|
|
||||||
GVAR(currentActionPage) = 0;
|
GVAR(currentActionPage) = 0;
|
||||||
|
GVAR(actionsInfo) = [controlNull, nil, nil];
|
||||||
|
|
||||||
// Update current item list
|
// Update current item list
|
||||||
call FUNC(updateCurrentItemsList);
|
call FUNC(updateCurrentItemsList);
|
||||||
|
@ -67,7 +67,9 @@ if (!_primaryNVGSupported && {(_opticsModes select {_x select 1}) isEqualTo _opt
|
|||||||
_primaryNVGSupported = true;
|
_primaryNVGSupported = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
if (_primaryNVGIntegrated) exitWith {LLSTRING(statVisionMode_IntPrim)};
|
if (_primaryTiIntegrated && _primaryNVGIntegrated) exitWith {LLSTRING(statVisionMode_intPrimTi)};
|
||||||
|
if (_primaryTiIntegrated) exitWith {LLSTRING(statVisionMode_ti)};
|
||||||
|
if (_primaryNVGIntegrated) exitWith {LLSTRING(statVisionMode_intPrim)};
|
||||||
if (_primaryNVGSupported) exitWith {LLSTRING(statVisionMode_supPrim)};
|
if (_primaryNVGSupported) exitWith {LLSTRING(statVisionMode_supPrim)};
|
||||||
if (_secondaryNVGSupported) exitWith {LLSTRING(statVisionMode_supSec)};
|
if (_secondaryNVGSupported) exitWith {LLSTRING(statVisionMode_supSec)};
|
||||||
|
|
||||||
|
@ -1223,7 +1223,7 @@
|
|||||||
<Czech>Vedlejší část hledí podporuje</Czech>
|
<Czech>Vedlejší část hledí podporuje</Czech>
|
||||||
<Korean>보조무기 지원여부</Korean>
|
<Korean>보조무기 지원여부</Korean>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Arsenal_statVisionMode_IntPrim">
|
<Key ID="STR_ACE_Arsenal_statVisionMode_intPrim">
|
||||||
<English>Primary integrated</English>
|
<English>Primary integrated</English>
|
||||||
<Spanish>Primaria integrada</Spanish>
|
<Spanish>Primaria integrada</Spanish>
|
||||||
<German>Primär Integriert</German>
|
<German>Primär Integriert</German>
|
||||||
@ -1238,6 +1238,12 @@
|
|||||||
<Czech>Integrováno do hlavní části hledí</Czech>
|
<Czech>Integrováno do hlavní části hledí</Czech>
|
||||||
<Korean>주무기 내장여부</Korean>
|
<Korean>주무기 내장여부</Korean>
|
||||||
</Key>
|
</Key>
|
||||||
|
<Key ID="STR_ACE_Arsenal_statVisionMode_ti">
|
||||||
|
<English>Thermal integrated</English>
|
||||||
|
</Key>
|
||||||
|
<Key ID="STR_ACE_Arsenal_statVisionMode_intPrimTi">
|
||||||
|
<English>Thermal & Primary integrated</English>
|
||||||
|
</Key>
|
||||||
<Key ID="STR_ACE_Arsenal_statVisionMode_NoSup">
|
<Key ID="STR_ACE_Arsenal_statVisionMode_NoSup">
|
||||||
<English>Not Supported</English>
|
<English>Not Supported</English>
|
||||||
<Spanish>No soportada</Spanish>
|
<Spanish>No soportada</Spanish>
|
||||||
|
@ -29,7 +29,7 @@
|
|||||||
["blockRadio", false, [QEGVAR(captives,Handcuffed), QEGVAR(captives,Surrendered), "ace_unconscious"]] call FUNC(statusEffect_addType);
|
["blockRadio", false, [QEGVAR(captives,Handcuffed), QEGVAR(captives,Surrendered), "ace_unconscious"]] call FUNC(statusEffect_addType);
|
||||||
["blockSpeaking", false, ["ace_unconscious"]] call FUNC(statusEffect_addType);
|
["blockSpeaking", false, ["ace_unconscious"]] call FUNC(statusEffect_addType);
|
||||||
["disableWeaponAssembly", false, ["ace_common", "ace_common_lockVehicle", "ace_csw"]] call FUNC(statusEffect_addType);
|
["disableWeaponAssembly", false, ["ace_common", "ace_common_lockVehicle", "ace_csw"]] call FUNC(statusEffect_addType);
|
||||||
["lockInventory", true, []] call FUNC(statusEffect_addType);
|
["lockInventory", true, [], true] call FUNC(statusEffect_addType);
|
||||||
|
|
||||||
[QGVAR(forceWalk), {
|
[QGVAR(forceWalk), {
|
||||||
params ["_object", "_set"];
|
params ["_object", "_set"];
|
||||||
|
@ -32,6 +32,7 @@ ACE_COUNTERS = [];
|
|||||||
|
|
||||||
GVAR(statusEffect_Names) = [];
|
GVAR(statusEffect_Names) = [];
|
||||||
GVAR(statusEffect_isGlobal) = [];
|
GVAR(statusEffect_isGlobal) = [];
|
||||||
|
GVAR(statusEffect_sendJIP) = [];
|
||||||
|
|
||||||
GVAR(setHearingCapabilityMap) = [];
|
GVAR(setHearingCapabilityMap) = [];
|
||||||
|
|
||||||
|
@ -17,4 +17,4 @@
|
|||||||
|
|
||||||
params [["_vehicle", objNull, [objNull]]];
|
params [["_vehicle", objNull, [objNull]]];
|
||||||
|
|
||||||
crew _vehicle select {getText (configOf _x >> "simulation") == "UAVPilot"} // return
|
(crew _vehicle) select {unitIsUAV _x} // return
|
||||||
|
@ -5,8 +5,9 @@
|
|||||||
*
|
*
|
||||||
* Arguments:
|
* Arguments:
|
||||||
* 0: Status Effect Name, this should match a corresponding event name <STRING>
|
* 0: Status Effect Name, this should match a corresponding event name <STRING>
|
||||||
* 1: Send event globaly <BOOL>
|
* 1: Send event globally <BOOL>
|
||||||
* 2: Common Effect Reaons to pre-seed durring init <ARRAY>
|
* 2: Common Effect Reaons to pre-seed durring init <ARRAY>
|
||||||
|
* 3: Send event to JIP (requires sending event globally) <BOOL>
|
||||||
*
|
*
|
||||||
* Return Value:
|
* Return Value:
|
||||||
* None
|
* None
|
||||||
@ -17,14 +18,16 @@
|
|||||||
* Public: No
|
* Public: No
|
||||||
*/
|
*/
|
||||||
|
|
||||||
params [["_name", "", [""]], ["_isGlobal", false, [false]], ["_commonReasonsArray", [], [[]]]];
|
params [["_name", "", [""]], ["_isGlobal", false, [false]], ["_commonReasonsArray", [], [[]]], ["_sendJIP", false, [false]]];
|
||||||
TRACE_3("params",_name,_isGlobal,_commonReasonsArray);
|
TRACE_3("params",_name,_isGlobal,_commonReasonsArray);
|
||||||
|
|
||||||
if (_name == "") exitWith {ERROR_1("addStatusEffect - Bad Name %1", _this)};
|
if (_name == "") exitWith {ERROR_1("addStatusEffect - Bad Name %1", _this)};
|
||||||
if (_name in GVAR(statusEffect_Names)) exitWith {WARNING_1("addStatusEffect - Effect Already Added (note, will not update global bit) %1", _this)};
|
if (_name in GVAR(statusEffect_Names)) exitWith {WARNING_1("addStatusEffect - Effect Already Added (note, will not update global bit) %1", _this)};
|
||||||
|
if (_sendJIP && !_isGlobal) exitWith {WARNING_1("addStatusEffect - Trying to add non-global JIP effect %1",_this)};
|
||||||
|
|
||||||
GVAR(statusEffect_Names) pushBack _name;
|
GVAR(statusEffect_Names) pushBack _name;
|
||||||
GVAR(statusEffect_isGlobal) pushBack _isGlobal;
|
GVAR(statusEffect_isGlobal) pushBack _isGlobal;
|
||||||
|
GVAR(statusEffect_sendJIP) pushBack _sendJIP;
|
||||||
|
|
||||||
//We add reasons at any time, but more efficenet to add all common ones at one time during init
|
//We add reasons at any time, but more efficenet to add all common ones at one time during init
|
||||||
if (isServer && {_commonReasonsArray isNotEqualTo []}) then {
|
if (isServer && {_commonReasonsArray isNotEqualTo []}) then {
|
||||||
|
@ -30,12 +30,21 @@ if (isNull _object) exitWith {};
|
|||||||
TRACE_2("checking if event is nil",_x,_effectNumber);
|
TRACE_2("checking if event is nil",_x,_effectNumber);
|
||||||
if (_effectNumber != -1) then {
|
if (_effectNumber != -1) then {
|
||||||
private _eventName = format [QGVAR(%1), _x];
|
private _eventName = format [QGVAR(%1), _x];
|
||||||
if (GVAR(statusEffect_isGlobal) select _forEachIndex) then {
|
switch (true) do {
|
||||||
TRACE_2("Sending Global Event", _object, _effectNumber);
|
case (GVAR(statusEffect_sendJIP) select _forEachIndex): {
|
||||||
[_eventName, [_object, _effectNumber]] call CBA_fnc_globalEvent;
|
TRACE_2("Sending Global JIP Event", _object, _effectNumber);
|
||||||
} else {
|
private _jipID = format [QGVAR(effect_%1_%2), _eventName, hashValue _object];
|
||||||
TRACE_2("Sending Target Event", _object, _effectNumber);
|
[_eventName, [_object, _effectNumber], _jipID] call CBA_fnc_globalEventJIP;
|
||||||
[_eventName, [_object, _effectNumber], _object] call CBA_fnc_targetEvent;
|
[_jipID, _object] call CBA_fnc_removeGlobalEventJIP;
|
||||||
|
};
|
||||||
|
case (GVAR(statusEffect_isGlobal) select _forEachIndex): {
|
||||||
|
TRACE_2("Sending Global Event", _object, _effectNumber);
|
||||||
|
[_eventName, [_object, _effectNumber]] call CBA_fnc_globalEvent;
|
||||||
|
};
|
||||||
|
default {
|
||||||
|
TRACE_2("Sending Target Event", _object, _effectNumber);
|
||||||
|
[_eventName, [_object, _effectNumber], _object] call CBA_fnc_targetEvent;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
1
addons/compat_cup_units/$PBOPREFIX$
Normal file
1
addons/compat_cup_units/$PBOPREFIX$
Normal file
@ -0,0 +1 @@
|
|||||||
|
z\ace\addons\compat_cup_units
|
87
addons/compat_cup_units/CfgWeapons.hpp
Normal file
87
addons/compat_cup_units/CfgWeapons.hpp
Normal file
@ -0,0 +1,87 @@
|
|||||||
|
#define HEARING(CLASSNAME) \
|
||||||
|
class CLASSNAME: ItemCore { \
|
||||||
|
ace_hearing_protection = 0.75; \
|
||||||
|
ace_hearing_lowerVolume = 0; \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define HEARING_PARENT(CLASSNAME,PARENT) \
|
||||||
|
class CLASSNAME: PARENT { \
|
||||||
|
ace_hearing_protection = 0.75; \
|
||||||
|
ace_hearing_lowerVolume = 0; \
|
||||||
|
}
|
||||||
|
|
||||||
|
class CfgWeapons {
|
||||||
|
class ItemCore;
|
||||||
|
class CUP_H_PMC_Beanie_Khaki;
|
||||||
|
|
||||||
|
HEARING(CUP_H_BAF_DDPM_Mk6_CREW_PRR);
|
||||||
|
HEARING(CUP_H_BAF_DPM_Mk6_CREW_PRR);
|
||||||
|
HEARING(CUP_H_BAF_MTP_Mk6_CREW_PRR);
|
||||||
|
HEARING(CUP_H_CZ_Cap_Headphones);
|
||||||
|
HEARING(CUP_H_CZ_Cap_Headphones_des);
|
||||||
|
HEARING(CUP_H_CZ_Helmet05);
|
||||||
|
HEARING(CUP_H_CZ_Helmet07);
|
||||||
|
HEARING(CUP_H_CZ_Helmet08);
|
||||||
|
HEARING(CUP_H_CZ_Helmet09);
|
||||||
|
HEARING(CUP_H_CZ_Helmet10);
|
||||||
|
HEARING(CUP_H_FR_ECH);
|
||||||
|
HEARING(CUP_H_Ger_Beret_TankCommander_Blk);
|
||||||
|
HEARING(CUP_H_Ger_Beret_TankCommander_Grn);
|
||||||
|
HEARING(CUP_H_Ger_Cap_EP_Grn1);
|
||||||
|
HEARING(CUP_H_Ger_Cap_EP_Grn2);
|
||||||
|
HEARING(CUP_H_Ger_Cap_EP_Tan1);
|
||||||
|
HEARING(CUP_H_Ger_Cap_EP_Tan2);
|
||||||
|
HEARING(CUP_H_OpsCore_Black);
|
||||||
|
HEARING(CUP_H_OpsCore_Black_SF);
|
||||||
|
HEARING(CUP_H_OpsCore_Covered_AAF);
|
||||||
|
HEARING(CUP_H_OpsCore_Covered_AAF_SF);
|
||||||
|
HEARING(CUP_H_OpsCore_Covered_Fleck);
|
||||||
|
HEARING(CUP_H_OpsCore_Covered_Fleck_SF);
|
||||||
|
HEARING(CUP_H_OpsCore_Covered_MCAM);
|
||||||
|
HEARING(CUP_H_OpsCore_Covered_MCAM_SF);
|
||||||
|
HEARING(CUP_H_OpsCore_Covered_MCAM_US);
|
||||||
|
HEARING(CUP_H_OpsCore_Covered_MCAM_US_SF);
|
||||||
|
HEARING(CUP_H_OpsCore_Covered_MTP);
|
||||||
|
HEARING(CUP_H_OpsCore_Covered_MTP_SF);
|
||||||
|
HEARING(CUP_H_OpsCore_Covered_Tigerstripe);
|
||||||
|
HEARING(CUP_H_OpsCore_Covered_Tigerstripe_SF);
|
||||||
|
HEARING(CUP_H_OpsCore_Covered_Tropen);
|
||||||
|
HEARING(CUP_H_OpsCore_Covered_Tropen_SF);
|
||||||
|
HEARING(CUP_H_OpsCore_Covered_UCP);
|
||||||
|
HEARING(CUP_H_OpsCore_Covered_UCP_SF);
|
||||||
|
HEARING(CUP_H_OpsCore_Green);
|
||||||
|
HEARING(CUP_H_OpsCore_Green_SF);
|
||||||
|
HEARING(CUP_H_OpsCore_Grey);
|
||||||
|
HEARING(CUP_H_OpsCore_Grey_SF);
|
||||||
|
HEARING(CUP_H_OpsCore_Spray);
|
||||||
|
HEARING(CUP_H_OpsCore_Spray_SF);
|
||||||
|
HEARING(CUP_H_OpsCore_Spray_US);
|
||||||
|
HEARING(CUP_H_OpsCore_Spray_US_SF);
|
||||||
|
HEARING(CUP_H_OpsCore_Tan);
|
||||||
|
HEARING(CUP_H_OpsCore_Tan_SF);
|
||||||
|
HEARING_PARENT(CUP_H_PMC_Beanie_Headphones_Khaki,CUP_H_PMC_Beanie_Khaki);
|
||||||
|
HEARING_PARENT(CUP_H_PMC_Beanie_Headphones_Black,CUP_H_PMC_Beanie_Headphones_Khaki);
|
||||||
|
HEARING_PARENT(CUP_H_PMC_Beanie_Headphones_Winter,CUP_H_PMC_Beanie_Headphones_Khaki);
|
||||||
|
HEARING(CUP_H_PMC_Cap_Back_EP_Grey);
|
||||||
|
HEARING(CUP_H_PMC_Cap_Back_EP_Tan);
|
||||||
|
HEARING(CUP_H_PMC_Cap_EP_Grey);
|
||||||
|
HEARING(CUP_H_PMC_Cap_EP_Tan);
|
||||||
|
HEARING(CUP_H_PMC_EP_Headset);
|
||||||
|
HEARING(CUP_H_USArmy_HelmetMICH_earpro);
|
||||||
|
HEARING(CUP_H_USArmy_HelmetMICH_earpro_DCU);
|
||||||
|
HEARING(CUP_H_USArmy_HelmetMICH_earpro_ess);
|
||||||
|
HEARING(CUP_H_USArmy_HelmetMICH_earpro_ess_DCU);
|
||||||
|
HEARING(CUP_H_USArmy_HelmetMICH_earpro_ess_wdl);
|
||||||
|
HEARING(CUP_H_USArmy_HelmetMICH_earpro_wdl);
|
||||||
|
HEARING(CUP_H_USArmy_Helmet_ECH1_Black);
|
||||||
|
HEARING(CUP_H_USArmy_Helmet_ECH1_Green);
|
||||||
|
HEARING(CUP_H_USArmy_Helmet_ECH1_Sand);
|
||||||
|
HEARING(CUP_H_USArmy_Helmet_ECH2_Black);
|
||||||
|
HEARING(CUP_H_USArmy_Helmet_ECH2_GREEN);
|
||||||
|
HEARING(CUP_H_USArmy_Helmet_ECH2_Sand);
|
||||||
|
HEARING(CUP_H_USMC_Crew_Helmet);
|
||||||
|
HEARING(CUP_H_USMC_MICH2000_DEF_DES);
|
||||||
|
HEARING(CUP_H_USMC_MICH2000_DEF_ESS_DES);
|
||||||
|
HEARING(CUP_H_USMC_MICH2000_DEF_ESS_WDL);
|
||||||
|
HEARING(CUP_H_USMC_MICH2000_DEF_WDL);
|
||||||
|
};
|
@ -0,0 +1,86 @@
|
|||||||
|
class CfgVehicles {
|
||||||
|
class SoldierWB;
|
||||||
|
class Civilian_F;
|
||||||
|
|
||||||
|
class CUP_BAF_Soldier_DPM_Base: SoldierWB {
|
||||||
|
modelSides[] = {6};
|
||||||
|
};
|
||||||
|
class CUP_BAF_Soldier_DDPM_Base: SoldierWB {
|
||||||
|
modelSides[] = {6};
|
||||||
|
};
|
||||||
|
class CUP_BAF_Soldier_MTP_Base: SoldierWB {
|
||||||
|
modelSides[] = {6};
|
||||||
|
};
|
||||||
|
class CUP_Creatures_Military_GER_Soldier_Base: SoldierWB {
|
||||||
|
modelSides[] = {6};
|
||||||
|
};
|
||||||
|
class CUP_Creatures_Military_NAPA_Soldier_Base: SoldierWB {
|
||||||
|
modelSides[] = {6};
|
||||||
|
};
|
||||||
|
class CUP_Creatures_Military_PMC_Soldier_Base: SoldierWB {
|
||||||
|
modelSides[] = {6};
|
||||||
|
};
|
||||||
|
class CUP_Creatures_Military_PMC_Soldier_Winter_Base: SoldierWB {
|
||||||
|
modelSides[] = {6};
|
||||||
|
};
|
||||||
|
class CUP_Creatures_Military_RUS_Soldier_Base: SoldierWB {
|
||||||
|
modelSides[] = {6};
|
||||||
|
};
|
||||||
|
class CUP_Creatures_Military_TK_Soldier_Base: SoldierWB {
|
||||||
|
modelSides[] = {6};
|
||||||
|
};
|
||||||
|
class CUP_Creatures_Military_TKI_Insurgent_Base: SoldierWB {
|
||||||
|
modelSides[] = {6};
|
||||||
|
};
|
||||||
|
class CUP_Creatures_Military_TKG_Guerrilla_Base: SoldierWB {
|
||||||
|
modelSides[] = {6};
|
||||||
|
};
|
||||||
|
class CUP_Creatures_Military_USMC_Soldier_Base: SoldierWB {
|
||||||
|
modelSides[] = {6};
|
||||||
|
};
|
||||||
|
class CUP_Creatures_Military_FR_Soldier_Base: SoldierWB {
|
||||||
|
modelSides[] = {6};
|
||||||
|
};
|
||||||
|
class CUP_Creatures_Civil_Chernarus_Base: Civilian_F {
|
||||||
|
modelSides[] = {6};
|
||||||
|
};
|
||||||
|
class CUP_Creatures_Civil_Takistan_Base: Civilian_F {
|
||||||
|
modelSides[] = {6};
|
||||||
|
};
|
||||||
|
class CUP_Creatures_Military_ACR_Soldier_Base: SoldierWB {
|
||||||
|
modelSides[] = {6};
|
||||||
|
};
|
||||||
|
class CUP_Creatures_Military_CDF_Soldier_Base: SoldierWB {
|
||||||
|
modelSides[] = {6};
|
||||||
|
};
|
||||||
|
class CUP_Creatures_Military_UNO_Soldier_Base: SoldierWB {
|
||||||
|
modelSides[] = {6};
|
||||||
|
};
|
||||||
|
class CUP_Creatures_Military_OPFINS_Soldier_Base: SoldierWB {
|
||||||
|
modelSides[] = {6};
|
||||||
|
};
|
||||||
|
class CUP_Creatures_Military_RACS_Soldier_Base: SoldierWB {
|
||||||
|
modelSides[] = {6};
|
||||||
|
};
|
||||||
|
class CUP_Creatures_Military_SLA_Soldier_Base: SoldierWB {
|
||||||
|
modelSides[] = {6};
|
||||||
|
};
|
||||||
|
class CUP_Creatures_Military_USA_Soldier_ACU_Base: SoldierWB {
|
||||||
|
modelSides[] = {6};
|
||||||
|
};
|
||||||
|
class CUP_Creatures_Military_USA_Soldier_Base: SoldierWB {
|
||||||
|
modelSides[] = {6};
|
||||||
|
};
|
||||||
|
class CUP_Creatures_Military_HIL_Reservist_Base: SoldierWB {
|
||||||
|
modelSides[] = {6};
|
||||||
|
};
|
||||||
|
class CUP_Creatures_Military_HIL_Recon_Base: SoldierWB {
|
||||||
|
modelSides[] = {6};
|
||||||
|
};
|
||||||
|
class CUP_Creatures_Military_HIL_Man_Base: SoldierWB {
|
||||||
|
modelSides[] = {6};
|
||||||
|
};
|
||||||
|
class CUP_Creatures_Military_HIL_SF_Base: SoldierWB {
|
||||||
|
modelSides[] = {6};
|
||||||
|
};
|
||||||
|
};
|
@ -0,0 +1,21 @@
|
|||||||
|
#include "script_component.hpp"
|
||||||
|
|
||||||
|
class CfgPatches {
|
||||||
|
class SUBADDON {
|
||||||
|
name = COMPONENT_NAME;
|
||||||
|
units[] = {};
|
||||||
|
weapons[] = {};
|
||||||
|
requiredVersion = REQUIRED_VERSION;
|
||||||
|
requiredAddons[] = {
|
||||||
|
"CUP_Creatures_People_LoadOrder",
|
||||||
|
"ace_nouniformrestrictions"
|
||||||
|
};
|
||||||
|
skipWhenMissingDependencies = 1;
|
||||||
|
author = ECSTRING(common,ACETeam);
|
||||||
|
authors[] = {"Mike", "Jonpas"};
|
||||||
|
url = ECSTRING(main,URL);
|
||||||
|
VERSION_CONFIG;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
#include "CfgVehicles.hpp"
|
@ -0,0 +1,3 @@
|
|||||||
|
#define SUBCOMPONENT nouniformrestrictions
|
||||||
|
#define SUBCOMPONENT_BEAUTIFIED No Uniform Restrictions
|
||||||
|
#include "..\script_component.hpp"
|
18
addons/compat_cup_units/config.cpp
Normal file
18
addons/compat_cup_units/config.cpp
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
#include "script_component.hpp"
|
||||||
|
|
||||||
|
class CfgPatches {
|
||||||
|
class ADDON {
|
||||||
|
name = COMPONENT_NAME;
|
||||||
|
units[] = {};
|
||||||
|
weapons[] = {};
|
||||||
|
requiredVersion = REQUIRED_VERSION;
|
||||||
|
requiredAddons[] = {"CUP_Creatures_People_LoadOrder"};
|
||||||
|
skipWhenMissingDependencies = 1;
|
||||||
|
author = ECSTRING(common,ACETeam);
|
||||||
|
authors[] = {"Mike", "Jonpas"};
|
||||||
|
url = ECSTRING(main,URL);
|
||||||
|
VERSION_CONFIG;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
#include "CfgWeapons.hpp"
|
5
addons/compat_cup_units/script_component.hpp
Normal file
5
addons/compat_cup_units/script_component.hpp
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
#define COMPONENT compat_cup_units
|
||||||
|
#define COMPONENT_BEAUTIFIED CUP Units Compatibility
|
||||||
|
|
||||||
|
#include "\z\ace\addons\main\script_mod.hpp"
|
||||||
|
#include "\z\ace\addons\main\script_macros.hpp"
|
@ -36,7 +36,7 @@ _vehicle setVariable [QGVAR(isCookingOff), true, true];
|
|||||||
// limit maximum value of intensity to prevent very long cook-off times
|
// limit maximum value of intensity to prevent very long cook-off times
|
||||||
_intensity = _intensity min _maxIntensity;
|
_intensity = _intensity min _maxIntensity;
|
||||||
|
|
||||||
private _config = _vehicle call CBA_fnc_getObjectConfig;
|
private _config = configOf _vehicle;
|
||||||
private _positions = getArray (_config >> QGVAR(cookoffSelections)) select {(_vehicle selectionPosition _x) isNotEqualTo [0,0,0]};
|
private _positions = getArray (_config >> QGVAR(cookoffSelections)) select {(_vehicle selectionPosition _x) isNotEqualTo [0,0,0]};
|
||||||
|
|
||||||
if (_positions isEqualTo []) then {
|
if (_positions isEqualTo []) then {
|
||||||
|
@ -40,7 +40,7 @@ if (isServer) then {
|
|||||||
if (_ring) then {
|
if (_ring) then {
|
||||||
private _intensity = 6;
|
private _intensity = 6;
|
||||||
private _radius = 1.5 * ((boundingBoxReal _obj) select 2);
|
private _radius = 1.5 * ((boundingBoxReal _obj) select 2);
|
||||||
[QEGVAR(fire,addFireSource), [_obj, _radius, _intensity, _obj]] call CBA_fnc_localEvent;
|
[QEGVAR(fire,addFireSource), [_obj, _radius, _intensity, format [QGVAR(%1), hashValue _obj]]] call CBA_fnc_localEvent;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -52,7 +52,7 @@ if (isServer) then {
|
|||||||
deleteVehicle _light;
|
deleteVehicle _light;
|
||||||
deleteVehicle _sound;
|
deleteVehicle _sound;
|
||||||
if (isServer) then {
|
if (isServer) then {
|
||||||
[QEGVAR(fire,removeFireSource), [_obj]] call CBA_fnc_localEvent;
|
[QEGVAR(fire,removeFireSource), [format [QGVAR(%1), hashValue _obj]]] call CBA_fnc_localEvent;
|
||||||
};
|
};
|
||||||
[_pfh] call CBA_fnc_removePerFrameHandler;
|
[_pfh] call CBA_fnc_removePerFrameHandler;
|
||||||
};
|
};
|
||||||
@ -198,4 +198,3 @@ if (isServer) then {
|
|||||||
];
|
];
|
||||||
|
|
||||||
}, 0, [_obj, _jet, _ring, _time, CBA_missionTime, _light, _fireSelection, _sound, _intensity]] call CBA_fnc_addPerFrameHandler;
|
}, 0, [_obj, _jet, _ring, _time, CBA_missionTime, _light, _fireSelection, _sound, _intensity]] call CBA_fnc_addPerFrameHandler;
|
||||||
|
|
||||||
|
@ -20,7 +20,7 @@
|
|||||||
params ["_unit", "_target", "_claimed"];
|
params ["_unit", "_target", "_claimed"];
|
||||||
TRACE_3("params",_unit,_target,_claimed);
|
TRACE_3("params",_unit,_target,_claimed);
|
||||||
|
|
||||||
if (!_claimed) exitWith {};
|
if (!_claimed) exitWith { WARNING_1("already claimed %1",_this) };
|
||||||
|
|
||||||
// Exempt from weight check if object has override variable set
|
// Exempt from weight check if object has override variable set
|
||||||
private _weight = 0;
|
private _weight = 0;
|
||||||
|
@ -20,7 +20,7 @@
|
|||||||
params ["_unit", "_target", "_claimed"];
|
params ["_unit", "_target", "_claimed"];
|
||||||
TRACE_3("params",_unit,_target,_claimed);
|
TRACE_3("params",_unit,_target,_claimed);
|
||||||
|
|
||||||
if (!_claimed) exitWith {};
|
if (!_claimed) exitWith { WARNING_1("already claimed %1",_this) };
|
||||||
|
|
||||||
// Exempt from weight check if object has override variable set
|
// Exempt from weight check if object has override variable set
|
||||||
private _weight = 0;
|
private _weight = 0;
|
||||||
|
@ -12,8 +12,7 @@ GVAR(playerIsVirtual) = false;
|
|||||||
|
|
||||||
["unit", { // Add unit changed EH to check if player is either virtual (logic) or a UAV AI
|
["unit", { // Add unit changed EH to check if player is either virtual (logic) or a UAV AI
|
||||||
params ["_unit"];
|
params ["_unit"];
|
||||||
GVAR(playerIsVirtual) = ((getNumber (configOf _unit >> "isPlayableLogic")) == 1) ||
|
GVAR(playerIsVirtual) = unitIsUAV _unit || {(getNumber (configOf _unit >> "isPlayableLogic")) == 1};
|
||||||
{(getText (configOf _unit >> "simulation")) == "UAVPilot"};
|
|
||||||
TRACE_3("unit changed",_unit,typeOf _unit,GVAR(playerIsVirtual));
|
TRACE_3("unit changed",_unit,typeOf _unit,GVAR(playerIsVirtual));
|
||||||
}, true] call CBA_fnc_addPlayerEventHandler;
|
}, true] call CBA_fnc_addPlayerEventHandler;
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
#define MAJOR 3
|
#define MAJOR 3
|
||||||
#define MINOR 16
|
#define MINOR 16
|
||||||
#define PATCHLVL 1
|
#define PATCHLVL 3
|
||||||
#define BUILD 74
|
#define BUILD 79
|
||||||
|
@ -14,7 +14,7 @@ class CfgWeapons {
|
|||||||
mapSize = 0.2;
|
mapSize = 0.2;
|
||||||
|
|
||||||
class ItemInfo: CBA_MiscItem_ItemInfo {
|
class ItemInfo: CBA_MiscItem_ItemInfo {
|
||||||
mass = 1;
|
mass = 0.5;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -16,9 +16,8 @@
|
|||||||
while {(_allHitPoints param [0, ""]) select [0,1] == "#"} do { WARNING_1("Ignoring Reflector hitpoint %1", _allHitPoints deleteAt 0); };
|
while {(_allHitPoints param [0, ""]) select [0,1] == "#"} do { WARNING_1("Ignoring Reflector hitpoint %1", _allHitPoints deleteAt 0); };
|
||||||
|
|
||||||
if (_allHitPoints param [0, ""] != "ACE_HDBracket") then {
|
if (_allHitPoints param [0, ""] != "ACE_HDBracket") then {
|
||||||
private _config = configOf _unit;
|
if (unitIsUAV _unit) exitWith {TRACE_1("ignore UAV AI",typeOf _unit);};
|
||||||
if (getText (_config >> "simulation") == "UAVPilot") exitWith {TRACE_1("ignore UAV AI",typeOf _unit);};
|
if (getNumber ((configOf _unit) >> "isPlayableLogic") == 1) exitWith {TRACE_1("ignore logic unit",typeOf _unit)};
|
||||||
if (getNumber (_config >> "isPlayableLogic") == 1) exitWith {TRACE_1("ignore logic unit",typeOf _unit)};
|
|
||||||
ERROR_1("Bad hitpoints for unit type ""%1""",typeOf _unit);
|
ERROR_1("Bad hitpoints for unit type ""%1""",typeOf _unit);
|
||||||
} else {
|
} else {
|
||||||
// Calling this function inside curly brackets allows the usage of
|
// Calling this function inside curly brackets allows the usage of
|
||||||
|
@ -32,6 +32,11 @@ if (_hitPoint isEqualTo "") then {
|
|||||||
if !(isDamageAllowed _unit && {_unit getVariable [QEGVAR(medical,allowDamage), true]}) exitWith {_oldDamage};
|
if !(isDamageAllowed _unit && {_unit getVariable [QEGVAR(medical,allowDamage), true]}) exitWith {_oldDamage};
|
||||||
|
|
||||||
private _newDamage = _damage - _oldDamage;
|
private _newDamage = _damage - _oldDamage;
|
||||||
|
|
||||||
|
// Happens occasionally for vehiclehit events (see line 80 onwards)
|
||||||
|
// Just exit early to save some frametime
|
||||||
|
if (_newDamage == 0 && {_hitpoint isNotEqualTo "ace_hdbracket"}) exitWith {_oldDamage};
|
||||||
|
|
||||||
// Get scaled armor value of hitpoint and calculate damage before armor
|
// Get scaled armor value of hitpoint and calculate damage before armor
|
||||||
// We scale using passThrough to handle explosive-resistant armor properly (#9063)
|
// We scale using passThrough to handle explosive-resistant armor properly (#9063)
|
||||||
// We need realDamage to determine which limb was hit correctly
|
// We need realDamage to determine which limb was hit correctly
|
||||||
|
@ -12,9 +12,8 @@ PREP_RECOMPILE_END;
|
|||||||
["CAManBase", "init", {
|
["CAManBase", "init", {
|
||||||
params ["_unit"];
|
params ["_unit"];
|
||||||
|
|
||||||
private _config = configOf _unit;
|
if (unitIsUAV _unit) exitWith {TRACE_1("ignore UAV AI",typeOf _unit);};
|
||||||
if (getText (_config >> "simulation") == "UAVPilot") exitWith {TRACE_1("ignore UAV AI",typeOf _unit);};
|
if (getNumber ((configOf _unit) >> "isPlayableLogic") == 1) exitWith {TRACE_1("ignore logic unit",typeOf _unit)};
|
||||||
if (getNumber (_config >> "isPlayableLogic") == 1) exitWith {TRACE_1("ignore logic unit",typeOf _unit)};
|
|
||||||
|
|
||||||
// Hopefully this EH gets added first as it can only effect other EH called after it
|
// Hopefully this EH gets added first as it can only effect other EH called after it
|
||||||
private _ehIndex = _unit addEventHandler ["Killed", {_this call FUNC(handleKilled)}];
|
private _ehIndex = _unit addEventHandler ["Killed", {_this call FUNC(handleKilled)}];
|
||||||
|
@ -19,7 +19,7 @@ if !(hasInterface) exitWith {};
|
|||||||
};
|
};
|
||||||
|
|
||||||
// Exit if third person view is not available
|
// Exit if third person view is not available
|
||||||
if (difficultyOption "thirdPersonView" == 0) exitWith {
|
if (difficultyOption "thirdPersonView" != 1) exitWith {
|
||||||
WARNING("View Restriction is enabled, but 3rd person is disabled with server difficulty.");
|
WARNING("View Restriction is enabled, but 3rd person is disabled with server difficulty.");
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -9,8 +9,8 @@ ace:
|
|||||||
version:
|
version:
|
||||||
major: 3
|
major: 3
|
||||||
minor: 16
|
minor: 16
|
||||||
patch: 1
|
patch: 3
|
||||||
build: 74
|
build: 79
|
||||||
|
|
||||||
|
|
||||||
markdown: kramdown
|
markdown: kramdown
|
||||||
|
@ -9,8 +9,8 @@ ace:
|
|||||||
version:
|
version:
|
||||||
major: 3
|
major: 3
|
||||||
minor: 16
|
minor: 16
|
||||||
patch: 1
|
patch: 3
|
||||||
build: 74
|
build: 79
|
||||||
|
|
||||||
|
|
||||||
markdown: kramdown
|
markdown: kramdown
|
||||||
|
Loading…
Reference in New Issue
Block a user