diff --git a/A3A/addons/core/Includes/script_version.hpp b/A3A/addons/core/Includes/script_version.hpp
index 7824f8201f..d0676f3710 100644
--- a/A3A/addons/core/Includes/script_version.hpp
+++ b/A3A/addons/core/Includes/script_version.hpp
@@ -1,4 +1,4 @@
#define MAJOR 11
#define MINOR 2
-#define PATCHLVL 0
+#define PATCHLVL 1
#define BUILD 0
\ No newline at end of file
diff --git a/A3A/addons/core/Params.hpp b/A3A/addons/core/Params.hpp
index e17ab50d71..a6186031ab 100644
--- a/A3A/addons/core/Params.hpp
+++ b/A3A/addons/core/Params.hpp
@@ -38,8 +38,8 @@ class Params
class limitedFT
{
title = $STR_params_allowFT;
- values[] = {0,1,2};
- texts[] = {$STR_params_allowFT_0, $STR_params_allowFT_1,$STR_params_civ_traffic_none};
+ values[] = {0,1,2,3};
+ texts[] = {$STR_params_allowFT_0, $STR_params_allowFT_1, $STR_params_allowFT_2, $STR_params_civ_traffic_none};
default = 0;
};
class civTraffic
@@ -300,7 +300,7 @@ class Params
title = $STR_A3AU_sway_enabled;
values[] = {0,25,50,75,100};
texts[] = {"0%","25%","50%","75%","100%"};
- default = 1;
+ default = 100;
};
class Spacer60
diff --git a/A3A/addons/core/Stringtable.xml b/A3A/addons/core/Stringtable.xml
index 1b43954848..73da795c30 100644
--- a/A3A/addons/core/Stringtable.xml
+++ b/A3A/addons/core/Stringtable.xml
@@ -2724,8 +2724,8 @@
Выбрана полная победа<br/>Чтобы выполнить это условие победы, захватите все аванпосты, ресурсы, фабрики, морские порты, военные базы и аэропорты и поддерживайте большую поддержку населения, чем ваши враги.
- Economic Victory Selected<br/>To complete this win condition, Gain more than 2 million units of currency.
- Экономическая победа выбрана<br/>Чтобы выполнить это условие победы, получите более 2 миллионов единиц валюты.
+ Economic Victory Selected<br/>To complete this win condition, Gain more than a set amount of currency.<br/>Calculated as: amount of resources on the map * 100,000<br/>Needed amount on current map : %1%2
+ Экономическая победа выбрана<br/>Чтобы выполнить это условие победы, получите больше установленной суммы валюты.<br/>Рассчитывается как: количество ресурсов на карте * 100,000.<br/>Необходимая сумма на текущей карте : %1%2
Logistical Victory Selected<br/>To complete this win condition, capture all seaports, military bases, and airports, and maintain more population support than your enemies.
diff --git a/A3A/addons/core/Templates/Templates/CUP/CUP_AI_BAF_Arid.sqf b/A3A/addons/core/Templates/Templates/CUP/CUP_AI_BAF_Arid.sqf
index 6213321d0c..bb4b012c95 100644
--- a/A3A/addons/core/Templates/Templates/CUP/CUP_AI_BAF_Arid.sqf
+++ b/A3A/addons/core/Templates/Templates/CUP/CUP_AI_BAF_Arid.sqf
@@ -55,9 +55,9 @@
["uavsAttack", ["CUP_B_USMC_DYN_MQ9"]] call _fnc_saveToTemplate;
["uavsPortable", ["B_UAV_01_F"]] call _fnc_saveToTemplate;
-["vehiclesMilitiaLightArmed", ["CUP_B_LR_Transport_GB_D"]] call _fnc_saveToTemplate;
+["vehiclesMilitiaLightArmed", ["CUP_B_LR_MG_GB_D"]] call _fnc_saveToTemplate;
["vehiclesMilitiaTrucks", ["CUP_B_MTVR_USA"]] call _fnc_saveToTemplate;
-["vehiclesMilitiaCars", ["CUP_B_LR_MG_GB_D"]] call _fnc_saveToTemplate;
+["vehiclesMilitiaCars", ["CUP_B_LR_Transport_GB_D"]] call _fnc_saveToTemplate;
["vehiclesMilitiaAPCs", ["CUP_B_Mastiff_HMG_GB_D", "CUP_B_FV432_Bulldog_GB_D_RWS"]] call _fnc_saveToTemplate;
["vehiclesPolice", ["B_GEN_Offroad_01_gen_F"]] call _fnc_saveToTemplate;
diff --git a/A3A/addons/core/Templates/Templates/CUP/CUP_AI_BAF_Temperate.sqf b/A3A/addons/core/Templates/Templates/CUP/CUP_AI_BAF_Temperate.sqf
index 4f7d2c9c7f..528d315b3f 100644
--- a/A3A/addons/core/Templates/Templates/CUP/CUP_AI_BAF_Temperate.sqf
+++ b/A3A/addons/core/Templates/Templates/CUP/CUP_AI_BAF_Temperate.sqf
@@ -59,6 +59,7 @@
["vehiclesMilitiaTrucks", ["CUP_B_MTVR_USA"]] call _fnc_saveToTemplate;
["vehiclesMilitiaCars", ["CUP_B_LR_Transport_GB_W"]] call _fnc_saveToTemplate;
["vehiclesMilitiaAPCs", ["CUP_B_Mastiff_GMG_GB_W", "CUP_B_FV432_Bulldog_GB_W_RWS"]] call _fnc_saveToTemplate;
+
["vehiclesPolice", ["B_GEN_Offroad_01_gen_F"]] call _fnc_saveToTemplate;
["staticMGs", ["CUP_B_L111A1_BAF_DDPM"]] call _fnc_saveToTemplate;
diff --git a/A3A/addons/core/functions/Ammunition/fn_equipmentClassToCategories.sqf b/A3A/addons/core/functions/Ammunition/fn_equipmentClassToCategories.sqf
index b173a63d31..0528e566e1 100644
--- a/A3A/addons/core/functions/Ammunition/fn_equipmentClassToCategories.sqf
+++ b/A3A/addons/core/functions/Ammunition/fn_equipmentClassToCategories.sqf
@@ -127,7 +127,7 @@ call {
};
if (_basecategory isEqualTo "Headgear") exitWith {
- if (getNumber (configfile >> "CfgWeapons" >> _className >> "ItemInfo" >> "HitpointsProtectionInfo" >> "Head" >> "armor") > 0) then {
+ if (getNumber (configfile >> "CfgWeapons" >> _className >> "ItemInfo" >> "HitpointsProtectionInfo" >> "Head" >> "armor") > 5) then {
_categories pushBack "ArmoredHeadgear";
};
};
@@ -170,8 +170,8 @@ call {
if (getNumber (_config >> "rhs_disposable") == 1 or _mainmag == "CBA_fakeLauncherMagazine") then {
_categories pushBack "Disposable";
if (getNumber (_config >> "scope") == 1) exitWith { _categories set [0, "UsedLaunchers"] };
- if (_mainmag == "CBA_fakeLauncherMagazine" and !isNil "cba_disposable_normalLaunchers") then {
- _mainmag = (cba_disposable_normalLaunchers getVariable _classname) # 1; // format is [realLauncher, magazine]
+ if (_mainmag == "CBA_fakeLauncherMagazine" and !isNil "cba_disposable_normalLaunchers" and {typeName cba_disposable_normalLaunchers == "HASHMAP"}) then {
+ _mainmag = (cba_disposable_normalLaunchers get _classname) # 1; // format is [realLauncher, magazine]
};
};
if (_categories#0 == "UsedLaunchers") exitWith {};
diff --git a/A3A/addons/core/functions/Base/fn_checkWinCondition.sqf b/A3A/addons/core/functions/Base/fn_checkWinCondition.sqf
index 6fbf81b31e..5aae154d47 100644
--- a/A3A/addons/core/functions/Base/fn_checkWinCondition.sqf
+++ b/A3A/addons/core/functions/Base/fn_checkWinCondition.sqf
@@ -7,10 +7,12 @@ private _victoryZones = airportsX + milbases + outposts + resourcesX + factories
private _victoryZonesLogistical = airportsX + milbases + seaports;
private _popTotal = 0;
private _popKilled = 0;
-private _missingMoney = ((2000000 - _factionMoney) call BIS_fnc_numberText) splitString " " joinString ",";
private _popReb = 0;
private _popGov = 0;
private _popMajority = 0;
+private _resourcesCount = count (resourcesX);
+private _economicCalculation = (_resourcesCount * 100000);
+private _missingMoney = ((_economicCalculation - _factionMoney) call BIS_fnc_numberText) splitString " " joinString ",";
{
private _city = _x;
@@ -71,7 +73,7 @@ switch (victoryCondition) do
//Economic Victory
case 2:
{
- if (_factionMoney >= 2000000) then {
+ if (_factionMoney >= _economicCalculation) then {
isNil {["ended", true] call A3A_fnc_writebackSaveVar};
["economicVictory",true,true,true,true] remoteExec ["BIS_fnc_endMission"];
} else {
diff --git a/A3A/addons/core/functions/Dialogs/fn_fastTravelRadio.sqf b/A3A/addons/core/functions/Dialogs/fn_fastTravelRadio.sqf
index 768e8ec72e..269a81ae03 100644
--- a/A3A/addons/core/functions/Dialogs/fn_fastTravelRadio.sqf
+++ b/A3A/addons/core/functions/Dialogs/fn_fastTravelRadio.sqf
@@ -2,7 +2,7 @@ private _markersX = markersX + [respawnTeamPlayer];
// private _titleStr = localize "STR_A3A_fn_dialogs_ftradio_title";
private _titleStr = "Fast Travel";
-if (limitedFT == 2) exitWith {[_titleStr, "Fast travel is disabled for this server."] call A3A_fnc_customHint}; // [_titleStr, localize "STR_A3A_fn_dialogs_ftradio_no_param"]
+if (limitedFT == 3) exitWith {[_titleStr, "Fast travel is disabled for this server."] call A3A_fnc_customHint}; // [_titleStr, localize "STR_A3A_fn_dialogs_ftradio_no_param"]
// This needs a proper stringtable ^
if (!isNil "traderMarker") then {
@@ -26,7 +26,7 @@ if (count hcSelected player == 1) then {
_groupX = group player;
};
private _checkForPlayer = false;
-if (!_esHC and {(limitedFT == 1)}) then {_checkForPlayer = true};
+if (!_esHC and {(limitedFT == 1 or limitedFT == 2)}) then {_checkForPlayer = true};
private _boss = leader _groupX;
if (_boss != player and {!_esHC}) then {_groupX = player};
@@ -98,12 +98,24 @@ if (_positionTel isEqualTo []) exitWith {
};
private _base = [_markersX, _positionTel] call BIS_Fnc_nearestPosition;
-
private _rebelMarkers = if (!isNil "traderMarker") then {["Synd_HQ", traderMarker]} else {["Synd_HQ"]};
-if (_checkForPlayer && {!(_base in (_rebelMarkers + airportsX + milbases))}) exitWith {
+private _isValidTargetLocation = (_base in (_rebelMarkers + airportsX + milbases));
+
+if (_checkForPlayer && limitedFT == 1 && !_isValidTargetLocation) exitWith {
[localize "STR_A3A_Dialogs_fast_travel_header", localize "STR_A3A_Dialogs_fast_travel_limited"] call SCRT_fnc_misc_deniedHint;
};
+private _withinBoundaries = true;
+if (limitedFT == 2) then {
+ private _rebelLocations = (_rebelMarkers + airportsX + milbases) select { sidesX getVariable _x == teamPlayer };
+ private _nearestPosition = [_rebelLocations, player] call BIS_Fnc_nearestPosition;
+ private _distanceToNearest = player distance getMarkerPos _nearestPosition;
+ _withinBoundaries = _distanceToNearest < 50;
+};
+if (_checkForPlayer && limitedFT == 2 && (!_isValidTargetLocation or !_withinBoundaries)) exitWith {
+ [localize "STR_A3A_Dialogs_fast_travel_header", localize "STR_A3A_Dialogs_fast_travel_limited_to_between_destinations"] call SCRT_fnc_misc_deniedHint;
+};
+
if ((sidesX getVariable [_base,sideUnknown]) in [Occupants, Invaders]) exitWith {
[localize "STR_A3A_Dialogs_fast_travel_header", localize "STR_A3A_Dialogs_fast_travel_no_enemy_zone"] call SCRT_fnc_misc_deniedHint;
openMap [false,false];
@@ -141,13 +153,13 @@ if (_positionTel distance getMarkerPos _base < 50) then {
};
};
private _exit = false;
- if (limitedFT == 1) then {
+ if (limitedFT == 1 or limitedFT == 2) then {
_vehicles = [];
{if (vehicle _x != _x) then {_vehicles pushBackUnique (vehicle _x)}} forEach units _groupX;
{if ((vehicle _x) in _vehicles) exitWith {_checkForPlayer = true}} forEach (call A3A_fnc_playableUnits);
};
- if (_checkForPlayer and {!(_base in (_rebelMarkers + airportsX + milbases))}) exitWith {
+ if (_checkForPlayer and !_isValidTargetLocation) exitWith {
[localize "STR_A3A_Dialogs_fast_travel_header", format [localize "STR_A3A_Dialogs_fast_travel_cancel",groupID _groupX]] call A3A_fnc_customHint;
};
diff --git a/A3A/addons/core/functions/REINF/fn_controlunit.sqf b/A3A/addons/core/functions/REINF/fn_controlunit.sqf
index 0a7418e4e3..44bd7149b5 100644
--- a/A3A/addons/core/functions/REINF/fn_controlunit.sqf
+++ b/A3A/addons/core/functions/REINF/fn_controlunit.sqf
@@ -59,7 +59,7 @@ if (staminaEnabled isEqualTo false) then {
};
private _newWeaponSway = swayEnabled / 100;
-player setCustomAimCoef _newWeaponSway;
+_unit setCustomAimCoef _newWeaponSway;
private _timeX = aiControlTime;
diff --git a/A3A/addons/core/functions/REINF/fn_garrisonAdd.sqf b/A3A/addons/core/functions/REINF/fn_garrisonAdd.sqf
index b796838c97..f3fe666204 100644
--- a/A3A/addons/core/functions/REINF/fn_garrisonAdd.sqf
+++ b/A3A/addons/core/functions/REINF/fn_garrisonAdd.sqf
@@ -49,7 +49,7 @@ waitUntil {(_countX < count (garrison getVariable [_markerX, []])) or (sidesX ge
if(((server getVariable ["hr",0]) <= 10) && (loseHROnDeath isEqualTo 2)) then {
_warningText = "" + localize "STR_A3AU_respawn_warning" +""+"
"+"" + format [localize "STR_A3AU_HR_warning_info", (A3A_faction_reb get "name"), (server getVariable ["hr",0])]+"";
- [_warningText,0,safezoneY+0.05] spawn BIS_fnc_dynamicText;
+ [_warningText,0,safezoneY+0.05] remoteExec ["BIS_fnc_dynamicText"];
};
if (sidesX getVariable [_markerX,sideUnknown] == teamPlayer) then {
diff --git a/A3A/addons/core/functions/init/fn_briefing.sqf b/A3A/addons/core/functions/init/fn_briefing.sqf
index 36cf9166e4..4fcf41ee2e 100644
--- a/A3A/addons/core/functions/init/fn_briefing.sqf
+++ b/A3A/addons/core/functions/init/fn_briefing.sqf
@@ -116,7 +116,9 @@ switch (victoryCondition) do
player createDiaryRecord ["Diary",[format [localize "STR_antistasi_journal_entry_header_Default_2"],format [localize "STR_antistasi_journal_entry_text_Default_total"]]];
};
case 2: {
- player createDiaryRecord ["Diary",[format [localize "STR_antistasi_journal_entry_header_Default_2"],format [localize "STR_antistasi_journal_entry_text_Default_economic"]]];
+ private _resourcesCount = count (resourcesX);
+ private _economicCalculation = ((_resourcesCount * 100000) call BIS_fnc_numberText) splitString " " joinString ",";
+ player createDiaryRecord ["Diary",[format [localize "STR_antistasi_journal_entry_header_Default_2"],format [localize "STR_antistasi_journal_entry_text_Default_economic", _economicCalculation, A3A_faction_civ get "currencySymbol"]]];
};
case 3: {
player createDiaryRecord ["Diary",[format [localize "STR_antistasi_journal_entry_header_Default_2"],format [localize "STR_antistasi_journal_entry_text_Default_logistical"]]];
diff --git a/A3A/addons/core/functions/proxy/fn_onPlayerRespawn.sqf b/A3A/addons/core/functions/proxy/fn_onPlayerRespawn.sqf
index 744e3706c5..bc5cef3b73 100644
--- a/A3A/addons/core/functions/proxy/fn_onPlayerRespawn.sqf
+++ b/A3A/addons/core/functions/proxy/fn_onPlayerRespawn.sqf
@@ -114,7 +114,7 @@ if (side group _newUnit == teamPlayer) then
if(((server getVariable ["hr",0]) > 10) && (tierWar >= 2)) then
{
_warningText = "" + format [localize "STR_chats_player_kia", _deathPenaltyNum]+"";
- [_warningText,0,safezoneY+0.05] spawn BIS_fnc_dynamicText;
+ [_warningText,0,safezoneY+0.05] remoteExec ["BIS_fnc_dynamicText"];
};
};
};
@@ -279,4 +279,4 @@ if (staminaEnabled isEqualTo false) then {
};
private _newWeaponSway = swayEnabled / 100;
-player setCustomAimCoef _newWeaponSway;
+_newunit setCustomAimCoef _newWeaponSway;
diff --git a/A3A/addons/garage/Public/config.inc b/A3A/addons/garage/Public/config.inc
index c5d1f4ebd8..9d7c59c9a7 100644
--- a/A3A/addons/garage/Public/config.inc
+++ b/A3A/addons/garage/Public/config.inc
@@ -34,7 +34,7 @@ HR_GRG_CP_closeCnd = {
};
HR_GRG_Cnd_canAccessAir = {
- count (airportsX select {(sidesX getVariable [_x,sideUnknown] == teamPlayer) and (HR_GRG_accessPoint inArea _x)}) > 0
+ count (airportsX select {(sidesX getVariable [_x,sideUnknown] == teamPlayer) and (HR_GRG_accessPoint inArea _x)}) > 0 || count (milbases select {(sidesX getVariable [_x,sideUnknown] == teamPlayer) and (HR_GRG_accessPoint inArea _x)}) > 0
};
//Lock on garaged vehicles ( Values: [{""}, { getPlayerUID player }] )
diff --git a/A3A/addons/main_menu/XEH_preInit.sqf b/A3A/addons/main_menu/XEH_preInit.sqf
new file mode 100644
index 0000000000..dfae31363e
--- /dev/null
+++ b/A3A/addons/main_menu/XEH_preInit.sqf
@@ -0,0 +1,35 @@
+#include "script_component.hpp"
+
+private _images = (configfile >> "A3AU_Images") call BIS_fnc_getCfgSubClasses;
+
+private _cfgNameArray = [];
+private _pathArray = [];
+private _nameArray = [];
+
+{
+ private _cfgName = _x;
+ private _path = getText (configFile >> "A3AU_Images" >> _x >> "path");
+ private _name = getText (configFile >> "A3AU_Images" >> _x >> "name");
+
+ _cfgNameArray pushBack _cfgName;
+ _pathArray pushBack _path;
+ _nameArray pushBack _name;
+} forEach _images; // grab each video entry + data for _x
+
+[
+ "menu_framework_image", // Internal setting name, should always contain a tag! This will be the global variable which takes the value of the setting.
+ "LIST", // setting type
+ "Main Menu Background", // Pretty name shown inside the ingame settings menu. Can be stringtable entry.
+ ["Antistasi Ultimate", "Main Menu"], // Pretty name of the category where the setting can be found. Can be stringtable entry.
+ [_pathArray, _nameArray, 0], // [default value], [name for default value], index for default value
+ false, // "_isGlobal" flag. Set this to true to always have this setting synchronized between all clients in multiplayer
+ {
+ params ["_value"];
+
+ profileNamespace setVariable ["menu_framework_image", _value];
+
+ call A3U_fnc_menuImage;
+
+ if !([player] call A3U_fnc_isInMenu) exitWith {};
+ }
+] call CBA_fnc_addSetting;
\ No newline at end of file
diff --git a/A3A/addons/main_menu/cfgMenuImages.hpp b/A3A/addons/main_menu/cfgMenuImages.hpp
new file mode 100644
index 0000000000..1181ea4f06
--- /dev/null
+++ b/A3A/addons/main_menu/cfgMenuImages.hpp
@@ -0,0 +1,146 @@
+ /*
+ the "path" value expects a string pointing to an .jpg image file.
+
+ the "name" value is what gets used in the cba settings.
+ */
+
+ class intro_empty
+ {
+ path = "None";
+ name = "None";
+ };
+ class intro_a3au
+ {
+ path = QPATHTOFOLDER(data\backgrounds\images\a3au_co.jpg);
+ name = "Antistasi Ultimate";
+ };
+ class intro_bwa
+ {
+ path = QPATHTOFOLDER(data\backgrounds\images\bwa_co.jpg);
+ name = "Bundeswehr";
+ };
+ class intro_androids_vanguard
+ {
+ path = QPATHTOFOLDER(data\backgrounds\images\androids_1_co.jpg);
+ name = "Androids (Vanguard)";
+ };
+ class intro_androids_expeditionary
+ {
+ path = QPATHTOFOLDER(data\backgrounds\images\androids_4_co.jpg);
+ name = "Androids (Expeditionary)";
+ };
+ class intro_em
+ {
+ path = QPATHTOFOLDER(data\backgrounds\images\em_co.jpg);
+ name = "Eastern Militia";
+ };
+ class intro_wm
+ {
+ path = QPATHTOFOLDER(data\backgrounds\images\wm_co.jpg);
+ name = "Western Militia";
+ };
+ class intro_unsc
+ {
+ path = QPATHTOFOLDER(data\backgrounds\images\unsc_1_co.jpg);
+ name = "The Fall of Reach: New Alexandria";
+ };
+ class intro_star_clone
+ {
+ path = QPATHTOFOLDER(data\backgrounds\images\snowtrooper_clone_co.jpg);
+ name = "Star Wars Clone";
+ };
+ class intro_star_empire
+ {
+ path = QPATHTOFOLDER(data\backgrounds\images\snowtrooper_co.jpg);
+ name = "Star Wars Empire";
+ };
+ class intro_ffaa
+ {
+ path = QPATHTOFOLDER(data\backgrounds\images\ffaa_co.jpg);
+ name = "Spain";
+ };
+ class intro_italy
+ {
+ path = QPATHTOFOLDER(data\backgrounds\images\italy_co.jpg);
+ name = "Italy";
+ };
+ class intro_maps
+ {
+ path = QPATHTOFOLDER(data\backgrounds\images\maps_co.jpg);
+ name = "Maps";
+ };
+ class intro_modsets
+ {
+ path = QPATHTOFOLDER(data\backgrounds\images\modsets_co.jpg);
+ name = "Modsets";
+ };
+ class intro_chase
+ {
+ path = QPATHTOFOLDER(data\backgrounds\images\chase_co.jpg);
+ name = "Heli Chase";
+ };
+ class intro_selfie
+ {
+ path = QPATHTOFOLDER(data\backgrounds\images\selfie_co.jpg);
+ name = "#Selfie!";
+ };
+ class intro_stealth
+ {
+ path = QPATHTOFOLDER(data\backgrounds\images\stealth_co.jpg);
+ name = "Stealth";
+ };
+ class intro_sunset
+ {
+ path = QPATHTOFOLDER(data\backgrounds\images\sunset_co.jpg);
+ name = "Sunset";
+ };
+ class intro_sweden
+ {
+ path = QPATHTOFOLDER(data\backgrounds\images\sweden_co.jpg);
+ name = "Sweden";
+ };
+ class intro_transport
+ {
+ path = QPATHTOFOLDER(data\backgrounds\images\transport_co.jpg);
+ name = "Transport";
+ };
+ class intro_turkey
+ {
+ path = QPATHTOFOLDER(data\backgrounds\images\turkey_co.jpg);
+ name = "Turkey";
+ };
+ class intro_us_army
+ {
+ path = QPATHTOFOLDER(data\backgrounds\images\us_army_co.jpg);
+ name = "US Army";
+ };
+ class intro_usmc
+ {
+ path = QPATHTOFOLDER(data\backgrounds\images\usmc_co.jpg);
+ name = "USMC";
+ };
+ class intro_vietnam
+ {
+ path = QPATHTOFOLDER(data\backgrounds\images\vietnam_co.jpg);
+ name = "Vietnam";
+ };
+ class intro_zombies
+ {
+ path = QPATHTOFOLDER(data\backgrounds\images\zombies_co.jpg);
+ name = "Zombies";
+ };
+ class intro_hrLoss
+ {
+ path = QPATHTOFOLDER(data\backgrounds\images\hr_loss_co.jpg);
+ name = "Rebellion Failed";
+ };
+ class intro_economicLoss
+ {
+ path = QPATHTOFOLDER(data\backgrounds\images\economic_loss_co.jpg);
+ name = "Economic Ruin";
+ };
+ class intro_popLoss
+ {
+ path = QPATHTOFOLDER(data\backgrounds\images\pop_loss_co.jpg);
+ name = "Population Death";
+ };
\ No newline at end of file
diff --git a/A3A/addons/main_menu/config.cpp b/A3A/addons/main_menu/config.cpp
index 906911874c..ea76da8190 100644
--- a/A3A/addons/main_menu/config.cpp
+++ b/A3A/addons/main_menu/config.cpp
@@ -8,7 +8,19 @@ class CfgPatches
units[] = {};
weapons[] = {};
requiredVersion = REQUIRED_VERSION;
- requiredAddons[] = {"A3A_core", "A3_UI_F"};
+ requiredAddons[] = {
+ "A3A_core",
+ "A3_UI_F",
+ "A3_Data_F_Enoch_Loadorder",
+ "A3_Map_Data",
+ "A3_Map_Stratis",
+ "A3_Map_Altis",
+ "A3_Map_VR",
+ "A3_Data_F_Exp",
+ "A3_Map_Malden",
+ "A3_Sounds_F_Enoch",
+ "CBA_Main"
+ };
author = AUTHOR;
authors[] = { AUTHORS };
authorUrl = "";
@@ -16,115 +28,6 @@ class CfgPatches
};
};
-#define RANDOM_NUMBER __RAND_UINT8__
-
-#if __A3_DEBUG__
- class RANDOM_NUMBER
- {
- number = RANDOM_NUMBER;
- };
-#endif
-
-#if RANDOM_NUMBER > 0
- #define BACKGROUND data\backgrounds\Zombies_co.jpg
-#endif
-
-#if RANDOM_NUMBER > 11
- #define BACKGROUND data\backgrounds\bwa_co.jpg
-#endif
-
-#if RANDOM_NUMBER > 22
- #define BACKGROUND data\backgrounds\canada_co.jpg
-#endif
-
-#if RANDOM_NUMBER > 33
- #define BACKGROUND data\backgrounds\Cars_co.jpg
-#endif
-
-#if RANDOM_NUMBER > 44
- #define BACKGROUND data\backgrounds\clone_wars_co.jpg
-#endif
-
-#if RANDOM_NUMBER > 55
- #define BACKGROUND data\backgrounds\ffaa_co.jpg
-#endif
-
-#if RANDOM_NUMBER > 66
- #define BACKGROUND data\backgrounds\italy_co.jpg
-#endif
-
-#if RANDOM_NUMBER > 77
- #define BACKGROUND data\backgrounds\Maps_co.jpg
-#endif
-
-#if RANDOM_NUMBER > 88
- #define BACKGROUND data\backgrounds\Modsets_co.jpg
-#endif
-
-#if RANDOM_NUMBER > 99
- #define BACKGROUND data\backgrounds\transport_co.jpg
-#endif
-
-#if RANDOM_NUMBER > 110
- #define BACKGROUND data\backgrounds\racs_co.jpg
-#endif
-
-#if RANDOM_NUMBER > 121
- #define BACKGROUND data\backgrounds\rebels_co.jpg
-#endif
-
-#if RANDOM_NUMBER > 132
- #define BACKGROUND data\backgrounds\rebels2_co.jpg
-#endif
-
-#if RANDOM_NUMBER > 143
- #define BACKGROUND data\backgrounds\rebels3_co.jpg
-#endif
-
-#if RANDOM_NUMBER > 154
- #define BACKGROUND data\backgrounds\russia_co.jpg
-#endif
-
-#if RANDOM_NUMBER > 165
- #define BACKGROUND data\backgrounds\spearhead_1944_co.jpg
-#endif
-
-#if RANDOM_NUMBER > 176
- #define BACKGROUND data\backgrounds\Stealth_co.jpg
-#endif
-
-#if RANDOM_NUMBER > 187
- #define BACKGROUND data\backgrounds\Sunset_co.jpg
-#endif
-
-#if RANDOM_NUMBER > 198
- #define BACKGROUND data\backgrounds\sweden_co.jpg
-#endif
-
-#if RANDOM_NUMBER > 209
- #define BACKGROUND data\backgrounds\turkey_co.jpg
-#endif
-
-#if RANDOM_NUMBER > 220
- #define BACKGROUND data\backgrounds\us_army_co.jpg
-#endif
-
-#if RANDOM_NUMBER > 231
- #define BACKGROUND data\backgrounds\usmc_co.jpg
-#endif
-
-#if RANDOM_NUMBER > 242
- #define BACKGROUND data\backgrounds\vietnam_co.jpg
-#endif
-
-#if RANDOM_NUMBER > 254
- #define BACKGROUND data\backgrounds\onein255_co.jpg
-#endif
-
-#ifndef BACKGROUND
- #define BACKGROUND data\backgrounds\Sunset_co.jpg
-#endif
-
class RscActivePicture;
class RscStandardDisplay;
class RscPicture;
@@ -282,27 +185,71 @@ class RscTitles
onLoad = "(_this # 0) ctrlEnable false;";
};
};
-class RscDisplayMain: RscStandardDisplay //main menu
+
+class CfgMissions
{
- enableDisplay = 0;
- class controlsBackground
+ class Cutscenes
+ {
+ class a3au_main_menu // Class referenced in 'cutscenes' property in CfgWorlds
+ {
+ directory = "x\A3A\addons\main_menu\data\backgrounds\scenes\menu_overwrite.Stratis"; // Path to scenario with the scene
+ };
+ };
+};
+
+class CfgWorlds
+{
+ class CAWorld;
+ class VR : CAWorld
+ {
+ cutscenes[] = { "a3au_main_menu" };
+ };
+
+ class Altis : CAWorld
+ {
+ cutscenes[] = { "a3au_main_menu" };
+ };
+
+ class Tanoa : CAWorld
+ {
+ cutscenes[] = { "a3au_main_menu" };
+ };
+
+ class Malden : CAWorld
+ {
+ cutscenes[] = { "a3au_main_menu" };
+ };
+
+ class Stratis : CAWorld
+ {
+ cutscenes[] = { "a3au_main_menu" };
+ };
+
+ class Enoch : CAWorld
+ {
+ cutscenes[] = { "a3au_main_menu" };
+ };
+
+ initWorld = "VR";
+ demoWorld = "VR";
+};
+
+class A3AU_Images
+{
+ #include "cfgMenuImages.hpp"
+};
+
+class Extended_PreInit_EventHandlers
+{
+ class A3AU_settings
{
- class Background
- {
- idc = -1;
- type = 0;
- style = 48;
- text = QPATHTOFOLDER(BACKGROUND); // Path to your custom main menu image
- x = "safeZoneX";
- y = "safeZoneY";
- w = "safeZoneW";
- h = "safeZoneH";
- colorBackground[] = {0, 0, 0, 0};
- colorText[] = {1, 1, 1, 1};
- font = "RobotoCondensed";
- sizeEx = 0.025;
- };
+ init = "call compile preprocessFileLineNumbers 'x\A3A\addons\main_menu\XEH_preInit.sqf'";
};
+};
+
+class RscDisplayMain: RscStandardDisplay //main menu
+{
+ enableDisplay = 0;
class controls
{
delete Spotlight;
@@ -316,7 +263,7 @@ class RscDisplayMain: RscStandardDisplay //main menu
delete SpotlightPrev;
class Logo: RscActivePicture
{
- text = QPATHTOFOLDER(data\AULOGO_TEST.paa);
+ text = QPATHTOFOLDER(data\buttons\AULOGO_TEST.paa);
tooltip="Join the official Antistasi Ultimate Discord server!";
color[]={0.89999998,0.89999998,0.89999998,1};
colorActive[]={1,1,1,1};
@@ -341,7 +288,7 @@ class RscDisplayMain: RscStandardDisplay //main menu
y = "safeZoneY + safeZoneH - 0.28";
w = 0.18;
h = 0.05;
- text = QPATHTOFOLDER(data\SteamB.paa); // No text needed for an image button
+ text = QPATHTOFOLDER(data\buttons\SteamB.paa); // No text needed for an image button
colorBackground[] = {0, 0, 0, 0};
colorText[] = {1, 1, 1, 1};
font = "RobotoCondensed";
@@ -367,58 +314,59 @@ class RscDisplayMain: RscStandardDisplay //main menu
class SteamButton1: base_side_btn
{
onLoad = "(_this # 0) ctrlEnable true";
- text = QPATHTOFOLDER(data\SteamB.paa); // Path to button image
+ text = QPATHTOFOLDER(data\buttons\SteamB.paa); // Path to button image
tooltip = "Steam workshop Mod";
url = "https://steamcommunity.com/sharedfiles/filedetails/?id=3020755032";
- onMouseEnter = "(_this select 0) ctrlSetText ""\x\a3a\addons\main_menu\data\SteamB_Hov.paa""";
- onMouseExit = "(_this select 0) ctrlSetText ""\x\a3a\addons\main_menu\data\SteamB.paa""";
- onMouseButtonUp = "(_this select 0) ctrlSetText ""\x\a3a\addons\main_menu\data\SteamB_Hov.paa""";
- onMouseButtonDown = "(_this select 0) ctrlSetText ""\x\a3a\addons\main_menu\data\SteamB.paa""";
+ onMouseEnter = "(_this select 0) ctrlSetText ""\x\a3a\addons\main_menu\data\buttons\SteamB_Hov.paa""";
+ onMouseExit = "(_this select 0) ctrlSetText ""\x\a3a\addons\main_menu\data\buttons\SteamB.paa""";
+ onMouseButtonUp = "(_this select 0) ctrlSetText ""\x\a3a\addons\main_menu\data\buttons\SteamB_Hov.paa""";
+ onMouseButtonDown = "(_this select 0) ctrlSetText ""\x\a3a\addons\main_menu\data\buttons\SteamB.paa""";
};
class GitHubButton2: SteamButton1
{
y = "safeZoneY + safeZoneH - 0.34";
- text = QPATHTOFOLDER(data\GitB.paa); // Path to button image
+ text = QPATHTOFOLDER(data\buttons\GitB.paa); // Path to button image
tooltip="GitHub Page";
url = "https://github.com/SilenceIsFatto/A3-Antistasi-Ultimate";
- onMouseEnter = "(_this select 0) ctrlSetText ""\x\a3a\addons\main_menu\data\GitB_Hov.paa""";
- onMouseExit = "(_this select 0) ctrlSetText ""\x\a3a\addons\main_menu\data\GitB.paa""";
- onMouseButtonUp = "(_this select 0) ctrlSetText ""\x\a3a\addons\main_menu\data\GitB_Hov.paa""";
- onMouseButtonDown = "(_this select 0) ctrlSetText ""\x\a3a\addons\main_menu\data\GitB.paa""";
+ onMouseEnter = "(_this select 0) ctrlSetText ""\x\a3a\addons\main_menu\data\buttons\GitB_Hov.paa""";
+ onMouseExit = "(_this select 0) ctrlSetText ""\x\a3a\addons\main_menu\data\buttons\GitB.paa""";
+ onMouseButtonUp = "(_this select 0) ctrlSetText ""\x\a3a\addons\main_menu\data\buttons\GitB_Hov.paa""";
+ onMouseButtonDown = "(_this select 0) ctrlSetText ""\x\a3a\addons\main_menu\data\buttons\GitB.paa""";
};
class ServerButton3: base_side_btn
{
+ onLoad = "(_this # 0) ctrlEnable true";
y = "safeZoneY + safeZoneH - 0.4";
- text = QPATHTOFOLDER(data\ServerB.paa); // No text needed for an image button
+ text = QPATHTOFOLDER(data\buttons\ServerB.paa); // No text needed for an image button
tooltip="Connect to our community server!";
onMouseButtonClick = "connectToServer ['138.201.62.114', 2402, '1221']";
- onMouseEnter = "(_this select 0) ctrlSetText ""\x\a3a\addons\main_menu\data\ServerB_Hov.paa""";
- onMouseExit = "(_this select 0) ctrlSetText ""\x\a3a\addons\main_menu\data\ServerB.paa""";
- onMouseButtonUp = "(_this select 0) ctrlSetText ""\x\a3a\addons\main_menu\data\ServerB_Hov.paa""";
- onMouseButtonDown = "(_this select 0) ctrlSetText ""\x\a3a\addons\main_menu\data\ServerB.paa""";
+ onMouseEnter = "(_this select 0) ctrlSetText ""\x\a3a\addons\main_menu\data\buttons\ServerB_Hov.paa""";
+ onMouseExit = "(_this select 0) ctrlSetText ""\x\a3a\addons\main_menu\data\buttons\ServerB.paa""";
+ onMouseButtonUp = "(_this select 0) ctrlSetText ""\x\a3a\addons\main_menu\data\buttons\ServerB_Hov.paa""";
+ onMouseButtonDown = "(_this select 0) ctrlSetText ""\x\a3a\addons\main_menu\data\buttons\ServerB.paa""";
};
class ArmaCreditsButton4: base_side_btn
{
onLoad = "(_this # 0) ctrlEnable true";
x = "safeZoneX + 0.007";
- text = QPATHTOFOLDER(data\ArmaCredits.paa); // No text needed for an image button
+ text = QPATHTOFOLDER(data\buttons\ArmaCredits.paa); // No text needed for an image button
tooltip="ArmA 3 Credits";
onMouseButtonClick = "if (scriptdone (missionnamespace getvariable ['RscDisplayMain_credits',scriptnull])) then {RscDisplayMain_credits = _this spawn (uinamespace getvariable 'bis_fnc_credits');};";
- onMouseEnter = "(_this select 0) ctrlSetText ""\x\a3a\addons\main_menu\data\ArmaCredits_Hov.paa""";
- onMouseExit = "(_this select 0) ctrlSetText ""\x\a3a\addons\main_menu\data\ArmaCredits.paa""";
- onMouseButtonUp = "(_this select 0) ctrlSetText ""\x\a3a\addons\main_menu\data\ArmaCredits_Hov.paa""";
- onMouseButtonDown = "(_this select 0) ctrlSetText ""\x\a3a\addons\main_menu\data\ArmaCredits.paa""";
+ onMouseEnter = "(_this select 0) ctrlSetText ""\x\a3a\addons\main_menu\data\buttons\ArmaCredits_Hov.paa""";
+ onMouseExit = "(_this select 0) ctrlSetText ""\x\a3a\addons\main_menu\data\buttons\ArmaCredits.paa""";
+ onMouseButtonUp = "(_this select 0) ctrlSetText ""\x\a3a\addons\main_menu\data\buttons\ArmaCredits_Hov.paa""";
+ onMouseButtonDown = "(_this select 0) ctrlSetText ""\x\a3a\addons\main_menu\data\buttons\ArmaCredits.paa""";
};
class WebsiteButton5: ArmaCreditsButton4
{
y = "safeZoneY + safeZoneH - 0.34";
- text = QPATHTOFOLDER(data\WebsiteB.paa); // No text needed for an image button
+ text = QPATHTOFOLDER(data\buttons\WebsiteB.paa); // No text needed for an image button
tooltip="Official Website";
url = "https://antistasiultimate.com/Home/";
- onMouseEnter = "(_this select 0) ctrlSetText ""\x\a3a\addons\main_menu\data\WebsiteB_Hov.paa""";
- onMouseExit = "(_this select 0) ctrlSetText ""\x\a3a\addons\main_menu\data\WebsiteB.paa""";
- onMouseButtonUp = "(_this select 0) ctrlSetText ""\x\a3a\addons\main_menu\data\WebsiteB_Hov.paa""";
- onMouseButtonDown = "(_this select 0) ctrlSetText ""\x\a3a\addons\main_menu\data\WebsiteB.paa""";
+ onMouseEnter = "(_this select 0) ctrlSetText ""\x\a3a\addons\main_menu\data\buttons\WebsiteB_Hov.paa""";
+ onMouseExit = "(_this select 0) ctrlSetText ""\x\a3a\addons\main_menu\data\buttons\WebsiteB.paa""";
+ onMouseButtonUp = "(_this select 0) ctrlSetText ""\x\a3a\addons\main_menu\data\buttons\WebsiteB_Hov.paa""";
+ onMouseButtonDown = "(_this select 0) ctrlSetText ""\x\a3a\addons\main_menu\data\buttons\WebsiteB.paa""";
};
};
};
\ No newline at end of file
diff --git a/A3A/addons/main_menu/data/backgrounds/Cars_co.jpg b/A3A/addons/main_menu/data/backgrounds/Cars_co.jpg
deleted file mode 100644
index 5d7645337f..0000000000
Binary files a/A3A/addons/main_menu/data/backgrounds/Cars_co.jpg and /dev/null differ
diff --git a/A3A/addons/main_menu/data/backgrounds/canada_co.jpg b/A3A/addons/main_menu/data/backgrounds/canada_co.jpg
deleted file mode 100644
index c2584eeeb1..0000000000
Binary files a/A3A/addons/main_menu/data/backgrounds/canada_co.jpg and /dev/null differ
diff --git a/A3A/addons/main_menu/data/backgrounds/clone_wars_co.jpg b/A3A/addons/main_menu/data/backgrounds/clone_wars_co.jpg
deleted file mode 100644
index 081f70f8bb..0000000000
Binary files a/A3A/addons/main_menu/data/backgrounds/clone_wars_co.jpg and /dev/null differ
diff --git a/A3A/addons/main_menu/data/backgrounds/Maps_co.jpg b/A3A/addons/main_menu/data/backgrounds/images/Maps_co.jpg
similarity index 100%
rename from A3A/addons/main_menu/data/backgrounds/Maps_co.jpg
rename to A3A/addons/main_menu/data/backgrounds/images/Maps_co.jpg
diff --git a/A3A/addons/main_menu/data/backgrounds/Modsets_co.jpg b/A3A/addons/main_menu/data/backgrounds/images/Modsets_co.jpg
similarity index 100%
rename from A3A/addons/main_menu/data/backgrounds/Modsets_co.jpg
rename to A3A/addons/main_menu/data/backgrounds/images/Modsets_co.jpg
diff --git a/A3A/addons/main_menu/data/backgrounds/Stealth_co.jpg b/A3A/addons/main_menu/data/backgrounds/images/Stealth_co.jpg
similarity index 100%
rename from A3A/addons/main_menu/data/backgrounds/Stealth_co.jpg
rename to A3A/addons/main_menu/data/backgrounds/images/Stealth_co.jpg
diff --git a/A3A/addons/main_menu/data/backgrounds/Sunset_co.jpg b/A3A/addons/main_menu/data/backgrounds/images/Sunset_co.jpg
similarity index 100%
rename from A3A/addons/main_menu/data/backgrounds/Sunset_co.jpg
rename to A3A/addons/main_menu/data/backgrounds/images/Sunset_co.jpg
diff --git a/A3A/addons/main_menu/data/backgrounds/Zombies_co.jpg b/A3A/addons/main_menu/data/backgrounds/images/Zombies_co.jpg
similarity index 100%
rename from A3A/addons/main_menu/data/backgrounds/Zombies_co.jpg
rename to A3A/addons/main_menu/data/backgrounds/images/Zombies_co.jpg
diff --git a/A3A/addons/main_menu/data/backgrounds/onein255_co.jpg b/A3A/addons/main_menu/data/backgrounds/images/a3au_co.jpg
similarity index 100%
rename from A3A/addons/main_menu/data/backgrounds/onein255_co.jpg
rename to A3A/addons/main_menu/data/backgrounds/images/a3au_co.jpg
diff --git a/A3A/addons/main_menu/data/backgrounds/images/androids_1_co.jpg b/A3A/addons/main_menu/data/backgrounds/images/androids_1_co.jpg
new file mode 100644
index 0000000000..9245379bb9
Binary files /dev/null and b/A3A/addons/main_menu/data/backgrounds/images/androids_1_co.jpg differ
diff --git a/A3A/addons/main_menu/data/backgrounds/images/androids_4_co.jpg b/A3A/addons/main_menu/data/backgrounds/images/androids_4_co.jpg
new file mode 100644
index 0000000000..6241d52ce5
Binary files /dev/null and b/A3A/addons/main_menu/data/backgrounds/images/androids_4_co.jpg differ
diff --git a/A3A/addons/main_menu/data/backgrounds/bwa_co.jpg b/A3A/addons/main_menu/data/backgrounds/images/bwa_co.jpg
similarity index 100%
rename from A3A/addons/main_menu/data/backgrounds/bwa_co.jpg
rename to A3A/addons/main_menu/data/backgrounds/images/bwa_co.jpg
diff --git a/A3A/addons/main_menu/data/backgrounds/rebels_co.jpg b/A3A/addons/main_menu/data/backgrounds/images/chase_co.jpg
similarity index 100%
rename from A3A/addons/main_menu/data/backgrounds/rebels_co.jpg
rename to A3A/addons/main_menu/data/backgrounds/images/chase_co.jpg
diff --git a/A3A/addons/main_menu/data/backgrounds/images/economic_loss_co.jpg b/A3A/addons/main_menu/data/backgrounds/images/economic_loss_co.jpg
new file mode 100644
index 0000000000..a4c161730e
Binary files /dev/null and b/A3A/addons/main_menu/data/backgrounds/images/economic_loss_co.jpg differ
diff --git a/A3A/addons/main_menu/data/backgrounds/images/em_co.jpg b/A3A/addons/main_menu/data/backgrounds/images/em_co.jpg
new file mode 100644
index 0000000000..ed1c67fcbb
Binary files /dev/null and b/A3A/addons/main_menu/data/backgrounds/images/em_co.jpg differ
diff --git a/A3A/addons/main_menu/data/backgrounds/ffaa_co.jpg b/A3A/addons/main_menu/data/backgrounds/images/ffaa_co.jpg
similarity index 100%
rename from A3A/addons/main_menu/data/backgrounds/ffaa_co.jpg
rename to A3A/addons/main_menu/data/backgrounds/images/ffaa_co.jpg
diff --git a/A3A/addons/main_menu/data/backgrounds/images/hr_loss_co.jpg b/A3A/addons/main_menu/data/backgrounds/images/hr_loss_co.jpg
new file mode 100644
index 0000000000..1a101e260a
Binary files /dev/null and b/A3A/addons/main_menu/data/backgrounds/images/hr_loss_co.jpg differ
diff --git a/A3A/addons/main_menu/data/backgrounds/italy_co.jpg b/A3A/addons/main_menu/data/backgrounds/images/italy_co.jpg
similarity index 100%
rename from A3A/addons/main_menu/data/backgrounds/italy_co.jpg
rename to A3A/addons/main_menu/data/backgrounds/images/italy_co.jpg
diff --git a/A3A/addons/main_menu/data/backgrounds/images/pop_loss_co.jpg b/A3A/addons/main_menu/data/backgrounds/images/pop_loss_co.jpg
new file mode 100644
index 0000000000..4733048499
Binary files /dev/null and b/A3A/addons/main_menu/data/backgrounds/images/pop_loss_co.jpg differ
diff --git a/A3A/addons/main_menu/data/backgrounds/rebels2_co.jpg b/A3A/addons/main_menu/data/backgrounds/images/selfie_co.jpg
similarity index 100%
rename from A3A/addons/main_menu/data/backgrounds/rebels2_co.jpg
rename to A3A/addons/main_menu/data/backgrounds/images/selfie_co.jpg
diff --git a/A3A/addons/main_menu/data/backgrounds/images/snowtrooper_clone_co.jpg b/A3A/addons/main_menu/data/backgrounds/images/snowtrooper_clone_co.jpg
new file mode 100644
index 0000000000..fe6fdc5a3a
Binary files /dev/null and b/A3A/addons/main_menu/data/backgrounds/images/snowtrooper_clone_co.jpg differ
diff --git a/A3A/addons/main_menu/data/backgrounds/images/snowtrooper_co.jpg b/A3A/addons/main_menu/data/backgrounds/images/snowtrooper_co.jpg
new file mode 100644
index 0000000000..05abdc22e0
Binary files /dev/null and b/A3A/addons/main_menu/data/backgrounds/images/snowtrooper_co.jpg differ
diff --git a/A3A/addons/main_menu/data/backgrounds/sweden_co.jpg b/A3A/addons/main_menu/data/backgrounds/images/sweden_co.jpg
similarity index 100%
rename from A3A/addons/main_menu/data/backgrounds/sweden_co.jpg
rename to A3A/addons/main_menu/data/backgrounds/images/sweden_co.jpg
diff --git a/A3A/addons/main_menu/data/backgrounds/transport_co.jpg b/A3A/addons/main_menu/data/backgrounds/images/transport_co.jpg
similarity index 100%
rename from A3A/addons/main_menu/data/backgrounds/transport_co.jpg
rename to A3A/addons/main_menu/data/backgrounds/images/transport_co.jpg
diff --git a/A3A/addons/main_menu/data/backgrounds/turkey_co.jpg b/A3A/addons/main_menu/data/backgrounds/images/turkey_co.jpg
similarity index 100%
rename from A3A/addons/main_menu/data/backgrounds/turkey_co.jpg
rename to A3A/addons/main_menu/data/backgrounds/images/turkey_co.jpg
diff --git a/A3A/addons/main_menu/data/backgrounds/images/unsc_1_co.jpg b/A3A/addons/main_menu/data/backgrounds/images/unsc_1_co.jpg
new file mode 100644
index 0000000000..7dcb602c24
Binary files /dev/null and b/A3A/addons/main_menu/data/backgrounds/images/unsc_1_co.jpg differ
diff --git a/A3A/addons/main_menu/data/backgrounds/us_army_co.jpg b/A3A/addons/main_menu/data/backgrounds/images/us_army_co.jpg
similarity index 100%
rename from A3A/addons/main_menu/data/backgrounds/us_army_co.jpg
rename to A3A/addons/main_menu/data/backgrounds/images/us_army_co.jpg
diff --git a/A3A/addons/main_menu/data/backgrounds/usmc_co.jpg b/A3A/addons/main_menu/data/backgrounds/images/usmc_co.jpg
similarity index 100%
rename from A3A/addons/main_menu/data/backgrounds/usmc_co.jpg
rename to A3A/addons/main_menu/data/backgrounds/images/usmc_co.jpg
diff --git a/A3A/addons/main_menu/data/backgrounds/vietnam_co.jpg b/A3A/addons/main_menu/data/backgrounds/images/vietnam_co.jpg
similarity index 100%
rename from A3A/addons/main_menu/data/backgrounds/vietnam_co.jpg
rename to A3A/addons/main_menu/data/backgrounds/images/vietnam_co.jpg
diff --git a/A3A/addons/main_menu/data/backgrounds/images/wm_co.jpg b/A3A/addons/main_menu/data/backgrounds/images/wm_co.jpg
new file mode 100644
index 0000000000..cf0ae5afc0
Binary files /dev/null and b/A3A/addons/main_menu/data/backgrounds/images/wm_co.jpg differ
diff --git a/A3A/addons/main_menu/data/backgrounds/racs_co.jpg b/A3A/addons/main_menu/data/backgrounds/racs_co.jpg
deleted file mode 100644
index d83d5cd207..0000000000
Binary files a/A3A/addons/main_menu/data/backgrounds/racs_co.jpg and /dev/null differ
diff --git a/A3A/addons/main_menu/data/backgrounds/rebels3_co.jpg b/A3A/addons/main_menu/data/backgrounds/rebels3_co.jpg
deleted file mode 100644
index 5e6920948e..0000000000
Binary files a/A3A/addons/main_menu/data/backgrounds/rebels3_co.jpg and /dev/null differ
diff --git a/A3A/addons/main_menu/data/backgrounds/russia_co.jpg b/A3A/addons/main_menu/data/backgrounds/russia_co.jpg
deleted file mode 100644
index 6b479dd08a..0000000000
Binary files a/A3A/addons/main_menu/data/backgrounds/russia_co.jpg and /dev/null differ
diff --git a/A3A/addons/main_menu/data/backgrounds/scenes/menu_overwrite.Stratis/description.ext b/A3A/addons/main_menu/data/backgrounds/scenes/menu_overwrite.Stratis/description.ext
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/A3A/addons/main_menu/data/backgrounds/scenes/menu_overwrite.Stratis/initIntro.sqf b/A3A/addons/main_menu/data/backgrounds/scenes/menu_overwrite.Stratis/initIntro.sqf
new file mode 100644
index 0000000000..197badc457
--- /dev/null
+++ b/A3A/addons/main_menu/data/backgrounds/scenes/menu_overwrite.Stratis/initIntro.sqf
@@ -0,0 +1,2 @@
+player setVariable ["menu_framework_canPlay", true];
+call A3U_fnc_menuImage;
\ No newline at end of file
diff --git a/A3A/addons/main_menu/data/backgrounds/scenes/menu_overwrite.Stratis/mission.sqm b/A3A/addons/main_menu/data/backgrounds/scenes/menu_overwrite.Stratis/mission.sqm
new file mode 100644
index 0000000000..2070475996
--- /dev/null
+++ b/A3A/addons/main_menu/data/backgrounds/scenes/menu_overwrite.Stratis/mission.sqm
@@ -0,0 +1,231 @@
+version=54;
+class EditorData
+{
+ moveGridStep=1;
+ angleGridStep=0.2617994;
+ scaleGridStep=1;
+ autoGroupingDist=10;
+ toggles=1;
+ class ItemIDProvider
+ {
+ nextID=9;
+ };
+ class Camera
+ {
+ pos[]={7272.5693,8.682107,7943.7061};
+ dir[]={-0.85518849,-0.089532547,-0.51056045};
+ up[]={-0.076884612,0.99598408,-0.045901235};
+ aside[]={-0.51261955,5.2651012e-007,0.85863501};
+ };
+};
+binarizationWanted=0;
+sourceName="menu_overwrite";
+addons[]=
+{
+ "A3_Structures_F_Exp_Infrastructure_Airports",
+ "A3_Characters_F"
+};
+class AddonsMetaData
+{
+ class List
+ {
+ items=2;
+ class Item0
+ {
+ className="A3_Structures_F_Exp_Infrastructure";
+ name="Arma 3 Apex - Infrastructure Objects";
+ author="Bohemia Interactive";
+ url="https://www.arma3.com";
+ };
+ class Item1
+ {
+ className="A3_Characters_F";
+ name="Arma 3 Alpha - Characters and Clothing";
+ author="Bohemia Interactive";
+ url="https://www.arma3.com";
+ };
+ };
+};
+dlcs[]=
+{
+ "Expansion"
+};
+randomSeed=8580922;
+class ScenarioData
+{
+ author="Silence";
+ briefing=0;
+ debriefing=0;
+ showCompass=0;
+ showGPS=0;
+ showHUD=0;
+ showMap=0;
+ showUAVFeed=0;
+ showWatch=0;
+ saving=0;
+};
+class Intro
+{
+ class Intel
+ {
+ timeOfChanges=1800.0002;
+ startWeather=0.30000001;
+ startWind=0.1;
+ startWaves=0.1;
+ forecastWeather=0.30000001;
+ forecastWind=0.1;
+ forecastWaves=0.1;
+ forecastLightnings=0.1;
+ year=2035;
+ month=7;
+ day=6;
+ hour=0;
+ minute=0;
+ startFogDecay=0.014;
+ forecastFogDecay=0.014;
+ };
+ class Entities
+ {
+ items=2;
+ class Item0
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={7275.8311,-7.5259018,7945.478};
+ };
+ side="Empty";
+ flags=1;
+ class Attributes
+ {
+ createAsLocalObject=1;
+ disableSimulation=1;
+ };
+ id=6;
+ type="Land_AirstripPlatform_01_F";
+ atlOffset=112.591;
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="allowDamage";
+ expression="_this allowdamage _value;";
+ class Value
+ {
+ class data
+ {
+ singleType="BOOL";
+ value=0;
+ };
+ };
+ };
+ nAttributes=1;
+ };
+ };
+ class Item1
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={7266.0879,4.7883663,7939.7627};
+ angles[]={0,4.1710696,-0};
+ };
+ side="West";
+ flags=7;
+ class Attributes
+ {
+ isPlayer=1;
+ createAsLocalObject=1;
+ disableSimulation=1;
+ ignoreByDynSimulGrid=1;
+ class Inventory
+ {
+ };
+ };
+ id=8;
+ type="B_Survivor_F";
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="allowDamage";
+ expression="_this allowdamage _value;";
+ class Value
+ {
+ class data
+ {
+ singleType="BOOL";
+ value=0;
+ };
+ };
+ };
+ class Attribute1
+ {
+ property="speaker";
+ expression="_this setspeaker _value;";
+ class Value
+ {
+ class data
+ {
+ singleType="STRING";
+ value="Male02ENG";
+ };
+ };
+ };
+ class Attribute2
+ {
+ property="pitch";
+ expression="_this setpitch _value;";
+ class Value
+ {
+ class data
+ {
+ singleType="SCALAR";
+ value=1;
+ };
+ };
+ };
+ class Attribute3
+ {
+ property="hideObject";
+ expression="if !(is3DEN) then {_this hideobjectglobal _value;};";
+ class Value
+ {
+ class data
+ {
+ singleType="BOOL";
+ value=1;
+ };
+ };
+ };
+ class Attribute4
+ {
+ property="enableStamina";
+ expression="_this enablestamina _value;";
+ class Value
+ {
+ class data
+ {
+ singleType="BOOL";
+ value=0;
+ };
+ };
+ };
+ nAttributes=5;
+ };
+ };
+ };
+ class Attributes
+ {
+ };
+ id=7;
+ };
+ };
+};
diff --git a/A3A/addons/main_menu/data/backgrounds/spearhead_1944_co.jpg b/A3A/addons/main_menu/data/backgrounds/spearhead_1944_co.jpg
deleted file mode 100644
index 960a774989..0000000000
Binary files a/A3A/addons/main_menu/data/backgrounds/spearhead_1944_co.jpg and /dev/null differ
diff --git a/A3A/addons/main_menu/data/AUC_Logo.paa b/A3A/addons/main_menu/data/buttons/AUC_Logo.paa
similarity index 100%
rename from A3A/addons/main_menu/data/AUC_Logo.paa
rename to A3A/addons/main_menu/data/buttons/AUC_Logo.paa
diff --git a/A3A/addons/main_menu/data/AULOGO_TEST.paa b/A3A/addons/main_menu/data/buttons/AULOGO_TEST.paa
similarity index 100%
rename from A3A/addons/main_menu/data/AULOGO_TEST.paa
rename to A3A/addons/main_menu/data/buttons/AULOGO_TEST.paa
diff --git a/A3A/addons/main_menu/data/AU_splash_ca.paa b/A3A/addons/main_menu/data/buttons/AU_splash_ca.paa
similarity index 100%
rename from A3A/addons/main_menu/data/AU_splash_ca.paa
rename to A3A/addons/main_menu/data/buttons/AU_splash_ca.paa
diff --git a/A3A/addons/main_menu/data/ArmaCredits.paa b/A3A/addons/main_menu/data/buttons/ArmaCredits.paa
similarity index 100%
rename from A3A/addons/main_menu/data/ArmaCredits.paa
rename to A3A/addons/main_menu/data/buttons/ArmaCredits.paa
diff --git a/A3A/addons/main_menu/data/ArmaCredits_Hov.paa b/A3A/addons/main_menu/data/buttons/ArmaCredits_Hov.paa
similarity index 100%
rename from A3A/addons/main_menu/data/ArmaCredits_Hov.paa
rename to A3A/addons/main_menu/data/buttons/ArmaCredits_Hov.paa
diff --git a/A3A/addons/main_menu/data/GitB.paa b/A3A/addons/main_menu/data/buttons/GitB.paa
similarity index 100%
rename from A3A/addons/main_menu/data/GitB.paa
rename to A3A/addons/main_menu/data/buttons/GitB.paa
diff --git a/A3A/addons/main_menu/data/GitB_Hov.paa b/A3A/addons/main_menu/data/buttons/GitB_Hov.paa
similarity index 100%
rename from A3A/addons/main_menu/data/GitB_Hov.paa
rename to A3A/addons/main_menu/data/buttons/GitB_Hov.paa
diff --git a/A3A/addons/main_menu/data/I_Arma.paa b/A3A/addons/main_menu/data/buttons/I_Arma.paa
similarity index 100%
rename from A3A/addons/main_menu/data/I_Arma.paa
rename to A3A/addons/main_menu/data/buttons/I_Arma.paa
diff --git a/A3A/addons/main_menu/data/I_GitHub.paa b/A3A/addons/main_menu/data/buttons/I_GitHub.paa
similarity index 100%
rename from A3A/addons/main_menu/data/I_GitHub.paa
rename to A3A/addons/main_menu/data/buttons/I_GitHub.paa
diff --git a/A3A/addons/main_menu/data/I_Server.paa b/A3A/addons/main_menu/data/buttons/I_Server.paa
similarity index 100%
rename from A3A/addons/main_menu/data/I_Server.paa
rename to A3A/addons/main_menu/data/buttons/I_Server.paa
diff --git a/A3A/addons/main_menu/data/I_Steam.paa b/A3A/addons/main_menu/data/buttons/I_Steam.paa
similarity index 100%
rename from A3A/addons/main_menu/data/I_Steam.paa
rename to A3A/addons/main_menu/data/buttons/I_Steam.paa
diff --git a/A3A/addons/main_menu/data/Main_Menu_Buttons.psd b/A3A/addons/main_menu/data/buttons/Main_Menu_Buttons.psd
similarity index 100%
rename from A3A/addons/main_menu/data/Main_Menu_Buttons.psd
rename to A3A/addons/main_menu/data/buttons/Main_Menu_Buttons.psd
diff --git a/A3A/addons/main_menu/data/ServerB.paa b/A3A/addons/main_menu/data/buttons/ServerB.paa
similarity index 100%
rename from A3A/addons/main_menu/data/ServerB.paa
rename to A3A/addons/main_menu/data/buttons/ServerB.paa
diff --git a/A3A/addons/main_menu/data/ServerB_Hov.paa b/A3A/addons/main_menu/data/buttons/ServerB_Hov.paa
similarity index 100%
rename from A3A/addons/main_menu/data/ServerB_Hov.paa
rename to A3A/addons/main_menu/data/buttons/ServerB_Hov.paa
diff --git a/A3A/addons/main_menu/data/SteamB.paa b/A3A/addons/main_menu/data/buttons/SteamB.paa
similarity index 100%
rename from A3A/addons/main_menu/data/SteamB.paa
rename to A3A/addons/main_menu/data/buttons/SteamB.paa
diff --git a/A3A/addons/main_menu/data/SteamB_Hov.paa b/A3A/addons/main_menu/data/buttons/SteamB_Hov.paa
similarity index 100%
rename from A3A/addons/main_menu/data/SteamB_Hov.paa
rename to A3A/addons/main_menu/data/buttons/SteamB_Hov.paa
diff --git a/A3A/addons/main_menu/data/WebsiteB.paa b/A3A/addons/main_menu/data/buttons/WebsiteB.paa
similarity index 100%
rename from A3A/addons/main_menu/data/WebsiteB.paa
rename to A3A/addons/main_menu/data/buttons/WebsiteB.paa
diff --git a/A3A/addons/main_menu/data/WebsiteB_Hov.paa b/A3A/addons/main_menu/data/buttons/WebsiteB_Hov.paa
similarity index 100%
rename from A3A/addons/main_menu/data/WebsiteB_Hov.paa
rename to A3A/addons/main_menu/data/buttons/WebsiteB_Hov.paa
diff --git a/A3A/addons/scrt/Stringtable.xml b/A3A/addons/scrt/Stringtable.xml
index 12153ffe1e..ee7a189185 100644
--- a/A3A/addons/scrt/Stringtable.xml
+++ b/A3A/addons/scrt/Stringtable.xml
@@ -1348,7 +1348,7 @@
<t size='0.6' color='#C1C0BB'>Revenu<br/> <t size='0.5' color='#C1C0BB'><br/>HR: +%1<br/>Argent: +%2%3
- <t size='0.6'>%1 receieves <t size='0.6' color='#00FF00'>%2%3</t> for fighting for %4!</t>
+ <t size='0.6'>%1 receives <t size='0.6' color='#00FF00'>%2%3</t> for fighting for %4!</t>
<t size='0.6'>%1 получает <t size='0.6' color='#00FF00'>%2%3</t> на борьбу за %4!</t>
<t size='0.6'>%1 收到了 <t size='0.6' color='#00FF00'>%2%3</t>,因为为%4!而战!</t>
<t size='0.6'>%1이(가) %4을(를) 위해 싸운 것에 대해 <t size='0.6' color='#00FF00'>%2%3</t>을(를) 받았습니다!</t>
@@ -4838,6 +4838,13 @@
공항, 군사 기지와 본부만
Uniquement les aéroports, les bases militaires et les QG
+
+ Only between airports, military bases and HQ
+ Только между аэропортами, военными базами и штаб-квартирами
+ 仅限机场、军事基地和总部之间
+ 공항, 군 기지, 본부 간에만 가능
+ Uniquement entre les aéroports, les bases militaires et les quartiers généraux
+
Enable Napalm Bombing for AI
Включить бомбардировки напалмом для ИИ
@@ -6135,7 +6142,7 @@
<t color='#43A047'>Deployed</t>
<t color='#43A047'>Развер-та</t>
- 已部署
+ <t color='#43A047'>已部署</t>
<t color='#43A047'>배치됨</t>
<t color='#43A047'>Déployé</t>
@@ -6212,28 +6219,28 @@
<t color='#AE1330'>Extreme</t>
<t color='#AE1330'>Экстремальная</t>
- 草木皆兵
+ <t color='#AE1330'>草木皆兵</t>
<t color='#AE1330'>최대</t>
<t color='#AE1330'>Extrême</t>
<t color='#CB5C30'>Very High</t>
<t color='#CB5C30'>Очень высокая</t>
- 全面警戒
+ <t color='#CB5C30'>全面警戒</t>
<t color='#CB5C30'>매우 높음</t>
<t color='#CB5C30'>Très élevé</t>
<t color='#E8A430'>High</t>
<t color='#E8A430'>Высокая</t>
- 高度警戒
+ <t color='#E8A430'>高度警戒</t>
<t color='#E8A430'>높음</t>
<t color='#E8A430'>Élevé</t>
<t color='#D5B276'>Medium</t>
<t color='#D5B276'>Средняя</t>
- 警戒
+ <t color='#D5B276'>警戒</t>
<t color='#D5B276'>중간</t>
<t color='#D5B276'>Moyen</t>
@@ -10627,7 +10634,7 @@
<t color='#800000'>Drone strike</t> is imminent, take cover!
<t color='#800000'>Удар с БПЛА</t> неизбежен, в укрытие!
- 无人机来袭,躲起来!
+ <t color='#800000'>无人机来袭</t>,躲起来!
무인기 공격이 임박했습니다! 엄폐하십시오!
<t color='#800000'>Une attaque de drone</t> est imminente, mettez-vous à l'abri!
@@ -12508,6 +12515,13 @@
플레이어 그룹은 본부, 공군 기지, 군사 기지, 집결 지점, 암거래상으로만 빠른 이동이 가능합니다.
Les groupes de joueurs ne sont autorisés à voyager rapidement que vers le QG, les bases aériennes, les bases militaires, les points de ralliement et les marchands d'armes.
+
+ Player groups are only allowed to Fast Travel between HQ, Airbases, Military Bases, Arms Dealer and to Rally Points.
+ Группам игроков разрешено быстро перемещаться только между штаб-квартирами, авиабазами, военными базами, торговцами оружием и точками сбора.
+ 玩家组队只能快速前往总部、空军基地、军事基地、集结点和军火商。
+ 플레이어 그룹은 본부, 공군 기지, 군사 기지, 무기 상인, 집결 지점 사이로만 빠른 이동이 허용됩니다.
+ Les groupes de joueurs ne sont autorisés à voyager rapidement qu'entre le QG, les bases aériennes, les bases militaires, les marchands d'armes et les points de rassemblement.
+
You can't Fast Travel to an enemy controlled zone.
Вы не можете быстро путешествовать в место, контроллируемое врагом.
diff --git a/A3A/addons/ultimate/CfgFunctions.hpp b/A3A/addons/ultimate/CfgFunctions.hpp
index 58d17ad921..199c5da158 100644
--- a/A3A/addons/ultimate/CfgFunctions.hpp
+++ b/A3A/addons/ultimate/CfgFunctions.hpp
@@ -29,6 +29,12 @@ class CfgFunctions
class initZones {};
class popup {};
};
+ class main_menu
+ {
+ file = QPATHTOFOLDER(functions\main_menu);
+ class isInMenu {};
+ class menuImage {};
+ };
class REINF
{
file = QPATHTOFOLDER(functions\REINF);
diff --git a/A3A/addons/ultimate/functions/main_menu/fn_isInMenu.sqf b/A3A/addons/ultimate/functions/main_menu/fn_isInMenu.sqf
new file mode 100644
index 0000000000..eba196007f
--- /dev/null
+++ b/A3A/addons/ultimate/functions/main_menu/fn_isInMenu.sqf
@@ -0,0 +1,19 @@
+/*
+ Execution On: Client
+
+ Purpose: Checks if player is in main menu, prevents setting changes from bricking game until restart
+
+ Made by: Silence
+
+ Arguments:
+ _unit