mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
Merge branch 'master' into pr/9758
This commit is contained in:
commit
cea3f6e199
@ -22,11 +22,11 @@ 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 = _item getVariable QGVAR(hasCargo);
|
||||
private _hasCargoPublic = _vehicle getVariable QGVAR(hasCargo);
|
||||
private _hasCargoPublicDefined = !isNil "_canLoadPublic";
|
||||
|
||||
if (_hasCargoPublicDefined && {!(_hasCargoPublic isEqualType false)}) then {
|
||||
WARNING_4("%1[%2] - Variable %3 is %4 - Should be bool",_item,_type,QGVAR(hasCargo),_hasCargoPublic);
|
||||
WARNING_4("%1[%2] - Variable %3 is %4 - Should be bool",_vehicle,_type,QGVAR(hasCargo),_hasCargoPublic);
|
||||
};
|
||||
|
||||
private _hasCargoConfig = getNumber (_config >> QGVAR(hasCargo)) == 1;
|
||||
|
@ -40,6 +40,8 @@ if (isNil "_modelPath") then {
|
||||
case "FxCartridge_12Gauge_Slug_lxWS": { "lxWS\weapons_1_f_lxws\Ammo\cartridge_slug_lxws.p3d" };
|
||||
case "FxCartridge_12Gauge_Smoke_lxWS": { "lxWS\weapons_1_f_lxws\Ammo\cartridge_smoke_lxws.p3d" };
|
||||
case "FxCartridge_12Gauge_Pellet_lxWS": { "lxWS\weapons_1_f_lxws\Ammo\cartridge_pellet_lxws.p3d" };
|
||||
case "CUP_FxCartridge_545": { "CUP\Weapons\CUP_Weapons_Ammunition\magazines\cartridge545.p3d" };
|
||||
case "CUP_FxCartridge_939": { "CUP\Weapons\CUP_Weapons_Ammunition\magazines\cartridge939.p3d" };
|
||||
case "": { "" };
|
||||
default { "A3\Weapons_f\ammo\cartridge.p3d" };
|
||||
};
|
||||
|
@ -1,7 +1,7 @@
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: Garth 'L-H' de Wet
|
||||
* Adds an item, weapon, or magazine to the unit's inventory or places it in a weaponHolder if no space.
|
||||
* Adds an item, weapon, or magazine to the unit's inventory or places it in a weapon holder if no space.
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Unit <OBJECT>
|
||||
@ -11,10 +11,10 @@
|
||||
*
|
||||
* Return Value:
|
||||
* 0: Added to player <BOOL>
|
||||
* 1: weaponholder <OBJECT>
|
||||
* 1: Weapon holder item was placed in <OBJECT>
|
||||
*
|
||||
* Example:
|
||||
* [bob, "classname", "", 5] call ace_common_fnc_addToInventory
|
||||
* [player, "30Rnd_65x39_caseless_mag", "", 5] call ace_common_fnc_addToInventory
|
||||
*
|
||||
* Public: Yes
|
||||
*/
|
||||
@ -26,6 +26,7 @@ private _type = _classname call FUNC(getItemType);
|
||||
private _canAdd = false;
|
||||
private _canFitWeaponSlot = false;
|
||||
private _addedToUnit = false;
|
||||
private _weaponHolder = _unit;
|
||||
|
||||
switch (_container) do {
|
||||
case "vest": {
|
||||
@ -94,11 +95,13 @@ switch (_type select 0) do {
|
||||
} else {
|
||||
_addedToUnit = false;
|
||||
|
||||
private _pos = _unit modelToWorldVisual [0,1,0.05];
|
||||
_weaponHolder = nearestObject [_unit, "WeaponHolder"];
|
||||
|
||||
_unit = createVehicle ["WeaponHolder_Single_F", _pos, [], 0, "NONE"];
|
||||
_unit addWeaponCargoGlobal [_classname, 1];
|
||||
_unit setPosATL _pos;
|
||||
if (isNull _weaponHolder || {_unit distance _weaponHolder > 2}) then {
|
||||
_weaponHolder = createVehicle ["GroundWeaponHolder", _unit, [], 0, "CAN_COLLIDE"];
|
||||
};
|
||||
|
||||
_weaponHolder addWeaponCargoGlobal [_classname, 1];
|
||||
};
|
||||
};
|
||||
|
||||
@ -127,11 +130,13 @@ switch (_type select 0) do {
|
||||
} else {
|
||||
_addedToUnit = false;
|
||||
|
||||
private _pos = _unit modelToWorldVisual [0,1,0.05];
|
||||
_weaponHolder = nearestObject [_unit, "WeaponHolder"];
|
||||
|
||||
_unit = createVehicle ["WeaponHolder_Single_F", _pos, [], 0, "NONE"];
|
||||
_unit addMagazineAmmoCargo [_classname, 1, _ammoCount];
|
||||
_unit setPosATL _pos;
|
||||
if (isNull _weaponHolder || {_unit distance _weaponHolder > 2}) then {
|
||||
_weaponHolder = createVehicle ["GroundWeaponHolder", _unit, [], 0, "CAN_COLLIDE"];
|
||||
};
|
||||
|
||||
_weaponHolder addMagazineAmmoCargo [_classname, 1, _ammoCount];
|
||||
};
|
||||
};
|
||||
|
||||
@ -156,11 +161,13 @@ switch (_type select 0) do {
|
||||
} else {
|
||||
_addedToUnit = false;
|
||||
|
||||
private _pos = _unit modelToWorldVisual [0,1,0.05];
|
||||
_weaponHolder = nearestObject [_unit, "WeaponHolder"];
|
||||
|
||||
_unit = createVehicle ["WeaponHolder_Single_F", _pos, [], 0, "NONE"];
|
||||
_unit addItemCargoGlobal [_classname, 1];
|
||||
_unit setPosATL _pos;
|
||||
if (isNull _weaponHolder || {_unit distance _weaponHolder > 2}) then {
|
||||
_weaponHolder = createVehicle ["GroundWeaponHolder", _unit, [], 0, "CAN_COLLIDE"];
|
||||
};
|
||||
|
||||
_weaponHolder addItemCargoGlobal [_classname, 1];
|
||||
};
|
||||
};
|
||||
|
||||
@ -170,4 +177,4 @@ switch (_type select 0) do {
|
||||
};
|
||||
};
|
||||
|
||||
[_addedToUnit, _unit]
|
||||
[_addedToUnit, _weaponHolder]
|
||||
|
@ -15,7 +15,7 @@ class CfgWeapons {
|
||||
deployTime = 20;
|
||||
pickupTime = 25;
|
||||
class assembleTo {
|
||||
ace_csw_mortarBaseplate = "CUP_O_2b14_82mm_RU";
|
||||
ace_csw_mortarBaseplate = "CUP_I_2b14_82mm_AAF";
|
||||
};
|
||||
};
|
||||
class WeaponSlotsInfo: WeaponSlotsInfo {
|
||||
@ -31,7 +31,7 @@ class CfgWeapons {
|
||||
picture = "\CUP\Weapons\CUP_Weapons_StaticWeapons\M252\data\ui\icomap_mortar_m251_ca.paa";
|
||||
class ace_csw: ace_csw {
|
||||
class assembleTo {
|
||||
ace_csw_mortarBaseplate = "CUP_B_M252_US";
|
||||
ace_csw_mortarBaseplate = "CUP_I_M252_AAF";
|
||||
};
|
||||
};
|
||||
};
|
||||
@ -42,7 +42,7 @@ class CfgWeapons {
|
||||
picture = "\CUP\Weapons\CUP_Weapons_StaticWeapons\M252\data\ui\icomap_mortar_m251_ca.paa";
|
||||
class ace_csw: ace_csw {
|
||||
class assembleTo {
|
||||
ace_csw_mortarBaseplate = "CUP_B_L16A2_BAF_MPT";
|
||||
ace_csw_mortarBaseplate = "CUP_I_L16A2_AAF";
|
||||
};
|
||||
};
|
||||
};
|
||||
@ -58,8 +58,8 @@ class CfgWeapons {
|
||||
deployTime = 4;
|
||||
pickupTime = 4;
|
||||
class assembleTo {
|
||||
ace_csw_m3Tripod = "CUP_B_M2StaticMG_US";
|
||||
ace_csw_m3TripodLow = "CUP_B_M2StaticMG_MiniTripod_US";
|
||||
ace_csw_m3Tripod = "CUP_I_M2StaticMG_AAF";
|
||||
ace_csw_m3TripodLow = "CUP_I_M2StaticMG_MiniTripod_AAF";
|
||||
};
|
||||
};
|
||||
class WeaponSlotsInfo: WeaponSlotsInfo {
|
||||
@ -81,8 +81,8 @@ class CfgWeapons {
|
||||
deployTime = 4;
|
||||
pickupTime = 4;
|
||||
class assembleTo {
|
||||
ace_csw_kordTripod = "CUP_O_DSHKM_ChDKZ";
|
||||
ace_csw_kordTripodLow = "CUP_O_DSHkM_MiniTriPod_ChDKZ";
|
||||
ace_csw_kordTripod = "CUP_I_DSHKM_AAF";
|
||||
ace_csw_kordTripodLow = "CUP_I_DSHKM_MiniTriPod_AAF";
|
||||
};
|
||||
};
|
||||
class WeaponSlotsInfo: WeaponSlotsInfo {
|
||||
@ -104,8 +104,8 @@ class CfgWeapons {
|
||||
deployTime = 4;
|
||||
pickupTime = 4;
|
||||
class assembleTo {
|
||||
ace_csw_kordTripod = "CUP_O_KORD_high_RU";
|
||||
ace_csw_kordTripodLow = "CUP_O_KORD_RU";
|
||||
ace_csw_kordTripod = "CUP_I_KORD_high_AAF";
|
||||
ace_csw_kordTripodLow = "CUP_I_KORD_AAF";
|
||||
};
|
||||
};
|
||||
class WeaponSlotsInfo: WeaponSlotsInfo {
|
||||
@ -127,7 +127,7 @@ class CfgWeapons {
|
||||
deployTime = 4;
|
||||
pickupTime = 4;
|
||||
class assembleTo {
|
||||
ace_csw_sag30Tripod = "CUP_O_AGS_RU";
|
||||
ace_csw_sag30Tripod = "CUP_I_AGS_AAF";
|
||||
};
|
||||
};
|
||||
class WeaponSlotsInfo: WeaponSlotsInfo {
|
||||
@ -149,7 +149,7 @@ class CfgWeapons {
|
||||
deployTime = 4;
|
||||
pickupTime = 4;
|
||||
class assembleTo {
|
||||
ace_csw_m3TripodLow = "CUP_B_MK19_TriPod_US";
|
||||
ace_csw_m3TripodLow = "CUP_I_MK19_TriPod_AAF";
|
||||
};
|
||||
};
|
||||
class WeaponSlotsInfo: WeaponSlotsInfo {
|
||||
@ -168,7 +168,7 @@ class CfgWeapons {
|
||||
type = "mount";
|
||||
deployTime = 4;
|
||||
pickupTime = 4;
|
||||
deploy = "CUP_O_Metis_RU";
|
||||
deploy = "CUP_I_Metis_AAF";
|
||||
};
|
||||
class WeaponSlotsInfo: WeaponSlotsInfo {
|
||||
mass = 300;
|
||||
@ -186,7 +186,7 @@ class CfgWeapons {
|
||||
deployTime = 4;
|
||||
pickupTime = 4;
|
||||
class assembleTo {
|
||||
ace_csw_m220Tripod = "CUP_B_TOW_TriPod_US";
|
||||
ace_csw_m220Tripod = "CUP_I_TOW_TriPod_AAF";
|
||||
};
|
||||
};
|
||||
class WeaponSlotsInfo: WeaponSlotsInfo {
|
||||
@ -200,7 +200,7 @@ class CfgWeapons {
|
||||
class CUP_TOW2_carry: CUP_TOW_carry {
|
||||
class ace_csw: ace_csw {
|
||||
class assembleTo {
|
||||
ace_csw_m220Tripod = "CUP_B_TOW2_TriPod_US";
|
||||
ace_csw_m220Tripod = "CUP_I_TOW2_TriPod_AAF";
|
||||
};
|
||||
};
|
||||
};
|
||||
@ -216,7 +216,7 @@ class CfgWeapons {
|
||||
deployTime = 4;
|
||||
pickupTime = 4;
|
||||
class assembleTo {
|
||||
ace_csw_spg9Tripod = "CUP_B_SPG9_CDF";
|
||||
ace_csw_spg9Tripod = "CUP_I_SPG9_AAF";
|
||||
};
|
||||
};
|
||||
class WeaponSlotsInfo: WeaponSlotsInfo {
|
||||
@ -257,12 +257,12 @@ class CfgWeapons {
|
||||
magazineReloadTime = 0.5;
|
||||
};
|
||||
|
||||
class CUP_Vmlauncher_AT13_single_veh;
|
||||
class CUP_Vmlauncher_AT13_single_veh;
|
||||
class CUP_proxy_AT13: CUP_Vmlauncher_AT13_single_veh {
|
||||
magazineReloadTime = 0.5;
|
||||
};
|
||||
|
||||
class CUP_Vmlauncher_TOW_single_veh;
|
||||
class CUP_Vmlauncher_TOW_single_veh;
|
||||
class CUP_proxy_TOW: CUP_Vmlauncher_TOW_single_veh {
|
||||
magazineReloadTime = 0.5;
|
||||
};
|
||||
@ -272,7 +272,7 @@ class CfgWeapons {
|
||||
magazineReloadTime = 0.5;
|
||||
};
|
||||
|
||||
class CUP_Vcannon_M119_veh;
|
||||
class CUP_Vcannon_M119_veh;
|
||||
class CUP_proxy_M119: CUP_Vcannon_M119_veh {
|
||||
magazineReloadTime = 0.5;
|
||||
};
|
||||
@ -287,4 +287,3 @@ class CfgWeapons {
|
||||
magazineReloadTime = 0.5;
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -5,7 +5,6 @@ class CfgVehicles {
|
||||
class StaticGrenadeLauncher;
|
||||
|
||||
class rhs_SPG9_base: AT_01_base_F {
|
||||
// ENABLE_CSW_ATTRIBUTE;
|
||||
class ACE_CSW {
|
||||
enabled = 1;
|
||||
proxyWeapon = QGVAR(rhs_weap_SPG9);
|
||||
@ -26,7 +25,6 @@ class CfgVehicles {
|
||||
};
|
||||
|
||||
class rhs_Kornet_Base: AT_01_base_F {
|
||||
// ENABLE_CSW_ATTRIBUTE;
|
||||
class ACE_CSW {
|
||||
enabled = 1;
|
||||
proxyWeapon = QGVAR(rhs_weap_9K133_launcher);
|
||||
@ -40,7 +38,6 @@ class CfgVehicles {
|
||||
};
|
||||
|
||||
class rhs_Metis_Base: AT_01_base_F {
|
||||
// ENABLE_CSW_ATTRIBUTE;
|
||||
class ACE_CSW {
|
||||
enabled = 1;
|
||||
proxyWeapon = QGVAR(rhs_weap_9K115_2_launcher);
|
||||
@ -54,7 +51,6 @@ class CfgVehicles {
|
||||
};
|
||||
|
||||
class rhs_2b14_82mm_Base: StaticMortar {
|
||||
// ENABLE_CSW_ATTRIBUTE;
|
||||
class ACE_CSW {
|
||||
enabled = 1;
|
||||
magazineLocation = "";
|
||||
@ -99,7 +95,6 @@ class CfgVehicles {
|
||||
};
|
||||
|
||||
class RHS_AGS30_TriPod_base: StaticGrenadeLauncher {
|
||||
// ENABLE_CSW_ATTRIBUTE;
|
||||
class ACE_CSW {
|
||||
enabled = 1;
|
||||
proxyWeapon = QGVAR(rhs_weap_AGS30);
|
||||
|
@ -1,7 +1,6 @@
|
||||
class CfgVehicles {
|
||||
class StaticMGWeapon;
|
||||
class rhs_DSHKM_base: StaticMGWeapon {
|
||||
// ENABLE_CSW_ATTRIBUTE;
|
||||
class ACE_CSW {
|
||||
enabled = 1;
|
||||
proxyWeapon = QGVAR(rhs_weap_DSHKM);
|
||||
|
@ -1,43 +0,0 @@
|
||||
class ctrlCombo;
|
||||
class Cfg3DEN {
|
||||
class Attributes {
|
||||
class Default;
|
||||
class Title: Default {
|
||||
class Controls {
|
||||
class Title;
|
||||
};
|
||||
};
|
||||
class Combo: Title {
|
||||
class Controls: Controls {
|
||||
class Title: Title {};
|
||||
class Value;
|
||||
};
|
||||
};
|
||||
class GVAR(assemblyModeControl): Combo {
|
||||
class Controls: Controls {
|
||||
class Title: Title {};
|
||||
class Value: Value {
|
||||
class Items {
|
||||
class Disable {
|
||||
text = "$STR_DISABLED";
|
||||
value = 0;
|
||||
};
|
||||
class Enable {
|
||||
text = "$STR_CONFIG_JOYSTICK_ENABLED";
|
||||
value = 1;
|
||||
};
|
||||
class EnableAndEmpty {
|
||||
text = CSTRING(eden_enableAndEmpty);
|
||||
value = 2;
|
||||
};
|
||||
class Default {
|
||||
text = "$STR_VEHICLE_DEFAULT";
|
||||
value = 3;
|
||||
default = 1;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
@ -138,7 +138,6 @@ class CfgVehicles {
|
||||
class StaticMGWeapon: StaticWeapon {};
|
||||
|
||||
class HMG_01_base_F: StaticMGWeapon {
|
||||
// ENABLE_CSW_ATTRIBUTE;
|
||||
class ADDON {
|
||||
enabled = 1;
|
||||
proxyWeapon = QGVAR(HMG_Static);
|
||||
@ -198,7 +197,6 @@ class CfgVehicles {
|
||||
|
||||
class GMG_TriPod;
|
||||
class GMG_01_base_F: GMG_TriPod {
|
||||
// ENABLE_CSW_ATTRIBUTE;
|
||||
class ADDON {
|
||||
enabled = 1;
|
||||
proxyWeapon = QGVAR(GMG_20mm); // Weapon Proxy (Shorter Reload Time) [CfgWeapons]
|
||||
@ -232,7 +230,6 @@ class CfgVehicles {
|
||||
|
||||
|
||||
class AT_01_base_F: StaticMGWeapon {
|
||||
// ENABLE_CSW_ATTRIBUTE;
|
||||
class ADDON {
|
||||
enabled = 1;
|
||||
proxyWeapon = QGVAR(Titan_AT_Static);
|
||||
@ -246,7 +243,6 @@ class CfgVehicles {
|
||||
};
|
||||
|
||||
class AA_01_base_F: StaticMGWeapon {
|
||||
// ENABLE_CSW_ATTRIBUTE;
|
||||
class ADDON {
|
||||
enabled = 1;
|
||||
proxyWeapon = QGVAR(Titan_AA_Static); // Weapon Proxy (Shorter Reload Time) [CfgWeapons]
|
||||
@ -262,7 +258,6 @@ class CfgVehicles {
|
||||
|
||||
class StaticMortar: StaticWeapon {};
|
||||
class Mortar_01_base_F: StaticMortar {
|
||||
// ENABLE_CSW_ATTRIBUTE;
|
||||
class ADDON {
|
||||
enabled = 1;
|
||||
magazineLocation = "";
|
||||
|
@ -15,7 +15,6 @@ class CfgPatches {
|
||||
};
|
||||
};
|
||||
|
||||
#include "Cfg3den.hpp"
|
||||
#include "CfgEventHandlers.hpp"
|
||||
#include "CfgVehicles.hpp"
|
||||
#include "CfgWeapons.hpp"
|
||||
|
@ -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]];
|
||||
};
|
||||
|
@ -22,4 +22,4 @@ private _assemblyMode = [false, true, true, GVAR(defaultAssemblyMode)] select (_
|
||||
private _notCrewed = (crew _staticWeapon) isEqualTo [];
|
||||
private _deadCrew = !(alive (gunner _staticWeapon)); // need to eject body???
|
||||
|
||||
_assemblyMode && {_notCrewed || _deadCrew}
|
||||
_assemblyMode && {alive _staticWeapon} && {_notCrewed || _deadCrew}
|
||||
|
@ -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 = {
|
||||
@ -69,8 +72,9 @@
|
||||
private _codeCheck = {
|
||||
params ["_args"];
|
||||
_args params ["_tripod"];
|
||||
!isNull _tripod;
|
||||
|
||||
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;
|
||||
|
@ -20,8 +20,8 @@
|
||||
params ["_tripod", "_player"];
|
||||
TRACE_2("assemble_pickupTripod",_tripod,_player);
|
||||
|
||||
private _tripodClassname = getText(configOf _tripod >> QUOTE(ADDON) >> "disassembleTo");
|
||||
private _pickupTime = getNumber(configFile >> "CfgWeapons" >> _tripodClassname >> QUOTE(ADDON) >> "pickupTime");
|
||||
private _tripodClassname = getText (configOf _tripod >> QUOTE(ADDON) >> "disassembleTo");
|
||||
private _pickupTime = getNumber (configFile >> "CfgWeapons" >> _tripodClassname >> QUOTE(ADDON) >> "pickupTime");
|
||||
|
||||
private _onFinish = {
|
||||
params ["_args"];
|
||||
@ -37,10 +37,9 @@
|
||||
params ["_args"];
|
||||
_args params ["_tripod", "_player"];
|
||||
|
||||
!(isNull _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 _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);};
|
||||
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 isNotEqualTo "") && {!isClass (configFile >> "CfgVehicles" >> _turretClassname)}) exitWith {ERROR_1("bad turret classname [%1]",_turretClassname);};
|
||||
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);
|
||||
|
||||
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"];
|
||||
|
@ -1,15 +1 @@
|
||||
#define CREATE_CSW_PROXY(weapon) class ##weapon; class GVAR(weapon): ##weapon { magazineReloadTime = 0.5; }
|
||||
|
||||
// Need to be careful about breaking Attributes inheritance, doesn't seem to be any standard
|
||||
#define ENABLE_CSW_ATTRIBUTE class Attributes { \
|
||||
class EGVAR(CSW,assemblyMode) { \
|
||||
property = QEGVAR(CSW,assemblyMode); \
|
||||
control = QEGVAR(CSW,assemblyModeControl); \
|
||||
displayName = ECSTRING(CSW,eden_enableCSW); \
|
||||
tooltip = ECSTRING(CSW,eden_enableCSW_tooltip); \
|
||||
expression = QUOTE( if (_value != 3) then {_this setVariable [ARR_3('%s',_value,true)]} ); \
|
||||
typeName = "NUMBER"; \
|
||||
condition = "objectVehicle"; \
|
||||
defaultValue = 3; \
|
||||
}; \
|
||||
}
|
||||
|
@ -168,7 +168,7 @@ private _action = [
|
||||
// action display name will be overwritten in modifier function
|
||||
QGVAR(takeWeapon), "take", "\A3\ui_f\data\igui\cfg\actions\take_ca.paa",
|
||||
{_player action ["TakeWeapon", _target, weaponCargo _target select 0]},
|
||||
{count weaponCargo _target == 1},
|
||||
{(count weaponCargo _target == 1) && {[_player, objNull, []] call EFUNC(common,canInteractWith)}}, // Not checking if container is claimed
|
||||
nil, nil, nil, nil, nil,
|
||||
{
|
||||
params ["_target", "", "", "_actionData"];
|
||||
|
@ -1,4 +1,4 @@
|
||||
#define MAJOR 3
|
||||
#define MINOR 16
|
||||
#define PATCHLVL 3
|
||||
#define BUILD 79
|
||||
#define MINOR 17
|
||||
#define PATCHLVL 0
|
||||
#define BUILD 83
|
||||
|
@ -15,12 +15,12 @@
|
||||
* Public: No
|
||||
*/
|
||||
|
||||
#define __dsp (uiNamespace getVariable "ACE_RscYardage450")
|
||||
#define __ctrlTarget (__dsp displayCtrl 720041)
|
||||
#define __ctrlLaser (__dsp displayCtrl 720042)
|
||||
#define __ctrlRange (__dsp displayCtrl 720043)
|
||||
#define __ctrlMeters (__dsp displayCtrl 720044)
|
||||
#define __ctrlYards (__dsp displayCtrl 720045)
|
||||
#define DISPLAY_YARDAGE (uiNamespace getVariable "ACE_RscYardage450")
|
||||
#define CTRL_TARGET (DISPLAY_YARDAGE displayCtrl 720041)
|
||||
#define CTRL_LASER (DISPLAY_YARDAGE displayCtrl 720042)
|
||||
#define CTRL_RANGE (DISPLAY_YARDAGE displayCtrl 720043)
|
||||
#define CTRL_METERS (DISPLAY_YARDAGE displayCtrl 720044)
|
||||
#define CTRL_YARDS (DISPLAY_YARDAGE displayCtrl 720045)
|
||||
|
||||
if (currentWeapon ACE_player != "ACE_Yardage450" || cameraView != "GUNNER") exitWith {};
|
||||
|
||||
@ -33,25 +33,28 @@ GVAR(active) = true;
|
||||
[{
|
||||
if (CBA_missionTime - GVAR(powerOnTime) > 30) exitWith {
|
||||
GVAR(active) = false;
|
||||
74210 cutText ["", "PLAIN"];
|
||||
QUOTE(ADDON) cutText ["", "PLAIN"];
|
||||
[_this select 1] call CBA_fnc_removePerFrameHandler;
|
||||
};
|
||||
|
||||
if (currentWeapon ACE_player == "ACE_Yardage450" && cameraView == "GUNNER") then {
|
||||
74210 cutRsc ["ACE_RscYardage450", "PLAIN", 1, false];
|
||||
|
||||
__ctrlLaser ctrlShow GVAR(lasing);
|
||||
if (GVAR(targetAcquired)) then {
|
||||
__ctrlTarget ctrlSetText "Target Acquired";
|
||||
__ctrlRange ctrlSetText GVAR(targetRangeText);
|
||||
} else {
|
||||
__ctrlTarget ctrlSetText "";
|
||||
__ctrlRange ctrlSetText "---";
|
||||
if (isNil {DISPLAY_YARDAGE} || {isNull DISPLAY_YARDAGE} || {ctrlIDD DISPLAY_YARDAGE != -1}) then {
|
||||
TRACE_1("making display",DISPLAY_YARDAGE);
|
||||
QUOTE(ADDON) cutRsc ["ACE_RscYardage450", "PLAIN", 1, false];
|
||||
};
|
||||
__ctrlMeters ctrlShow !GVAR(useYards);
|
||||
__ctrlYards ctrlShow GVAR(useYards);
|
||||
|
||||
CTRL_LASER ctrlShow GVAR(lasing);
|
||||
if (GVAR(targetAcquired)) then {
|
||||
CTRL_TARGET ctrlSetText "Target Acquired";
|
||||
CTRL_RANGE ctrlSetText GVAR(targetRangeText);
|
||||
} else {
|
||||
CTRL_TARGET ctrlSetText "";
|
||||
CTRL_RANGE ctrlSetText "---";
|
||||
};
|
||||
CTRL_METERS ctrlShow !GVAR(useYards);
|
||||
CTRL_YARDS ctrlShow GVAR(useYards);
|
||||
} else {
|
||||
74210 cutText ["", "PLAIN"];
|
||||
QUOTE(ADDON) cutText ["", "PLAIN"];
|
||||
};
|
||||
|
||||
}, 0, []] call CBA_fnc_addPerFrameHandler;
|
||||
|
@ -8,9 +8,9 @@ ace:
|
||||
githubUrl: https://github.com/acemod/ACE3
|
||||
version:
|
||||
major: 3
|
||||
minor: 16
|
||||
patch: 3
|
||||
build: 79
|
||||
minor: 17
|
||||
patch: 0
|
||||
build: 82
|
||||
|
||||
|
||||
markdown: kramdown
|
||||
|
@ -8,9 +8,9 @@ ace:
|
||||
githubUrl: https://github.com/acemod/ACE3
|
||||
version:
|
||||
major: 3
|
||||
minor: 16
|
||||
patch: 3
|
||||
build: 79
|
||||
minor: 17
|
||||
patch: 0
|
||||
build: 82
|
||||
|
||||
|
||||
markdown: kramdown
|
||||
|
@ -36,6 +36,12 @@
|
||||
</i>
|
||||
</a>
|
||||
</div>
|
||||
<hr>
|
||||
<p class="text-center">
|
||||
ACE3 is free and open-source software.
|
||||
<br/>
|
||||
<a href="https://acemod.org">acemod</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
|
@ -27,6 +27,7 @@
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||
<link href="https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,400;0,700;1,400;1,700&display=swap" rel="stylesheet">
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/github-fork-ribbon-css/0.2.3/gh-fork-ribbon.min.css" />
|
||||
<link rel="stylesheet" href="{{ site.baseurl }}/dist/bundle.css?v={{site.time | date: '%Y%m%d%H'}}" />
|
||||
</head>
|
||||
<body>
|
||||
|
48
docs/_posts/2024-04-01-ace3-version3170.md
Normal file
48
docs/_posts/2024-04-01-ace3-version3170.md
Normal file
@ -0,0 +1,48 @@
|
||||
---
|
||||
title: ACEREP #00012
|
||||
description: Status report on ACE3 version 3.17.0
|
||||
parent: posts
|
||||
image:
|
||||
author: Jonpas
|
||||
layout: post
|
||||
---
|
||||
|
||||
This post accompanies the release of ACE3 v3.17.0, a smaller but not any less significant release. We will also take a peek at at our new experimental project.
|
||||
|
||||
<!--more-->
|
||||
|
||||
### Release Cadence
|
||||
|
||||
With improved tooling such as [HEMTT](https://github.com/BrettMayson/HEMTT) simplifying our release processes, we have been aiming aiming to do releases more often than in the past. This is one of the first bigger releases following the set cadence.
|
||||
|
||||
While releases are expected to be smaller as less time passes between them resulting in fewer changes, the new cadence should effectively contribute to higher quality and stability of ACE3 overall.
|
||||
|
||||
We are maintaining our philosophy of "no schedule, no ETAs" and simply release when the team is able to and opts to do so. Work done on the project should not affect this and we aim to release more often even if there are only little or insignificant changes.
|
||||
|
||||
### Integrated CUP Compatibility
|
||||
|
||||
[Community Upgrade Project](https://www.cup-arma3.org/) has always provided compatibility and support for ACE3. Originally it has been hosted and maintained by the CUP Team. With the availability of automatically loading a compatibility patch if the given mod is loaded, we have worked together with the CUP Team to bring ACE3 Compatibility for CUP directly into the ACE3 mod.
|
||||
|
||||
**This means you should remove any compatibility patches provided by CUP** and instead simply use ACE3 together with CUP. In addition to integrated compatibility, some additional improvements were also made.
|
||||
|
||||
### ACE Anvil
|
||||
|
||||
<div class="row">
|
||||
<div class="small-12 columns">
|
||||
<img src="{{site.baseUrl}}/img/news/240401_ace_anvil_logo.webp" alt="ACE Anvil Logo"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
[ACE Anvil](https://github.com/acemod/ACE-Anvil) is an **experimental** realism mod for Arma Reforger, the first Arma game running on the Enfusion engine.
|
||||
|
||||
Anvil is not expected to reach feature parity with ACE3. It is heavily experimental and we invite you to contribute to it. As Arma Reforger is a test platform, go wild, we are happy to add any realism or quality of life features, even some that might not be strictly within ACE's usual scope.
|
||||
|
||||
Learn more about ACE Anvil at the [Anvil Documentation](https://anvil.acemod.org/)!
|
||||
|
||||
### The End Things
|
||||
|
||||
The change log for ACE3 v3.17.0 can be found [here](https://github.com/acemod/ACE3/releases/v3.17.0){:target="_blank"}.
|
||||
|
||||
We are still in need for translations for some languages within the ACE3 project. Please have a look at [this GitHub issue to track the progress and what languages lack translations](https://github.com/acemod/ACE3/issues/367){:target="_blank"}. Any and all help with this is very appreciated.
|
||||
|
||||
Make sure to [follow us on Twitter](https://twitter.com/intent/follow?screen_name=ace3mod&tw_p=followbutton){:target="_blank"} and to [like our Facebook page](https://www.facebook.com/ACE3Mod/){:target="_blank"}.
|
@ -1,5 +1,3 @@
|
||||
version: "3.2"
|
||||
|
||||
services:
|
||||
docs:
|
||||
container_name: ace3mod_jekyll
|
||||
|
BIN
docs/img/news/240401_ace_anvil_logo.webp
Normal file
BIN
docs/img/news/240401_ace_anvil_logo.webp
Normal file
Binary file not shown.
After Width: | Height: | Size: 29 KiB |
@ -8,7 +8,7 @@ sitemap:
|
||||
exclude: "yes"
|
||||
---
|
||||
|
||||
<a class="hide-for-small-only" href="https://github.com/acemod/ACE3" target="_blank" rel="noopener"><img style="position: absolute; top: 0; right: 0; border: 0; z-index: 9999" src="https://camo.githubusercontent.com/365986a132ccd6a44c23a9169022c0b5c890c387/68747470733a2f2f73332e616d617a6f6e6177732e636f6d2f6769746875622f726962626f6e732f666f726b6d655f72696768745f7265645f6161303030302e706e67" alt="Fork me on GitHub" data-canonical-src="https://s3.amazonaws.com/github/ribbons/forkme_right_red_aa0000.png"></a>
|
||||
<a class="github-fork-ribbon" href="https://github.com/acemod/ACE3" target="_blank" rel="noopener" data-ribbon="Fork me on GitHub" title="Fork me on GitHub">Fork me on GitHub</a>
|
||||
|
||||
<div class="row">
|
||||
<div class="large-12 columns">
|
||||
|
Loading…
Reference in New Issue
Block a user