Skip to content

Commit

Permalink
Merge pull request #3382 from official-antistasi-community/unstable
Browse files Browse the repository at this point in the history
unstable to master for 3.7 release
  • Loading branch information
Bob-Murphy authored Aug 18, 2024
2 parents 201e925 + 0d3a7dc commit 858b653
Show file tree
Hide file tree
Showing 106 changed files with 46,150 additions and 430 deletions.
34 changes: 33 additions & 1 deletion A3A/addons/config_fixes/CUP/CfgVehicles.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,37 @@

class CfgVehicles
{
#include "sfp_air.hpp"
#include "sfp_air.hpp"

// Nose-fall tweaks to make planes turn at a semi-decent rate when flown by AI
class Plane_Base_F;
class CUP_A10_Base : Plane_Base_F
{
draconicTorqueXCoef = 2;
};
class CUP_L39_base : Plane_base_F
{
draconicTorqueXCoef = 2;
};

// The faster planes benefit slightly from more torque, so we use the array form
class Plane;
class CUP_AV8B_Base : Plane
{
draconicTorqueXCoef[] = {2,3,4,5,6,7,8,9,10,10.1,10.2};
};
class CUP_Su25_base : Plane
{
draconicTorqueXCoef[] = {2,3,4,5,6,7,8,9,10,10.1,10.2};
//speeds in m/s: {0, 37.5, 75, 112.5, 150, 187.5, 225, 262.5, 300, 337.5, 375m/s}
};
class CUP_F35B_base : Plane
{
draconicTorqueXCoef[] = {2,3.5,5,6.5,8,9,10,11,12,12.1,12.2};
//speeds in m/s: {0, 58.3, 117, 175, 233, 292, 350, 408, 467, 525, 583m/s}
};
class CUP_SU34_BASE : Plane
{
draconicTorqueXCoef[] = {2,3.5,5,6.5,8,9,10,11,12,12.1,12.2};
};
};
22 changes: 22 additions & 0 deletions A3A/addons/config_fixes/IFA/CfgVehicles.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -62,4 +62,26 @@ class CfgVehicles
class LIB_Armored_Target_Dummy : Tank {
delete EventHandlers;
};

// Nose-fall tweaks to make planes turn at a semi-decent rate when flown by AI
// Note: LIB_Ju87 not adjusted because planes with low maxSpeed use different AI logic
class LIB_GER_Plane_base;
class LIB_FW190F8 : LIB_GER_Plane_base
{
draconicTorqueXCoef = 2;
};
class LIB_SU_Plane_base;
class LIB_P39 : LIB_SU_Plane_base
{
draconicTorqueXCoef = 2;
};
class LIB_Pe2 : LIB_SU_Plane_base
{
draconicTorqueXCoef = 2;
};
class LIB_US_Plane_base;
class LIB_P47 : LIB_US_Plane_base
{
draconicTorqueXCoef = 2;
};
};
1 change: 1 addition & 0 deletions A3A/addons/core/CfgFunctions.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -733,6 +733,7 @@ class CfgFunctions
class secondsToTimeSpan {};
class systemTime_format_S {};
class timeSpan_format {};
class systemTimeDurationToTimeSpan {};
};

class UI {
Expand Down
150 changes: 150 additions & 0 deletions A3A/addons/core/CfgVehicles.hpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,150 @@
class CfgVehicles
{
// Unbreak the vanilla inheritance chain
class Man;
class CAManBase : Man {
class EventHandlers;
};
class SoldierGB : CAManBase {
class EventHandlers : EventHandlers {};
};
class I_G_Soldier_base_F : SoldierGB {
class EventHandlers : EventHandlers
{
init = "if (local (_this select 0)) then {[(_this select 0), [], []] call BIS_fnc_unitHeadgear;};";
//init line to perserve the behaviour BI intended for the I_G_Soldier_base_F classs
};
};

// Rebel AI unit types

//don't need to change this one?
class I_G_Survivor_F : I_G_Soldier_base_F{};
class a3a_unit_reb_unarmed : I_G_Survivor_F {};

class I_G_Soldier_F : I_G_Soldier_base_F{};
class a3a_unit_reb : I_G_Soldier_F {
backpack = "";
linkedItems[] = {"ItemMap","ItemCompass","ItemWatch"};
magazines[] = {};
weapons[] = {"Throw","Put"};
};

class I_G_medic_F : I_G_Soldier_base_F{};
class a3a_unit_reb_medic : I_G_medic_F {
backpack = "";
linkedItems[] = {"ItemMap","ItemCompass","ItemWatch"};
magazines[] = {};
weapons[] = {"Throw","Put"};
};

class I_G_Sharpshooter_F : I_G_Soldier_base_F{};
class a3a_unit_reb_sniper : I_G_Sharpshooter_F {
backpack = "";
linkedItems[] = {"ItemMap","ItemCompass","ItemWatch"};
magazines[] = {};
weapons[] = {"Throw","Put"};
};

class I_G_Soldier_M_F : I_G_Soldier_base_F{};
class a3a_unit_reb_marksman : I_G_Soldier_M_F {
backpack = "";
linkedItems[] = {"ItemMap","ItemCompass","ItemWatch"};
magazines[] = {};
weapons[] = {"Throw","Put"};
};

class I_G_Soldier_LAT_F : I_G_Soldier_base_F{};
class a3a_unit_reb_lat : I_G_Soldier_LAT_F {
backpack = "";
linkedItems[] = {"ItemMap","ItemCompass","ItemWatch"};
magazines[] = {};
weapons[] = {"Throw","Put"};
};

class I_G_Soldier_AR_F : I_G_Soldier_base_F{};
class a3a_unit_reb_mg : I_G_Soldier_AR_F {
backpack = "";
linkedItems[] = {"ItemMap","ItemCompass","ItemWatch"};
magazines[] = {};
weapons[] = {"Throw","Put"};
};

class I_G_Soldier_exp_F : I_G_Soldier_base_F{};
class a3a_unit_reb_exp : I_G_Soldier_exp_F {
backpack = "";
linkedItems[] = {"ItemMap","ItemCompass","ItemWatch"};
magazines[] = {};
weapons[] = {"Throw","Put"};
};

class I_G_Soldier_GL_F : I_G_Soldier_base_F{};
class a3a_unit_reb_gl : I_G_Soldier_GL_F {
backpack = "";
linkedItems[] = {"ItemMap","ItemCompass","ItemWatch"};
magazines[] = {};
weapons[] = {"Throw","Put"};
};

class I_G_Soldier_SL_F : I_G_Soldier_base_F{};
class a3a_unit_reb_sl : I_G_Soldier_SL_F {
backpack = "";
linkedItems[] = {"ItemMap","ItemCompass","ItemWatch"};
magazines[] = {};
weapons[] = {"Throw","Put"};
};

class I_G_engineer_F : I_G_Soldier_base_F{};
class a3a_unit_reb_eng : I_G_engineer_F {
backpack = "";
linkedItems[] = {"ItemMap","ItemCompass","ItemWatch"};
magazines[] = {};
weapons[] = {"Throw","Put"};
};

class I_Soldier_AT_F;
class a3a_unit_reb_at : I_Soldier_AT_F {
backpack = "";
linkedItems[] = {"ItemMap","ItemCompass","ItemWatch"};
magazines[] = {};
weapons[] = {"Throw","Put"};
};

class I_Soldier_AA_F;
class a3a_unit_reb_aa : I_Soldier_AA_F {
backpack = "";
linkedItems[] = {"ItemMap","ItemCompass","ItemWatch"};
magazines[] = {};
weapons[] = {"Throw","Put"};
};

class I_G_officer_F : I_G_Soldier_base_F{};
class a3a_unit_reb_petros : I_G_officer_F {
backpack = "";
linkedItems[] = {"ItemMap","ItemCompass","ItemWatch"};
magazines[] = {};
weapons[] = {"Throw","Put"};
};

// Base side types

class B_G_Soldier_F : I_G_Soldier_base_F{};
class a3a_unit_west : B_G_Soldier_F {
backpack = "";
linkedItems[] = {"ItemMap","ItemCompass","ItemWatch"};
magazines[] = {};
weapons[] = {"Throw","Put"};
};

class O_G_Soldier_F : I_G_Soldier_base_F{};
class a3a_unit_east : O_G_Soldier_F {
backpack = "";
linkedItems[] = {"ItemMap","ItemCompass","ItemWatch"};
magazines[] = {};
weapons[] = {"Throw","Put"};
};

class C_Man_1;
class a3a_unit_civ : C_Man_1 {};

};
2 changes: 1 addition & 1 deletion A3A/addons/core/Includes/script_version.hpp
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#define MAJOR 3
#define MINOR 6
#define MINOR 7
#define PATCHLVL 0
#define BUILD 0
38 changes: 10 additions & 28 deletions A3A/addons/core/Stringtable.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2144,7 +2144,7 @@
<Chinesesimp>总部位置</Chinesesimp>
</Key>
<Key ID="STR_A3A_fn_base_rebasset_click_marker">
<Original>You must click near a map marker.</Original>
<Original>You must click near a rebel map marker.</Original>
<Italian>Devi cliccare vicino a un marcatore sulla mappa.</Italian>
<Spanish>Debe clicar cerca de un marcador de mapa.</Spanish>
<French>Vous devez cliquer à côté d'un marqueur de carte.</French>
Expand Down Expand Up @@ -2197,8 +2197,8 @@
<Turkish>Radyo Kulesi yeniden yapıldı.</Turkish>
<Chinesesimp>通信塔已被重建</Chinesesimp>
</Key>
<Key ID="STR_A3A_fn_base_rebasset_no">
<Original>You cannot rebuild that.</Original>
<Key ID="STR_A3A_fn_base_rebasset_no_nothing">
<Original>There is nothing to rebuild on this site.</Original>
<Italian>Non puoi ricostruire ciò.</Italian>
<Spanish>No puede reconstruir esto.</Spanish>
<French>Vous ne pouvez pas reconstruire ceci.</French>
Expand All @@ -2223,30 +2223,6 @@
<Turkish>Yeni ekipman yapmak için yeterinde paranız yok. 5.000 €'ya ihtiyacınız var.</Turkish>
<Chinesesimp>你当前的资金不足以重建任何资产. 你需要 5.000 €.</Chinesesimp>
</Key>
<Key ID="STR_A3A_fn_base_rebasset_no_notower">
<Original>That Outpost does not have a destroyed Radio Tower.</Original>
<Italian>Quell'Avamposto non ha un Torre Radio distrutta.</Italian>
<Spanish>Esa base no tiene una torre de radio destruida.</Spanish>
<French>Cet Avant-Poste n'a pas de Tour Radio détruite.</French>
<Korean>이 전초기지는 파괴된 송신탑을 가지고 있지 않습니다.</Korean>
<Russian>На этом аванпосте нет разрушенной радиовышки.</Russian>
<Czech>Toto stanoviště nemá zničenou Rádiovou Věž.</Czech>
<Portuguese>Este Posto Avançado não tem Torre de Rádio.</Portuguese>
<Turkish>O karakolun yıkılmış bir Radyo Kulesi yok.</Turkish>
<Chinesesimp>那个哨站没有被摧毁的通信塔</Chinesesimp>
</Key>
<Key ID="STR_A3A_fn_base_rebasset_no_owner">
<Original>You cannot rebuild a Radio Tower in an Outpost which does not belong to %1.</Original>
<Italian>Non puoi ricostruire una Torre Radio in un Avamposto che non appartiene a %1.</Italian>
<Spanish>No puede reconstruir una torre de radio en una base que no pertenezca a %1.</Spanish>
<French>Vous ne pouvez pas reconstruire une Tour Radio dans un Avant-Poste qui n'appartient pas à %1.</French>
<Korean>%1의 소유가 아닌 전초기지의 송신탑은 재건축할 수 없습니다.</Korean>
<Russian>Вы не можете перестроить радиовышку на аванпосте, который не принадлежит %1.</Russian>
<Czech>Nemůžeš znovu postavit Radiovou věž na základně, která nespadá pod %1.</Czech>
<Portuguese>Não podes reconstruir a Torre de Rádio num Posto Avançado que não pertence a %1.</Portuguese>
<Turkish>%1 'e ait olmayan bir Karakola Radyo Kulesi dikemezsiniz.</Turkish>
<Chinesesimp>你无法在一个不属于 %1 的哨站里重建通信塔</Chinesesimp>
</Key>
<Key ID="STR_A3A_fn_base_rebasset_title">
<Original>Rebuild Assets</Original>
<German>Anlagen wiederherstellen</German>
Expand Down Expand Up @@ -3444,7 +3420,7 @@
<Czech>Nemůžeš odpočívat když HQ je pod útokem.</Czech>
</Key>
<Key ID="STR_A3A_fn_dialogs_skiptime_no_radius">
<Original>All players must be in a 100m radius from HQ to be able to rest.</Original>
<Original>All players must be in a 100m radius from HQ to be able to rest.&lt;br/&gt;&lt;br/&gt;More than 10 players are absent from HQ currently.</Original>
<Italian>Tutti i giocatori devono trovarsi entro 100m dal QG per riposare.</Italian>
<Spanish>Todos los jugadores deben estar en un radio de 100m del CG para poder descansar.</Spanish>
<French>Tous les joueurs doivent se trouver dans un rayon de 100 m du QG pour pouvoir se reposer.</French>
Expand All @@ -3453,6 +3429,12 @@
<Polish>Wszyscy gracze muszą znajdować się w promieniu 100 m od siedziby głównej, aby móc odpocząć.</Polish>
<Czech>Všichni hráči musí být v okruhu 100M od HQ abys mohl pustit odpočinek.</Czech>
</Key>
<Key ID="STR_A3A_fn_dialogs_skiptime_no_radius_players">
<Original>All players must be in a 100m radius from HQ to be able to rest.&lt;br/&gt;The following players are not at HQ: %1, and %2.</Original>
</Key>
<Key ID="STR_A3A_fn_dialogs_skiptime_no_radius_singleplayer">
<Original>All players must be in a 100m radius from HQ to be able to rest.&lt;br/&gt;&lt;br/&gt;%1 is currently not at HQ.</Original>
</Key>
<Key ID="STR_A3A_fn_dialogs_skiptime_title">
<Original>Skip Time / Rest</Original>
<Italian>Salto Temporale / Riposa</Italian>
Expand Down
2 changes: 1 addition & 1 deletion A3A/addons/core/Templates/Templates.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -1287,7 +1287,7 @@ class Templates
name = "IFA SOVIET ARMY";
file = "IFA_AI_SOV";
shortName = "SOV";
lore = $STR_A3A_templates_lore_IFA_AI_SOV.
lore = $STR_A3A_templates_lore_IFA_AI_SOV;
};
class IFA_ALLIES : IFA_Base
{
Expand Down
5 changes: 2 additions & 3 deletions A3A/addons/core/Templates/Templates/CUP/CUP_AI_BW_Arid.sqf
Original file line number Diff line number Diff line change
Expand Up @@ -45,10 +45,9 @@
["vehiclesHelisLightAttack", ["CUP_B_UH1D_armed_GER_KSK_Des", "CUP_B_UH1D_gunship_GER_KSK_Des", "CUP_B_AW159_GER"]] call _fnc_saveToTemplate;
["vehiclesHelisAttack", ["CUP_B_AH1Z_Dynamic_USMC"]] call _fnc_saveToTemplate;

["vehiclesArtillery", ["CUP_B_M270_DPICM_USA","CUP_B_M270_HE_USA"]] call _fnc_saveToTemplate;
["vehiclesArtillery", ["CUP_B_M270_HE_USA"]] call _fnc_saveToTemplate;
["magazines", createHashMapFromArray [
["CUP_B_M270_HE_USA", ["CUP_12Rnd_MLRS_HE"]],
["CUP_B_M270_DPICM_USA", ["CUP_12Rnd_MLRS_DPICM"]]
["CUP_B_M270_HE_USA", ["CUP_12Rnd_MLRS_HE"]]
]] call _fnc_saveToTemplate;

["uavsAttack", ["CUP_B_USMC_DYN_MQ9"]] call _fnc_saveToTemplate;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,10 +45,9 @@
["vehiclesHelisLightAttack", ["CUP_B_UH1D_armed_GER_KSK", "CUP_B_UH1D_gunship_GER_KSK", "CUP_B_AW159_GER"]] call _fnc_saveToTemplate;
["vehiclesHelisAttack", ["CUP_B_AH1Z_Dynamic_USMC"]] call _fnc_saveToTemplate;

["vehiclesArtillery", ["CUP_B_M270_HE_USMC", "CUP_B_M270_DPICM_USMC"]] call _fnc_saveToTemplate;
["vehiclesArtillery", ["CUP_B_M270_HE_USMC"]] call _fnc_saveToTemplate;
["magazines", createHashMapFromArray [
["CUP_B_M270_HE_USMC", ["CUP_12Rnd_MLRS_HE"]],
["CUP_B_M270_DPICM_USMC", ["CUP_12Rnd_MLRS_DPICM"]]
["CUP_B_M270_HE_USMC", ["CUP_12Rnd_MLRS_HE"]]
]] call _fnc_saveToTemplate;

["uavsAttack", ["CUP_B_USMC_DYN_MQ9"]] call _fnc_saveToTemplate;
Expand Down
5 changes: 2 additions & 3 deletions A3A/addons/core/Templates/Templates/CUP/CUP_AI_HIL.sqf
Original file line number Diff line number Diff line change
Expand Up @@ -45,10 +45,9 @@
["vehiclesHelisLightAttack", ["CUP_B_AW159_HIL","CUP_B_412_Military_Armed_AT_HIL","CUP_B_412_Military_Armed_HIL","CUP_B_412_dynamicLoadout_HIL"]] call _fnc_saveToTemplate;
["vehiclesHelisAttack", ["CUP_B_AH1Z_Dynamic_USMC"]] call _fnc_saveToTemplate;

["vehiclesArtillery", ["CUP_B_M270_HE_HIL", "CUP_B_M270_DPICM_HIL"]] call _fnc_saveToTemplate;
["vehiclesArtillery", ["CUP_B_M270_HE_HIL"]] call _fnc_saveToTemplate;
["magazines", createHashMapFromArray [
["CUP_B_M270_HE_HIL", ["CUP_12Rnd_MLRS_HE"]],
["CUP_B_M270_DPICM_HIL", ["CUP_12Rnd_MLRS_DPICM"]]
["CUP_B_M270_HE_HIL", ["CUP_12Rnd_MLRS_HE"]]
]] call _fnc_saveToTemplate;

["uavsAttack", ["CUP_B_USMC_DYN_MQ9"]] call _fnc_saveToTemplate;
Expand Down
4 changes: 2 additions & 2 deletions A3A/addons/core/Templates/Templates/CUP/CUP_AI_ION_Arctic.sqf
Original file line number Diff line number Diff line change
Expand Up @@ -45,8 +45,8 @@
["vehiclesHelisLightAttack", ["CUP_I_412_dynamicLoadout_PMC", "CUP_I_412_Military_Armed_AT_PMC"]] call _fnc_saveToTemplate;
["vehiclesHelisAttack", ["CUP_I_Mi24_Mk3_ION"]] call _fnc_saveToTemplate;

["vehiclesArtillery", ["CUP_B_M270_DPICM_BAF_DES"]] call _fnc_saveToTemplate;
["magazines", createHashMapFromArray [["CUP_B_M270_DPICM_BAF_DES", ["CUP_12Rnd_MLRS_DPICM"]]]] call _fnc_saveToTemplate; //element format: [Vehicle class, [Magazines]]
["vehiclesArtillery", ["CUP_B_M270_HE_BAF"]] call _fnc_saveToTemplate;
["magazines", createHashMapFromArray [["CUP_B_M270_HE_BAF", ["CUP_12Rnd_MLRS_HE"]]]] call _fnc_saveToTemplate; //element format: [Vehicle class, [Magazines]]

["uavsAttack", ["CUP_B_USMC_DYN_MQ9"]] call _fnc_saveToTemplate;
["uavsPortable", ["B_UAV_01_F"]] call _fnc_saveToTemplate;
Expand Down
4 changes: 2 additions & 2 deletions A3A/addons/core/Templates/Templates/CUP/CUP_AI_ION_Arid.sqf
Original file line number Diff line number Diff line change
Expand Up @@ -45,8 +45,8 @@
["vehiclesHelisLightAttack", ["CUP_I_412_dynamicLoadout_PMC", "CUP_I_412_Military_Armed_AT_PMC"]] call _fnc_saveToTemplate;
["vehiclesHelisAttack", ["CUP_I_Mi24_Mk3_ION"]] call _fnc_saveToTemplate;

["vehiclesArtillery", ["CUP_B_M270_DPICM_BAF_DES"]] call _fnc_saveToTemplate;
["magazines", createHashMapFromArray [["CUP_B_M270_DPICM_BAF_DES", ["CUP_12Rnd_MLRS_DPICM"]]]] call _fnc_saveToTemplate; //element format: [Vehicle class, [Magazines]]
["vehiclesArtillery", ["CUP_B_M270_HE_BAF_DES"]] call _fnc_saveToTemplate;
["magazines", createHashMapFromArray [["CUP_B_M270_HE_BAF_DES", ["CUP_12Rnd_MLRS_HE"]]]] call _fnc_saveToTemplate; //element format: [Vehicle class, [Magazines]]

["uavsAttack", ["CUP_B_USMC_DYN_MQ9"]] call _fnc_saveToTemplate;
["uavsPortable", ["B_UAV_01_F"]] call _fnc_saveToTemplate;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,10 +45,9 @@
["vehiclesHelisLightAttack", ["CUP_B_MH60L_DAP_4x_USN", "CUP_B_UH1Y_Gunship_Dynamic_USMC"]] call _fnc_saveToTemplate;
["vehiclesHelisAttack", ["CUP_B_AH1Z_Dynamic_USMC"]] call _fnc_saveToTemplate;

["vehiclesArtillery", ["CUP_B_M270_DPICM_USA","CUP_B_M270_HE_USA"]] call _fnc_saveToTemplate;
["vehiclesArtillery", ["CUP_B_M270_HE_USA"]] call _fnc_saveToTemplate;
["magazines", createHashMapFromArray [
["CUP_B_M270_HE_USA", ["CUP_12Rnd_MLRS_HE"]],
["CUP_B_M270_DPICM_USA", ["CUP_12Rnd_MLRS_DPICM"]]
["CUP_B_M270_HE_USA", ["CUP_12Rnd_MLRS_HE"]]
]] call _fnc_saveToTemplate;

["uavsAttack", ["CUP_B_USMC_DYN_MQ9"]] call _fnc_saveToTemplate;
Expand Down
Loading

0 comments on commit 858b653

Please sign in to comment.