mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
General - Change object config lookups to configOf
(#8795)
* configOf lookups * forEach, missed configOf * revert handcuff distance change Co-authored-by: Filip Maciejewski <veteran29@users.noreply.github.com> * optimize condition Co-authored-by: Filip Maciejewski <veteran29@users.noreply.github.com> * capitalization Co-authored-by: Filip Maciejewski <veteran29@users.noreply.github.com> * use object in getVehicleIcon Co-authored-by: Filip Maciejewski <veteran29@users.noreply.github.com> * add return comment Co-authored-by: Filip Maciejewski <veteran29@users.noreply.github.com> * remove extra brackets Co-authored-by: Filip Maciejewski <veteran29@users.noreply.github.com> * add missing brackets Co-authored-by: Filip Maciejewski <veteran29@users.noreply.github.com> * add return comment pt2 Co-authored-by: Filip Maciejewski <veteran29@users.noreply.github.com> * revert to cursorTarget Co-authored-by: Filip Maciejewski <veteran29@users.noreply.github.com> Co-authored-by: PabstMirror <pabstmirror@gmail.com>
This commit is contained in:
parent
38a308ee24
commit
68ed19911a
@ -19,7 +19,7 @@
|
||||
params ["_player", "_turret"];
|
||||
private _vehicle = vehicle _player;
|
||||
private _typeOf = typeOf _vehicle;
|
||||
private _vehicleCfg = configFile >> "CfgVehicles" >> _typeOf;
|
||||
private _vehicleCfg = configOf _vehicle;
|
||||
|
||||
// config "ace_artillerytables_showGunLaying" [0 disabled, 1 enabled, 2 enabled w/ alt elevationMode] falls back to artilleryScanner
|
||||
private _showGunLaying = if (isNumber (_vehicleCfg >> QGVAR(showGunLaying))) then {
|
||||
|
@ -17,10 +17,10 @@
|
||||
|
||||
params [["_backpack", objNull, [objNull, ""]]];
|
||||
|
||||
if (_backpack isEqualType objNull) then {
|
||||
_backpack = typeOf _backpack;
|
||||
private _config = if (_backpack isEqualType objNull) then {
|
||||
configOf _backpack
|
||||
} else {
|
||||
configFile >> "CfgVehicles" >> _backpack
|
||||
};
|
||||
|
||||
private _config = configFile >> "CfgVehicles" >> _backpack;
|
||||
|
||||
getText (_config >> "vehicleClass") == "backpacks" && {getNumber (_config >> "maximumLoad") > 0} // return
|
||||
|
@ -5,7 +5,7 @@ class CfgVehicles {
|
||||
class ACE_ApplyHandcuffs {
|
||||
displayName = CSTRING(SetCaptive);
|
||||
selection = "righthand";
|
||||
distance = 2;
|
||||
distance = HANDCUFFS_DISTANCE;
|
||||
condition = QUOTE([ARR_2(_player, _target)] call FUNC(canApplyHandcuffs));
|
||||
statement = QUOTE([ARR_2(_player, _target)] call FUNC(doApplyHandcuffs));
|
||||
exceptions[] = {"isNotSwimming", "isNotInside"};
|
||||
@ -16,7 +16,7 @@ class CfgVehicles {
|
||||
class ACE_RemoveHandcuffs {
|
||||
displayName = CSTRING(ReleaseCaptive);
|
||||
selection = "righthand";
|
||||
distance = 2;
|
||||
distance = HANDCUFFS_DISTANCE;
|
||||
condition = QUOTE([ARR_2(_player, _target)] call FUNC(canRemoveHandcuffs));
|
||||
statement = QUOTE([ARR_2(_player, _target)] call FUNC(doRemoveHandcuffs));
|
||||
exceptions[] = {"isNotSwimming", "isNotInside"};
|
||||
|
@ -41,7 +41,7 @@ if (!hasInterface) exitWith {};
|
||||
private _target = cursorObject;
|
||||
if !([ACE_player, _target, []] call EFUNC(common,canInteractWith)) exitWith {false};
|
||||
if !(_target isKindOf "CAManBase") exitWith {false};
|
||||
if ((_target distance ACE_player) > getNumber (configFile >> "CfgVehicles" >> "CAManBase" >> "ACE_Actions" >> "ACE_ApplyHandcuffs" >> "distance")) exitWith {false};
|
||||
if ((_target distance ACE_player) > getNumber (configOf ACE_player >> "ACE_Actions" >> "ACE_ApplyHandcuffs" >> "distance")) exitWith {false};
|
||||
|
||||
if ([ACE_player, _target] call FUNC(canApplyHandcuffs)) exitWith {
|
||||
[ACE_player, _target] call FUNC(doApplyHandcuffs);
|
||||
|
@ -15,3 +15,5 @@
|
||||
#endif
|
||||
|
||||
#include "\z\ace\addons\main\script_macros.hpp"
|
||||
|
||||
#define HANDCUFFS_DISTANCE 2
|
||||
|
@ -17,6 +17,7 @@
|
||||
|
||||
params ["_object"];
|
||||
private _type = typeOf _object;
|
||||
private _config = configOf _object;
|
||||
TRACE_2("params",_object,_type);
|
||||
|
||||
// If object had size given to it via eden/public then override config canLoad setting
|
||||
@ -24,7 +25,7 @@ private _canLoadPublic = _object getVariable [QGVAR(canLoad), false];
|
||||
if (!(_canLoadPublic isEqualType false)) then {
|
||||
WARNING_4("%1[%2] - Variable %3 is %4 - Should be bool",_object,_type,QGVAR(canLoad),_canLoadPublic);
|
||||
};
|
||||
private _canLoadConfig = getNumber (configFile >> "CfgVehicles" >> _type >> QGVAR(canLoad)) == 1;
|
||||
private _canLoadConfig = getNumber (_config >> QGVAR(canLoad)) == 1;
|
||||
|
||||
// Nothing to do here if object can't be loaded
|
||||
if !(_canLoadConfig || {_canLoadPublic in [true, 1]}) exitWith {};
|
||||
|
@ -19,10 +19,11 @@ params ["_vehicle"];
|
||||
TRACE_1("params", _vehicle);
|
||||
|
||||
private _type = typeOf _vehicle;
|
||||
private _config = configOf _vehicle;
|
||||
|
||||
// If vehicle had space given to it via eden/public then override config hasCargo setting
|
||||
private _hasCargoPublic = _vehicle getVariable [QGVAR(hasCargo), false];
|
||||
private _hasCargoConfig = getNumber (configFile >> "CfgVehicles" >> _type >> QGVAR(hasCargo)) == 1;
|
||||
private _hasCargoConfig = getNumber (_config >> QGVAR(hasCargo)) == 1;
|
||||
|
||||
// Nothing to do here if vehicle has no cargo space
|
||||
if !(_hasCargoConfig || _hasCargoPublic) exitWith {};
|
||||
@ -40,13 +41,11 @@ if (_addCargoType) then {
|
||||
// Vehicle can have default ace cargo in its config
|
||||
if (isServer) then {
|
||||
{
|
||||
if (isClass _x) then {
|
||||
private _cargoClassname = getText (_x >> "type");
|
||||
private _cargoCount = getNumber (_x >> "amount");
|
||||
TRACE_3("adding ACE_Cargo", (configName _x), _cargoClassname, _cargoCount);
|
||||
["ace_addCargo", [_cargoClassname, _vehicle, _cargoCount]] call CBA_fnc_localEvent;
|
||||
};
|
||||
} count ("true" configClasses (configFile >> "CfgVehicles" >> _type >> "ACE_Cargo" >> "Cargo"));
|
||||
} forEach ("true" configClasses (_config >> QUOTE(ADDON) >> "Cargo"));
|
||||
};
|
||||
|
||||
// Servers and HCs do not require action menus (beyond this point)
|
||||
|
@ -43,9 +43,13 @@ if (_cargo isKindOf "CAManBase") then {
|
||||
_radiusOfItem = 1.1;
|
||||
} else {
|
||||
//`sizeOf` is unreliable, and does not work with object types that don't exist on map, so estimate size based on cargo size
|
||||
private _typeOfCargo = if (_cargo isEqualType "") then {_cargo} else {typeOf _cargo};
|
||||
private _itemSize = if (isNumber (configFile >> "CfgVehicles" >> _typeOfCargo >> QEGVAR(cargo,size)) && {getNumber (configFile >> "CfgVehicles" >> _typeOfCargo >> QEGVAR(cargo,size)) != -1}) then {
|
||||
getNumber (configFile >> "CfgVehicles" >> _typeOfCargo >> QEGVAR(cargo,size));
|
||||
private _configOfCargo = if (_cargo isEqualType objNull) then {
|
||||
configOf _cargo
|
||||
} else {
|
||||
configFile >> "CfgVehicles" >> _cargo
|
||||
};
|
||||
private _itemSize = if (isNumber (_configOfCargo >> QEGVAR(cargo,size)) && {getNumber (_configOfCargo >> QEGVAR(cargo,size)) != -1}) then {
|
||||
getNumber (_configOfCargo >> QEGVAR(cargo,size));
|
||||
} else {
|
||||
if (["ace_cargo"] call FUNC(isModLoaded)) then {
|
||||
[_cargo] call EFUNC(cargo,getSizeItem);
|
||||
|
@ -17,7 +17,7 @@
|
||||
|
||||
params [["_vehicle", objNull, [objNull]]];
|
||||
|
||||
private _config = configFile >> "CfgVehicles" >> _vehicle;
|
||||
private _config = configOf _vehicle;
|
||||
|
||||
private _cargo = [];
|
||||
private _codrivers = getArray (_config >> "cargoIsCoDriver");
|
||||
|
@ -17,7 +17,7 @@
|
||||
|
||||
params [["_vehicle", objNull, [objNull]]];
|
||||
|
||||
private _config = configFile >> "CfgVehicles" >> _vehicle;
|
||||
private _config = configOf _vehicle;
|
||||
|
||||
private _cargo = [];
|
||||
private _codrivers = getArray (_config >> "cargoIsCoDriver");
|
||||
|
@ -18,7 +18,7 @@
|
||||
|
||||
params [["_object", objNull, [objNull, ""]]];
|
||||
|
||||
if ((_object isEqualType objNull && {isNull _object}) || {_object isEqualType "" && {_object == ""}}) exitWith { DEFAULT_TEXTURE };
|
||||
if (_object isEqualTo objNull || {_object isEqualTo ""}) exitWith { DEFAULT_TEXTURE };
|
||||
|
||||
private _objectType = if (_object isEqualType objNull) then {
|
||||
typeOf _object
|
||||
|
@ -25,7 +25,7 @@ if (_staticWeapon getVariable [format [QGVAR(proxyHandled_%1), _turret], false])
|
||||
|
||||
private _proxyWeapon = getText (configOf _staticWeapon >> "ace_csw" >> "proxyWeapon");
|
||||
|
||||
TRACE_2("",_typeOf,_proxyWeapon);
|
||||
TRACE_2("",typeOf _staticWeapon,_proxyWeapon);
|
||||
if (_proxyWeapon == "") exitWith {};
|
||||
|
||||
private _currentWeapon = (_staticWeapon weaponsTurret [0]) param [0, "#none"];
|
||||
|
@ -24,7 +24,7 @@ params ["_vehicle", "_unit", "_magClassname"];
|
||||
TRACE_3("params",_vehicle,_unit,_magClassname);
|
||||
|
||||
//Get setup object vehicle and model:
|
||||
private _setupObjectClass = getText(ConfigFile >> "CfgMagazines" >> _magClassname >> QGVAR(SetupObject));
|
||||
private _setupObjectClass = getText (configFile >> "CfgMagazines" >> _magClassname >> QGVAR(SetupObject));
|
||||
if (!isClass (configFile >> "CfgVehicles" >> _setupObjectClass)) exitWith {ERROR("Bad Vehicle");};
|
||||
private _p3dModel = getText (configFile >> "CfgVehicles" >> _setupObjectClass >> "model");
|
||||
if (_p3dModel == "") exitWith {ERROR("No Model");}; //"" - will crash game!
|
||||
|
@ -63,11 +63,11 @@ private _fnc_condition = {
|
||||
[_player, _source] call FUNC(canDrinkFromSource)
|
||||
};
|
||||
|
||||
private _sourceType = typeOf _source;
|
||||
private _progressText = if (_sourceType == "") then {
|
||||
private _sourceConfig = configOf _source;
|
||||
private _progressText = if (isNull _sourceConfig) then {
|
||||
LLSTRING(DrinkingFromSource)
|
||||
} else {
|
||||
format [LLSTRING(DrinkingFromX), getText (configFile >> "CfgVehicles" >> _sourceType >> "displayName")]
|
||||
format [LLSTRING(DrinkingFromX), getText (_sourceConfig >> "displayName")]
|
||||
};
|
||||
|
||||
[
|
||||
|
@ -17,10 +17,10 @@
|
||||
|
||||
params ["_object"];
|
||||
|
||||
private _typeOf = typeOf _object;
|
||||
if (_typeOf != "") then {
|
||||
private _configOf = configOf _object;
|
||||
if !(isNull _configOf) then {
|
||||
// Check for offset in config since we have valid typeOf
|
||||
private _offset = getArray (configFile >> "CfgVehicles" >> _typeOf >> QXGVAR(offset));
|
||||
private _offset = getArray (_configOf >> QXGVAR(offset));
|
||||
if (_offset isEqualTo []) then {[0, 0, 0]} else {_offset};
|
||||
} else {
|
||||
// Check for offset corresponding to p3d list
|
||||
|
@ -22,10 +22,10 @@ if (!alive _source) exitWith {0};
|
||||
private _water = _source getVariable QGVAR(currentWaterSupply);
|
||||
|
||||
if (isNil "_water") then {
|
||||
private _typeOf = typeOf _source;
|
||||
if (_typeOf != "") then {
|
||||
private _configOf = configOf _source;
|
||||
if !(isNull _configOf) then {
|
||||
// Check for waterSupply entry since we have valid typeOf
|
||||
_water = getNumber (configFile >> "CfgVehicles" >> _typeOf >> QXGVAR(waterSupply));
|
||||
_water = getNumber (_configOf >> QXGVAR(waterSupply));
|
||||
if (_water == 0) then {_water = REFILL_WATER_DISABLED};
|
||||
|
||||
if (_water != REFILL_WATER_DISABLED) then {
|
||||
|
@ -17,4 +17,4 @@
|
||||
|
||||
params ["_unit"];
|
||||
|
||||
getNumber (configFile >> "CfgVehicles" >> (backpack _unit) >> QUOTE(ADDON)) == 1
|
||||
getNumber ((configOf (backpackContainer _unit)) >> QUOTE(ADDON)) == 1
|
||||
|
@ -24,7 +24,7 @@ private _object = GETMVAR(BIS_fnc_initCuratorAttributes_target,objNull);
|
||||
_control ctrlRemoveAllEventHandlers "SetFocus";
|
||||
|
||||
private _ctrlLabel = _display displayCtrl IDC_ATTRIBUTE_LABEL;
|
||||
private _labelText = getText (configFile >> "CfgVehicles" >> typeOf _object >> "Attributes" >> QGVAR(data) >> "displayName");
|
||||
private _labelText = getText ((configOf _object) >> "Attributes" >> QGVAR(data) >> "displayName");
|
||||
_ctrlLabel ctrlSetText _labelText;
|
||||
|
||||
private _index = _object getVariable [QGVAR(index), -1];
|
||||
|
@ -18,6 +18,6 @@
|
||||
|
||||
params ["_object", "_player"];
|
||||
|
||||
private _magazineClass = getText (configFile >> "CfgVehicles" >> typeOf _object >> QGVAR(magazine));
|
||||
private _magazineClass = getText ((configOf _object) >> QGVAR(magazine));
|
||||
|
||||
_magazineClass != "" && {_player canAdd _magazineClass}
|
||||
|
@ -18,7 +18,7 @@
|
||||
|
||||
params ["_object", "_player"];
|
||||
|
||||
private _magazineClass = getText (configFile >> "CfgVehicles" >> typeOf _object >> QGVAR(magazine));
|
||||
private _magazineClass = getText ((configOf _object) >> QGVAR(magazine));
|
||||
private _index = _object getVariable [QGVAR(index), -1];
|
||||
|
||||
// Add magazine to inventory and get its id
|
||||
|
@ -21,13 +21,12 @@
|
||||
params ["_vehicles", "_statement", "_target"];
|
||||
|
||||
_vehicles apply {
|
||||
private _type = typeOf _x;
|
||||
private _name = getText (configFile >> "CfgVehicles" >> _type >> "displayName");
|
||||
private _name = getText ((configOf _x) >> "displayName");
|
||||
private _ownerName = [_x, true] call EFUNC(common,getName);
|
||||
if ("" != _ownerName) then {
|
||||
_name = format ["%1 (%2)", _name, _ownerName];
|
||||
};
|
||||
private _icon = [_type] call EFUNC(common,getVehicleIcon);
|
||||
private _icon = [_x] call EFUNC(common,getVehicleIcon);
|
||||
private _action = [format ["%1", _x], _name, _icon, _statement, {true}, {}, _x] call EFUNC(interact_menu,createAction);
|
||||
[_action, [], _target]
|
||||
}
|
||||
|
@ -27,21 +27,21 @@ if ((vehicle ACE_player) != ACE_player) exitWith {};
|
||||
|
||||
[{
|
||||
params ["_args", "_pfID"];
|
||||
_args params ["_setPosition", "_addedHelpers", "_housesScaned", "_housesToScanForActions"];
|
||||
_args params ["_setPosition", "_addedHelpers", "_housesScanned", "_housesToScanForActions"];
|
||||
|
||||
if (!EGVAR(interact_menu,keyDown)) then {
|
||||
{deleteVehicle _x;} forEach _addedHelpers;
|
||||
[_pfID] call CBA_fnc_removePerFrameHandler;
|
||||
} else {
|
||||
// Prevent Rare Error when ending mission with interact key down:
|
||||
if (isNull ace_player) exitWith {};
|
||||
if (isNull ACE_player) exitWith {};
|
||||
|
||||
//Make the common case fast (cursorTarget is looking at a door):
|
||||
if ((!isNull cursorTarget) && {cursorTarget isKindOf "Static"} && {!(cursorTarget in _housesScaned)}) then {
|
||||
if ((!isNull cursorTarget) && {cursorTarget isKindOf "Static"} && {!(cursorTarget in _housesScanned)}) then {
|
||||
if (((count (configOf cursorTarget >> "UserActions")) > 0) || {(count (getArray (configOf cursorTarget >> "ladders"))) > 0}) then {
|
||||
_housesToScanForActions = [cursorTarget];
|
||||
} else {
|
||||
_housesScaned pushBack cursorTarget;
|
||||
_housesScanned pushBack cursorTarget;
|
||||
};
|
||||
};
|
||||
|
||||
@ -51,47 +51,43 @@ if ((vehicle ACE_player) != ACE_player) exitWith {};
|
||||
|
||||
if (_housesToScanForActions isEqualTo []) then {
|
||||
//If player moved >2 meters from last pos, then rescan
|
||||
if (((getPosASL ace_player) distance _setPosition) < 2) exitWith {};
|
||||
if (((getPosASL ACE_player) distance _setPosition) < 2) exitWith {};
|
||||
|
||||
private _nearBuidlings = nearestObjects [ace_player, ["Static"], 30];
|
||||
private _nearBuidlings = nearestObjects [ACE_player, ["Static"], 30];
|
||||
{
|
||||
private _typeOfHouse = typeOf _x;
|
||||
if (((count (configFile >> "CfgVehicles" >> _typeOfHouse >> "UserActions")) == 0) && {(count (getArray (configFile >> "CfgVehicles" >> _typeOfHouse >> "ladders"))) == 0}) then {
|
||||
_housesScaned pushBack _x;
|
||||
private _configOfHouse = configOf _x;
|
||||
if (((count (_configOfHouse >> "UserActions")) == 0) && {(count (getArray (_configOfHouse >> "ladders"))) == 0}) then {
|
||||
_housesScanned pushBack _x;
|
||||
} else {
|
||||
_housesToScanForActions pushBack _x;
|
||||
};
|
||||
nil
|
||||
} count (_nearBuidlings - _housesScaned);
|
||||
} forEach (_nearBuidlings - _housesScanned);
|
||||
|
||||
_args set [0, (getPosASL ace_player)];
|
||||
_args set [0, (getPosASL ACE_player)];
|
||||
} else {
|
||||
private _houseBeingScaned = _housesToScanForActions deleteAt 0;
|
||||
private _typeOfHouse = typeOf _houseBeingScaned;
|
||||
private _houseBeingScanned = _housesToScanForActions deleteAt 0;
|
||||
//Skip this house for now if we are outside of it's radius
|
||||
//(we have to scan far out for the big houses, but we don't want to waste time adding actions on every little shack)
|
||||
if ((_houseBeingScaned != cursorTarget) && {((ACE_player distance _houseBeingScaned) - ((sizeOf _typeOfHouse) / 2)) > 4}) exitWith {};
|
||||
if ((_houseBeingScanned != cursorTarget) && {((ACE_player distance _houseBeingScanned) - ((boundingBoxReal _houseBeingScanned) select 2)) > 4}) exitWith {};
|
||||
|
||||
_housesScaned pushBack _houseBeingScaned;
|
||||
_housesScanned pushBack _houseBeingScanned;
|
||||
|
||||
private _actionSet = [_typeOfHouse] call FUNC(userActions_getHouseActions);
|
||||
private _actionSet = [typeOf _houseBeingScanned] call FUNC(userActions_getHouseActions);
|
||||
_actionSet params ["_memPoints", "_memPointsActions"];
|
||||
|
||||
// systemChat format ["Add Actions for [%1] (count %2) @ %3", _typeOfHouse, (count _memPoints), diag_tickTime];
|
||||
TRACE_3("Add Actions for [%1] (count %2) @ %3",typeOf _houseBeingScanned,(count _memPoints),diag_tickTime);
|
||||
{
|
||||
private _helperPos = _houseBeingScaned modelToWorldWorld (_houseBeingScaned selectionPosition _x);
|
||||
private _helperPos = _houseBeingScanned modelToWorldWorld (_houseBeingScanned selectionPosition _x);
|
||||
private _helperObject = "ACE_LogicDummy" createVehicleLocal [0,0,0];
|
||||
_addedHelpers pushBack _helperObject;
|
||||
_helperObject setVariable [QGVAR(building), _houseBeingScaned];
|
||||
_helperObject setVariable [QGVAR(building), _houseBeingScanned];
|
||||
_helperObject setPosASL _helperPos;
|
||||
TRACE_3("Making New Helper",_helperObject,_x,_houseBeingScaned);
|
||||
TRACE_3("Making New Helper",_helperObject,_x,_houseBeingScanned);
|
||||
|
||||
{
|
||||
[_helperObject, 0, [], _x] call EFUNC(interact_menu,addActionToObject);
|
||||
nil
|
||||
} count (_memPointsActions select _forEachIndex);
|
||||
|
||||
} forEach (_memPointsActions select _forEachIndex);
|
||||
} forEach _memPoints;
|
||||
};
|
||||
};
|
||||
}, 0, [((getPosASL ace_player) vectorAdd [-100,0,0]), [], [], []]] call CBA_fnc_addPerFrameHandler;
|
||||
}, 0, [((getPosASL ACE_player) vectorAdd [-100,0,0]), [], [], []]] call CBA_fnc_addPerFrameHandler;
|
||||
|
@ -65,7 +65,7 @@ GVAR(killCount) = 0;
|
||||
|
||||
if (!isNull _killer) then {
|
||||
if (!(_killer isKindof "CAManBase")) then { // If killer is a vehicle log the vehicle type
|
||||
_killInfo pushBack format [LLSTRING(Vehicle), getText (configfile >> "CfgVehicles" >> (typeOf _killer) >> "displayName")];
|
||||
_killInfo pushBack format [LLSTRING(Vehicle), getText ((configOf _killer) >> "displayName")];
|
||||
};
|
||||
if (isNull _instigator) then {
|
||||
_instigator = effectiveCommander _killer;
|
||||
@ -82,7 +82,7 @@ GVAR(killCount) = 0;
|
||||
// Log firendly fire
|
||||
private _fnc_getSideFromConfig = {
|
||||
params ["_object"];
|
||||
switch (getNumber (configFile >> "CfgVehicles" >> (typeOf _object) >> "side")) do {
|
||||
switch (getNumber ((configOf _object) >> "side")) do {
|
||||
case (0): {east};
|
||||
case (1): {west};
|
||||
case (2): {resistance};
|
||||
@ -117,7 +117,7 @@ GVAR(killCount) = 0;
|
||||
} else {
|
||||
_killerName = _killer getVariable [QGVAR(aiName), ""]; // allow setting a custom AI name (e.g. VIP Target)
|
||||
if (_killerName == "") then {
|
||||
_killerName = format ["*AI* - %1", getText (configfile >> "CfgVehicles" >> (typeOf _killer) >> "displayName")];
|
||||
_killerName = format ["*AI* - %1", getText ((configOf _killer) >> "displayName")];
|
||||
};
|
||||
};
|
||||
};
|
||||
@ -133,7 +133,7 @@ GVAR(killCount) = 0;
|
||||
} else {
|
||||
_unitName = _unit getVariable [QGVAR(aiName), ""]; // allow setting a custom AI name (e.g. VIP Target)
|
||||
if (_unitName == "") then {
|
||||
_unitName = format ["*AI* - %1", getText (configfile >> "CfgVehicles" >> (typeOf _unit) >> "displayName")];
|
||||
_unitName = format ["*AI* - %1", getText ((configOf _unit) >> "displayName")];
|
||||
};
|
||||
};
|
||||
TRACE_3("send kill event",_killer,_unitName,_killInfo);
|
||||
|
@ -19,14 +19,11 @@
|
||||
params ["_object"];
|
||||
TRACE_1("Checking if fence",_object);
|
||||
|
||||
private _typeOf = typeOf _object;
|
||||
|
||||
private _returnValue = if (_typeOf != "") then {
|
||||
// Check for isFence entry since we have valid typeOf
|
||||
1 == getNumber (configFile >> "CfgVehicles" >> _typeOf >> QGVAR(isFence));
|
||||
private _configOf = configOf _object;
|
||||
if !(isNull _configOf) then {
|
||||
// Check for isFence entry since we have valid configOf
|
||||
getNumber (_configOf >> QGVAR(isFence)) == 1 // return
|
||||
} else {
|
||||
// Check the p3d name against list (in script_component.hpp)
|
||||
(getModelInfo _object select 0) in FENCE_P3DS;
|
||||
(getModelInfo _object select 0) in FENCE_P3DS // return
|
||||
};
|
||||
|
||||
_returnValue
|
||||
|
@ -83,6 +83,6 @@
|
||||
|
||||
#define HAS_WIRECUTTER(unit) (\
|
||||
"ACE_wirecutter" in (unit call EFUNC(common,uniqueItems)) \
|
||||
|| {1 == getNumber (configFile >> "CfgVehicles" >> (backpack unit) >> QGVAR(hasWirecutter))} \
|
||||
|| {1 == getNumber (configFile >> "CfgWeapons" >> (vest unit) >> QGVAR(hasWirecutter))} \
|
||||
|| {getNumber ((configOf (backpackContainer unit)) >> QGVAR(hasWirecutter)) == 1} \
|
||||
|| {getNumber (configFile >> "CfgWeapons" >> (vest unit) >> QGVAR(hasWirecutter)) == 1} \
|
||||
)
|
||||
|
@ -12,7 +12,7 @@
|
||||
_logic hideObject true;
|
||||
|
||||
if (_logic getVariable [QGVAR(initalized), false]) exitWith {};
|
||||
private _config = (configFile >> "CfgVehicles" >> _logicType);
|
||||
private _config = configOf _logic;
|
||||
if !(isClass _config) exitWith {};
|
||||
|
||||
private _isGlobal = getNumber (_config >> "isGlobal") > 0;
|
||||
|
@ -19,7 +19,7 @@
|
||||
private _player = ACE_player;
|
||||
private _vehicle = vehicle _player;
|
||||
private _type = typeOf _vehicle;
|
||||
private _config = configFile >> "CfgVehicles" >> _type;
|
||||
private _config = configOf _vehicle;
|
||||
private _text = format["<t size='1.4'><img image='%1'></t> <t size='1.7' shadow='true'>%2</t><br/>", getText(_config>>"picture"), getText (_config >> "DisplayName")];
|
||||
|
||||
private _data = [_type] call FUNC(getVehicleData);
|
||||
|
@ -16,10 +16,10 @@
|
||||
*/
|
||||
|
||||
params ["_unit"];
|
||||
private _backpack = backpack _unit;
|
||||
private _backpack = backpackContainer _unit;
|
||||
|
||||
if (
|
||||
_backpack == "" &&
|
||||
isNull _backpack &&
|
||||
{(vehicle _unit) isKindOf "ParachuteBase"} &&
|
||||
{GETVAR(_unit,GVAR(hasReserve),false)}
|
||||
) then {
|
||||
@ -28,7 +28,7 @@ if (
|
||||
SETVAR(vehicle _unit,GVAR(canCut),true); // Mark the parachute cuttable since reserve is present
|
||||
} else {
|
||||
// Case where inventory has changed otherwise (including when reserve is added)
|
||||
private _backpackCfg = configFile >> "CfgVehicles" >> _backpack;
|
||||
private _backpackCfg = configOf _backpack;
|
||||
private _hasReserve = getNumber (_backpackCfg >> "ace_hasReserveParachute") == 1;
|
||||
|
||||
// Cache reserve parachute state and class when backpack changes
|
||||
|
@ -14,8 +14,7 @@ GVAR(loadoutAction) = [ // create action
|
||||
private _isRearmVehicle = if (["ace_rearm"] call EFUNC(common,isModLoaded)) then {
|
||||
_vehicles findIf {[_x] call EFUNC(rearm,isSource)} != -1;
|
||||
} else {
|
||||
private _cfgVehicle = configFile >> "CfgVehicles";
|
||||
_vehicles findIf {getNumber (_cfgVehicle >> typeOf _x >> "transportAmmo") > 0} != -1;
|
||||
_vehicles findIf {getNumber ((configOf _x) >> "transportAmmo") > 0} != -1;
|
||||
};
|
||||
|
||||
(_isRearmVehicle && {[ace_player, _target] call FUNC(canConfigurePylons)})
|
||||
@ -27,7 +26,7 @@ GVAR(loadoutAction) = [ // create action
|
||||
private _typeOf = typeOf _vehicle;
|
||||
|
||||
if (_typeOf in GVAR(aircraftWithPylons)) exitWith {};
|
||||
if (!isClass (configFile >> "CfgVehicles" >> _typeOf >> 'Components' >> 'TransportPylonsComponent')) exitWith {};
|
||||
if (!isClass ((configOf _vehicle) >> 'Components' >> 'TransportPylonsComponent')) exitWith {};
|
||||
|
||||
GVAR(aircraftWithPylons) pushBack _typeOf;
|
||||
[_typeOf, 0, ["ACE_MainActions"], GVAR(loadoutAction)] call EFUNC(interact_menu,addActionToClass);
|
||||
|
@ -36,10 +36,8 @@ private _turrets = [_vehicle] call FUNC(getAllRearmTurrets);
|
||||
TRACE_2("",_turretPath,_magazines);
|
||||
{
|
||||
[_truck, _x] call FUNC(addMagazineToSupply);
|
||||
false
|
||||
} count _magazines;
|
||||
false
|
||||
} count _turrets;
|
||||
} forEach _magazines;
|
||||
} forEach _turrets;
|
||||
|
||||
// 1.70 pylons
|
||||
private _pylonConfigs = configProperties [configFile >> "CfgVehicles" >> _vehicle >> "Components" >> "TransportPylonsComponent" >> "Pylons", "isClass _x"];
|
||||
|
@ -19,13 +19,14 @@ if (!hasInterface) exitWith {}; // For now we just add actions, so no need non-c
|
||||
|
||||
params ["_vehicle"];
|
||||
private _typeOf = typeOf _vehicle;
|
||||
private _configOf = configOf _vehicle;
|
||||
TRACE_2("initSupplyVehicle",_vehicle,_typeOf);
|
||||
|
||||
if (!alive _vehicle) exitWith {};
|
||||
|
||||
private _configSupply = getNumber (configFile >> "CfgVehicles" >> _typeOf >> QGVAR(defaultSupply));
|
||||
private _configSupply = getNumber (_configOf >> QGVAR(defaultSupply));
|
||||
private _isSupplyVehicle = _vehicle getVariable [QGVAR(isSupplyVehicle), false];
|
||||
private _oldRearmConfig = isClass (configFile >> "CfgVehicles" >> _typeOf >> "ACE_Actions" >> "ACE_MainActions" >> QGVAR(takeAmmo));
|
||||
private _oldRearmConfig = isClass (_configOf >> "ACE_Actions" >> "ACE_MainActions" >> QGVAR(takeAmmo));
|
||||
TRACE_3("",_configSupply,_isSupplyVehicle,_oldRearmConfig);
|
||||
|
||||
if ((_configSupply <= 0) && {!_isSupplyVehicle} && {!_oldRearmConfig}) exitWith {}; // Ignore if not enabled
|
||||
@ -75,4 +76,3 @@ if (_oldRearmConfig || {_configSupply > 0}) then {
|
||||
[_vehicle, 0, ["ACE_MainActions"], _actionTakeAmmo] call EFUNC(interact_menu,addActionToObject);
|
||||
[_vehicle, 0, ["ACE_MainActions"], _actionStoreAmmo] call EFUNC(interact_menu,addActionToObject);
|
||||
};
|
||||
|
||||
|
@ -37,7 +37,7 @@ private _actionID = _player addAction [
|
||||
];
|
||||
|
||||
// Read config
|
||||
private _configFile = configFile >> "CfgVehicles" >> typeOf _seat;
|
||||
private _configFile = configOf _seat;
|
||||
private _sitDirection = (getDir _seat) + (_seat getVariable [QXGVAR(sitDirection), getNumber (_configFile >> QXGVAR(sitDirection))]);
|
||||
private _sitPositionAll = _seat getVariable [QXGVAR(sitPosition), getArray (_configFile >> QXGVAR(sitPosition))];
|
||||
private _multiSitting = (_sitPositionAll select 0) isEqualType [];
|
||||
|
@ -25,7 +25,7 @@ if !(GVAR(enabled)) exitWith {
|
||||
};
|
||||
|
||||
private _hitpointHash = [[], nil] call CBA_fnc_hashCreate;
|
||||
private _vehicleConfig = configFile >> "CfgVehicles" >> typeOf _vehicle;
|
||||
private _vehicleConfig = configOf _vehicle;
|
||||
private _hitpointsConfig = _vehicleConfig >> "HitPoints";
|
||||
private _turretConfig = _vehicleConfig >> "Turrets";
|
||||
private _eraHitpoints = [_vehicleConfig >> QGVAR(eraHitpoints), "ARRAY", []] call CBA_fnc_getConfigEntry;
|
||||
|
@ -25,9 +25,10 @@ params ["_vehicle", "_chanceOfFire", "_intensity", ["_injurer", objNull], ["_hit
|
||||
private _alreadyCookingOff = _vehicle getVariable [QGVAR(cookingOff), false];
|
||||
|
||||
if (!_alreadyCookingOff && { _chanceOfFire >= random 1 }) exitWith {
|
||||
private _fireDetonateChance = [configFile >> "CfgVehicles" >> typeOf _vehicle >> QGVAR(detonationDuringFireProb), "number", 0] call CBA_fnc_getConfigEntry;
|
||||
private _configOf = configOf _vehicle;
|
||||
private _fireDetonateChance = [_configOf >> QGVAR(detonationDuringFireProb), "number", 0] call CBA_fnc_getConfigEntry;
|
||||
if (_canRing) then {
|
||||
_canRing = 1 isEqualTo ([configFile >> "CfgVehicles" >> typeOf _vehicle >> QGVAR(canHaveFireRing), "number", 0] call CBA_fnc_getConfigEntry);
|
||||
_canRing = ([_configOf >> QGVAR(canHaveFireRing), "number", 0] call CBA_fnc_getConfigEntry) == 1;
|
||||
};
|
||||
|
||||
private _delayWithSmoke = _chanceOfFire < random 1;
|
||||
|
Loading…
Reference in New Issue
Block a user