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">
|
||||
<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 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">
|
||||
|
@ -12,57 +12,10 @@ PREP_RECOMPILE_END;
|
||||
#include "initSettings.inc.sqf"
|
||||
|
||||
// Arsenal events
|
||||
[QGVAR(statsToggle), {
|
||||
params ["_display", "_showStats"];
|
||||
|
||||
private _statsCtrlGroupCtrl = _display displayCtrl IDC_statsBox;
|
||||
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;
|
||||
[QGVAR(statsChangePage), LINKFUNC(buttonStatsPage)] call CBA_fnc_addEventHandler;
|
||||
[QGVAR(displayStats), LINKFUNC(handleStats)] call CBA_fnc_addEventHandler;
|
||||
[QGVAR(actionsChangePage), LINKFUNC(buttonActionsPage)] call CBA_fnc_addEventHandler;
|
||||
[QGVAR(displayActions), LINKFUNC(handleActions)] call CBA_fnc_addEventHandler;
|
||||
|
||||
call FUNC(compileActions);
|
||||
call FUNC(compileSorts);
|
||||
@ -86,5 +39,4 @@ call FUNC(compileStats);
|
||||
// Setup Tools tab
|
||||
[keys (uiNamespace getVariable [QGVAR(configItemsTools), createHashMap]), LLSTRING(toolsTab), TOOLS_TAB_ICON, -1, true] call FUNC(addRightPanelButton);
|
||||
|
||||
|
||||
ADDON = true;
|
||||
|
@ -2,12 +2,12 @@
|
||||
#include "..\defines.hpp"
|
||||
/*
|
||||
* Author: Brett Mayson
|
||||
* Handles the previous / next page buttons for actions
|
||||
* Handles the previous / next page buttons for actions.
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Arsenal display <DISPLAY>
|
||||
* 1: Actions control <CONTROL>
|
||||
* 2: Previous or next <BOOL> (false = previous, true = next)
|
||||
* 1: Actions page <CONTROL>
|
||||
* 2: Previous (false) or next (true) page <BOOL>
|
||||
*
|
||||
* Return Value:
|
||||
* None
|
||||
@ -23,4 +23,5 @@ if !(ctrlEnabled _control) exitWith {};
|
||||
GVAR(currentActionPage) = GVAR(currentActionPage) + ([-1, 1] select _nextPage);
|
||||
|
||||
GVAR(actionsInfo) params ["_panelControl", "_curSel", "_itemCfg"];
|
||||
|
||||
[QGVAR(displayActions), [_display, _panelControl, _curSel, _itemCfg]] call CBA_fnc_localEvent;
|
||||
|
@ -52,10 +52,20 @@ private _ctrl = controlNull;
|
||||
IDC_buttonCurrentMag2,
|
||||
IDC_iconBackgroundCurrentMag,
|
||||
IDC_iconBackgroundCurrentMag2,
|
||||
IDC_statsBox,
|
||||
IDC_statsPreviousPage,
|
||||
IDC_statsNextPage,
|
||||
IDC_statsCurrentPage
|
||||
IDC_statsCurrentPage,
|
||||
IDC_actionsBox,
|
||||
IDC_actionsPreviousPage,
|
||||
IDC_actionsNextPage,
|
||||
IDC_actionsCurrentPage
|
||||
];
|
||||
|
||||
[QGVAR(statsToggle), [_display, _showToggle]] call CBA_fnc_localEvent;
|
||||
[QGVAR(actionsToggle), [_display, _showToggle]] call CBA_fnc_localEvent;
|
||||
if (!_showToggle) exitWith {};
|
||||
|
||||
// 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);
|
||||
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;
|
||||
|
@ -115,12 +115,11 @@ GVAR(currentVoice) = nil;
|
||||
GVAR(currentInsignia) = nil;
|
||||
GVAR(currentAction) = nil;
|
||||
|
||||
GVAR(showStats) = nil;
|
||||
GVAR(currentStatPage) = nil;
|
||||
GVAR(statsInfo) = nil;
|
||||
|
||||
GVAR(showActions) = nil;
|
||||
GVAR(currentActionPage) = nil;
|
||||
GVAR(actionsInfo) = nil;
|
||||
|
||||
profileNamespace setVariable [QGVAR(favorites), GVAR(favorites)];
|
||||
GVAR(favoritesOnly) = nil;
|
||||
|
@ -74,12 +74,11 @@ GVAR(currentInsignia) = GVAR(center) call BIS_fnc_getUnitInsignia;
|
||||
GVAR(currentAction) = "Stand";
|
||||
GVAR(shiftState) = false;
|
||||
|
||||
GVAR(showStats) = true;
|
||||
GVAR(currentStatPage) = 0;
|
||||
GVAR(statsInfo) = [true, controlNull, nil, nil];
|
||||
|
||||
GVAR(showActions) = true;
|
||||
GVAR(currentActionPage) = 0;
|
||||
GVAR(actionsInfo) = [controlNull, nil, nil];
|
||||
|
||||
// Update current item list
|
||||
call FUNC(updateCurrentItemsList);
|
||||
|
@ -67,7 +67,9 @@ if (!_primaryNVGSupported && {(_opticsModes select {_x select 1}) isEqualTo _opt
|
||||
_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 (_secondaryNVGSupported) exitWith {LLSTRING(statVisionMode_supSec)};
|
||||
|
||||
|
@ -1223,7 +1223,7 @@
|
||||
<Czech>Vedlejší část hledí podporuje</Czech>
|
||||
<Korean>보조무기 지원여부</Korean>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Arsenal_statVisionMode_IntPrim">
|
||||
<Key ID="STR_ACE_Arsenal_statVisionMode_intPrim">
|
||||
<English>Primary integrated</English>
|
||||
<Spanish>Primaria integrada</Spanish>
|
||||
<German>Primär Integriert</German>
|
||||
@ -1238,6 +1238,12 @@
|
||||
<Czech>Integrováno do hlavní části hledí</Czech>
|
||||
<Korean>주무기 내장여부</Korean>
|
||||
</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">
|
||||
<English>Not Supported</English>
|
||||
<Spanish>No soportada</Spanish>
|
||||
|
@ -29,7 +29,7 @@
|
||||
["blockRadio", false, [QEGVAR(captives,Handcuffed), QEGVAR(captives,Surrendered), "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);
|
||||
["lockInventory", true, []] call FUNC(statusEffect_addType);
|
||||
["lockInventory", true, [], true] call FUNC(statusEffect_addType);
|
||||
|
||||
[QGVAR(forceWalk), {
|
||||
params ["_object", "_set"];
|
||||
|
@ -32,6 +32,7 @@ ACE_COUNTERS = [];
|
||||
|
||||
GVAR(statusEffect_Names) = [];
|
||||
GVAR(statusEffect_isGlobal) = [];
|
||||
GVAR(statusEffect_sendJIP) = [];
|
||||
|
||||
GVAR(setHearingCapabilityMap) = [];
|
||||
|
||||
|
@ -17,4 +17,4 @@
|
||||
|
||||
params [["_vehicle", objNull, [objNull]]];
|
||||
|
||||
crew _vehicle select {getText (configOf _x >> "simulation") == "UAVPilot"} // return
|
||||
(crew _vehicle) select {unitIsUAV _x} // return
|
||||
|
@ -5,8 +5,9 @@
|
||||
*
|
||||
* Arguments:
|
||||
* 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>
|
||||
* 3: Send event to JIP (requires sending event globally) <BOOL>
|
||||
*
|
||||
* Return Value:
|
||||
* None
|
||||
@ -17,14 +18,16 @@
|
||||
* Public: No
|
||||
*/
|
||||
|
||||
params [["_name", "", [""]], ["_isGlobal", false, [false]], ["_commonReasonsArray", [], [[]]]];
|
||||
params [["_name", "", [""]], ["_isGlobal", false, [false]], ["_commonReasonsArray", [], [[]]], ["_sendJIP", false, [false]]];
|
||||
TRACE_3("params",_name,_isGlobal,_commonReasonsArray);
|
||||
|
||||
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 (_sendJIP && !_isGlobal) exitWith {WARNING_1("addStatusEffect - Trying to add non-global JIP effect %1",_this)};
|
||||
|
||||
GVAR(statusEffect_Names) pushBack _name;
|
||||
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
|
||||
if (isServer && {_commonReasonsArray isNotEqualTo []}) then {
|
||||
|
@ -30,12 +30,21 @@ if (isNull _object) exitWith {};
|
||||
TRACE_2("checking if event is nil",_x,_effectNumber);
|
||||
if (_effectNumber != -1) then {
|
||||
private _eventName = format [QGVAR(%1), _x];
|
||||
if (GVAR(statusEffect_isGlobal) select _forEachIndex) then {
|
||||
TRACE_2("Sending Global Event", _object, _effectNumber);
|
||||
[_eventName, [_object, _effectNumber]] call CBA_fnc_globalEvent;
|
||||
} else {
|
||||
TRACE_2("Sending Target Event", _object, _effectNumber);
|
||||
[_eventName, [_object, _effectNumber], _object] call CBA_fnc_targetEvent;
|
||||
switch (true) do {
|
||||
case (GVAR(statusEffect_sendJIP) select _forEachIndex): {
|
||||
TRACE_2("Sending Global JIP Event", _object, _effectNumber);
|
||||
private _jipID = format [QGVAR(effect_%1_%2), _eventName, hashValue _object];
|
||||
[_eventName, [_object, _effectNumber], _jipID] call CBA_fnc_globalEventJIP;
|
||||
[_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
|
||||
_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]};
|
||||
|
||||
if (_positions isEqualTo []) then {
|
||||
|
@ -40,7 +40,7 @@ if (isServer) then {
|
||||
if (_ring) then {
|
||||
private _intensity = 6;
|
||||
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 _sound;
|
||||
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;
|
||||
};
|
||||
@ -198,4 +198,3 @@ if (isServer) then {
|
||||
];
|
||||
|
||||
}, 0, [_obj, _jet, _ring, _time, CBA_missionTime, _light, _fireSelection, _sound, _intensity]] call CBA_fnc_addPerFrameHandler;
|
||||
|
||||
|
@ -20,7 +20,7 @@
|
||||
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
|
||||
private _weight = 0;
|
||||
|
@ -20,7 +20,7 @@
|
||||
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
|
||||
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
|
||||
params ["_unit"];
|
||||
GVAR(playerIsVirtual) = ((getNumber (configOf _unit >> "isPlayableLogic")) == 1) ||
|
||||
{(getText (configOf _unit >> "simulation")) == "UAVPilot"};
|
||||
GVAR(playerIsVirtual) = unitIsUAV _unit || {(getNumber (configOf _unit >> "isPlayableLogic")) == 1};
|
||||
TRACE_3("unit changed",_unit,typeOf _unit,GVAR(playerIsVirtual));
|
||||
}, true] call CBA_fnc_addPlayerEventHandler;
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
#define MAJOR 3
|
||||
#define MINOR 16
|
||||
#define PATCHLVL 1
|
||||
#define BUILD 74
|
||||
#define PATCHLVL 3
|
||||
#define BUILD 79
|
||||
|
@ -14,7 +14,7 @@ class CfgWeapons {
|
||||
mapSize = 0.2;
|
||||
|
||||
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); };
|
||||
|
||||
if (_allHitPoints param [0, ""] != "ACE_HDBracket") then {
|
||||
private _config = configOf _unit;
|
||||
if (getText (_config >> "simulation") == "UAVPilot") exitWith {TRACE_1("ignore UAV AI",typeOf _unit);};
|
||||
if (getNumber (_config >> "isPlayableLogic") == 1) exitWith {TRACE_1("ignore logic unit",typeOf _unit)};
|
||||
if (unitIsUAV _unit) exitWith {TRACE_1("ignore UAV AI",typeOf _unit);};
|
||||
if (getNumber ((configOf _unit) >> "isPlayableLogic") == 1) exitWith {TRACE_1("ignore logic unit",typeOf _unit)};
|
||||
ERROR_1("Bad hitpoints for unit type ""%1""",typeOf _unit);
|
||||
} else {
|
||||
// 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};
|
||||
|
||||
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
|
||||
// We scale using passThrough to handle explosive-resistant armor properly (#9063)
|
||||
// We need realDamage to determine which limb was hit correctly
|
||||
|
@ -12,9 +12,8 @@ PREP_RECOMPILE_END;
|
||||
["CAManBase", "init", {
|
||||
params ["_unit"];
|
||||
|
||||
private _config = configOf _unit;
|
||||
if (getText (_config >> "simulation") == "UAVPilot") exitWith {TRACE_1("ignore UAV AI",typeOf _unit);};
|
||||
if (getNumber (_config >> "isPlayableLogic") == 1) exitWith {TRACE_1("ignore logic unit",typeOf _unit)};
|
||||
if (unitIsUAV _unit) exitWith {TRACE_1("ignore UAV AI",typeOf _unit);};
|
||||
if (getNumber ((configOf _unit) >> "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
|
||||
private _ehIndex = _unit addEventHandler ["Killed", {_this call FUNC(handleKilled)}];
|
||||
|
@ -19,7 +19,7 @@ if !(hasInterface) exitWith {};
|
||||
};
|
||||
|
||||
// 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.");
|
||||
};
|
||||
|
||||
|
@ -9,8 +9,8 @@ ace:
|
||||
version:
|
||||
major: 3
|
||||
minor: 16
|
||||
patch: 1
|
||||
build: 74
|
||||
patch: 3
|
||||
build: 79
|
||||
|
||||
|
||||
markdown: kramdown
|
||||
|
@ -9,8 +9,8 @@ ace:
|
||||
version:
|
||||
major: 3
|
||||
minor: 16
|
||||
patch: 1
|
||||
build: 74
|
||||
patch: 3
|
||||
build: 79
|
||||
|
||||
|
||||
markdown: kramdown
|
||||
|
Loading…
Reference in New Issue
Block a user