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 + + Example: + [player] call menu_framework_fnc_isInMenu; +*/ + +params ["_unit"]; + +if (_unit getVariable ["menu_framework_canPlay", false]) exitWith {true}; + +false \ No newline at end of file diff --git a/A3A/addons/ultimate/functions/main_menu/fn_menuImage.sqf b/A3A/addons/ultimate/functions/main_menu/fn_menuImage.sqf new file mode 100644 index 0000000000..91b81295e7 --- /dev/null +++ b/A3A/addons/ultimate/functions/main_menu/fn_menuImage.sqf @@ -0,0 +1,27 @@ +enableEnvironment false; +showCinemaBorder false; +setViewDistance 500; +setTerrainGrid 50; + +private _displayName = "RscTitleDisplayEmpty"; + +#define IDC_HIDDENTEXT 11420919201199 // fun fact: spells antistasi if you assign each latter a number + +private _id = ["A3AU_layer" + _displayName] call BIS_fnc_rscLayer; +_id cutRsc [_displayName, "PLAIN", 0, false, true]; +private _display = uiNamespace getVariable _displayName; + +private _displayImage = _display ctrlCreate ["RscPicture", IDC_HIDDENTEXT]; + +if (menu_framework_image isEqualTo "None") exitwith { + ctrlDelete _displayImage; +}; + +_displayImage ctrlEnable false; +_displayImage ctrlSetPosition [safeZoneX, safezoneY, safeZoneW, safeZoneH]; +_displayImage ctrlSetText menu_framework_image; +_displayImage ctrlCommit 0; + +if !([player] call A3U_fnc_isInMenu) exitWith { + ctrlDelete _displayImage; +}; \ No newline at end of file