Skip to content

Commit 858b653

Browse files
authored
Merge pull request #3382 from official-antistasi-community/unstable
unstable to master for 3.7 release
2 parents 201e925 + 0d3a7dc commit 858b653

File tree

106 files changed

+46150
-430
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

106 files changed

+46150
-430
lines changed

A3A/addons/config_fixes/CUP/CfgVehicles.hpp

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,37 @@
22

33
class CfgVehicles
44
{
5-
#include "sfp_air.hpp"
5+
#include "sfp_air.hpp"
6+
7+
// Nose-fall tweaks to make planes turn at a semi-decent rate when flown by AI
8+
class Plane_Base_F;
9+
class CUP_A10_Base : Plane_Base_F
10+
{
11+
draconicTorqueXCoef = 2;
12+
};
13+
class CUP_L39_base : Plane_base_F
14+
{
15+
draconicTorqueXCoef = 2;
16+
};
17+
18+
// The faster planes benefit slightly from more torque, so we use the array form
19+
class Plane;
20+
class CUP_AV8B_Base : Plane
21+
{
22+
draconicTorqueXCoef[] = {2,3,4,5,6,7,8,9,10,10.1,10.2};
23+
};
24+
class CUP_Su25_base : Plane
25+
{
26+
draconicTorqueXCoef[] = {2,3,4,5,6,7,8,9,10,10.1,10.2};
27+
//speeds in m/s: {0, 37.5, 75, 112.5, 150, 187.5, 225, 262.5, 300, 337.5, 375m/s}
28+
};
29+
class CUP_F35B_base : Plane
30+
{
31+
draconicTorqueXCoef[] = {2,3.5,5,6.5,8,9,10,11,12,12.1,12.2};
32+
//speeds in m/s: {0, 58.3, 117, 175, 233, 292, 350, 408, 467, 525, 583m/s}
33+
};
34+
class CUP_SU34_BASE : Plane
35+
{
36+
draconicTorqueXCoef[] = {2,3.5,5,6.5,8,9,10,11,12,12.1,12.2};
37+
};
638
};

A3A/addons/config_fixes/IFA/CfgVehicles.hpp

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,4 +62,26 @@ class CfgVehicles
6262
class LIB_Armored_Target_Dummy : Tank {
6363
delete EventHandlers;
6464
};
65+
66+
// Nose-fall tweaks to make planes turn at a semi-decent rate when flown by AI
67+
// Note: LIB_Ju87 not adjusted because planes with low maxSpeed use different AI logic
68+
class LIB_GER_Plane_base;
69+
class LIB_FW190F8 : LIB_GER_Plane_base
70+
{
71+
draconicTorqueXCoef = 2;
72+
};
73+
class LIB_SU_Plane_base;
74+
class LIB_P39 : LIB_SU_Plane_base
75+
{
76+
draconicTorqueXCoef = 2;
77+
};
78+
class LIB_Pe2 : LIB_SU_Plane_base
79+
{
80+
draconicTorqueXCoef = 2;
81+
};
82+
class LIB_US_Plane_base;
83+
class LIB_P47 : LIB_US_Plane_base
84+
{
85+
draconicTorqueXCoef = 2;
86+
};
6587
};

A3A/addons/core/CfgFunctions.hpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -733,6 +733,7 @@ class CfgFunctions
733733
class secondsToTimeSpan {};
734734
class systemTime_format_S {};
735735
class timeSpan_format {};
736+
class systemTimeDurationToTimeSpan {};
736737
};
737738

738739
class UI {

A3A/addons/core/CfgVehicles.hpp

Lines changed: 150 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,150 @@
1+
class CfgVehicles
2+
{
3+
// Unbreak the vanilla inheritance chain
4+
class Man;
5+
class CAManBase : Man {
6+
class EventHandlers;
7+
};
8+
class SoldierGB : CAManBase {
9+
class EventHandlers : EventHandlers {};
10+
};
11+
class I_G_Soldier_base_F : SoldierGB {
12+
class EventHandlers : EventHandlers
13+
{
14+
init = "if (local (_this select 0)) then {[(_this select 0), [], []] call BIS_fnc_unitHeadgear;};";
15+
//init line to perserve the behaviour BI intended for the I_G_Soldier_base_F classs
16+
};
17+
};
18+
19+
// Rebel AI unit types
20+
21+
//don't need to change this one?
22+
class I_G_Survivor_F : I_G_Soldier_base_F{};
23+
class a3a_unit_reb_unarmed : I_G_Survivor_F {};
24+
25+
class I_G_Soldier_F : I_G_Soldier_base_F{};
26+
class a3a_unit_reb : I_G_Soldier_F {
27+
backpack = "";
28+
linkedItems[] = {"ItemMap","ItemCompass","ItemWatch"};
29+
magazines[] = {};
30+
weapons[] = {"Throw","Put"};
31+
};
32+
33+
class I_G_medic_F : I_G_Soldier_base_F{};
34+
class a3a_unit_reb_medic : I_G_medic_F {
35+
backpack = "";
36+
linkedItems[] = {"ItemMap","ItemCompass","ItemWatch"};
37+
magazines[] = {};
38+
weapons[] = {"Throw","Put"};
39+
};
40+
41+
class I_G_Sharpshooter_F : I_G_Soldier_base_F{};
42+
class a3a_unit_reb_sniper : I_G_Sharpshooter_F {
43+
backpack = "";
44+
linkedItems[] = {"ItemMap","ItemCompass","ItemWatch"};
45+
magazines[] = {};
46+
weapons[] = {"Throw","Put"};
47+
};
48+
49+
class I_G_Soldier_M_F : I_G_Soldier_base_F{};
50+
class a3a_unit_reb_marksman : I_G_Soldier_M_F {
51+
backpack = "";
52+
linkedItems[] = {"ItemMap","ItemCompass","ItemWatch"};
53+
magazines[] = {};
54+
weapons[] = {"Throw","Put"};
55+
};
56+
57+
class I_G_Soldier_LAT_F : I_G_Soldier_base_F{};
58+
class a3a_unit_reb_lat : I_G_Soldier_LAT_F {
59+
backpack = "";
60+
linkedItems[] = {"ItemMap","ItemCompass","ItemWatch"};
61+
magazines[] = {};
62+
weapons[] = {"Throw","Put"};
63+
};
64+
65+
class I_G_Soldier_AR_F : I_G_Soldier_base_F{};
66+
class a3a_unit_reb_mg : I_G_Soldier_AR_F {
67+
backpack = "";
68+
linkedItems[] = {"ItemMap","ItemCompass","ItemWatch"};
69+
magazines[] = {};
70+
weapons[] = {"Throw","Put"};
71+
};
72+
73+
class I_G_Soldier_exp_F : I_G_Soldier_base_F{};
74+
class a3a_unit_reb_exp : I_G_Soldier_exp_F {
75+
backpack = "";
76+
linkedItems[] = {"ItemMap","ItemCompass","ItemWatch"};
77+
magazines[] = {};
78+
weapons[] = {"Throw","Put"};
79+
};
80+
81+
class I_G_Soldier_GL_F : I_G_Soldier_base_F{};
82+
class a3a_unit_reb_gl : I_G_Soldier_GL_F {
83+
backpack = "";
84+
linkedItems[] = {"ItemMap","ItemCompass","ItemWatch"};
85+
magazines[] = {};
86+
weapons[] = {"Throw","Put"};
87+
};
88+
89+
class I_G_Soldier_SL_F : I_G_Soldier_base_F{};
90+
class a3a_unit_reb_sl : I_G_Soldier_SL_F {
91+
backpack = "";
92+
linkedItems[] = {"ItemMap","ItemCompass","ItemWatch"};
93+
magazines[] = {};
94+
weapons[] = {"Throw","Put"};
95+
};
96+
97+
class I_G_engineer_F : I_G_Soldier_base_F{};
98+
class a3a_unit_reb_eng : I_G_engineer_F {
99+
backpack = "";
100+
linkedItems[] = {"ItemMap","ItemCompass","ItemWatch"};
101+
magazines[] = {};
102+
weapons[] = {"Throw","Put"};
103+
};
104+
105+
class I_Soldier_AT_F;
106+
class a3a_unit_reb_at : I_Soldier_AT_F {
107+
backpack = "";
108+
linkedItems[] = {"ItemMap","ItemCompass","ItemWatch"};
109+
magazines[] = {};
110+
weapons[] = {"Throw","Put"};
111+
};
112+
113+
class I_Soldier_AA_F;
114+
class a3a_unit_reb_aa : I_Soldier_AA_F {
115+
backpack = "";
116+
linkedItems[] = {"ItemMap","ItemCompass","ItemWatch"};
117+
magazines[] = {};
118+
weapons[] = {"Throw","Put"};
119+
};
120+
121+
class I_G_officer_F : I_G_Soldier_base_F{};
122+
class a3a_unit_reb_petros : I_G_officer_F {
123+
backpack = "";
124+
linkedItems[] = {"ItemMap","ItemCompass","ItemWatch"};
125+
magazines[] = {};
126+
weapons[] = {"Throw","Put"};
127+
};
128+
129+
// Base side types
130+
131+
class B_G_Soldier_F : I_G_Soldier_base_F{};
132+
class a3a_unit_west : B_G_Soldier_F {
133+
backpack = "";
134+
linkedItems[] = {"ItemMap","ItemCompass","ItemWatch"};
135+
magazines[] = {};
136+
weapons[] = {"Throw","Put"};
137+
};
138+
139+
class O_G_Soldier_F : I_G_Soldier_base_F{};
140+
class a3a_unit_east : O_G_Soldier_F {
141+
backpack = "";
142+
linkedItems[] = {"ItemMap","ItemCompass","ItemWatch"};
143+
magazines[] = {};
144+
weapons[] = {"Throw","Put"};
145+
};
146+
147+
class C_Man_1;
148+
class a3a_unit_civ : C_Man_1 {};
149+
150+
};
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
#define MAJOR 3
2-
#define MINOR 6
2+
#define MINOR 7
33
#define PATCHLVL 0
44
#define BUILD 0

A3A/addons/core/Stringtable.xml

Lines changed: 10 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -2144,7 +2144,7 @@
21442144
<Chinesesimp>总部位置</Chinesesimp>
21452145
</Key>
21462146
<Key ID="STR_A3A_fn_base_rebasset_click_marker">
2147-
<Original>You must click near a map marker.</Original>
2147+
<Original>You must click near a rebel map marker.</Original>
21482148
<Italian>Devi cliccare vicino a un marcatore sulla mappa.</Italian>
21492149
<Spanish>Debe clicar cerca de un marcador de mapa.</Spanish>
21502150
<French>Vous devez cliquer à côté d'un marqueur de carte.</French>
@@ -2197,8 +2197,8 @@
21972197
<Turkish>Radyo Kulesi yeniden yapıldı.</Turkish>
21982198
<Chinesesimp>通信塔已被重建</Chinesesimp>
21992199
</Key>
2200-
<Key ID="STR_A3A_fn_base_rebasset_no">
2201-
<Original>You cannot rebuild that.</Original>
2200+
<Key ID="STR_A3A_fn_base_rebasset_no_nothing">
2201+
<Original>There is nothing to rebuild on this site.</Original>
22022202
<Italian>Non puoi ricostruire ciò.</Italian>
22032203
<Spanish>No puede reconstruir esto.</Spanish>
22042204
<French>Vous ne pouvez pas reconstruire ceci.</French>
@@ -2223,30 +2223,6 @@
22232223
<Turkish>Yeni ekipman yapmak için yeterinde paranız yok. 5.000 €'ya ihtiyacınız var.</Turkish>
22242224
<Chinesesimp>你当前的资金不足以重建任何资产. 你需要 5.000 €.</Chinesesimp>
22252225
</Key>
2226-
<Key ID="STR_A3A_fn_base_rebasset_no_notower">
2227-
<Original>That Outpost does not have a destroyed Radio Tower.</Original>
2228-
<Italian>Quell'Avamposto non ha un Torre Radio distrutta.</Italian>
2229-
<Spanish>Esa base no tiene una torre de radio destruida.</Spanish>
2230-
<French>Cet Avant-Poste n'a pas de Tour Radio détruite.</French>
2231-
<Korean>이 전초기지는 파괴된 송신탑을 가지고 있지 않습니다.</Korean>
2232-
<Russian>На этом аванпосте нет разрушенной радиовышки.</Russian>
2233-
<Czech>Toto stanoviště nemá zničenou Rádiovou Věž.</Czech>
2234-
<Portuguese>Este Posto Avançado não tem Torre de Rádio.</Portuguese>
2235-
<Turkish>O karakolun yıkılmış bir Radyo Kulesi yok.</Turkish>
2236-
<Chinesesimp>那个哨站没有被摧毁的通信塔</Chinesesimp>
2237-
</Key>
2238-
<Key ID="STR_A3A_fn_base_rebasset_no_owner">
2239-
<Original>You cannot rebuild a Radio Tower in an Outpost which does not belong to %1.</Original>
2240-
<Italian>Non puoi ricostruire una Torre Radio in un Avamposto che non appartiene a %1.</Italian>
2241-
<Spanish>No puede reconstruir una torre de radio en una base que no pertenezca a %1.</Spanish>
2242-
<French>Vous ne pouvez pas reconstruire une Tour Radio dans un Avant-Poste qui n'appartient pas à %1.</French>
2243-
<Korean>%1의 소유가 아닌 전초기지의 송신탑은 재건축할 수 없습니다.</Korean>
2244-
<Russian>Вы не можете перестроить радиовышку на аванпосте, который не принадлежит %1.</Russian>
2245-
<Czech>Nemůžeš znovu postavit Radiovou věž na základně, která nespadá pod %1.</Czech>
2246-
<Portuguese>Não podes reconstruir a Torre de Rádio num Posto Avançado que não pertence a %1.</Portuguese>
2247-
<Turkish>%1 'e ait olmayan bir Karakola Radyo Kulesi dikemezsiniz.</Turkish>
2248-
<Chinesesimp>你无法在一个不属于 %1 的哨站里重建通信塔</Chinesesimp>
2249-
</Key>
22502226
<Key ID="STR_A3A_fn_base_rebasset_title">
22512227
<Original>Rebuild Assets</Original>
22522228
<German>Anlagen wiederherstellen</German>
@@ -3444,7 +3420,7 @@
34443420
<Czech>Nemůžeš odpočívat když HQ je pod útokem.</Czech>
34453421
</Key>
34463422
<Key ID="STR_A3A_fn_dialogs_skiptime_no_radius">
3447-
<Original>All players must be in a 100m radius from HQ to be able to rest.</Original>
3423+
<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>
34483424
<Italian>Tutti i giocatori devono trovarsi entro 100m dal QG per riposare.</Italian>
34493425
<Spanish>Todos los jugadores deben estar en un radio de 100m del CG para poder descansar.</Spanish>
34503426
<French>Tous les joueurs doivent se trouver dans un rayon de 100 m du QG pour pouvoir se reposer.</French>
@@ -3453,6 +3429,12 @@
34533429
<Polish>Wszyscy gracze muszą znajdować się w promieniu 100 m od siedziby głównej, aby móc odpocząć.</Polish>
34543430
<Czech>Všichni hráči musí být v okruhu 100M od HQ abys mohl pustit odpočinek.</Czech>
34553431
</Key>
3432+
<Key ID="STR_A3A_fn_dialogs_skiptime_no_radius_players">
3433+
<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>
3434+
</Key>
3435+
<Key ID="STR_A3A_fn_dialogs_skiptime_no_radius_singleplayer">
3436+
<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>
3437+
</Key>
34563438
<Key ID="STR_A3A_fn_dialogs_skiptime_title">
34573439
<Original>Skip Time / Rest</Original>
34583440
<Italian>Salto Temporale / Riposa</Italian>

A3A/addons/core/Templates/Templates.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1287,7 +1287,7 @@ class Templates
12871287
name = "IFA SOVIET ARMY";
12881288
file = "IFA_AI_SOV";
12891289
shortName = "SOV";
1290-
lore = $STR_A3A_templates_lore_IFA_AI_SOV.
1290+
lore = $STR_A3A_templates_lore_IFA_AI_SOV;
12911291
};
12921292
class IFA_ALLIES : IFA_Base
12931293
{

A3A/addons/core/Templates/Templates/CUP/CUP_AI_BW_Arid.sqf

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,10 +45,9 @@
4545
["vehiclesHelisLightAttack", ["CUP_B_UH1D_armed_GER_KSK_Des", "CUP_B_UH1D_gunship_GER_KSK_Des", "CUP_B_AW159_GER"]] call _fnc_saveToTemplate;
4646
["vehiclesHelisAttack", ["CUP_B_AH1Z_Dynamic_USMC"]] call _fnc_saveToTemplate;
4747

48-
["vehiclesArtillery", ["CUP_B_M270_DPICM_USA","CUP_B_M270_HE_USA"]] call _fnc_saveToTemplate;
48+
["vehiclesArtillery", ["CUP_B_M270_HE_USA"]] call _fnc_saveToTemplate;
4949
["magazines", createHashMapFromArray [
50-
["CUP_B_M270_HE_USA", ["CUP_12Rnd_MLRS_HE"]],
51-
["CUP_B_M270_DPICM_USA", ["CUP_12Rnd_MLRS_DPICM"]]
50+
["CUP_B_M270_HE_USA", ["CUP_12Rnd_MLRS_HE"]]
5251
]] call _fnc_saveToTemplate;
5352

5453
["uavsAttack", ["CUP_B_USMC_DYN_MQ9"]] call _fnc_saveToTemplate;

A3A/addons/core/Templates/Templates/CUP/CUP_AI_BW_Temperate.sqf

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,10 +45,9 @@
4545
["vehiclesHelisLightAttack", ["CUP_B_UH1D_armed_GER_KSK", "CUP_B_UH1D_gunship_GER_KSK", "CUP_B_AW159_GER"]] call _fnc_saveToTemplate;
4646
["vehiclesHelisAttack", ["CUP_B_AH1Z_Dynamic_USMC"]] call _fnc_saveToTemplate;
4747

48-
["vehiclesArtillery", ["CUP_B_M270_HE_USMC", "CUP_B_M270_DPICM_USMC"]] call _fnc_saveToTemplate;
48+
["vehiclesArtillery", ["CUP_B_M270_HE_USMC"]] call _fnc_saveToTemplate;
4949
["magazines", createHashMapFromArray [
50-
["CUP_B_M270_HE_USMC", ["CUP_12Rnd_MLRS_HE"]],
51-
["CUP_B_M270_DPICM_USMC", ["CUP_12Rnd_MLRS_DPICM"]]
50+
["CUP_B_M270_HE_USMC", ["CUP_12Rnd_MLRS_HE"]]
5251
]] call _fnc_saveToTemplate;
5352

5453
["uavsAttack", ["CUP_B_USMC_DYN_MQ9"]] call _fnc_saveToTemplate;

A3A/addons/core/Templates/Templates/CUP/CUP_AI_HIL.sqf

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,10 +45,9 @@
4545
["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;
4646
["vehiclesHelisAttack", ["CUP_B_AH1Z_Dynamic_USMC"]] call _fnc_saveToTemplate;
4747

48-
["vehiclesArtillery", ["CUP_B_M270_HE_HIL", "CUP_B_M270_DPICM_HIL"]] call _fnc_saveToTemplate;
48+
["vehiclesArtillery", ["CUP_B_M270_HE_HIL"]] call _fnc_saveToTemplate;
4949
["magazines", createHashMapFromArray [
50-
["CUP_B_M270_HE_HIL", ["CUP_12Rnd_MLRS_HE"]],
51-
["CUP_B_M270_DPICM_HIL", ["CUP_12Rnd_MLRS_DPICM"]]
50+
["CUP_B_M270_HE_HIL", ["CUP_12Rnd_MLRS_HE"]]
5251
]] call _fnc_saveToTemplate;
5352

5453
["uavsAttack", ["CUP_B_USMC_DYN_MQ9"]] call _fnc_saveToTemplate;

0 commit comments

Comments
 (0)