mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
parent
a5a3fe4232
commit
316bb355ad
@ -40,7 +40,7 @@ private _nearSupplies = [_gunner] + ((_staticWeapon nearSupplies 10) select {
|
||||
} forEach ((magazineCargo _xSource) select {isClass (_cfgMagGroups >> _x)});
|
||||
TRACE_2("",_xSource,_cswMagazines);
|
||||
|
||||
private _compatibleMags = [_weapon] call CBA_fnc_compatibleMagazines;
|
||||
private _compatibleMags = compatibleMagazines _weapon;
|
||||
if (_magazine != "") then {
|
||||
_compatibleMags insert [0, [_magazine]];
|
||||
};
|
||||
|
@ -23,7 +23,7 @@
|
||||
private _secondaryWeaponClassname = secondaryWeapon _player;
|
||||
// handle loaded launchers which can become csw like CUP Metis
|
||||
private _secondaryWeaponMagazine = secondaryWeaponMagazine _player param [0, ""];
|
||||
_player removeWeaponGlobal (secondaryWeapon _player);
|
||||
_player removeWeaponGlobal _secondaryWeaponClassname;
|
||||
|
||||
private _onFinish = {
|
||||
params ["_args"];
|
||||
@ -75,5 +75,5 @@
|
||||
};
|
||||
|
||||
private _deployTime = getNumber(configFile >> "CfgWeapons" >> _secondaryWeaponClassname >> QUOTE(ADDON) >> "deployTime");
|
||||
[TIME_PROGRESSBAR(_deployTime), [_player, _secondaryWeaponClassname, _secondaryWeaponMagazine], _onFinish, _onFailure, localize LSTRING(PlaceTripod_progressBar)] call EFUNC(common,progressBar);
|
||||
[TIME_PROGRESSBAR(_deployTime), [_player, _secondaryWeaponClassname, _secondaryWeaponMagazine], _onFinish, _onFailure, LLSTRING(PlaceTripod_progressBar)] call EFUNC(common,progressBar);
|
||||
}, _this] call CBA_fnc_execNextFrame;
|
||||
|
@ -23,10 +23,13 @@
|
||||
private _tripodClassname = typeOf _tripod;
|
||||
_player removeWeaponGlobal _carryWeaponClassname;
|
||||
|
||||
private _assembledClassname = getText(configfile >> "CfgWeapons" >> _carryWeaponClassname >> QUOTE(ADDON) >> "assembleTo" >> _tripodClassname);
|
||||
private _deployTime = getNumber(configfile >> "CfgWeapons" >> _carryWeaponClassname >> QUOTE(ADDON) >> "deployTime");
|
||||
private _weaponConfig = configfile >> "CfgWeapons" >> _carryWeaponClassname >> QUOTE(ADDON);
|
||||
private _assembledClassname = getText (_weaponConfig >> "assembleTo" >> _tripodClassname);
|
||||
|
||||
if (!isClass (configFile >> "CfgVehicles" >> _assembledClassname)) exitWith {ERROR_1("bad static classname [%1]",_assembledClassname);};
|
||||
|
||||
private _deployTime = getNumber (_weaponConfig >> "deployTime");
|
||||
|
||||
TRACE_4("",_carryWeaponClassname,_tripodClassname,_assembledClassname,_deployTime);
|
||||
|
||||
private _onFinish = {
|
||||
@ -73,5 +76,5 @@
|
||||
alive _tripod
|
||||
};
|
||||
|
||||
[TIME_PROGRESSBAR(_deployTime), [_tripod, _player, _assembledClassname, _carryWeaponClassname], _onFinish, _onFailure, localize LSTRING(AssembleCSW_progressBar), _codeCheck] call EFUNC(common,progressBar);
|
||||
[TIME_PROGRESSBAR(_deployTime), [_tripod, _player, _assembledClassname, _carryWeaponClassname], _onFinish, _onFailure, LLSTRING(AssembleCSW_progressBar), _codeCheck] call EFUNC(common,progressBar);
|
||||
}, _this] call CBA_fnc_execNextFrame;
|
||||
|
@ -37,10 +37,9 @@
|
||||
params ["_args"];
|
||||
_args params ["_tripod", "_player"];
|
||||
|
||||
(alive _tripod) && { (secondaryWeapon _player) isEqualTo "" }
|
||||
|
||||
(alive _tripod) && {secondaryWeapon _player == ""}
|
||||
};
|
||||
|
||||
TRACE_3("",_pickupTime,typeOf _tripod,_tripodClassname);
|
||||
[TIME_PROGRESSBAR(_pickupTime), [_tripod, _player, _tripodClassname], _onFinish, {}, localize LSTRING(PickupTripod_progressBar), _condition] call EFUNC(common,progressBar);
|
||||
[TIME_PROGRESSBAR(_pickupTime), [_tripod, _player, _tripodClassname], _onFinish, {}, LLSTRING(PickupTripod_progressBar), _condition] call EFUNC(common,progressBar);
|
||||
}, _this] call CBA_fnc_execNextFrame;
|
||||
|
@ -19,14 +19,24 @@
|
||||
params ["_staticWeapon", "_player"];
|
||||
TRACE_2("assemble_pickupWeapon",_staticWeapon,_player);
|
||||
|
||||
private _onDisassembleFunc = getText(configOf _staticWeapon >> QUOTE(ADDON) >> "disassembleFunc");
|
||||
private _carryWeaponClassname = getText(configOf _staticWeapon >> QUOTE(ADDON) >> "disassembleWeapon");
|
||||
private _turretClassname = getText(configOf _staticWeapon >> QUOTE(ADDON) >> "disassembleTurret");
|
||||
private _weaponConfig = configOf _staticWeapon >> QUOTE(ADDON);
|
||||
private _carryWeaponClassname = getText (_weaponConfig >> "disassembleWeapon");
|
||||
|
||||
if (!isClass (configFile >> "CfgWeapons" >> _carryWeaponClassname)) exitWith {
|
||||
ERROR_1("bad weapon classname [%1]",_carryWeaponClassname);
|
||||
};
|
||||
|
||||
private _turretClassname = getText (_weaponConfig >> "disassembleTurret");
|
||||
|
||||
// Turret classname can equal nothing if the deploy bag is the "whole" weapon. e.g Kornet, Metis, other ATGMs
|
||||
if ((_turretClassname != "") && {!isClass (configFile >> "CfgVehicles" >> _turretClassname)}) exitWith {
|
||||
ERROR_1("bad turret classname [%1]",_turretClassname);
|
||||
};
|
||||
|
||||
private _onDisassembleFunc = getText (_weaponConfig >> "disassembleFunc");
|
||||
|
||||
private _pickupTime = getNumber (configFile >> "CfgWeapons" >> _carryWeaponClassname >> QUOTE(ADDON) >> "pickupTime");
|
||||
TRACE_4("",typeOf _staticWeapon,_carryWeaponClassname,_turretClassname,_pickupTime);
|
||||
if (!isClass (configFile >> "CfgWeapons" >> _carryWeaponClassname)) exitWith {ERROR_1("bad weapon classname [%1]",_carryWeaponClassname);};
|
||||
// Turret classname can equal nothing if the deploy bag is the "whole" weapon. e.g Kornet, Metis, other ATGMs
|
||||
if ((_turretClassname isNotEqualTo "") && {!isClass (configFile >> "CfgVehicles" >> _turretClassname)}) exitWith {ERROR_1("bad turret classname [%1]",_turretClassname);};
|
||||
|
||||
private _onFinish = {
|
||||
params ["_args"];
|
||||
@ -38,14 +48,14 @@
|
||||
private _weaponDir = getDir _staticWeapon;
|
||||
|
||||
private _carryWeaponMag = "";
|
||||
private _carryWeaponMags = getArray (configFile >> "CfgWeapons" >> _carryWeaponClassname >> "magazines") apply {toLowerANSI _x};
|
||||
private _carryWeaponMags = compatibleMagazines _carryWeaponClassname;
|
||||
LOG("remove ammo");
|
||||
{
|
||||
_x params ["_xMag", "", "_xAmmo"];
|
||||
if (_xAmmo == 0) then {continue};
|
||||
|
||||
private _carryMag = _xMag call FUNC(getCarryMagazine);
|
||||
if (_carryWeaponMag isEqualTo "" && {toLowerANSI _carryMag in _carryWeaponMags}) then {
|
||||
if (_carryWeaponMag == "" && {_carryMag in _carryWeaponMags}) then {
|
||||
TRACE_3("Adding mag to secondary weapon",_xMag,_xAmmo,_carryMag);
|
||||
_carryWeaponMag = _carryMag;
|
||||
DEC(_xAmmo);
|
||||
@ -100,5 +110,5 @@
|
||||
((crew _staticWeapon) isEqualTo []) && (alive _staticWeapon)
|
||||
};
|
||||
|
||||
[TIME_PROGRESSBAR(_pickupTime), [_staticWeapon, _player, _carryWeaponClassname, _turretClassname, _onDisassembleFunc], _onFinish, {}, localize LSTRING(DisassembleCSW_progressBar), _condition] call EFUNC(common,progressBar);
|
||||
[TIME_PROGRESSBAR(_pickupTime), [_staticWeapon, _player, _carryWeaponClassname, _turretClassname, _onDisassembleFunc], _onFinish, {}, LLSTRING(DisassembleCSW_progressBar), _condition] call EFUNC(common,progressBar);
|
||||
}, _this] call CBA_fnc_execNextFrame;
|
||||
|
@ -44,9 +44,9 @@ private _actions = [];
|
||||
private _displayName = getText (_cfgMagazines >> _carryMag >> "displayName");
|
||||
private _picture = getText (_cfgMagazines >> _carryMag >> "picture");
|
||||
private _text = if (_isBeltLinking) then {
|
||||
format [localize LSTRING(actionLink), _displayName];
|
||||
format [LLSTRING(actionLink), _displayName];
|
||||
} else {
|
||||
format [localize LSTRING(loadX), _displayName];
|
||||
format [LLSTRING(loadX), _displayName];
|
||||
};
|
||||
|
||||
private _action = [format ["load_%1", _forEachIndex], _text, _picture, _statement, _condition, {}, _x] call EFUNC(interact_menu,createAction);
|
||||
|
@ -23,8 +23,9 @@ private _statement = {
|
||||
TRACE_5("starting unload",_target,_turretPath,_player,_carryMag,_vehMag);
|
||||
|
||||
private _timeToUnload = 1;
|
||||
if (!isNull (configOf _target >> QUOTE(ADDON) >> "ammoUnloadTime")) then {
|
||||
_timeToUnload = getNumber (configOf _target >> QUOTE(ADDON) >> "ammoUnloadTime");
|
||||
private _config = configOf _target >> QUOTE(ADDON) >> "ammoUnloadTime";
|
||||
if (!isNull _config) then {
|
||||
_timeToUnload = getNumber _config;
|
||||
};
|
||||
|
||||
[
|
||||
@ -36,7 +37,7 @@ private _statement = {
|
||||
[QGVAR(removeTurretMag), [_target, _turretPath, _carryMag, _vehMag, _player]] call CBA_fnc_globalEvent;
|
||||
},
|
||||
{TRACE_1("unload progressBar fail",_this);},
|
||||
format [localize LSTRING(unloadX), getText (configFile >> "CfgMagazines" >> _carryMag >> "displayName")],
|
||||
format [LLSTRING(unloadX), getText (configFile >> "CfgMagazines" >> _carryMag >> "displayName")],
|
||||
{(_this select 0) call FUNC(reload_canUnloadMagazine)},
|
||||
["isNotInside"]
|
||||
] call EFUNC(common,progressBar);
|
||||
|
@ -66,7 +66,7 @@ if (hasInterface && {!(_typeOf in GVAR(initializedStaticTypes))}) then {
|
||||
TRACE_1("Adding Actions",_typeOf);
|
||||
|
||||
if (_assemblyConfig) then {
|
||||
private _disassembleAction = [QGVAR(disassemble), localize LSTRING(DisassembleCSW_displayName), "", {call FUNC(assemble_pickupWeapon)}, {call FUNC(assemble_canPickupWeapon)}] call EFUNC(interact_menu,createAction);
|
||||
private _disassembleAction = [QGVAR(disassemble), LLSTRING(DisassembleCSW_displayName), "", LINKFUNC(assemble_pickupWeapon), LINKFUNC(assemble_canPickupWeapon)] call EFUNC(interact_menu,createAction);
|
||||
[_typeOf, 0, ["ACE_MainActions"], _disassembleAction] call EFUNC(interact_menu,addActionToClass);
|
||||
};
|
||||
|
||||
@ -86,17 +86,17 @@ if (hasInterface && {!(_typeOf in GVAR(initializedStaticTypes))}) then {
|
||||
};
|
||||
if (_configEnabled && {_magazineLocation != ""}) then {
|
||||
private _positionCode = compile _magazineLocation;
|
||||
private _ammoAction = [QGVAR(magazine), localize LSTRING(AmmoHandling_displayName), "", {}, _condition, _childenCode, [], _positionCode, 4] call EFUNC(interact_menu,createAction);
|
||||
private _ammoAction = [QGVAR(magazine), LLSTRING(AmmoHandling_displayName), "", {}, _condition, _childenCode, [], _positionCode, 4] call EFUNC(interact_menu,createAction);
|
||||
_ammoActionPath = [_typeOf, 0, [], _ammoAction] call EFUNC(interact_menu,addActionToClass);
|
||||
} else {
|
||||
private _ammoAction = [QGVAR(magazine), localize LSTRING(AmmoHandling_displayName), "", {}, _condition, _childenCode] call EFUNC(interact_menu,createAction);
|
||||
private _ammoAction = [QGVAR(magazine), LLSTRING(AmmoHandling_displayName), "", {}, _condition, _childenCode] call EFUNC(interact_menu,createAction);
|
||||
_ammoActionPath = [_typeOf, 0, ["ACE_MainActions"], _ammoAction] call EFUNC(interact_menu,addActionToClass);
|
||||
};
|
||||
|
||||
if (["ace_reload"] call EFUNC(common,isModLoaded)) then {
|
||||
// move reload's check ammo action to the ammo handling point (remove and re-add)
|
||||
[_typeOf, 0, ["ACE_MainActions", QEGVAR(reload,CheckAmmo)]] call EFUNC(interact_menu,removeActionFromClass);
|
||||
private _checkAmmoAction = [QGVAR(checkAmmo), localize ELSTRING(reload,checkAmmo), "", EFUNC(reload,checkAmmo), EFUNC(reload,canCheckAmmo)] call EFUNC(interact_menu,createAction);
|
||||
private _checkAmmoAction = [QGVAR(checkAmmo), LELSTRING(reload,checkAmmo), "", EFUNC(reload,checkAmmo), EFUNC(reload,canCheckAmmo)] call EFUNC(interact_menu,createAction);
|
||||
[_typeOf, 0, _ammoActionPath, _checkAmmoAction] call EFUNC(interact_menu,addActionToClass);
|
||||
};
|
||||
};
|
||||
|
@ -70,7 +70,7 @@ private _return = [];
|
||||
) exitWith {
|
||||
_return pushBack [_carryMag, _turretPath, _loadInfo, _magSource];
|
||||
};
|
||||
} forEach ([_weapon] call CBA_fnc_compatibleMagazines);
|
||||
} forEach (compatibleMagazines _weapon);
|
||||
} forEach _availableMagazines;
|
||||
} forEach (_vehicle weaponsTurret _turretPath);
|
||||
} forEach (allTurrets _vehicle);
|
||||
|
@ -23,11 +23,12 @@ params ["_vehicle", "_turret", "_carryMag", "_magSource", "_unit"];
|
||||
TRACE_5("loadMagazine",_vehicle,_turret,_carryMag,_magSource,_unit);
|
||||
|
||||
private _timeToLoad = 1;
|
||||
if (!isNull(configOf _vehicle >> QUOTE(ADDON) >> "ammoLoadTime")) then {
|
||||
_timeToLoad = getNumber(configOf _vehicle >> QUOTE(ADDON) >> "ammoLoadTime");
|
||||
private _config = configOf _vehicle >> QUOTE(ADDON) >> "ammoLoadTime";
|
||||
if (!isNull _config) then {
|
||||
_timeToLoad = getNumber _config;
|
||||
};
|
||||
|
||||
private _displayName = format [localize LSTRING(loadX), getText (configFile >> "CfgMagazines" >> _carryMag >> "displayName")];
|
||||
private _displayName = format [LLSTRING(loadX), getText (configFile >> "CfgMagazines" >> _carryMag >> "displayName")];
|
||||
|
||||
private _onFinish = {
|
||||
(_this select 0) params ["_vehicle", "_turret", "_carryMag", "_magSource", "_unit"];
|
||||
|
Loading…
Reference in New Issue
Block a user