mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
Merge pull request #3020 from acemod/privatekeyword
Common code cleanup 1.54
This commit is contained in:
commit
0bc540305d
@ -80,8 +80,7 @@ if (isServer) then {
|
||||
params ["_name", "_value", "_force"];
|
||||
|
||||
if (_force) then {
|
||||
private "_settingData";
|
||||
_settingData = [_name] call FUNC(getSettingData);
|
||||
private _settingData = [_name] call FUNC(getSettingData);
|
||||
|
||||
if (_settingData isEqualTo []) exitWith {};
|
||||
|
||||
@ -162,10 +161,8 @@ QGVAR(remoteFnc) addPublicVariableEventHandler {
|
||||
// Check files, previous installed version etc.
|
||||
//////////////////////////////////////////////////
|
||||
|
||||
private ["_currentVersion", "_previousVersion"];
|
||||
|
||||
_currentVersion = getText (configFile >> "CfgPatches" >> QUOTE(ADDON) >> "version");
|
||||
_previousVersion = profileNamespace getVariable ["ACE_VersionNumberString", ""];
|
||||
private _currentVersion = getText (configFile >> "CfgPatches" >> QUOTE(ADDON) >> "version");
|
||||
private _previousVersion = profileNamespace getVariable ["ACE_VersionNumberString", ""];
|
||||
|
||||
// check previous version number from profile
|
||||
if (_currentVersion != _previousVersion) then {
|
||||
@ -269,8 +266,7 @@ GVAR(ScrollWheelFrame) = diag_frameno;
|
||||
}] call FUNC(addEventHandler);
|
||||
|
||||
// add PFH to execute event that fires when the main display (46) is created
|
||||
private "_fnc_initMainDisplayCheck";
|
||||
_fnc_initMainDisplayCheck = {
|
||||
private _fnc_initMainDisplayCheck = {
|
||||
[{
|
||||
if !(isNull findDisplay 46) then {
|
||||
// Raise ACE event locally
|
||||
@ -344,7 +340,7 @@ if (!isNil QGVAR(PreInit_playerChanged_PFHID)) then {
|
||||
BEGIN_COUNTER(stateChecker);
|
||||
|
||||
// "playerChanged" event
|
||||
private _data = call FUNC(player); // reuse one variable to reduce number of variables that have to be set to private each frame
|
||||
private _data = call FUNC(player);
|
||||
if !(_data isEqualTo ACE_player) then {
|
||||
private _oldPlayer = ACE_player;
|
||||
|
||||
|
@ -329,8 +329,7 @@ if (hasInterface) then {
|
||||
// PFH to update the ACE_player variable
|
||||
GVAR(PreInit_playerChanged_PFHID) = [{
|
||||
if !(ACE_player isEqualTo (call FUNC(player))) then {
|
||||
private ["_oldPlayer"];
|
||||
_oldPlayer = ACE_player;
|
||||
private _oldPlayer = ACE_player;
|
||||
|
||||
ACE_player = call FUNC(player);
|
||||
uiNamespace setVariable ["ACE_player", ACE_player];
|
||||
|
@ -16,15 +16,12 @@ params ["_eventType", "_event"];
|
||||
|
||||
if (_eventType == "ACEg") then {
|
||||
_event params ["_eventName", "_eventArgs"];
|
||||
GVAR(events) params ["_eventNames"];
|
||||
|
||||
private ["_eventNames", "_eventIndex"];
|
||||
|
||||
_eventNames = GVAR(events) select 0;
|
||||
_eventIndex = _eventNames find _eventName;
|
||||
private _eventIndex = _eventNames find _eventName;
|
||||
|
||||
if (_eventIndex != -1) then {
|
||||
private "_events";
|
||||
_events = (GVAR(events) select 1) select _eventIndex;
|
||||
private _events = (GVAR(events) select 1) select _eventIndex;
|
||||
|
||||
#ifdef DEBUG_EVENTS
|
||||
ACE_LOGINFO_1("* Net Event %1",_eventName);
|
||||
@ -46,9 +43,8 @@ if (_eventType == "ACEc") then {
|
||||
if (isServer) then {
|
||||
_event params ["_eventName", "_eventTargets", "_eventArgs"];
|
||||
|
||||
private ["_sentEvents", "_owner", "_serverFlagged"];
|
||||
private _sentEvents = [];
|
||||
|
||||
_sentEvents = [];
|
||||
if (!IS_ARRAY(_eventTargets)) then {
|
||||
_eventTargets = [_eventTargets];
|
||||
};
|
||||
@ -59,9 +55,11 @@ if (_eventType == "ACEc") then {
|
||||
["ACEg", ACEg] call FUNC(_handleNetEvent);
|
||||
};
|
||||
|
||||
_serverFlagged = false;
|
||||
private _serverFlagged = false;
|
||||
|
||||
{
|
||||
_owner = _x;
|
||||
private _owner = _x;
|
||||
|
||||
if (IS_OBJECT(_x)) then {
|
||||
_owner = owner _x;
|
||||
};
|
||||
|
@ -15,10 +15,8 @@
|
||||
params ["_client"];
|
||||
|
||||
{
|
||||
private ["_eventEntry", "_eventLog"];
|
||||
|
||||
_eventEntry = HASH_GET(GVAR(syncedEvents),_x);
|
||||
_eventLog = _eventEntry select 1;
|
||||
private _eventEntry = HASH_GET(GVAR(syncedEvents),_x);
|
||||
_eventEntry params ["", "_eventLog"];
|
||||
|
||||
["SEH_s", _client, [_x, _eventLog]] call FUNC(targetEvent);
|
||||
false
|
||||
|
@ -27,10 +27,8 @@ if (isServer) then {
|
||||
false
|
||||
};
|
||||
|
||||
private ["_eventEntry", "_eventLog"];
|
||||
|
||||
_eventEntry = HASH_GET(GVAR(syncedEvents),_eventName);
|
||||
_eventLog = _eventEntry select 1;
|
||||
private _eventEntry = HASH_GET(GVAR(syncedEvents),_eventName);
|
||||
_eventEntry params ["", "_eventLog"];
|
||||
|
||||
["SEH_s", _client, [_eventName, _eventLog]] call FUNC(targetEvent);
|
||||
} else {
|
||||
|
@ -21,20 +21,17 @@ if (!HASH_HASKEY(GVAR(syncedEvents),_name)) exitWith {
|
||||
false
|
||||
};
|
||||
|
||||
private ["_internalData", "_eventCode"];
|
||||
|
||||
_internalData = HASH_GET(GVAR(syncedEvents),_name);
|
||||
private _internalData = HASH_GET(GVAR(syncedEvents),_name);
|
||||
|
||||
if (isServer) then {
|
||||
// Server needs to internally log it for synchronization
|
||||
if (_ttl > -1) then {
|
||||
_internalData = HASH_GET(GVAR(syncedEvents),_name);
|
||||
|
||||
private "_eventLog";
|
||||
_eventLog = _internalData select 1;
|
||||
_internalData params ["", "_eventLog"];
|
||||
_eventLog pushBack [ACE_diagTime, _args, _ttl];
|
||||
};
|
||||
};
|
||||
|
||||
_eventCode = _internalData select 0;
|
||||
_internalData params ["_eventCode"];
|
||||
_args call _eventCode;
|
||||
|
@ -25,10 +25,8 @@ if (_statement isEqualType "") then {
|
||||
_statement = compile _statement;
|
||||
};
|
||||
|
||||
private ["_name", "_actionsVar"];
|
||||
|
||||
_name = format ["ACE_Action_%1", _action];
|
||||
_actionsVar = _unit getVariable [_name, [-1, [-1, [], []], objNull]];
|
||||
private _name = format ["ACE_Action_%1", _action];
|
||||
private _actionsVar = _unit getVariable [_name, [-1, [-1, [], []], objNull]];
|
||||
|
||||
if (_unit != _actionsVar select 2) then { // check if the unit is still valid, fixes respawn issues
|
||||
_actionsVar = [-1, [-1, [], []], objNull];
|
||||
@ -44,8 +42,7 @@ _actions pushBack [_condition, _statement];
|
||||
|
||||
// first action to add, unit needs addAction command
|
||||
if (_actionID == -1) then {
|
||||
private "_addAction";
|
||||
_addAction = call compile format [
|
||||
private _addAction = call compile format [
|
||||
"[
|
||||
'',
|
||||
{if (inputAction '%1' == 0) exitWith {}; {if (_this call (_x select 0)) then {_this call (_x select 1)}} forEach (((_this select 0) getVariable '%2') select 1 select 2)},
|
||||
|
@ -37,23 +37,19 @@ if (_statement2 isEqualType "") then {
|
||||
_statement2 = compile _statement2;
|
||||
};
|
||||
|
||||
private ["_name", "_actionsVar"];
|
||||
|
||||
_name = format ["ACE_ActionMenu_%1", _action];
|
||||
_actionsVar = _unit getVariable [_name, [-1, [], []]];
|
||||
private _name = format ["ACE_ActionMenu_%1", _action];
|
||||
private _actionsVar = _unit getVariable [_name, [-1, [], []]];
|
||||
|
||||
_actionsVar params ["_id", "_actionIDs", "_actions"];
|
||||
|
||||
_id = _id + 1;
|
||||
|
||||
private ["_nameVar", "_addAction", "_actionID"];
|
||||
|
||||
_nameVar = format ["%1_ID%2", _name, _id];
|
||||
private _nameVar = format ["%1_ID%2", _name, _id];
|
||||
missionNamespace setVariable [_nameVar, [_condition, _statement, _condition2, _statement2]];
|
||||
|
||||
_actionIDs pushBack _id;
|
||||
|
||||
_addAction = call compile format [
|
||||
private _addAction = call compile format [
|
||||
"[
|
||||
'%2',
|
||||
{if (inputAction '%1' == 0) then {if (_this call (%3 select 2)) then {_this call (%3 select 3)}} else {_this call (%3 select 1)}},
|
||||
@ -70,7 +66,7 @@ _addAction = call compile format [
|
||||
_priority
|
||||
];
|
||||
|
||||
_actionID = _unit addAction _addAction;
|
||||
private _actionID = _unit addAction _addAction;
|
||||
|
||||
_actions pushBack [_actionID, _nameVar];
|
||||
|
||||
|
@ -17,12 +17,10 @@ params ["_conditionName", "_conditionFunc"];
|
||||
|
||||
_conditionName = toLower _conditionName;
|
||||
|
||||
private ["_conditions", "_index"];
|
||||
|
||||
_conditions = missionNamespace getVariable [QGVAR(InteractionConditions), [[],[]]];
|
||||
private _conditions = missionNamespace getVariable [QGVAR(InteractionConditions), [[],[]]];
|
||||
_conditions params ["_conditionNames", "_conditionFuncs"];
|
||||
|
||||
_index = _conditionNames find _conditionName;
|
||||
private _index = _conditionNames find _conditionName;
|
||||
|
||||
if (_index == -1) then {
|
||||
_index = count _conditionNames;
|
||||
|
@ -13,8 +13,7 @@
|
||||
|
||||
disableSerialization;
|
||||
|
||||
private "_dlg";
|
||||
_dlg = ctrlParent _this;
|
||||
private _dlg = ctrlParent _this;
|
||||
|
||||
_dlg displayAddEventHandler ["unload", {
|
||||
if (_this select 1 == 1) then {
|
||||
|
@ -15,17 +15,15 @@
|
||||
|
||||
params ["_eventName", "_eventCode"];
|
||||
|
||||
private ["_eventNames", "_eventFunctions", "_eventIndex"];
|
||||
GVAR(events) params ["_eventNames"];
|
||||
|
||||
_eventNames = GVAR(events) select 0;
|
||||
_eventFunctions = [];
|
||||
_eventIndex = _eventNames find _eventName;
|
||||
private _eventFunctions = [];
|
||||
private _eventIndex = _eventNames find _eventName;
|
||||
|
||||
if (_eventIndex != -1) then {
|
||||
_eventFunctions = (GVAR(events) select 1) select _eventIndex;
|
||||
} else {
|
||||
private "_eventNameCount";
|
||||
_eventNameCount = count _eventNames;
|
||||
private _eventNameCount = count _eventNames;
|
||||
|
||||
_eventNames set [_eventNameCount, _eventName];
|
||||
(GVAR(events) select 1) set [_eventNameCount, _eventFunctions];
|
||||
|
@ -18,8 +18,7 @@ if (_statement isEqualType "") then {
|
||||
_statement = compile _statement;
|
||||
};
|
||||
|
||||
private "_actionsVar";
|
||||
_actionsVar = missionNamespace getVariable ["ACE_EventHandler_MapMarker", [-1, [], []]];
|
||||
private _actionsVar = missionNamespace getVariable ["ACE_EventHandler_MapMarker", [-1, [], []]];
|
||||
|
||||
_actionsVar params ["_id", "_actionIDs", "_actions"];
|
||||
|
||||
|
@ -19,8 +19,7 @@ if (_statement isEqualType "") then {
|
||||
_statement = compile _statement;
|
||||
};
|
||||
|
||||
private "_actionsVar";
|
||||
_actionsVar = missionNamespace getVariable ["ACE_EventHandler_ScrollWheel", [-1, [], []]];
|
||||
private _actionsVar = missionNamespace getVariable ["ACE_EventHandler_ScrollWheel", [-1, [], []]];
|
||||
|
||||
_actionsVar params ["_id", "_actionIDs", "_actions"];
|
||||
|
||||
|
@ -22,8 +22,7 @@
|
||||
|
||||
params ["_name", "", "", "", "", "", "", "_value"]; //["_name", "_typeName", "_isClientSetable", "_localizedName", "_localizedDescription", "_possibleValues", "_isForced", "_value"];
|
||||
|
||||
private "_settingData";
|
||||
_settingData = [_name] call FUNC(getSettingData);
|
||||
private _settingData = [_name] call FUNC(getSettingData);
|
||||
|
||||
// Exit if the setting already exists
|
||||
if (count _settingData > 0) exitWith {};
|
||||
|
@ -21,9 +21,7 @@ if (HASH_HASKEY(GVAR(syncedEvents),_name)) exitWith {
|
||||
false
|
||||
};
|
||||
|
||||
private ["_eventId", "_data"];
|
||||
|
||||
_eventId = [_name, FUNC(_handleSyncedEvent)] call FUNC(addEventHandler);
|
||||
_data = [_handler, [], _ttl, _eventId];
|
||||
private _eventId = [_name, FUNC(_handleSyncedEvent)] call FUNC(addEventHandler);
|
||||
private _data = [_handler, [], _ttl, _eventId];
|
||||
|
||||
HASH_SET(GVAR(syncedEvents),_name,_data);
|
||||
|
@ -18,9 +18,9 @@
|
||||
|
||||
params ["_unit", "_classname", ["_container", ""], ["_ammoCount", -1]];
|
||||
|
||||
private ["_type", "_canAdd", "_addedToUnit"];
|
||||
private _type = _classname call FUNC(getItemType);
|
||||
|
||||
_type = [_classname] call FUNC(getItemType);
|
||||
private ["_canAdd", "_addedToUnit"];
|
||||
|
||||
switch (_container) do {
|
||||
case "vest": {
|
||||
@ -59,8 +59,7 @@ switch (_type select 0) do {
|
||||
} else {
|
||||
_addedToUnit = false;
|
||||
|
||||
private "_pos";
|
||||
_pos = _unit modelToWorldVisual [0,1,0.05];
|
||||
private _pos = _unit modelToWorldVisual [0,1,0.05];
|
||||
|
||||
_unit = createVehicle ["WeaponHolder_Single_F", _pos, [], 0, "NONE"];
|
||||
_unit addWeaponCargoGlobal [_classname, 1];
|
||||
@ -93,8 +92,7 @@ switch (_type select 0) do {
|
||||
} else {
|
||||
_addedToUnit = false;
|
||||
|
||||
private "_pos";
|
||||
_pos = _unit modelToWorldVisual [0,1,0.05];
|
||||
private _pos = _unit modelToWorldVisual [0,1,0.05];
|
||||
|
||||
_unit = createVehicle ["WeaponHolder_Single_F", _pos, [], 0, "NONE"];
|
||||
_unit addMagazineCargoGlobal [_classname, 1/*_ammoCount*/]; //@todo Bug! This isn't really the ammo, but magazine count. No such command.
|
||||
@ -123,8 +121,7 @@ switch (_type select 0) do {
|
||||
} else {
|
||||
_addedToUnit = false;
|
||||
|
||||
private "_pos";
|
||||
_pos = _unit modelToWorldVisual [0,1,0.05];
|
||||
private _pos = _unit modelToWorldVisual [0,1,0.05];
|
||||
|
||||
_unit = createVehicle ["WeaponHolder_Single_F", _pos, [], 0, "NONE"];
|
||||
_unit addItemCargoGlobal [_classname, 1];
|
||||
|
@ -17,7 +17,6 @@
|
||||
|
||||
params ["_unit"];
|
||||
|
||||
private "_forceWalkNumber";
|
||||
_forceWalkNumber = _unit getVariable ["ACE_forceWalkStatusNumber", 0];
|
||||
private _forceWalkNumber = _unit getVariable ["ACE_forceWalkStatusNumber", 0];
|
||||
|
||||
_unit forceWalk (_forceWalkNumber > 0);
|
||||
|
@ -41,4 +41,5 @@ if (_list isEqualType "") then {
|
||||
};
|
||||
};
|
||||
};
|
||||
false
|
||||
} count _list;
|
||||
|
@ -12,13 +12,11 @@
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
private "_config";
|
||||
|
||||
ACE_isMapEnabled = call {_config = missionConfigFile >> "showMap"; !isNumber _config || {getNumber _config == 1}}; // default value is 1, so do isNumber check first
|
||||
ACE_isCompassEnabled = call {_config = missionConfigFile >> "showCompass"; !isNumber _config || {getNumber _config == 1}};
|
||||
ACE_isWatchEnabled = call {_config = missionConfigFile >> "showWatch"; !isNumber _config || {getNumber _config == 1}};
|
||||
ACE_isRadioEnabled = call {_config = missionConfigFile >> "showRadio"; !isNumber _config || {getNumber _config == 1}};
|
||||
ACE_isGPSEnabled = call {_config = missionConfigFile >> "showGPS"; !isNumber _config || {getNumber _config == 1}};
|
||||
ACE_isMapEnabled = call {private _config = missionConfigFile >> "showMap"; !isNumber _config || {getNumber _config == 1}}; // default value is 1, so do isNumber check first
|
||||
ACE_isCompassEnabled = call {private _config = missionConfigFile >> "showCompass"; !isNumber _config || {getNumber _config == 1}};
|
||||
ACE_isWatchEnabled = call {private _config = missionConfigFile >> "showWatch"; !isNumber _config || {getNumber _config == 1}};
|
||||
ACE_isRadioEnabled = call {private _config = missionConfigFile >> "showRadio"; !isNumber _config || {getNumber _config == 1}};
|
||||
ACE_isGPSEnabled = call {private _config = missionConfigFile >> "showGPS"; !isNumber _config || {getNumber _config == 1}};
|
||||
|
||||
GVAR(AssignedItems) = [];
|
||||
GVAR(AssignedItemsInfo) = [];
|
||||
|
@ -17,19 +17,17 @@ params ["_number", ["_minLength", 8]];
|
||||
|
||||
_number = round _number;
|
||||
|
||||
private ["_array", "_index", "_rest"];
|
||||
|
||||
_array = [];
|
||||
private _array = [];
|
||||
_array resize _minLength;
|
||||
|
||||
for "_index" from 0 to (_minLength - 1) do {
|
||||
_array set [_index, false];
|
||||
};
|
||||
|
||||
_index = 0;
|
||||
private _index = 0;
|
||||
|
||||
while {_number > 0} do {
|
||||
_rest = _number mod 2;
|
||||
private _rest = _number mod 2;
|
||||
_number = floor (_number / 2);
|
||||
|
||||
_array set [_index, _rest == 1];
|
||||
|
@ -24,10 +24,8 @@ if ((_namespace getVariable [_uid, [-99999]]) select 0 < ACE_diagTime) then {
|
||||
|
||||
// Does the cache needs to be cleared on an event?
|
||||
if (!isNil "_event") then {
|
||||
private ["_varName", "_cacheList"];
|
||||
|
||||
_varName = format [QGVAR(clearCache_%1), _event];
|
||||
_cacheList = missionNamespace getVariable _varName;
|
||||
private _varName = format [QGVAR(clearCache_%1), _event];
|
||||
private _cacheList = missionNamespace getVariable _varName;
|
||||
|
||||
// If there was no EH to clear these caches, add one
|
||||
if (isNil "_cacheList") then {
|
||||
@ -35,14 +33,13 @@ if ((_namespace getVariable [_uid, [-99999]]) select 0 < ACE_diagTime) then {
|
||||
missionNamespace setVariable [_varName, _cacheList];
|
||||
|
||||
[_event, {
|
||||
private ["_varName", "_cacheList"];
|
||||
// _eventName is defined on the function that calls the event
|
||||
#ifdef DEBUG_MODE_FULL
|
||||
ACE_LOGINFO_1("Clear cached variables on event: %1",_eventName);
|
||||
#endif
|
||||
// Get the list of caches to clear
|
||||
_varName = format [QGVAR(clearCache_%1), _eventName];
|
||||
_cacheList = missionNamespace getVariable [_varName, []];
|
||||
private _varName = format [QGVAR(clearCache_%1), _eventName];
|
||||
private _cacheList = missionNamespace getVariable [_varName, []];
|
||||
// Erase all the cached results
|
||||
{
|
||||
_x call FUNC(eraseCache);
|
||||
|
@ -27,19 +27,19 @@ _position = toLower _position;
|
||||
// general
|
||||
if (!alive _vehicle || {locked _vehicle > 1}) exitWith {false};
|
||||
|
||||
private ["_config", "_turret", "_radius", "_selectionPosition", "_selectionPosition2", "_enemiesInVehicle", "_return"];
|
||||
private ["_selectionPosition", "_selectionPosition2"];
|
||||
|
||||
_config = configFile >> "CfgVehicles" >> typeOf _vehicle;
|
||||
_turret = [];
|
||||
private _config = configFile >> "CfgVehicles" >> typeOf _vehicle;
|
||||
private _turret = [];
|
||||
|
||||
_radius = 0;
|
||||
private _radius = 0;
|
||||
|
||||
_enemiesInVehicle = false; //Possible Side Restriction
|
||||
private _enemiesInVehicle = false; //Possible Side Restriction
|
||||
{
|
||||
if (side _unit getFriend side _x < 0.6) exitWith {_enemiesInVehicle = true};
|
||||
} forEach crew _vehicle;
|
||||
|
||||
_return = false;
|
||||
private _return = false;
|
||||
switch (_position) do {
|
||||
case "driver" : {
|
||||
_radius = getNumber (_config >> "getInRadius");
|
||||
@ -60,11 +60,10 @@ switch (_position) do {
|
||||
};
|
||||
|
||||
case "gunner" : {
|
||||
private "_turretConfig";
|
||||
_turret = [_vehicle] call FUNC(getTurretGunner);
|
||||
if (_turret isEqualTo []) exitWith {false};
|
||||
|
||||
_turretConfig = [_config, _turret] call FUNC(getTurretConfigPath);
|
||||
private _turretConfig = [_config, _turret] call FUNC(getTurretConfigPath);
|
||||
|
||||
_radius = getNumber (_config >> "getInRadius");
|
||||
_selectionPosition = _vehicle selectionPosition (getText (_turretConfig >> "memoryPointsGetInGunner"));
|
||||
@ -73,11 +72,10 @@ switch (_position) do {
|
||||
};
|
||||
|
||||
case "commander" : {
|
||||
private "_turretConfig";
|
||||
_turret = [_vehicle] call FUNC(getTurretCommander);
|
||||
if (_turret isEqualTo []) exitWith {false};
|
||||
|
||||
_turretConfig = [_config, _turret] call FUNC(getTurretConfigPath);
|
||||
private _turretConfig = [_config, _turret] call FUNC(getTurretConfigPath);
|
||||
|
||||
_radius = getNumber (_config >> "getInRadius");
|
||||
_selectionPosition = _vehicle selectionPosition (getText (_turretConfig >> "memoryPointsGetInGunner"));
|
||||
@ -86,11 +84,10 @@ switch (_position) do {
|
||||
};
|
||||
|
||||
case "copilot" : {
|
||||
private "_turretConfig";
|
||||
_turret = [_vehicle] call FUNC(getTurretCopilot);
|
||||
if (_turret isEqualTo []) exitWith {false};
|
||||
|
||||
_turretConfig = [_config, _turret] call FUNC(getTurretConfigPath);
|
||||
private _turretConfig = [_config, _turret] call FUNC(getTurretConfigPath);
|
||||
|
||||
_radius = getNumber (_config >> "getInRadius");
|
||||
_selectionPosition = _vehicle selectionPosition (getText (_turretConfig >> "memoryPointsGetInGunner"));
|
||||
@ -99,13 +96,12 @@ switch (_position) do {
|
||||
};
|
||||
|
||||
case "turret" : {
|
||||
private ["_turrets", "_turretConfig"];
|
||||
_turrets = [_vehicle] call FUNC(getTurretsOther);
|
||||
private _turrets = [_vehicle] call FUNC(getTurretsOther);
|
||||
|
||||
if (_index != -1 && {_turret = _turrets select _index;
|
||||
CANGETINTURRETINDEX
|
||||
}) then {
|
||||
_turretConfig = [_config, _turret] call FUNC(getTurretConfigPath);
|
||||
private _turretConfig = [_config, _turret] call FUNC(getTurretConfigPath);
|
||||
|
||||
_radius = getNumber (_config >> "getInRadius");
|
||||
_selectionPosition = _vehicle selectionPosition (getText (_turretConfig >> "memoryPointsGetInGunner"));
|
||||
@ -115,7 +111,7 @@ switch (_position) do {
|
||||
for "_index" from 0 to (count _turrets - 1) do {
|
||||
_turret = _turrets select _index;
|
||||
if (CANGETINTURRETINDEX) exitWith {
|
||||
_turretConfig = [_config, _turret] call FUNC(getTurretConfigPath);
|
||||
private _turretConfig = [_config, _turret] call FUNC(getTurretConfigPath);
|
||||
|
||||
_radius = getNumber (_config >> "getInRadius");
|
||||
_selectionPosition = _vehicle selectionPosition (getText (_turretConfig >> "memoryPointsGetInGunner"));
|
||||
@ -127,13 +123,12 @@ switch (_position) do {
|
||||
};
|
||||
|
||||
case "ffv" : {
|
||||
private ["_turrets", "_turretConfig"];
|
||||
_turrets = [_vehicle] call FUNC(getTurretsFFV);
|
||||
private _turrets = [_vehicle] call FUNC(getTurretsFFV);
|
||||
|
||||
if (_index != -1 && {_turret = _turrets select _index;
|
||||
CANGETINTURRETINDEX
|
||||
}) then {
|
||||
_turretConfig = [_config, _turret] call FUNC(getTurretConfigPath);
|
||||
private _turretConfig = [_config, _turret] call FUNC(getTurretConfigPath);
|
||||
|
||||
_radius = getNumber (_config >> "getInRadius");
|
||||
_selectionPosition = _vehicle selectionPosition (getText (_turretConfig >> "memoryPointsGetInGunner"));
|
||||
@ -143,7 +138,7 @@ switch (_position) do {
|
||||
for "_index" from 0 to (count _turrets - 1) do {
|
||||
_turret = _turrets select _index;
|
||||
if (CANGETINTURRETINDEX) exitWith {
|
||||
_turretConfig = [_config, _turret] call FUNC(getTurretConfigPath);
|
||||
private _turretConfig = [_config, _turret] call FUNC(getTurretConfigPath);
|
||||
|
||||
_radius = getNumber (_config >> "getInRadius");
|
||||
_selectionPosition = _vehicle selectionPosition (getText (_turretConfig >> "memoryPointsGetInGunner"));
|
||||
@ -155,8 +150,7 @@ switch (_position) do {
|
||||
};
|
||||
|
||||
case "codriver" : {
|
||||
private "_positions";
|
||||
_positions = [typeOf _vehicle] call FUNC(getVehicleCodriver);
|
||||
private _positions = [typeOf _vehicle] call FUNC(getVehicleCodriver);
|
||||
|
||||
{
|
||||
if (alive _x) then {_positions deleteAt (_positions find (_vehicle getCargoIndex _x))};
|
||||
@ -189,8 +183,7 @@ switch (_position) do {
|
||||
};
|
||||
|
||||
case "cargo" : {
|
||||
private "_positions";
|
||||
_positions = [typeOf _vehicle] call FUNC(getVehicleCargo);
|
||||
private _positions = [typeOf _vehicle] call FUNC(getVehicleCargo);
|
||||
|
||||
{
|
||||
if (alive _x) then {_positions deleteAt (_positions find (_vehicle getCargoIndex _x))};
|
||||
@ -226,14 +219,11 @@ switch (_position) do {
|
||||
default {};
|
||||
};
|
||||
|
||||
private "_fnc_isInRange";
|
||||
_fnc_isInRange = {
|
||||
private _fnc_isInRange = {
|
||||
if (_radius == 0) exitWith {true};
|
||||
|
||||
private ["_unitPosition", "_distance"];
|
||||
_unitPosition = getPos _unit;
|
||||
|
||||
_distance = _unitPosition distance (_vehicle modelToWorldVisual _selectionPosition);
|
||||
private _unitPosition = getPos _unit;
|
||||
private _distance = _unitPosition distance (_vehicle modelToWorldVisual _selectionPosition);
|
||||
|
||||
if (!isNil "_selectionPosition2") then {
|
||||
_distance = _distance min (_unitPosition distance (_vehicle modelToWorldVisual _selectionPosition2));
|
||||
|
@ -18,20 +18,17 @@ params ["_unit", "_target", ["_exceptions", []]];
|
||||
|
||||
_exceptions = [_exceptions, {toLower _this}] call FUNC(map);
|
||||
|
||||
private "_owner";
|
||||
_owner = _target getVariable [QGVAR(owner), objNull];
|
||||
private _owner = _target getVariable [QGVAR(owner), objNull];
|
||||
|
||||
// exit if the target is not free to interact
|
||||
if (!isNull _owner && {_unit != _owner}) exitWith {false};
|
||||
|
||||
// check general conditions
|
||||
private ["_conditions", "_canInteract"];
|
||||
|
||||
_conditions = missionNamespace getVariable [QGVAR(InteractionConditions), [[],[]]];
|
||||
|
||||
private _conditions = missionNamespace getVariable [QGVAR(InteractionConditions), [[],[]]];
|
||||
_conditions params ["_conditionNames", "_conditionFuncs"];
|
||||
|
||||
_canInteract = true;
|
||||
private _canInteract = true;
|
||||
|
||||
{
|
||||
if (!(_x in _exceptions) && {!([_unit, _target] call (_conditionFuncs select _forEachIndex))}) exitWith {
|
||||
_canInteract = false;
|
||||
|
@ -13,12 +13,11 @@
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
params ["_unit"];
|
||||
params [["_unit", objNull, [objNull]]];
|
||||
|
||||
if (_unit == vehicle _unit) exitWith {true};
|
||||
|
||||
private "_config";
|
||||
_config = configFile >> "CfgMovesMaleSdr" >> "States" >> animationState _unit;
|
||||
private _config = configFile >> "CfgMovesMaleSdr" >> "States" >> animationState _unit;
|
||||
|
||||
isClass _config
|
||||
&& {getNumber (_config >> "canPullTrigger") == 1}
|
||||
|
@ -17,14 +17,12 @@
|
||||
|
||||
params ["_projectile", "_adjustDir", "_adjustUp", ["_adjustSpeed",0]];
|
||||
|
||||
private ["_vdir", "_dir", "_up", "_vlat", "_vup", "_vel"];
|
||||
|
||||
// get old direction vector
|
||||
_vdir = vectorNormalized velocity _projectile;
|
||||
private _vdir = vectorNormalized velocity _projectile;
|
||||
|
||||
// get azimuth and inclination and apply corrections
|
||||
_dir = (_vdir select 0) atan2 (_vdir select 1) + _adjustDir;
|
||||
_up = asin (_vdir select 2) + _adjustUp;
|
||||
private _dir = (_vdir select 0) atan2 (_vdir select 1) + _adjustDir;
|
||||
private _up = asin (_vdir select 2) + _adjustUp;
|
||||
|
||||
// get new direction vector (this is a unit vector)
|
||||
_vdir = [
|
||||
@ -34,11 +32,11 @@ _vdir = [
|
||||
];
|
||||
|
||||
// get best up vector
|
||||
_vlat = vectorNormalized (_vdir vectorCrossProduct [0,0,1]);
|
||||
_vup = _vlat vectorCrossProduct _vdir;
|
||||
private _vlat = vectorNormalized (_vdir vectorCrossProduct [0,0,1]);
|
||||
private _vup = _vlat vectorCrossProduct _vdir;
|
||||
|
||||
// get new speed vector. Keep total speed, but change to new direction. Yay for vector commands.
|
||||
_vel = _vdir vectorMultiply (_adjustSpeed + vectorMagnitude velocity _projectile);
|
||||
private _vel = _vdir vectorMultiply (_adjustSpeed + vectorMagnitude velocity _projectile);
|
||||
|
||||
// set projectile direction dir and up. Projectiles are long objects, especially with tracers, so it would look dumb otherwise.
|
||||
_projectile setVectorDirAndUp [_vdir, _vup];
|
||||
|
@ -15,21 +15,18 @@
|
||||
///////////////
|
||||
// check addons
|
||||
///////////////
|
||||
private "_version";
|
||||
_version = getText (configFile >> "CfgPatches" >> "ace_main" >> "versionStr");
|
||||
private _version = getText (configFile >> "CfgPatches" >> "ace_main" >> "versionStr");
|
||||
|
||||
ACE_LOGINFO_1("ACE is version %1.",_version);
|
||||
|
||||
private "_addons";
|
||||
//_addons = activatedAddons; // broken with High-Command module, see #2134
|
||||
_addons = "true" configClasses (configFile >> "CfgPatches");//
|
||||
//private _addons = activatedAddons; // broken with High-Command module, see #2134
|
||||
private _addons = "true" configClasses (configFile >> "CfgPatches");//
|
||||
_addons = [_addons, {toLower configName _this}] call FUNC(map);//
|
||||
_addons = [_addons, {_this find "ace_" == 0}] call FUNC(filter);
|
||||
|
||||
{
|
||||
if (getText (configFile >> "CfgPatches" >> _x >> "versionStr") != _version) then {
|
||||
private "_errorMsg";
|
||||
_errorMsg = format ["File %1.pbo is outdated.", _x];
|
||||
private _errorMsg = format ["File %1.pbo is outdated.", _x];
|
||||
|
||||
ACE_LOGERROR(_errorMsg);
|
||||
|
||||
@ -44,12 +41,10 @@ _addons = [_addons, {_this find "ace_" == 0}] call FUNC(filter);
|
||||
// check dlls
|
||||
///////////////
|
||||
{
|
||||
private "_versionEx";
|
||||
_versionEx = _x callExtension "version";
|
||||
private _versionEx = _x callExtension "version";
|
||||
|
||||
if (_versionEx == "") then {
|
||||
private "_errorMsg";
|
||||
_errorMsg = format ["Extension %1.dll not installed.", _x];
|
||||
private _errorMsg = format ["Extension %1.dll not installed.", _x];
|
||||
|
||||
ACE_LOGERROR(_errorMsg);
|
||||
|
||||
@ -84,8 +79,7 @@ if (isMultiplayer) then {
|
||||
(_this select 0) params ["_version", "_addons"];
|
||||
|
||||
if (_version != GVAR(ServerVersion)) then {
|
||||
private "_errorMsg";
|
||||
_errorMsg = format ["Client/Server Version Mismatch. Server: %1, Client: %2.", GVAR(ServerVersion), _version];
|
||||
private _errorMsg = format ["Client/Server Version Mismatch. Server: %1, Client: %2.", GVAR(ServerVersion), _version];
|
||||
|
||||
ACE_LOGERROR(_errorMsg);
|
||||
|
||||
|
@ -41,10 +41,8 @@ if (!isServer) then {
|
||||
|
||||
// Display error message.
|
||||
if (_missingAddon || {_missingAddonServer} || {_oldVersionClient} || {_oldVersionServer}) then {
|
||||
private ["_text", "_error"];
|
||||
|
||||
_text = "[ACE] Version mismatch:<br/><br/>";
|
||||
_error = format ["ACE version mismatch: %1: ", profileName];
|
||||
private _text = "[ACE] Version mismatch:<br/><br/>";
|
||||
private _error = format ["ACE version mismatch: %1: ", profileName];
|
||||
|
||||
if (_missingAddon) then {
|
||||
_text = _text + "Detected missing addon on client<br/>";
|
||||
@ -69,13 +67,11 @@ if (!isServer) then {
|
||||
if (_mode < 2) then {
|
||||
_text = composeText [lineBreak, parseText format ["<t align='center'>%1</t>", _text]];
|
||||
|
||||
private ["_rscLayer", "_ctrlHint"];
|
||||
|
||||
_rscLayer = "ACE_RscErrorHint" call BIS_fnc_rscLayer;
|
||||
private _rscLayer = "ACE_RscErrorHint" call BIS_fnc_rscLayer;
|
||||
_rscLayer cutRsc ["ACE_RscErrorHint", "PLAIN", 0, true];
|
||||
|
||||
disableSerialization;
|
||||
_ctrlHint = uiNamespace getVariable "ACE_ctrlErrorHint";
|
||||
private _ctrlHint = uiNamespace getVariable "ACE_ctrlErrorHint";
|
||||
_ctrlHint ctrlSetStructuredText _text;
|
||||
|
||||
if (_mode == 0) then {
|
||||
|
@ -16,8 +16,7 @@
|
||||
|
||||
params ["_unit", "_target", ["_lockTarget", false]];
|
||||
|
||||
private "_owner";
|
||||
_owner = _target getVariable [QGVAR(owner), objNull];
|
||||
private _owner = _target getVariable [QGVAR(owner), objNull];
|
||||
|
||||
if (!isNull _owner && {!isNull _unit} && {_unit != _owner}) then {
|
||||
ACE_LOGERROR("Claiming already owned object.");
|
||||
|
@ -14,10 +14,10 @@
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
private ["_v1", "_v2", "_v3"];
|
||||
[_this] params [["_vector", [0,0,1], [[]], 3]];
|
||||
|
||||
_v1 = vectorNormalized _this;
|
||||
_v2 = vectorNormalized (_v1 vectorCrossProduct [0,0,1]);
|
||||
_v3 = _v2 vectorCrossProduct _v1;
|
||||
private _v1 = vectorNormalized _this;
|
||||
private _v2 = vectorNormalized (_v1 vectorCrossProduct [0,0,1]);
|
||||
private _v3 = _v2 vectorCrossProduct _v1;
|
||||
|
||||
[_v1,_v2,_v3]
|
||||
[_v1, _v2, _v3]
|
||||
|
@ -15,8 +15,7 @@
|
||||
#define CHANNELS ["global", "side", "command", "group", "vehicle", "direct"]
|
||||
#define CHANNELS_LOCALIZED [localize "str_channel_global", localize "str_channel_side", localize "str_channel_command", localize "str_channel_group", localize "str_channel_vehicle", localize "str_channel_direct"]
|
||||
|
||||
private "_currentChannel";
|
||||
_currentChannel = currentChannel;
|
||||
private _currentChannel = currentChannel;
|
||||
|
||||
if (_currentChannel < count CHANNELS) then {
|
||||
_currentChannel = CHANNELS select _currentChannel;
|
||||
|
@ -18,20 +18,15 @@
|
||||
|
||||
params ["_msg", ["_level", 2, [0]]];
|
||||
|
||||
private ["_defaultLoglevel", "_defaultLogDisplayLevel"];
|
||||
|
||||
_defaultLoglevel = [GVAR(LOGLEVEL), DEFAULT_LOGGING_LEVEL] select isNil QGVAR(LOGLEVEL);
|
||||
private _defaultLoglevel = [GVAR(LOGLEVEL), DEFAULT_LOGGING_LEVEL] select isNil QGVAR(LOGLEVEL);
|
||||
|
||||
if (_defaultLoglevel < 0) exitWith {false};
|
||||
|
||||
_defaultLogDisplayLevel = [GVAR(LOGDISPLAY_LEVEL), DEFAULT_TEXT_DISPLAY] select isNil QGVAR(LOGDISPLAY_LEVEL);
|
||||
private _defaultLogDisplayLevel = [GVAR(LOGDISPLAY_LEVEL), DEFAULT_TEXT_DISPLAY] select isNil QGVAR(LOGDISPLAY_LEVEL);
|
||||
|
||||
if (_level <= _defaultLoglevel) then {
|
||||
private ["_prefix", "_message"];
|
||||
|
||||
_prefix = ["Unknown", "Error", "Warn", "Debug", "Info"] select ([0, 1, 2, 3] find _level + 1);
|
||||
|
||||
_message = format ["[ACE %1] %2", _prefix, _msg];
|
||||
private _prefix = ["Unknown", "Error", "Warn", "Debug", "Info"] select ([0, 1, 2, 3] find _level + 1);
|
||||
private _message = format ["[ACE %1] %2", _prefix, _msg];
|
||||
|
||||
if (_level <= _defaultLogDisplayLevel) then {
|
||||
systemChat _message;
|
||||
|
@ -18,9 +18,7 @@
|
||||
|
||||
params [["_searchOffsetOrName", 0]];
|
||||
|
||||
private ["_validIndex", "_realIndex"];
|
||||
|
||||
_validIndex = -1;
|
||||
private _validIndex = -1;
|
||||
|
||||
if (_searchOffsetOrName isEqualType "") then {
|
||||
{
|
||||
@ -33,7 +31,7 @@ if (_searchOffsetOrName isEqualType "") then {
|
||||
_baseIndex = [GVAR(deviceKeyCurrentIndex) + _searchOffsetOrName, 0] select (GVAR(deviceKeyCurrentIndex) == -1);
|
||||
|
||||
for "_offset" from _baseIndex to (count GVAR(deviceKeyHandlingArray) - 1 + _baseIndex) do {
|
||||
_realIndex = _offset % (count GVAR(deviceKeyHandlingArray));
|
||||
private _realIndex = _offset % (count GVAR(deviceKeyHandlingArray));
|
||||
|
||||
if ([] call ((GVAR(deviceKeyHandlingArray) select _realIndex) select 2)) exitWith {
|
||||
_validIndex = _realIndex;
|
||||
|
@ -16,7 +16,7 @@
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
params ["_unit", "_disable"];
|
||||
params [["_unit", objNull, [objNull]], ["_disable", true, [false]]];
|
||||
|
||||
if (!local _unit) exitWith {};
|
||||
|
||||
|
@ -31,8 +31,7 @@ if (_state) then {
|
||||
closeDialog 0;
|
||||
createDialog QGVAR(DisableMouse_Dialog);
|
||||
|
||||
private "_dlg";
|
||||
_dlg = uiNamespace getVariable QGVAR(dlgDisableMouse);
|
||||
private _dlg = uiNamespace getVariable QGVAR(dlgDisableMouse);
|
||||
|
||||
_dlg displayAddEventHandler ["KeyDown", {
|
||||
params ["", "_key"];
|
||||
@ -42,15 +41,13 @@ if (_state) then {
|
||||
|
||||
disableSerialization;
|
||||
|
||||
private ["_dlg", "_ctrl"];
|
||||
|
||||
_dlg = findDisplay 49;
|
||||
private _dlg = findDisplay 49;
|
||||
|
||||
for "_index" from 100 to 2000 do {
|
||||
(_dlg displayCtrl _index) ctrlEnable false;
|
||||
};
|
||||
|
||||
_ctrl = _dlg displayctrl 103;
|
||||
private _ctrl = _dlg displayctrl 103;
|
||||
_ctrl ctrlSetEventHandler ["buttonClick", QUOTE(while {!isNull (uiNamespace getVariable [ARR_2(QUOTE(QGVAR(dlgDisableMouse)),displayNull)])} do {closeDialog 0}; failMission 'LOSER'; [false] call DFUNC(disableUserInput);)];
|
||||
_ctrl ctrlEnable true;
|
||||
_ctrl ctrlSetText "ABORT";
|
||||
@ -58,7 +55,7 @@ if (_state) then {
|
||||
|
||||
_ctrl = _dlg displayctrl ([104, 1010] select isMultiplayer);
|
||||
_ctrl ctrlSetEventHandler ["buttonClick", QUOTE(closeDialog 0; player setDamage 1; [false] call DFUNC(disableUserInput);)];
|
||||
_ctrl ctrlEnable (call {private "_config"; _config = missionConfigFile >> "respawnButton"; !isNumber _config || {getNumber _config == 1}});
|
||||
_ctrl ctrlEnable (call {private _config = missionConfigFile >> "respawnButton"; !isNumber _config || {getNumber _config == 1}});
|
||||
_ctrl ctrlSetText "RESPAWN";
|
||||
_ctrl ctrlSetTooltip "Respawn.";
|
||||
};
|
||||
@ -66,8 +63,7 @@ if (_state) then {
|
||||
if (_key in actionKeys "TeamSwitch" && {teamSwitchEnabled}) then {
|
||||
(uiNamespace getVariable [QGVAR(dlgDisableMouse), displayNull]) closeDisplay 0;
|
||||
|
||||
private "_acc";
|
||||
_acc = accTime;
|
||||
private _acc = accTime;
|
||||
teamSwitch;
|
||||
setAccTime _acc;
|
||||
};
|
||||
|
@ -45,14 +45,11 @@ disableSerialization;
|
||||
|
||||
params ["_iconId", "_show", "_icon", "_color", ["_timeAlive", DEFAULT_TIME]];
|
||||
|
||||
private ["_list", "_refresh"];
|
||||
private _list = missionNamespace getVariable [QGVAR(displayIconList), []];
|
||||
|
||||
_list = missionNamespace getVariable [QGVAR(displayIconList), []];
|
||||
|
||||
_refresh = {
|
||||
private _refresh = {
|
||||
// Refreshing of all icons..
|
||||
private "_allControls";
|
||||
_allControls = missionNamespace getVariable [QGVAR(displayIconListControls), []];
|
||||
private _allControls = missionNamespace getVariable [QGVAR(displayIconListControls), []];
|
||||
|
||||
{
|
||||
ctrlDelete _x;
|
||||
@ -61,18 +58,16 @@ _refresh = {
|
||||
|
||||
_allControls = [];
|
||||
|
||||
private ["_setting", "_ctrl", "_position"];
|
||||
|
||||
_setting = missionNamespace getVariable [QGVAR(settingFeedbackIcons), 0];
|
||||
private _setting = missionNamespace getVariable [QGVAR(settingFeedbackIcons), 0];
|
||||
|
||||
if (_setting > 0) then {
|
||||
{
|
||||
_x params ["", "_xicon", "_xcolor"];
|
||||
|
||||
// +19000 because we want to make certain we are using free IDCs..
|
||||
_ctrl = (findDisplay 46) ctrlCreate ["RscPicture", _forEachIndex + 19000];
|
||||
private _ctrl = (findDisplay 46) ctrlCreate ["RscPicture", _forEachIndex + 19000];
|
||||
|
||||
_position = switch (_setting) do {
|
||||
private _position = switch (_setting) do {
|
||||
case TOP_RIGHT_DOWN: {[X_POS_ICONS, Y_POS_ICONS + (_forEachIndex * DIFFERENCE_ICONS), ICON_WIDTH, ICON_WIDTH]};
|
||||
case TOP_RIGHT_LEFT: {[X_POS_ICONS_SECOND - ((_forEachIndex+3) * DIFFERENCE_ICONS), Y_POS_ICONS_SECOND - (ICON_WIDTH / 2), ICON_WIDTH, ICON_WIDTH]};
|
||||
case TOP_LEFT_DOWN: {[LEFT_SIDE + (0.5 * ICON_WIDTH), Y_POS_ICONS + (_forEachIndex * DIFFERENCE_ICONS), ICON_WIDTH, ICON_WIDTH]};
|
||||
@ -115,8 +110,7 @@ if (_show) then {
|
||||
} else {
|
||||
|
||||
if ({_x select 0 == _iconId} count _list == 1) then {
|
||||
private "_newList";
|
||||
_newList = [];
|
||||
private _newList = [];
|
||||
|
||||
{
|
||||
if (_x select 0 != _iconId) then {
|
||||
|
@ -23,12 +23,9 @@ if (isNil QGVAR(lastHint)) then {
|
||||
|
||||
if !(typeName _text in ["STRING", "TEXT"]) then {_text = str _text};
|
||||
|
||||
private ["_lastHintTime", "_lastHintPriority", "_time"];
|
||||
GVAR(lastHint) params ["_lastHintTime", "_lastHintPriority"];
|
||||
|
||||
_lastHintTime = GVAR(lastHint) select 0;
|
||||
_lastHintPriority = GVAR(lastHint) select 1;
|
||||
|
||||
_time = ACE_time;
|
||||
private _time = ACE_time;
|
||||
|
||||
if (_time > _lastHintTime + _delay || {_priority >= _lastHintPriority}) then {
|
||||
hintSilent _text;
|
||||
|
@ -35,36 +35,34 @@ if (typeName _text != "TEXT") then {
|
||||
_text = composeText [lineBreak, parseText format ["<t align='center'>%1</t>", _text]];
|
||||
};
|
||||
|
||||
private ["_isShown", "_ctrlHint", "_xPos", "_yPos", "_wPos", "_hPos", "_position"];
|
||||
|
||||
_isShown = ctrlShown (uiNamespace getVariable ["ACE_ctrlHint", controlNull]);
|
||||
private _isShown = ctrlShown (uiNamespace getVariable ["ACE_ctrlHint", controlNull]);
|
||||
|
||||
("ACE_RscHint" call BIS_fnc_rscLayer) cutRsc ["ACE_RscHint", "PLAIN", 0, true];
|
||||
|
||||
disableSerialization;
|
||||
_ctrlHint = uiNamespace getVariable "ACE_ctrlHint";
|
||||
private _ctrlHint = uiNamespace getVariable "ACE_ctrlHint";
|
||||
|
||||
_ctrlHint ctrlSetBackgroundColor GVAR(displayTextColor);
|
||||
_ctrlHint ctrlSetTextColor GVAR(displayTextFontColor);
|
||||
/*
|
||||
// This does not function at the moment. Has been disabled until it fixed.
|
||||
_xPos = profilenamespace getVariable ["IGUI_GRID_ACE_displayText_X", ((safezoneX + safezoneW) - (10 *(((safezoneW / safezoneH) min 1.2) / 40)) - 2.9 *(((safezoneW / safezoneH) min 1.2) / 40))];
|
||||
_yPos = profilenamespace getVariable ["IGUI_GRID_ACE_displayText_Y", safeZoneY + 0.175 * safezoneH];
|
||||
_wPos = profilenamespace getVariable ["IGUI_GRID_ACE_displayText_W", (10 *(((safezoneW / safezoneH) min 1.2) / 40))];
|
||||
_hPos = profilenamespace getVariable ["IGUI_GRID_ACE_displayText_H", (2 *((((safezoneW / safezoneH) min 1.2) / 1.2) / 25))];
|
||||
private _xPos = profilenamespace getVariable ["IGUI_GRID_ACE_displayText_X", ((safezoneX + safezoneW) - (10 *(((safezoneW / safezoneH) min 1.2) / 40)) - 2.9 *(((safezoneW / safezoneH) min 1.2) / 40))];
|
||||
private _yPos = profilenamespace getVariable ["IGUI_GRID_ACE_displayText_Y", safeZoneY + 0.175 * safezoneH];
|
||||
private _wPos = profilenamespace getVariable ["IGUI_GRID_ACE_displayText_W", (10 *(((safezoneW / safezoneH) min 1.2) / 40))];
|
||||
private _hPos = profilenamespace getVariable ["IGUI_GRID_ACE_displayText_H", (2 *((((safezoneW / safezoneH) min 1.2) / 1.2) / 25))];
|
||||
*/
|
||||
|
||||
_xPos = ((safezoneX + safezoneW) - (10 *(((safezoneW / safezoneH) min 1.2) / 40)) - 2.9 *(((safezoneW / safezoneH) min 1.2) / 40));
|
||||
_yPos = safeZoneY + 0.175 * safezoneH;
|
||||
_wPos = (10 *(((safezoneW / safezoneH) min 1.2) / 40));
|
||||
_hPos = (2 *((((safezoneW / safezoneH) min 1.2) / 1.2) / 25));
|
||||
private _xPos = ((safezoneX + safezoneW) - (10 *(((safezoneW / safezoneH) min 1.2) / 40)) - 2.9 *(((safezoneW / safezoneH) min 1.2) / 40));
|
||||
private _yPos = safeZoneY + 0.175 * safezoneH;
|
||||
private _wPos = (10 *(((safezoneW / safezoneH) min 1.2) / 40));
|
||||
private _hPos = (2 *((((safezoneW / safezoneH) min 1.2) / 1.2) / 25));
|
||||
|
||||
// Zeus Interface Open and Display would be under the "CREATE" list
|
||||
if (!isNull curatorCamera) then {
|
||||
_xPos = _xPos min ((safezoneX + safezoneW - 12.5 * (((safezoneW / safezoneH) min 1.2) / 40)) - _wPos);
|
||||
};
|
||||
|
||||
_position = [_xPos, _yPos, _wPos, _size * _hPos];
|
||||
private _position = [_xPos, _yPos, _wPos, _size * _hPos];
|
||||
|
||||
_ctrlHint ctrlSetPosition _position;
|
||||
_ctrlHint ctrlCommit 0;
|
||||
|
@ -12,11 +12,9 @@
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
params ["_unit"];
|
||||
params [["_unit", objNull, [objNull]]];
|
||||
|
||||
private ["_backpackObject", "_holder"];
|
||||
|
||||
_backpackObject = backpackContainer _unit;
|
||||
private _backpackObject = backpackContainer _unit;
|
||||
|
||||
_unit addBackpack "ACE_FakeBackpack";
|
||||
removeBackpack _unit;
|
||||
|
@ -19,8 +19,7 @@ if (!isNil "ACE_PFH_COUNTER") then {
|
||||
{
|
||||
_x params ["_pfh", "_parameters"];
|
||||
|
||||
private "_isActive";
|
||||
_isActive = ["ACTIVE", "REMOVED"] select isNil {CBA_common_PFHhandles select (_pfh select 0)};
|
||||
private _isActive = ["ACTIVE", "REMOVED"] select isNil {CBA_common_PFHhandles select (_pfh select 0)};
|
||||
|
||||
diag_log text format ["Registered PFH: id=%1 [%2, delay %3], %4:%5", _pfh select 0, _isActive, _parameters select 1, _pfh select 1, _pfh select 2];
|
||||
false
|
||||
@ -31,20 +30,18 @@ diag_log text format ["ACE COUNTER RESULTS"];
|
||||
diag_log text format ["-------------------------------------------"];
|
||||
|
||||
{
|
||||
private ["_counterEntry", "_iter", "_total", "_count", "_averageResult", "_delta"];
|
||||
|
||||
_counterEntry = _x;
|
||||
_iter = 0;
|
||||
_total = 0;
|
||||
_count = 0;
|
||||
_averageResult = 0;
|
||||
private _counterEntry = _x;
|
||||
private _iter = 0;
|
||||
private _total = 0;
|
||||
private _count = 0;
|
||||
private _averageResult = 0;
|
||||
|
||||
if (count _counterEntry > 3) then {
|
||||
// calc
|
||||
{
|
||||
if (_iter > 2) then {
|
||||
_count = _count + 1;
|
||||
_delta = (_x select 1) - (_x select 0);
|
||||
private _delta = (_x select 1) - (_x select 0);
|
||||
|
||||
_total = _total + _delta;
|
||||
};
|
||||
@ -69,8 +66,7 @@ diag_log text format ["-------------------------------------------"];
|
||||
diag_log text format["ACE_PERFORMANCE_EXCESSIVE_STEP_TRACKER"];
|
||||
diag_log text format["-------------------------------------------"];
|
||||
{
|
||||
private["_delay"];
|
||||
_delay = _x select 2;
|
||||
private _delay = _x select 2;
|
||||
//if(_delay > 0) then { _delay = _delay / 1000; };
|
||||
|
||||
diag_log text format["%1: %2s, delay=%3, handle=%4",(_x select 0), _delay, (_x select 3), (_x select 4)];
|
||||
@ -80,8 +76,7 @@ diag_log text format["-------------------------------------------"];
|
||||
diag_log text format["ACE_PERFORMANCE_EXCESSIVE_FRAME_TRACKER"];
|
||||
diag_log text format["-------------------------------------------"];
|
||||
{
|
||||
private["_delta"];
|
||||
_delta = _x select 1;
|
||||
private _delta = _x select 1;
|
||||
//if(_delta > 0) then { _delta = _delta / 1000; };
|
||||
diag_log text format[" DELTA: %1s", _delta];
|
||||
} forEach ACE_PERFORMANCE_EXCESSIVE_FRAME_TRACKER;
|
||||
|
@ -37,35 +37,29 @@ if (_textMessage isEqualType "") then {
|
||||
|
||||
(ARR_SELECT(_this,4,call BIS_fnc_displayMission)) createDisplay "RscDisplayCommonMessagePause";
|
||||
|
||||
private ["_display", "_ctrlRscMessageBox", "_ctrlBcgCommonTop", "_ctrlBcgCommon", "_ctrlText", "_ctrlBackgroundButtonOK", "_ctrlBackgroundButtonMiddle", "_ctrlBackgroundButtonCancel", "_ctrlButtonOK", "_ctrlButtonCancel"];
|
||||
|
||||
_display = uiNamespace getVariable "RscDisplayCommonMessage_display";
|
||||
_ctrlRscMessageBox = _display displayCtrl 2351;
|
||||
_ctrlBcgCommonTop = _display displayCtrl 235100;
|
||||
_ctrlBcgCommon = _display displayCtrl 235101;
|
||||
_ctrlText = _display displayCtrl 235102;
|
||||
_ctrlBackgroundButtonOK = _display displayCtrl 235103;
|
||||
_ctrlBackgroundButtonMiddle = _display displayCtrl 235104;
|
||||
_ctrlBackgroundButtonCancel = _display displayCtrl 235105;
|
||||
_ctrlButtonOK = _display displayCtrl 235106;
|
||||
_ctrlButtonCancel = _display displayCtrl 235107;
|
||||
private _display = uiNamespace getVariable "RscDisplayCommonMessage_display";
|
||||
private _ctrlRscMessageBox = _display displayCtrl 2351;
|
||||
private _ctrlBcgCommonTop = _display displayCtrl 235100;
|
||||
private _ctrlBcgCommon = _display displayCtrl 235101;
|
||||
private _ctrlText = _display displayCtrl 235102;
|
||||
private _ctrlBackgroundButtonOK = _display displayCtrl 235103;
|
||||
private _ctrlBackgroundButtonMiddle = _display displayCtrl 235104;
|
||||
private _ctrlBackgroundButtonCancel = _display displayCtrl 235105;
|
||||
private _ctrlButtonOK = _display displayCtrl 235106;
|
||||
private _ctrlButtonCancel = _display displayCtrl 235107;
|
||||
|
||||
_ctrlBcgCommonTop ctrlSetText _textHeader;
|
||||
|
||||
private ["_ctrlButtonOKPos", "_ctrlBcgCommonPos", "_bottomSpaceY", "_ctrlTextPos", "_marginX", "_marginY"];
|
||||
private _ctrlButtonOKPos = ctrlPosition _ctrlButtonOK;
|
||||
private _ctrlBcgCommonPos = ctrlPosition _ctrlBcgCommon;
|
||||
private _bottomSpaceY = (_ctrlButtonOKPos select 1) - ((_ctrlBcgCommonPos select 1) + (_ctrlBcgCommonPos select 3));
|
||||
|
||||
_ctrlButtonOKPos = ctrlPosition _ctrlButtonOK;
|
||||
_ctrlBcgCommonPos = ctrlPosition _ctrlBcgCommon;
|
||||
_bottomSpaceY = (_ctrlButtonOKPos select 1) - ((_ctrlBcgCommonPos select 1) + (_ctrlBcgCommonPos select 3));
|
||||
|
||||
_ctrlTextPos = ctrlPosition _ctrlText;
|
||||
_marginX = (_ctrlTextPos select 0) - (_ctrlBcgCommonPos select 0);
|
||||
_marginY = (_ctrlTextPos select 1) - (_ctrlBcgCommonPos select 1);
|
||||
|
||||
private ["_ctrlTextPosH", "_bottomPosY"];
|
||||
private _ctrlTextPos = ctrlPosition _ctrlText;
|
||||
private _marginX = (_ctrlTextPos select 0) - (_ctrlBcgCommonPos select 0);
|
||||
private _marginY = (_ctrlTextPos select 1) - (_ctrlBcgCommonPos select 1);
|
||||
|
||||
_ctrlText ctrlSetStructuredText _textMessage;
|
||||
_ctrlTextPosH = ctrlTextHeight _ctrlText;
|
||||
private _ctrlTextPosH = ctrlTextHeight _ctrlText;
|
||||
|
||||
_ctrlBcgCommon ctrlSetPosition [
|
||||
_ctrlBcgCommonPos select 0,
|
||||
@ -83,11 +77,10 @@ _ctrlText ctrlSetPosition [
|
||||
];
|
||||
_ctrlText ctrlCommit 0;
|
||||
|
||||
_bottomPosY = (_ctrlBcgCommonPos select 1) + _ctrlTextPosH + (_marginY * 2) + _bottomSpaceY;
|
||||
private _bottomPosY = (_ctrlBcgCommonPos select 1) + _ctrlTextPosH + (_marginY * 2) + _bottomSpaceY;
|
||||
|
||||
{
|
||||
private "_xPos";
|
||||
_xPos = ctrlPosition _x;
|
||||
private _xPos = ctrlPosition _x;
|
||||
|
||||
_xPos set [1, _bottomPosY];
|
||||
_x ctrlSetPosition _xPos;
|
||||
@ -100,10 +93,8 @@ _bottomPosY = (_ctrlBcgCommonPos select 1) + _ctrlTextPosH + (_marginY * 2) + _b
|
||||
_ctrlButtonCancel
|
||||
];
|
||||
|
||||
private ["_ctrlRscMessageBoxPos", "_ctrlRscMessageBoxPosH"];
|
||||
|
||||
_ctrlRscMessageBoxPos = ctrlPosition _ctrlRscMessageBox;
|
||||
_ctrlRscMessageBoxPosH = _bottomPosY + (_ctrlButtonOKPos select 3);
|
||||
private _ctrlRscMessageBoxPos = ctrlPosition _ctrlRscMessageBox;
|
||||
private _ctrlRscMessageBoxPosH = _bottomPosY + (_ctrlButtonOKPos select 3);
|
||||
|
||||
_ctrlRscMessageBox ctrlSetPosition [
|
||||
0.5 - (_ctrlBcgCommonPos select 2) / 2,
|
||||
|
@ -28,12 +28,11 @@ _function = call compile _function;
|
||||
[[_arguments, _unit], _this select 1, 2] call FUNC(execRemoteFnc);
|
||||
|
||||
// save persistent function for JIP
|
||||
private ["_persistentFunctions", "_index"];
|
||||
|
||||
_persistentFunctions = _unit getVariable ["ACE_PersistentFunctions", []];
|
||||
private _persistentFunctions = _unit getVariable ["ACE_PersistentFunctions", []];
|
||||
|
||||
// find index to overwrite function with the same name, add to end otherwise
|
||||
_index = count _persistentFunctions;
|
||||
private _index = count _persistentFunctions;
|
||||
|
||||
{
|
||||
if (_x select 2 == _name) exitWith {
|
||||
_index = _forEachIndex;
|
||||
|
@ -15,26 +15,22 @@
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
private "_fnc_logEntries";
|
||||
_fnc_logEntries = {
|
||||
private _fnc_logEntries = {
|
||||
params ["_c", "_d"];
|
||||
|
||||
private ["_p", "_t", "_e", "_a", "_i"];
|
||||
private _p = inheritsFrom _c;
|
||||
|
||||
_p = inheritsFrom _c;
|
||||
|
||||
_t = format [["class %1: %2 {", "class %1 {"] select (configName _p == ""), configName _c, configName _p];
|
||||
private _t = format [["class %1: %2 {", "class %1 {"] select (configName _p == ""), configName _c, configName _p];
|
||||
for "_a" from 1 to _d do {
|
||||
_t = " " + _t;
|
||||
};
|
||||
diag_log text _t;
|
||||
|
||||
_e = [];
|
||||
private _e = [];
|
||||
for "_i" from 0 to (count _c - 1) do {
|
||||
private ["_e1, _e2"];
|
||||
_e1 = _c select _i;
|
||||
private _e1 = _c select _i;
|
||||
|
||||
_e2 = switch (true) do {
|
||||
private _e2 = switch (true) do {
|
||||
case (isNumber _e1): {getNumber _e1};
|
||||
case (isText _e1): {getText _e1};
|
||||
case (isArray _e1): {getArray _e1};
|
||||
|
@ -16,10 +16,9 @@
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
params ["_array", "_code"];
|
||||
params [["_array", [], [[]]], ["_code", {}, [{}]]];
|
||||
|
||||
private "_result";
|
||||
_result = [];
|
||||
private _result = [];
|
||||
|
||||
{
|
||||
if (_x call _code) then {
|
||||
|
@ -14,11 +14,9 @@
|
||||
|
||||
params ["_crate"];
|
||||
|
||||
private ["_weapons", "_items"];
|
||||
|
||||
// get all weapons inside the crate
|
||||
_weapons = weaponCargo _crate;
|
||||
_items = [];
|
||||
private _weapons = weaponCargo _crate;
|
||||
private _items = [];
|
||||
|
||||
// if the "weapon" is supposed to be an item, move those from the weapon array to the item array
|
||||
{
|
||||
|
@ -12,15 +12,13 @@
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
private "_object";
|
||||
_object = _this;
|
||||
params ["_object"];
|
||||
|
||||
// setHitPointDamage requires local object
|
||||
if (!local _object) exitWith {};
|
||||
|
||||
// save and restore hitpoints, see below why
|
||||
private "_hitPointDamages";
|
||||
_hitPointDamages = getAllHitPointsDamage _object;
|
||||
private _hitPointDamages = getAllHitPointsDamage _object;
|
||||
|
||||
// get correct format for objects without hitpoints
|
||||
if (_hitPointDamages isEqualTo []) then {
|
||||
|
@ -16,8 +16,7 @@
|
||||
// setVectorUp requires local object
|
||||
if (!local _this) exitWith {};
|
||||
|
||||
private "_position";
|
||||
_position = getPos _this;
|
||||
private _position = getPos _this;
|
||||
|
||||
// don't place the object below the ground
|
||||
if (_position select 2 < -0.1) then {
|
||||
|
@ -22,12 +22,10 @@ params ["_object", ["_category", ""]];
|
||||
|
||||
if (isNil QGVAR(OBJECT_VARIABLES_STORAGE)) exitWith {[]};
|
||||
|
||||
private ["_return", "_val"];
|
||||
|
||||
_return = [];
|
||||
private _return = [];
|
||||
|
||||
{
|
||||
_val = _object getVariable (_x select 0);
|
||||
private _val = _object getVariable (_x select 0);
|
||||
|
||||
if (!isNil "_val") then {
|
||||
if (_category == "" || _category == _x select 3) then {
|
||||
|
@ -14,13 +14,10 @@
|
||||
|
||||
params ["_unit"];
|
||||
|
||||
private ["_captivityReasons", "_unitCaptivityStatus", "_unitCaptivityReasons"];
|
||||
private _captivityReasons = missionNamespace getVariable ["ACE_captivityReasons", []];
|
||||
private _unitCaptivityStatus = [captiveNum _unit, count _captivityReasons] call FUNC(binarizeNumber);
|
||||
|
||||
_captivityReasons = missionNamespace getVariable ["ACE_captivityReasons", []];
|
||||
|
||||
_unitCaptivityStatus = [captiveNum _unit, count _captivityReasons] call FUNC(binarizeNumber);
|
||||
|
||||
_unitCaptivityReasons = [];
|
||||
private _unitCaptivityReasons = [];
|
||||
|
||||
{
|
||||
if (_unitCaptivityStatus select _forEachIndex) then {
|
||||
|
@ -14,7 +14,6 @@
|
||||
|
||||
params ["_name", "_cfgClass"];
|
||||
|
||||
private "_classes";
|
||||
_classes = format ["configName inheritsFrom _x == '%1'", _name] configClasses (configFile >> _cfgClass);
|
||||
private _classes = format ["configName inheritsFrom _x == '%1'", _name] configClasses (configFile >> _cfgClass);
|
||||
|
||||
[_classes, {configName _this}] call FUNC(map) // return
|
||||
|
@ -14,9 +14,7 @@
|
||||
|
||||
params ["_vehicle"];
|
||||
|
||||
private ["_config", "_turret"];
|
||||
|
||||
_config = configFile >> "CfgVehicles" >> typeOf _vehicle;
|
||||
_turret = [_vehicle] call FUNC(getTurretCommander);
|
||||
private _config = configFile >> "CfgVehicles" >> typeOf _vehicle;
|
||||
private _turret = _vehicle call FUNC(getTurretCommander);
|
||||
|
||||
[_config, _turret] call FUNC(getTurretConfigPath) // return
|
||||
|
@ -14,9 +14,7 @@
|
||||
|
||||
params ["_vehicle"];
|
||||
|
||||
private ["_config", "_turret"];
|
||||
|
||||
_config = configFile >> "CfgVehicles" >> typeOf _vehicle;
|
||||
_turret = [_vehicle] call FUNC(getTurretGunner);
|
||||
private _config = configFile >> "CfgVehicles" >> typeOf _vehicle;
|
||||
private _turret = _vehicle call FUNC(getTurretGunner);
|
||||
|
||||
[_config, _turret] call FUNC(getTurretConfigPath) // return
|
||||
|
@ -17,25 +17,23 @@
|
||||
|
||||
params ["_unit"];
|
||||
|
||||
private ["_returnAnimation", "_animationState", "_unitAnimationCfg", "_unitActionsCfg", "_interpolateArray", "_indexAnimation"];
|
||||
private _returnAnimation = "";
|
||||
|
||||
_returnAnimation = "";
|
||||
|
||||
_animationState = animationState _unit;
|
||||
_unitAnimationCfg = configFile >> "CfgMovesMaleSdr" >> "States" >> _animationState;
|
||||
private _animationState = animationState _unit;
|
||||
private _unitAnimationCfg = configFile >> "CfgMovesMaleSdr" >> "States" >> _animationState;
|
||||
|
||||
//If we're already in a terminal animation just return current
|
||||
if (getNumber (_unitAnimationCfg >> "terminal") == 1) exitWith {_animationState};
|
||||
|
||||
_unitActionsCfg = configFile >> "CfgMovesBasic" >> "Actions" >> getText (_unitAnimationCfg >> "actions");
|
||||
private _unitActionsCfg = configFile >> "CfgMovesBasic" >> "Actions" >> getText (_unitAnimationCfg >> "actions");
|
||||
|
||||
TRACE_2("Animation/Action", configName _unitAnimationCfg, configName _unitActionsCfg);
|
||||
|
||||
if (vehicle _unit != _unit) then {
|
||||
_interpolateArray = getArray (_unitAnimationCfg >> "interpolateTo");
|
||||
private _interpolateArray = getArray (_unitAnimationCfg >> "interpolateTo");
|
||||
|
||||
for "_index" from 0 to (count _interpolateArray - 1) step 2 do {
|
||||
_indexAnimation = _interpolateArray select _index;
|
||||
private _indexAnimation = _interpolateArray select _index;
|
||||
|
||||
//No guarentee that first animation will be right so scan for the first "terminal" animation
|
||||
//E.G.: interpolateTo[] = {"passenger_apc_generic04still",1,"KIA_passenger_apc_generic04",1};
|
||||
|
@ -17,12 +17,10 @@
|
||||
|
||||
params ["_unit"];
|
||||
|
||||
private ["_anim", "_stance"];
|
||||
|
||||
_anim = toLower animationState _unit;
|
||||
private _anim = toLower animationState _unit;
|
||||
|
||||
// stance is broken for some animations.
|
||||
_stance = stance _unit;
|
||||
private _stance = stance _unit;
|
||||
|
||||
if (_anim find "ppne" == 4) then {
|
||||
_stance = "PRONE";
|
||||
|
@ -15,15 +15,13 @@
|
||||
|
||||
params ["_unit", "_variable", "_defaultValue"];
|
||||
|
||||
private "_value";
|
||||
_value = _unit getVariable _variable;
|
||||
private _value = _unit getVariable _variable;
|
||||
|
||||
if (isNil "_value") then {
|
||||
if (!isNil "_defaultValue") then {
|
||||
_value = _defaultValue;
|
||||
} else {
|
||||
private "_definedVariable";
|
||||
_definedVariable = [_variable] call FUNC(getDefinedVariableInfo);
|
||||
private _definedVariable = _variable call FUNC(getDefinedVariableInfo);
|
||||
|
||||
if (count _definedVariable > 1) then {
|
||||
_value = _definedVariable select 1;
|
||||
|
@ -14,8 +14,7 @@
|
||||
|
||||
params ["_varName"];
|
||||
|
||||
private "_variableDefinition";
|
||||
_variableDefinition = [_varName] call FUNC(getDefinedVariableInfo);
|
||||
private _variableDefinition = _varName call FUNC(getDefinedVariableInfo);
|
||||
|
||||
if !(_variableDefinition isEqualTo []) exitWith {
|
||||
_variableDefinition select 1;
|
||||
|
@ -16,12 +16,10 @@
|
||||
|
||||
params ["_idd"];
|
||||
|
||||
private ["_configNames", "_config"];
|
||||
|
||||
_configNames = [];
|
||||
private _configNames = [];
|
||||
|
||||
for "_index" from 0 to (count configFile - 1) do {
|
||||
_config = configFile select _index;
|
||||
private _config = configFile select _index;
|
||||
|
||||
if (isClass _config && {isNumber (_config >> "idd")} && {getNumber (_config >> "idd") == _idd}) then {
|
||||
_configNames pushBack configName _config;
|
||||
|
@ -14,14 +14,12 @@
|
||||
|
||||
params ["_vehicle"];
|
||||
|
||||
private ["_turrets", "_doorTurrets", "_config"];
|
||||
private _turrets = allTurrets [_vehicle, true];
|
||||
|
||||
_turrets = allTurrets [_vehicle, true];
|
||||
|
||||
_doorTurrets = [];
|
||||
private _doorTurrets = [];
|
||||
|
||||
{
|
||||
_config = configFile >> "CfgVehicles" >> typeOf _vehicle;
|
||||
private _config = configFile >> "CfgVehicles" >> typeOf _vehicle;
|
||||
|
||||
_config = [_config, _x] call FUNC(getTurretConfigPath);
|
||||
|
||||
|
@ -17,20 +17,16 @@
|
||||
|
||||
params ["_source", "_destination", "_accuracy"];
|
||||
|
||||
private ["_result", "_distance"];
|
||||
private _result = [false, [0, 0, 0]];
|
||||
|
||||
_result = [false, [0, 0, 0]];
|
||||
|
||||
_distance = _source vectorDistance _destination;
|
||||
private _distance = _source vectorDistance _destination;
|
||||
|
||||
if !(lineIntersectsWith [_source, _destination] isEqualTo []) then {
|
||||
private ["_lower", "_upper", "_mid", "_dir"];
|
||||
private _lower = 0;
|
||||
private _upper = 1;
|
||||
private _mid = 0.5;
|
||||
|
||||
_lower = 0;
|
||||
_upper = 1;
|
||||
_mid = 0.5;
|
||||
|
||||
_dir = _source vectorFromTo _destination;
|
||||
private _dir = _source vectorFromTo _destination;
|
||||
|
||||
while {(_upper - _lower) * _distance > _accuracy} do {
|
||||
_mid = _lower + (_upper - _lower) / 2;
|
||||
|
@ -17,20 +17,16 @@
|
||||
|
||||
params ["_source", "_destination", "_accuracy"];
|
||||
|
||||
private ["_result", "_distance"];
|
||||
private _result = [false, [0, 0, 0]];
|
||||
|
||||
_result = [false, [0, 0, 0]];
|
||||
|
||||
_distance = _source vectorDistance _destination;
|
||||
private _distance = _source vectorDistance _destination;
|
||||
|
||||
if (terrainIntersectASL [_source, _destination]) then {
|
||||
private ["_lower", "_upper", "_mid", "_dir"];
|
||||
private _lower = 0;
|
||||
private _upper = 1;
|
||||
private _mid = 0.5;
|
||||
|
||||
_lower = 0;
|
||||
_upper = 1;
|
||||
_mid = 0.5;
|
||||
|
||||
_dir = _source vectorFromTo _destination;
|
||||
private _dir = _source vectorFromTo _destination;
|
||||
|
||||
while {(_upper - _lower) * _distance > _accuracy} do {
|
||||
_mid = _lower + (_upper - _lower) / 2;
|
||||
|
@ -17,15 +17,11 @@
|
||||
|
||||
params ["_unit"];
|
||||
|
||||
private ["_forceWalkReasons", "_unitForceWalkNumber", "_unitForceWalkStatus", "_unitForceWalkReasons"];
|
||||
private _forceWalkReasons = missionNamespace getVariable ["ACE_forceWalkReasons", []];
|
||||
private _unitForceWalkNumber = _unit getVariable ["ACE_forceWalkStatusNumber", 0];
|
||||
private _unitForceWalkStatus = [_unitForceWalkNumber, count _forceWalkReasons] call FUNC(binarizeNumber);
|
||||
|
||||
_forceWalkReasons = missionNamespace getVariable ["ACE_forceWalkReasons", []];
|
||||
|
||||
_unitForceWalkNumber = _unit getVariable ["ACE_forceWalkStatusNumber", 0];
|
||||
|
||||
_unitForceWalkStatus = [_unitForceWalkNumber, count _forceWalkReasons] call FUNC(binarizeNumber);
|
||||
|
||||
_unitForceWalkReasons = [];
|
||||
private _unitForceWalkReasons = [];
|
||||
|
||||
{
|
||||
if (_unitForceWalkStatus select _forEachIndex) then {
|
||||
|
@ -13,14 +13,13 @@
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
params ["_vehicle", "_weapon"];
|
||||
params [["_vehicle", objNull, [objNull]], ["_weapon", "", [""]]];
|
||||
|
||||
// on foot
|
||||
if (gunner _vehicle == _vehicle && {_weapon in weapons _vehicle || {toLower _weapon in ["throw", "put"]}}) exitWith {gunner _vehicle};
|
||||
|
||||
// inside vehicle
|
||||
private "_gunner";
|
||||
_gunner = objNull;
|
||||
private _gunner = objNull;
|
||||
|
||||
{
|
||||
if (_weapon in (_vehicle weaponsTurret _x)) exitWith {
|
||||
|
@ -18,8 +18,7 @@ ACE_DEPRECATED("ace_common_fnc_getHitPoints","3.5.0","getAllHitPointsDamage");
|
||||
|
||||
params ["_vehicle"];
|
||||
|
||||
private "_hitPointsWithSelections";
|
||||
_hitPointsWithSelections = getAllHitPointsDamage _vehicle;
|
||||
private _hitPointsWithSelections = getAllHitPointsDamage _vehicle;
|
||||
|
||||
// get correct format on vehicles without any hitpoints
|
||||
if (_hitPointsWithSelections isEqualTo []) then {
|
||||
|
@ -19,8 +19,7 @@ ACE_DEPRECATED("ace_common_fnc_getHitPointsWithSelections","3.5.0","getAllHitPoi
|
||||
|
||||
params ["_vehicle"];
|
||||
|
||||
private "_hitPointsWithSelections";
|
||||
_hitPointsWithSelections = getAllHitPointsDamage _vehicle;
|
||||
private _hitPointsWithSelections = getAllHitPointsDamage _vehicle;
|
||||
|
||||
// get correct format on vehicles without any hitpoints
|
||||
if (_hitPointsWithSelections isEqualTo []) then {
|
||||
|
@ -25,15 +25,13 @@ _position = toLower _position;
|
||||
// general
|
||||
if (!alive _vehicle || {locked _vehicle > 1}) exitWith {false};
|
||||
|
||||
private ["_config", "_turret", "_isInside", "_script", "_enemiesInVehicle"];
|
||||
private _config = configFile >> "CfgVehicles" >> typeOf _vehicle;
|
||||
private _turret = [];
|
||||
|
||||
_config = configFile >> "CfgVehicles" >> typeOf _vehicle;
|
||||
_turret = [];
|
||||
private _isInside = vehicle _unit == _vehicle;
|
||||
|
||||
_isInside = vehicle _unit == _vehicle;
|
||||
|
||||
_script = {};
|
||||
_enemiesInVehicle = false; //Possible Side Restriction
|
||||
private _script = {};
|
||||
private _enemiesInVehicle = false; //Possible Side Restriction
|
||||
|
||||
{
|
||||
if (side _unit getFriend side _x < 0.6) exitWith {_enemiesInVehicle = true};
|
||||
@ -96,8 +94,7 @@ switch (_position) do {
|
||||
};
|
||||
|
||||
case "turret" : {
|
||||
private "_turrets";
|
||||
_turrets = [_vehicle] call FUNC(getTurretsOther);
|
||||
private _turrets = [_vehicle] call FUNC(getTurretsOther);
|
||||
|
||||
if (_index != -1 && {_turret = _turrets select _index; CANGETINTURRETINDEX}) then {
|
||||
_script = [
|
||||
@ -122,8 +119,7 @@ switch (_position) do {
|
||||
};
|
||||
|
||||
case "ffv" : {
|
||||
private "_turrets";
|
||||
_turrets = [_vehicle] call FUNC(getTurretsFFV);
|
||||
private _turrets = [_vehicle] call FUNC(getTurretsFFV);
|
||||
|
||||
if (_index != -1 && {_turret = _turrets select _index; CANGETINTURRETINDEX}) then {
|
||||
_script = [
|
||||
@ -148,8 +144,7 @@ switch (_position) do {
|
||||
};
|
||||
|
||||
case "codriver" : {
|
||||
private "_positions";
|
||||
_positions = [typeOf _vehicle] call FUNC(getVehicleCodriver);
|
||||
private _positions = [typeOf _vehicle] call FUNC(getVehicleCodriver);
|
||||
|
||||
{
|
||||
if (alive _x) then {_positions deleteAt (_positions find (_vehicle getCargoIndex _x))};
|
||||
@ -207,11 +202,9 @@ switch (_position) do {
|
||||
};
|
||||
|
||||
// this will execute all config based event handlers. Not script based ones unfortunately, but atleast we don't use any.
|
||||
private "_fnc_getInEH";
|
||||
_fnc_getInEH = {
|
||||
private "_config";
|
||||
private _fnc_getInEH = {
|
||||
// config based getIn EHs are assigned to the soldier, not the vehicle. Why Bis? Why?
|
||||
_config = configFile >> "CfgVehicles" >> typeOf _unit >> "EventHandlers";
|
||||
private _config = configFile >> "CfgVehicles" >> typeOf _unit >> "EventHandlers";
|
||||
|
||||
if (isClass _config) then {
|
||||
//getIn is local effects with global arguments. It doesn't trigger if the unit was already inside and only switched seats
|
||||
|
@ -15,23 +15,21 @@
|
||||
|
||||
params ["_item"];
|
||||
|
||||
private ["_cfgType", "_config", "_type", "_simulation", "_default"];
|
||||
|
||||
_cfgType = [_item] call FUNC(getConfigType);
|
||||
private _cfgType = [_item] call FUNC(getConfigType);
|
||||
|
||||
if (_cfgType == "") exitWith {["", ""]};
|
||||
|
||||
if (_cfgType == "CfgGlasses") exitWith {["item", "glasses"]};
|
||||
|
||||
_config = configFile >> _cfgType >> _item;
|
||||
_type = getNumber (_config >> "type");
|
||||
_simulation = getText (_config >> "simulation");
|
||||
private _config = configFile >> _cfgType >> _item;
|
||||
private _type = getNumber (_config >> "type");
|
||||
private _simulation = getText (_config >> "simulation");
|
||||
|
||||
if (isNumber (_config >> "ItemInfo" >> "type")) then {
|
||||
_type = getNumber (_config >> "ItemInfo" >> "type");
|
||||
};
|
||||
|
||||
_default = ["item", "magazine"] select (_cfgType == "CfgMagazines");
|
||||
private _default = ["item", "magazine"] select (_cfgType == "CfgMagazines");
|
||||
|
||||
switch (true) do {
|
||||
case (_type == 0): {[_default, "unknown"]};
|
||||
|
@ -19,14 +19,12 @@
|
||||
|
||||
params ["_vehicle", "_light"];
|
||||
|
||||
private ["_config", "_intensity", "_position", "_direction", "_innerAngle", "_outerAngle"];
|
||||
private _config = configFile >> "CfgVehicles" >> typeOf _vehicle >> "Reflectors" >> _light;
|
||||
|
||||
_config = configFile >> "CfgVehicles" >> typeOf _vehicle >> "Reflectors" >> _light;
|
||||
|
||||
_intensity = getNumber (_config >> "intensity");
|
||||
_position = getText (_config >> "position");
|
||||
_direction = getText (_config >> "direction");
|
||||
_innerAngle = getNumber (_config >> "innerAngle");
|
||||
_outerAngle = getNumber (_config >> "outerAngle");
|
||||
private _intensity = getNumber (_config >> "intensity");
|
||||
private _position = getText (_config >> "position");
|
||||
private _direction = getText (_config >> "direction");
|
||||
private _innerAngle = getNumber (_config >> "innerAngle");
|
||||
private _outerAngle = getNumber (_config >> "outerAngle");
|
||||
|
||||
[_intensity, _position, _direction, _innerAngle, _outerAngle]
|
||||
|
@ -18,16 +18,12 @@
|
||||
|
||||
params ["_weapon"];
|
||||
|
||||
// @todo: Can weapons themselves still have flashlights (no attachment)?
|
||||
private _config = configFile >> "CfgWeapons" >> _weapon >> "ItemInfo" >> "FlashLight";
|
||||
|
||||
private ["_config", "_intensity", "_position", "_direction", "_innerAngle", "_outerAngle"];
|
||||
|
||||
_config = configFile >> "CfgWeapons" >> _weapon >> "ItemInfo" >> "FlashLight";
|
||||
|
||||
_intensity = getNumber (_config >> "intensity");
|
||||
_position = getText (_config >> "position");
|
||||
_direction = getText (_config >> "direction");
|
||||
_innerAngle = getNumber (_config >> "innerAngle");
|
||||
_outerAngle = getNumber (_config >> "outerAngle");
|
||||
private _intensity = getNumber (_config >> "intensity");
|
||||
private _position = getText (_config >> "position");
|
||||
private _direction = getText (_config >> "direction");
|
||||
private _innerAngle = getNumber (_config >> "innerAngle");
|
||||
private _outerAngle = getNumber (_config >> "outerAngle");
|
||||
|
||||
[_intensity, _position, _direction, _innerAngle, _outerAngle]
|
||||
|
@ -18,11 +18,9 @@
|
||||
|
||||
params [["_map", worldName]];
|
||||
|
||||
private ["_long", "_lat", "_altitude", "_UTM", "_easting", "_northing", "_zone", "_band", "_GZD"];
|
||||
|
||||
_long = getNumber (configFile >> "CfgWorlds" >> _map >> "longitude");
|
||||
_lat = getNumber (configFile >> "CfgWorlds" >> _map >> "latitude");
|
||||
_altitude = getNumber (configFile >> "CfgWorlds" >> _map >> "elevationOffset");
|
||||
private _long = getNumber (configFile >> "CfgWorlds" >> _map >> "longitude");
|
||||
private _lat = getNumber (configFile >> "CfgWorlds" >> _map >> "latitude");
|
||||
private _altitude = getNumber (configFile >> "CfgWorlds" >> _map >> "elevationOffset");
|
||||
|
||||
if (_map in ["Chernarus", "Bootcamp_ACR", "Woodland_ACR", "utes"]) then { _lat = 50; _altitude = 0; };
|
||||
if (_map in ["Altis", "Stratis"]) then { _lat = 40; _altitude = 0; };
|
||||
@ -46,14 +44,14 @@ if (_map in ["lingor"]) then { _lat = -4; _altitude = 0; };
|
||||
if (_map in ["Panthera3"]) then { _lat = 46; _altitude = 0; };
|
||||
if (_map in ["Kunduz"]) then { _lat = 37; _altitude = 400; };
|
||||
|
||||
_UTM = [_long,_lat] call BIS_fnc_posDegToUTM;
|
||||
_easting = _UTM select 0;
|
||||
_northing = _UTM select 1;
|
||||
//_zone = _UTM select 2;
|
||||
private _UTM = [_long,_lat] call BIS_fnc_posDegToUTM;
|
||||
private _easting = _UTM select 0;
|
||||
private _northing = _UTM select 1;
|
||||
//private _zone = _UTM select 2;
|
||||
TRACE_4("",_UTM,_easting,_northing,_zone);
|
||||
|
||||
/*
|
||||
_band = switch (true) do {
|
||||
private _band = switch (true) do {
|
||||
case (_lat<-72): {"C"};
|
||||
case (_lat<-64): {"D"};
|
||||
case (_lat<-56): {"E"};
|
||||
@ -77,8 +75,8 @@ _band = switch (true) do {
|
||||
};
|
||||
*/
|
||||
|
||||
_zone = 1 + (floor ((_long + 180) / 6));
|
||||
_band = "Z";
|
||||
private _zone = 1 + (floor ((_long + 180) / 6));
|
||||
private _band = "Z";
|
||||
|
||||
if (_lat <= -80) then {
|
||||
_band = "A";
|
||||
@ -90,17 +88,17 @@ if (_lat <= -80) then {
|
||||
|
||||
if (_map == "VR") then {_zone = 0; _band = "RV";};
|
||||
|
||||
_GZD = format ["%1%2",_zone,_band];
|
||||
private _GZD = format ["%1%2",_zone,_band];
|
||||
TRACE_3("",_zone,_band,_GZD);
|
||||
|
||||
private ["_set1", "_set2", "_set3", "_set4", "_set5", "_set6", "_metaE", "_metaN", "_letterE", "_letterN", "_grid100km"];
|
||||
private ["_metaE", "_metaN", "_letterE", "_letterN"];
|
||||
|
||||
_set1 = [1,7,13,19,25,31,37,43,49,55];
|
||||
_set2 = [2,8,14,20,26,32,38,44,50,56];
|
||||
_set3 = [3,9,15,21,27,33,39,45,51,57];
|
||||
_set4 = [4,10,16,22,28,34,40,46,52,58];
|
||||
_set5 = [5,11,17,23,29,35,41,47,53,59];
|
||||
_set6 = [6,12,18,24,30,36,42,48,54,60];
|
||||
private _set1 = [1,7,13,19,25,31,37,43,49,55];
|
||||
private _set2 = [2,8,14,20,26,32,38,44,50,56];
|
||||
private _set3 = [3,9,15,21,27,33,39,45,51,57];
|
||||
private _set4 = [4,10,16,22,28,34,40,46,52,58];
|
||||
private _set5 = [5,11,17,23,29,35,41,47,53,59];
|
||||
private _set6 = [6,12,18,24,30,36,42,48,54,60];
|
||||
|
||||
switch (true) do {
|
||||
case (_zone in _set1): {_metaE = 1; _metaN = 1;};
|
||||
@ -154,7 +152,7 @@ switch (true) do {
|
||||
};
|
||||
TRACE_1("",_letterN);
|
||||
|
||||
_grid100km = _letterE + _letterN;
|
||||
private _grid100km = _letterE + _letterN;
|
||||
TRACE_1("",_grid100km);
|
||||
|
||||
if (_map == worldName) then {
|
||||
|
@ -19,20 +19,18 @@
|
||||
|
||||
GVAR(mapGridData) = [];
|
||||
|
||||
private ["_cfgGrid", "_offsetX", "_offsetY", "_zoomMax", "_formatX", "_formatY", "_stepX", "_stepY", "_zoom", "_letterGrid", "_heightOffset", "_startGrid", "_originGrid", "_realOffsetY"];
|
||||
|
||||
//--- Extract grid values from world config (Borrowed from BIS_fnc_gridToPos)
|
||||
_cfgGrid = configFile >> "CfgWorlds" >> worldName >> "Grid";
|
||||
_offsetX = getNumber (_cfgGrid >> "offsetX");
|
||||
_offsetY = getNumber (_cfgGrid >> "offsetY");
|
||||
_zoomMax = 1e99;
|
||||
_formatX = "";
|
||||
_formatY = "";
|
||||
_stepX = 1e10;
|
||||
_stepY = 1e10;
|
||||
private _cfgGrid = configFile >> "CfgWorlds" >> worldName >> "Grid";
|
||||
private _offsetX = getNumber (_cfgGrid >> "offsetX");
|
||||
private _offsetY = getNumber (_cfgGrid >> "offsetY");
|
||||
private _zoomMax = 1e99;
|
||||
private _formatX = "";
|
||||
private _formatY = "";
|
||||
private _stepX = 1e10;
|
||||
private _stepY = 1e10;
|
||||
|
||||
{
|
||||
_zoom = getnumber (_x >> "zoomMax");
|
||||
private _zoom = getnumber (_x >> "zoomMax");
|
||||
if (_zoom < _zoomMax) then {
|
||||
_zoomMax = _zoom;
|
||||
_formatX = getText (_x >> "formatX");
|
||||
@ -43,7 +41,7 @@ _stepY = 1e10;
|
||||
false
|
||||
} count configProperties [_cfgGrid, "isClass _x", false];
|
||||
|
||||
_letterGrid = false;
|
||||
private _letterGrid = false;
|
||||
|
||||
if (toLower _formatX find "a" != -1) then {_letterGrid = true};
|
||||
if (toLower _formatY find "a" != -1) then {_letterGrid = true};
|
||||
@ -53,9 +51,9 @@ if (_letterGrid) exitWith {
|
||||
};
|
||||
|
||||
//Start at [0, 500] and move north until we get a change in grid
|
||||
_heightOffset = 500;
|
||||
_startGrid = mapGridPosition [0, _heightOffset];
|
||||
_originGrid = _startGrid;
|
||||
private _heightOffset = 500;
|
||||
private _startGrid = mapGridPosition [0, _heightOffset];
|
||||
private _originGrid = _startGrid;
|
||||
|
||||
while {_startGrid == _originGrid} do {
|
||||
_heightOffset = _heightOffset + 1;
|
||||
@ -63,7 +61,7 @@ while {_startGrid == _originGrid} do {
|
||||
};
|
||||
|
||||
//Calculate the real y offset
|
||||
_realOffsetY = (parseNumber (_originGrid select [count _formatX, count _formatY])) * _stepY + _heightOffset - 1;
|
||||
private _realOffsetY = (parseNumber (_originGrid select [count _formatX, count _formatY])) * _stepY + _heightOffset - 1;
|
||||
|
||||
//Calculate MGRS 10digit step - they should both be 1 meter:
|
||||
_stepXat5 = _stepX * 10 ^ ((count _formatX) - 5);
|
||||
|
@ -19,24 +19,22 @@
|
||||
|
||||
params ["_pos", ["_returnSingleString", false]];
|
||||
|
||||
private ["_nativeGrid", "_count", "_easting", "_northing"];
|
||||
|
||||
//Fallback, when map data is weird (letters)
|
||||
if (GVAR(mapGridData) isEqualTo []) exitWith {
|
||||
_nativeGrid = mapGridPosition _pos;
|
||||
private _nativeGrid = mapGridPosition _pos;
|
||||
|
||||
if (_returnSingleString) then {
|
||||
_nativeGrid
|
||||
} else {
|
||||
_count = floor ((count _nativeGrid) / 2);
|
||||
private _count = floor ((count _nativeGrid) / 2);
|
||||
[_nativeGrid select [0, _count], _nativeGrid select [_count, _count]]
|
||||
};
|
||||
};
|
||||
|
||||
GVAR(mapGridData) params ["_offsetX", "_realOffsetY", "_stepXat5", "_stepYat5"];
|
||||
|
||||
_easting = floor (((_pos select 0) - _offsetX) / _stepXat5);
|
||||
_northing = floor (((_pos select 1) - _realOffsetY) / _stepYat5);
|
||||
private _easting = floor (((_pos select 0) - _offsetX) / _stepXat5);
|
||||
private _northing = floor (((_pos select 1) - _realOffsetY) / _stepYat5);
|
||||
|
||||
//Attempt to handle negative east/north (e.g.: moving west of map bounds)
|
||||
if (_easting > 0) then {
|
||||
|
@ -25,17 +25,15 @@ if (count GVAR(mapGridData) == 0) exitWith {
|
||||
|
||||
GVAR(mapGridData) params ["_offsetX", "_realOffsetY", "_stepXat5", "_stepYat5"];
|
||||
|
||||
private ["_countInput", "_countInputHalf", "_xPart", "_yPart", "_xPos", "_yPos"];
|
||||
|
||||
_countInput = count _inputString;
|
||||
_countInputHalf = floor (_countInput / 2);
|
||||
private _countInput = count _inputString;
|
||||
private _countInputHalf = floor (_countInput / 2);
|
||||
|
||||
//Split string, ignoring middle
|
||||
_xPart = _inputString select [0, _countInputHalf];
|
||||
_yPart = _inputString select [ceil (_countInput / 2), _countInputHalf];
|
||||
private _xPart = _inputString select [0, _countInputHalf];
|
||||
private _yPart = _inputString select [ceil (_countInput / 2), _countInputHalf];
|
||||
|
||||
_xPos = ((parseNumber _xPart) * _stepXat5 * 10 ^ (5 - _countInputHalf)) + _offsetX;
|
||||
_yPos = ((parseNumber _yPart) * _stepYat5 * 10 ^ (5 - _countInputHalf)) + _realOffsetY;
|
||||
private _xPos = ((parseNumber _xPart) * _stepXat5 * 10 ^ (5 - _countInputHalf)) + _offsetX;
|
||||
private _yPos = ((parseNumber _yPart) * _stepYat5 * 10 ^ (5 - _countInputHalf)) + _realOffsetY;
|
||||
|
||||
if (_getCenterOfGrid) then {
|
||||
_xPos = _xPos + 0.5 * _stepXat5 * 10 ^ (5 - _countInputHalf);
|
||||
|
@ -14,11 +14,9 @@
|
||||
|
||||
params ["_group"];
|
||||
|
||||
private ["_leader", "_vehicle", "_side"];
|
||||
|
||||
_leader = leader _group;
|
||||
_vehicle = vehicle _leader;
|
||||
_side = side _leader;
|
||||
private _leader = leader _group;
|
||||
private _vehicle = vehicle _leader;
|
||||
private _side = side _leader;
|
||||
|
||||
if (_vehicle == _leader) exitWith {
|
||||
if (
|
||||
|
@ -15,8 +15,7 @@
|
||||
|
||||
params ["_unit", "_magazine"];
|
||||
|
||||
private "_return";
|
||||
_return = 0;
|
||||
private _return = 0;
|
||||
|
||||
if (_unit isKindOf "CAManBase") then {
|
||||
_return = {_x == _magazine} count magazines _unit;
|
||||
|
@ -18,23 +18,18 @@
|
||||
|
||||
params ["_vehicle"];
|
||||
|
||||
private ["_config", "_hitpoints", "_selections"];
|
||||
private _config = configFile >> "CfgVehicles" >> typeOf _vehicle;
|
||||
|
||||
_config = configFile >> "CfgVehicles" >> typeOf _vehicle;
|
||||
|
||||
_hitpoints = [];
|
||||
_selections = [];
|
||||
private _hitpoints = [];
|
||||
private _selections = [];
|
||||
|
||||
// iterate through all parents
|
||||
while {isClass _config} do {
|
||||
private "_class";
|
||||
_class = _config >> "Reflectors";
|
||||
private _class = _config >> "Reflectors";
|
||||
|
||||
for "_i" from 0 to (count _class - 1) do {
|
||||
private ["_entry", "_selection"];
|
||||
|
||||
_entry = _class select _i;
|
||||
_selection = getText (_entry >> "hitpoint");
|
||||
private _entry = _class select _i;
|
||||
private _selection = getText (_entry >> "hitpoint");
|
||||
|
||||
if (!(_selection in _selections) && {!isNil {_vehicle getHit _selection}}) then {
|
||||
_hitpoints pushBack configName _entry;
|
||||
|
@ -13,11 +13,9 @@
|
||||
|
||||
params ["_vehicle"];
|
||||
|
||||
private ["_hitPointsFull", "_allSelectionsWithoutHitpoints"];
|
||||
private _hitPointsFull = getAllHitPointsDamage _vehicle;
|
||||
|
||||
_hitPointsFull = getAllHitPointsDamage _vehicle;
|
||||
|
||||
_allSelectionsWithoutHitpoints = [];
|
||||
private _allSelectionsWithoutHitpoints = [];
|
||||
|
||||
{
|
||||
if (_x == "") then {
|
||||
|
@ -23,12 +23,13 @@
|
||||
|
||||
params ["_name"];
|
||||
|
||||
private "_value";
|
||||
_value = [];
|
||||
scopeName "main";
|
||||
|
||||
{
|
||||
if (_x select 0 == _name) exitWith {_value = _x};
|
||||
if (_x select 0 == _name) then {
|
||||
_x breakOut "main";
|
||||
};
|
||||
false
|
||||
} count GVAR(settings);
|
||||
|
||||
_value
|
||||
[]
|
||||
|
@ -14,13 +14,11 @@
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
private ["_path", "_mission", "_class", "_index", "_array", "_entry"];
|
||||
|
||||
_path = _this;
|
||||
[_this] params ["_path", [], [[]]];
|
||||
|
||||
if (missionName == "") exitWith {""};
|
||||
|
||||
_mission = toArray toLower loadFile "mission.sqm";
|
||||
private _mission = toArray toLower loadFile "mission.sqm";
|
||||
_mission resize 65536;
|
||||
|
||||
{
|
||||
@ -34,11 +32,9 @@ _mission = toString (_mission - [-1]);
|
||||
{_path set [_forEachIndex, toLower _x]} forEach _path;
|
||||
|
||||
for "_a" from 0 to (count _path - 2) do {
|
||||
_class = format ["class%1{", _path select _a];
|
||||
|
||||
_index = _mission find _class;
|
||||
|
||||
_array = toArray _mission;
|
||||
private _class = format ["class%1{", _path select _a];
|
||||
private _index = _mission find _class;
|
||||
private _array = toArray _mission;
|
||||
|
||||
for "_b" from 0 to (_index + count toArray _class - 1) do {
|
||||
_array set [_b, -1];
|
||||
@ -49,7 +45,7 @@ for "_a" from 0 to (count _path - 2) do {
|
||||
_mission = toString _array;
|
||||
};
|
||||
|
||||
_entry = format ["%1=", _path select (count _path - 1)];
|
||||
private _entry = format ["%1=", _path select (count _path - 1)];
|
||||
_index = _mission find _entry;
|
||||
|
||||
if (_index == -1) exitWith {""};
|
||||
|
@ -13,13 +13,11 @@
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
private ["_position", "_direction", "_azimuth", "_inclination"];
|
||||
private _position = ATLToASL positionCameraToWorld [0, 0, 0];
|
||||
private _direction = ATLToASL positionCameraToWorld [0, 0, 1];
|
||||
|
||||
_position = ATLToASL positionCameraToWorld [0, 0, 0];
|
||||
_direction = ATLToASL positionCameraToWorld [0, 0, 1];
|
||||
|
||||
_azimuth = ((_direction select 0) - (_position select 0)) atan2 ((_direction select 1) - (_position select 1));
|
||||
_inclination = asin ((_direction select 2) - (_position select 2));
|
||||
private _azimuth = ((_direction select 0) - (_position select 0)) atan2 ((_direction select 1) - (_position select 1));
|
||||
private _inclination = asin ((_direction select 2) - (_position select 2));
|
||||
|
||||
if (_azimuth < 0) then {_azimuth = _azimuth + 360};
|
||||
|
||||
|
@ -16,16 +16,14 @@
|
||||
|
||||
params ["_interval", "_maxDistance", "_minDistance"];
|
||||
|
||||
private ["_position", "_laser", "_line", "_distance", "_iteration"];
|
||||
|
||||
_position = ATLToASL positionCameraToWorld [0, 0, 0];
|
||||
private _position = ATLToASL positionCameraToWorld [0, 0, 0];
|
||||
_position set [2, (_position select 2) - (getTerrainHeightASL _position min 0)];
|
||||
|
||||
_laser = + _position;
|
||||
_line = [_position, _laser];
|
||||
private _laser = + _position;
|
||||
private _line = [_position, _laser];
|
||||
|
||||
_distance = _maxDistance;
|
||||
_iteration = _distance;
|
||||
private _distance = _maxDistance;
|
||||
private _iteration = _distance;
|
||||
|
||||
while {
|
||||
_iteration > _interval / 2
|
||||
|
@ -14,15 +14,13 @@
|
||||
|
||||
params ["_maxDistance"];
|
||||
|
||||
private ["_position", "_laser", "_intersects"];
|
||||
|
||||
_position = ATLToASL positionCameraToWorld [0, 0, 0];
|
||||
private _position = ATLToASL positionCameraToWorld [0, 0, 0];
|
||||
_position set [2, (_position select 2) - (getTerrainHeightASL _position min 0)];
|
||||
|
||||
_laser = ATLToASL positionCameraToWorld [0, 0, _maxDistance];
|
||||
private _laser = ATLToASL positionCameraToWorld [0, 0, _maxDistance];
|
||||
_laser set [2, (_laser select 2) - (getTerrainHeightASL _laser min 0)];
|
||||
|
||||
_intersects = lineIntersectsObjs [_position, _laser, objNull, objNull, true, 2];
|
||||
private _intersects = lineIntersectsObjs [_position, _laser, objNull, objNull, true, 2];
|
||||
|
||||
if (_intersects isEqualTo []) exitWith {objNull};
|
||||
|
||||
|
@ -16,15 +16,12 @@ params ["_vehicle"];
|
||||
|
||||
if (!isLightOn _vehicle) exitWith {[]};
|
||||
|
||||
private ["_reflectorsWithSelections", "_lights", "_hitpoints", "_turnedOnLights"];
|
||||
|
||||
_reflectorsWithSelections = [[_vehicle], FUNC(getReflectorsWithSelections), uiNamespace, format [QEGVAR(cache,%1_%2), QUOTE(DFUNC(getReflectorsWithSelections)), typeOf _vehicle], 1E11] call FUNC(cachedCall);
|
||||
private _reflectorsWithSelections = [[_vehicle], FUNC(getReflectorsWithSelections), uiNamespace, format [QEGVAR(cache,%1_%2), QUOTE(DFUNC(getReflectorsWithSelections)), typeOf _vehicle], 1E11] call FUNC(cachedCall);
|
||||
//_reflectorsWithSelections = [_vehicle] call FUNC(getReflectorsWithSelections);
|
||||
|
||||
_lights = _reflectorsWithSelections select 0;
|
||||
_hitpoints = _reflectorsWithSelections select 1;
|
||||
_reflectorsWithSelections params ["_lights", "_hitpoints"];
|
||||
|
||||
_turnedOnLights = [];
|
||||
private _turnedOnLights = [];
|
||||
|
||||
{
|
||||
if (_vehicle getHit _x <= 0.9) then {
|
||||
|
@ -12,16 +12,14 @@
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
params ["_vehicle"];
|
||||
params [["_vehicle", objNull, [objNull]]];
|
||||
|
||||
private ["_turrets", "_turret", "_config"];
|
||||
private _turrets = allTurrets [_vehicle, true];
|
||||
|
||||
_turrets = allTurrets [_vehicle, true];
|
||||
|
||||
_turret = [];
|
||||
private _turret = [];
|
||||
|
||||
{
|
||||
_config = configFile >> "CfgVehicles" >> typeOf _vehicle;
|
||||
private _config = configFile >> "CfgVehicles" >> typeOf _vehicle;
|
||||
|
||||
_config = [_config, _x] call FUNC(getTurretConfigPath);
|
||||
|
||||
|
@ -15,14 +15,12 @@
|
||||
|
||||
params ["_config", "_turretIndex"];
|
||||
|
||||
private ["_offset", "_config2", "_foundClasses"];
|
||||
|
||||
for "_index" from 0 to (count _turretIndex - 1) do {
|
||||
_config = _config >> "Turrets";
|
||||
|
||||
_offset = 0;
|
||||
_config2 = _config select 0;
|
||||
_foundClasses = 0;
|
||||
private _offset = 0;
|
||||
private _config2 = _config select 0;
|
||||
private _foundClasses = 0;
|
||||
|
||||
for "_a" from 0 to (count _config - 1) do {
|
||||
if (isClass _config2) then {
|
||||
|
@ -12,16 +12,14 @@
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
params ["_vehicle"];
|
||||
params [["_vehicle", objNull, [objNull]]];
|
||||
|
||||
private ["_turrets", "_turret", "_config"];
|
||||
private _turrets = allTurrets [_vehicle, true];
|
||||
|
||||
_turrets = allTurrets [_vehicle, true];
|
||||
|
||||
_turret = [];
|
||||
private _turret = [];
|
||||
|
||||
{
|
||||
_config = configFile >> "CfgVehicles" >> typeOf _vehicle;
|
||||
private _config = configFile >> "CfgVehicles" >> typeOf _vehicle;
|
||||
|
||||
_config = [_config, _x] call FUNC(getTurretConfigPath);
|
||||
|
||||
|
@ -16,30 +16,25 @@
|
||||
|
||||
params ["_vehicle", "_position"];
|
||||
|
||||
private ["_turret", "_pov", "_gunBeg", "_gunEnd", "_povPos", "_povDir"];
|
||||
private _turret = [_vehicle, _position] call CBA_fnc_getTurret;
|
||||
|
||||
_turret = [_vehicle, _position] call CBA_fnc_getTurret;
|
||||
|
||||
_pov = getText (_turret >> "memoryPointGunnerOptics");
|
||||
_gunBeg = getText (_turret >> "gunBeg");
|
||||
_gunEnd = getText (_turret >> "gunEnd");
|
||||
private _pov = getText (_turret >> "memoryPointGunnerOptics");
|
||||
private _gunBeg = getText (_turret >> "gunBeg");
|
||||
private _gunEnd = getText (_turret >> "gunEnd");
|
||||
|
||||
TRACE_3("", _pov, _gunBeg, _gunEnd);
|
||||
|
||||
// Pull the PIP pov or barrel direction, depending on how the model is set up
|
||||
_povPos = ATLtoASL (_vehicle modelToWorldVisual (_vehicle selectionPosition _pov)); //@todo AGLToASL ?
|
||||
_povDir = [0,0,0];
|
||||
private _povPos = ATLtoASL (_vehicle modelToWorldVisual (_vehicle selectionPosition _pov)); //@todo AGLToASL ?
|
||||
private _povDir = [0,0,0];
|
||||
|
||||
if (_pov == "pip0_pos") then {
|
||||
private "_pipDir";
|
||||
_pipDir = ATLtoASL (_vehicle modelToWorldVisual (_vehicle selectionPosition "pip0_dir"));
|
||||
private _pipDir = ATLtoASL (_vehicle modelToWorldVisual (_vehicle selectionPosition "pip0_dir"));
|
||||
|
||||
_povDir = _pipDir vectorDiff _povPos;
|
||||
} else {
|
||||
private ["_gunBeginPos", "_gunEndPos"];
|
||||
|
||||
_gunBeginPos = ATLtoASL (_vehicle modelToWorldVisual (_vehicle selectionPosition _gunBeg));
|
||||
_gunEndPos = ATLtoASL (_vehicle modelToWorldVisual (_vehicle selectionPosition _gunEnd));
|
||||
private _gunBeginPos = ATLtoASL (_vehicle modelToWorldVisual (_vehicle selectionPosition _gunBeg));
|
||||
private _gunEndPos = ATLtoASL (_vehicle modelToWorldVisual (_vehicle selectionPosition _gunEnd));
|
||||
|
||||
_povDir = _gunBeginPos vectorDiff _gunEndPos;
|
||||
};
|
||||
|
@ -12,16 +12,14 @@
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
params ["_vehicle"];
|
||||
params [["_vehicle", objNull, [objNull]]];
|
||||
|
||||
private ["_turrets", "_turret", "_config"];
|
||||
private _turrets = allTurrets [_vehicle, true];
|
||||
|
||||
_turrets = allTurrets [_vehicle, true];
|
||||
|
||||
_turret = [];
|
||||
private _turret = [];
|
||||
|
||||
{
|
||||
_config = configFile >> "CfgVehicles" >> typeOf _vehicle;
|
||||
private _config = configFile >> "CfgVehicles" >> typeOf _vehicle;
|
||||
|
||||
_config = [_config, _x] call FUNC(getTurretConfigPath);
|
||||
|
||||
|
@ -15,7 +15,7 @@
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
params ["_unit"];
|
||||
params [["_unit", objNull, [objNull]]];
|
||||
|
||||
private _vehicle = vehicle _unit;
|
||||
if (_unit == _vehicle) exitWith {[]};
|
||||
|
@ -16,33 +16,25 @@
|
||||
|
||||
params ["_type"];
|
||||
|
||||
private ["_varName", "_turrets"];
|
||||
|
||||
_varName = format [QGVAR(CachedTurrets_%1), _type];
|
||||
_turrets = + (uiNamespace getVariable _varName);
|
||||
private _varName = format [QGVAR(CachedTurrets_%1), _type];
|
||||
private _turrets = + (uiNamespace getVariable _varName);
|
||||
|
||||
if (!isNil "_turrets") exitWith {_turrets};
|
||||
|
||||
private ["_config", "_fnc_addTurret"];
|
||||
|
||||
_config = configFile >> "CfgVehicles" >> _type;
|
||||
private _config = configFile >> "CfgVehicles" >> _type;
|
||||
|
||||
_turrets = [];
|
||||
|
||||
_fnc_addTurret = {
|
||||
private _fnc_addTurret = {
|
||||
params ["_config", "_path"];
|
||||
|
||||
_config = _config >> "Turrets";
|
||||
|
||||
private ["_count", "_offset", "_path2", "_config2"];
|
||||
private _offset = 0;
|
||||
|
||||
_count = count _config;
|
||||
|
||||
_offset = 0;
|
||||
|
||||
for "_index" from 0 to (_count - 1) do {
|
||||
_path2 = _path + [_index - _offset];
|
||||
_config2 = _config select _index;
|
||||
for "_index" from 0 to (count _config - 1) do {
|
||||
private _path2 = _path + [_index - _offset];
|
||||
private _config2 = _config select _index;
|
||||
|
||||
if (isClass _config2) then {
|
||||
_turrets pushBack _path2;
|
||||
|
@ -12,16 +12,14 @@
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
params ["_vehicle"];
|
||||
params [["_vehicle", objNull, [objNull]]];
|
||||
|
||||
private ["_turrets", "_turret", "_config"];
|
||||
private _turrets = allTurrets [_vehicle, true];
|
||||
|
||||
_turrets = allTurrets [_vehicle, true];
|
||||
|
||||
_turret = [];
|
||||
private _turret = [];
|
||||
|
||||
{
|
||||
_config = configFile >> "CfgVehicles" >> typeOf _vehicle;
|
||||
private _config = configFile >> "CfgVehicles" >> typeOf _vehicle;
|
||||
|
||||
_config = [_config, _x] call FUNC(getTurretConfigPath);
|
||||
|
||||
|
@ -12,20 +12,19 @@
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
params ["_vehicle"];
|
||||
params [["_vehicle", objNull, [objNull]]];
|
||||
|
||||
private ["_turrets", "_turret", "_config"];
|
||||
private _turrets = allTurrets [_vehicle, true];
|
||||
|
||||
_turrets = allTurrets [_vehicle, true];
|
||||
|
||||
_turret = [];
|
||||
private _turret = [];
|
||||
|
||||
{
|
||||
_config = configFile >> "CfgVehicles" >> typeOf _vehicle;
|
||||
private _config = configFile >> "CfgVehicles" >> typeOf _vehicle;
|
||||
|
||||
_config = [_config, _x] call FUNC(getTurretConfigPath);
|
||||
|
||||
if ( getNumber (_config >> "isCopilot") != 1
|
||||
if (
|
||||
getNumber (_config >> "isCopilot") != 1
|
||||
&& {getNumber (_config >> "primaryGunner") != 1}
|
||||
&& {getNumber (_config >> "primaryObserver") != 1}
|
||||
&& {getNumber (_config >> "isPersonTurret") != 1}
|
||||
|
@ -18,16 +18,14 @@
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
params ["_unit"];
|
||||
params [["_unit", objNull, [objNull]]];
|
||||
|
||||
private ["_uav", "_positionArray", "_playerIndex"];
|
||||
|
||||
_uav = getConnectedUAV _unit;
|
||||
private _uav = getConnectedUAV _unit;
|
||||
|
||||
if (isNull _uav) exitWith {""};
|
||||
|
||||
_positionArray = UAVControl _uav;
|
||||
_playerIndex = _positionArray find _unit;
|
||||
private _positionArray = UAVControl _uav;
|
||||
private _playerIndex = _positionArray find _unit;
|
||||
|
||||
if (_playerIndex == -1) exitWith {""};
|
||||
|
||||
|
@ -12,14 +12,12 @@
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
params ["_vehicle"];
|
||||
params [["_vehicle", objNull, [objNull]]];
|
||||
|
||||
private ["_config", "_cargo", "_codrivers"];
|
||||
private _config = configFile >> "CfgVehicles" >> _vehicle;
|
||||
|
||||
_config = configFile >> "CfgVehicles" >> _vehicle;
|
||||
|
||||
_cargo = [];
|
||||
_codrivers = getArray (_config >> "cargoIsCoDriver");
|
||||
private _cargo = [];
|
||||
private _codrivers = getArray (_config >> "cargoIsCoDriver");
|
||||
|
||||
for "_index" from 0 to (getNumber (_config >> "transportSoldier") - 1) do {
|
||||
if !(_index in _codrivers && {_vehicle isKindOf "Car"} && {!(_vehicle isKindOf "Wheeled_APC_F")}) then {
|
||||
|
@ -12,14 +12,12 @@
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
params ["_vehicle"];
|
||||
params [["_vehicle", objNull, [objNull]]];
|
||||
|
||||
private ["_config", "_cargo", "_codrivers"];
|
||||
private _config = configFile >> "CfgVehicles" >> _vehicle;
|
||||
|
||||
_config = configFile >> "CfgVehicles" >> _vehicle;
|
||||
|
||||
_cargo = [];
|
||||
_codrivers = getArray (_config >> "cargoIsCoDriver");
|
||||
private _cargo = [];
|
||||
private _codrivers = getArray (_config >> "cargoIsCoDriver");
|
||||
|
||||
for "_index" from 0 to (getNumber (_config >> "transportSoldier") - 1) do {
|
||||
if (_index in _codrivers && {_vehicle isKindOf "Car"} && {!(_vehicle isKindOf "Wheeled_APC_F")}) then {
|
||||
|
@ -15,8 +15,7 @@
|
||||
|
||||
params ["_vehicle", ["_types", ["driver", "commander", "gunner", "turret", "cargo", "ffv"]]];
|
||||
|
||||
private "_crew";
|
||||
_crew = [];
|
||||
private _crew = [];
|
||||
|
||||
// iterate through all crew members
|
||||
{
|
||||
|
@ -12,6 +12,6 @@
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
params ["_vehicle"];
|
||||
params [["_vehicle", objNull, [objNull]]];
|
||||
|
||||
[crew _vehicle, {getText (configFile >> "CfgVehicles" >> typeOf _this >> "simulation") == "UAVPilot"}] call FUNC(filter) // return
|
||||
|
@ -15,12 +15,10 @@
|
||||
|
||||
params ["_weapon"];
|
||||
|
||||
private ["_direction", "_azimuth", "_inclination"];
|
||||
private _direction = ACE_player weaponDirection _weapon;
|
||||
|
||||
_direction = ACE_player weaponDirection _weapon;
|
||||
|
||||
_azimuth = (_direction select 0) atan2 (_direction select 1);
|
||||
_inclination = asin (_direction select 2);
|
||||
private _azimuth = (_direction select 0) atan2 (_direction select 1);
|
||||
private _inclination = asin (_direction select 2);
|
||||
|
||||
if (_azimuth < 0) then {_azimuth = _azimuth + 360};
|
||||
|
||||
|
@ -12,13 +12,11 @@
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
params ["_weapon"];
|
||||
params [["_weapon", "", [""]]];
|
||||
|
||||
private ["_config", "_modes"];
|
||||
private _config = configFile >> "CfgWeapons" >> _weapon;
|
||||
|
||||
_config = configFile >> "CfgWeapons" >> _weapon;
|
||||
|
||||
_modes = [];
|
||||
private _modes = [];
|
||||
|
||||
{
|
||||
if (getNumber (_config >> _x >> "showToPlayer") == 1) then {
|
||||
|
@ -12,13 +12,14 @@
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
params ["_weapon"];
|
||||
params [["_weapon", "", [""]]];
|
||||
|
||||
private "_muzzles";
|
||||
_muzzles = getArray (configFile >> "CfgWeapons" >> _weapon >> "muzzles");
|
||||
private _muzzles = getArray (configFile >> "CfgWeapons" >> _weapon >> "muzzles");
|
||||
|
||||
if ("this" in _muzzles) then {
|
||||
_muzzles set [_muzzles find "this", _weapon];
|
||||
};
|
||||
{
|
||||
if (_x == "this") then {
|
||||
_muzzles set [_forEachIndex, _weapon];
|
||||
};
|
||||
} forEach _muzzles;
|
||||
|
||||
_muzzles
|
||||
|
@ -18,17 +18,13 @@
|
||||
|
||||
params ["_unit", "_weapon"];
|
||||
|
||||
private ["_muzzles", "_weaponInfo"];
|
||||
private _muzzles = _weapon call FUNC(getWeaponMuzzles);
|
||||
|
||||
_muzzles = [_weapon] call FUNC(getWeaponMuzzles);
|
||||
|
||||
_weaponInfo = [["","","",""], primaryWeaponItems _unit, secondaryWeaponItems _unit, handgunItems _unit] select ((["", primaryWeapon _unit, secondaryWeapon _unit, handgunWeapon _unit] find _weapon) max 0);
|
||||
private _weaponInfo = [["","","",""], primaryWeaponItems _unit, secondaryWeaponItems _unit, handgunItems _unit] select ((["", primaryWeapon _unit, secondaryWeapon _unit, handgunWeapon _unit] find _weapon) max 0);
|
||||
|
||||
// get loaded magazines and ammo
|
||||
private ["_magazines", "_ammo"];
|
||||
|
||||
_magazines = [];
|
||||
_ammo = [];
|
||||
private _magazines = [];
|
||||
private _ammo = [];
|
||||
|
||||
{
|
||||
_magazines pushBack "";
|
||||
@ -38,8 +34,7 @@ _ammo = [];
|
||||
|
||||
{
|
||||
if (_x select 2) then {
|
||||
private "_index";
|
||||
_index = _muzzles find (_x select 4);
|
||||
private _index = _muzzles find (_x select 4);
|
||||
|
||||
if (_index != -1) then {
|
||||
_magazines set [_index, _x select 0];
|
||||
|
@ -18,11 +18,9 @@
|
||||
|
||||
params ["_weapon"];
|
||||
|
||||
private ["_type", "_index"];
|
||||
private _type = [getNumber (configFile >> "CfgWeapons" >> _weapon >> "type")] call FUNC(binarizeNumber);
|
||||
|
||||
_type = [getNumber (configFile >> "CfgWeapons" >> _weapon >> "type")] call FUNC(binarizeNumber);
|
||||
|
||||
_index = 0;
|
||||
private _index = 0;
|
||||
|
||||
while {!(_type select _index) && {_index < 16}} do {
|
||||
_index = _index + 1;
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user