From 7fbc75b375318a96f013453a3dda20325bae1661 Mon Sep 17 00:00:00 2001 From: Khopa Date: Sat, 19 Oct 2019 00:07:37 +0200 Subject: [PATCH] New mission briefing menu, work in progress. --- game/db.py | 41 ++++++++++-- game/factions/germany_1990.py | 1 + game/factions/israel_2000.py | 2 +- game/factions/sweden_1990.py | 31 +++++++++ game/factions/uk_1990.py | 2 +- game/factions/ukraine_2010.py | 51 ++++++++++++++ qt_ui/main.py | 2 + qt_ui/uiconstants.py | 24 ++++++- qt_ui/widgets/QTopPanel.py | 16 ++++- qt_ui/widgets/base/QBaseInformation.py | 11 ++- qt_ui/widgets/base/QPlannedFlightView.py | 29 -------- qt_ui/widgets/map/QLiberationMap.py | 42 +++++++++--- qt_ui/windows/QBaseMenu.py | 10 ++- qt_ui/windows/mission/QChooseAirbase.py | 34 ++++++++++ qt_ui/windows/mission/QFlightItem.py | 20 ++++++ qt_ui/windows/mission/QMissionPlanning.py | 63 ++++++++++++++++++ qt_ui/windows/mission/QPlannedFlightsView.py | 30 +++++++++ .../flight/QF14FlightComputerEditor.py | 0 .../mission/flight/QFlightAircraftEditor.py | 0 .../windows/mission/flight/QFlightPlanner.py | 19 ++++++ .../mission/flight/QFlightWaypointsEditor.py | 0 .../flight/payload/QFlightPayloadTab.py | 16 +++++ .../flight/settings/QFlightDepartureEditor.py | 28 ++++++++ .../flight/settings/QFlightSlotEditor.py | 50 ++++++++++++++ .../flight/settings/QFlightTypeTaskInfo.py | 28 ++++++++ .../settings/QGeneralFlightSettingsTab.py | 29 ++++++++ .../flight/waypoints/QFlightWaypointTab.py | 16 +++++ resources/stylesheets/style.css | 42 ++++++++++++ resources/ui/units/aircrafts/A-10A_24.jpg | Bin 0 -> 1239 bytes resources/ui/units/aircrafts/A-10C_24.jpg | Bin 0 -> 1222 bytes resources/ui/units/aircrafts/A-50_24.jpg | Bin 0 -> 1116 bytes resources/ui/units/aircrafts/AH-1W_24.jpg | Bin 0 -> 1087 bytes resources/ui/units/aircrafts/AH-64A_24.jpg | Bin 0 -> 1201 bytes resources/ui/units/aircrafts/AH-64D_24.jpg | Bin 0 -> 1215 bytes .../ui/units/aircrafts/AJS37 Viggen_24.jpg | Bin 0 -> 1161 bytes resources/ui/units/aircrafts/AV8BNA_24.jpg | Bin 0 -> 1161 bytes resources/ui/units/aircrafts/An-26B_24.jpg | Bin 0 -> 1189 bytes resources/ui/units/aircrafts/An-30M_24.jpg | Bin 0 -> 1115 bytes resources/ui/units/aircrafts/B-17G_24.jpg | Bin 0 -> 1147 bytes resources/ui/units/aircrafts/B-1B_24.jpg | Bin 0 -> 1054 bytes resources/ui/units/aircrafts/B-52H_24.jpg | Bin 0 -> 1120 bytes .../ui/units/aircrafts/Bf 109 K-4_24.jpg | Bin 0 -> 1119 bytes .../ui/units/aircrafts/C-101EB CC_24.jpg | Bin 0 -> 1156 bytes resources/ui/units/aircrafts/C-130_24.jpg | Bin 0 -> 1125 bytes resources/ui/units/aircrafts/CH-47D_24.jpg | Bin 0 -> 1084 bytes resources/ui/units/aircrafts/CH-53E_24.jpg | Bin 0 -> 1068 bytes .../units/aircrafts/Christen Eagle II_24.jpg | Bin 0 -> 1244 bytes resources/ui/units/aircrafts/E-2D_24.jpg | Bin 0 -> 1219 bytes resources/ui/units/aircrafts/E-3C_24.jpg | Bin 0 -> 1150 bytes resources/ui/units/aircrafts/F-117A_24.jpg | Bin 0 -> 1243 bytes resources/ui/units/aircrafts/F-14A_24.jpg | Bin 0 -> 1247 bytes resources/ui/units/aircrafts/F-14B_24.jpg | Bin 0 -> 1147 bytes resources/ui/units/aircrafts/F-15C_24.jpg | Bin 0 -> 1070 bytes resources/ui/units/aircrafts/F-15E_24.jpg | Bin 0 -> 1162 bytes resources/ui/units/aircrafts/F-16C_24.jpg | Bin 0 -> 1124 bytes resources/ui/units/aircrafts/F-4E_24.jpg | Bin 0 -> 1099 bytes resources/ui/units/aircrafts/F-5E_24.jpg | Bin 0 -> 1157 bytes resources/ui/units/aircrafts/F-86F_24.jpg | Bin 0 -> 1094 bytes resources/ui/units/aircrafts/FA-18C_24.jpg | Bin 0 -> 1124 bytes .../ui/units/aircrafts/Fw 190 A-8_24.jpg | Bin 0 -> 1183 bytes .../ui/units/aircrafts/Fw 190 D-9_24.jpg | Bin 0 -> 1094 bytes resources/ui/units/aircrafts/Hawk T.1A_24.jpg | Bin 0 -> 1243 bytes resources/ui/units/aircrafts/I-16_24.jpg | Bin 0 -> 1112 bytes resources/ui/units/aircrafts/IL-76MD_24.jpg | Bin 0 -> 1070 bytes resources/ui/units/aircrafts/IL-78M_24.jpg | Bin 0 -> 1107 bytes resources/ui/units/aircrafts/J-11A_24.jpg | Bin 0 -> 1158 bytes resources/ui/units/aircrafts/KC-135_24.jpg | Bin 0 -> 1136 bytes resources/ui/units/aircrafts/KJ-2000_24.jpg | Bin 0 -> 1136 bytes resources/ui/units/aircrafts/Ka-27_24.jpg | Bin 0 -> 1196 bytes resources/ui/units/aircrafts/Ka-50_24.jpg | Bin 0 -> 1199 bytes resources/ui/units/aircrafts/L-39C_24.jpg | Bin 0 -> 1176 bytes resources/ui/units/aircrafts/L-39ZA_24.jpg | Bin 0 -> 1157 bytes resources/ui/units/aircrafts/M-2000C_24.jpg | Bin 0 -> 1129 bytes .../ui/units/aircrafts/MB-339A PAN_24.jpg | Bin 0 -> 1223 bytes resources/ui/units/aircrafts/MQ RQ-1_24.jpg | Bin 0 -> 1017 bytes resources/ui/units/aircrafts/Mi-24_24.jpg | Bin 0 -> 1203 bytes resources/ui/units/aircrafts/Mi-26_24.jpg | Bin 0 -> 1122 bytes resources/ui/units/aircrafts/Mi-28_24.jpg | Bin 0 -> 1169 bytes resources/ui/units/aircrafts/Mi-8MT_24.jpg | Bin 0 -> 1080 bytes resources/ui/units/aircrafts/MiG-15bis_24.jpg | Bin 0 -> 1112 bytes resources/ui/units/aircrafts/MiG-19P_24.jpg | Bin 0 -> 1122 bytes resources/ui/units/aircrafts/MiG-21Bis_24.jpg | Bin 0 -> 1161 bytes resources/ui/units/aircrafts/MiG-23MLD_24.jpg | Bin 0 -> 1146 bytes resources/ui/units/aircrafts/MiG-25PD_24.jpg | Bin 0 -> 1107 bytes resources/ui/units/aircrafts/MiG-25RBT_24.jpg | Bin 0 -> 1111 bytes resources/ui/units/aircrafts/MiG-27K_24.jpg | Bin 0 -> 1140 bytes resources/ui/units/aircrafts/MiG-29A_24.jpg | Bin 0 -> 1128 bytes resources/ui/units/aircrafts/MiG-29S_24.jpg | Bin 0 -> 1149 bytes resources/ui/units/aircrafts/MiG-31_24.jpg | Bin 0 -> 1180 bytes .../ui/units/aircrafts/Mirage 2000-5_24.jpg | Bin 0 -> 1093 bytes resources/ui/units/aircrafts/OH-58D_24.jpg | Bin 0 -> 1171 bytes resources/ui/units/aircrafts/P-51D_24.jpg | Bin 0 -> 1170 bytes resources/ui/units/aircrafts/S-3B_24.jpg | Bin 0 -> 1099 bytes resources/ui/units/aircrafts/SA342L_24.jpg | Bin 0 -> 1196 bytes resources/ui/units/aircrafts/SA342M_24.jpg | Bin 0 -> 1173 bytes .../ui/units/aircrafts/SA342Minigun_24.jpg | Bin 0 -> 1211 bytes .../ui/units/aircrafts/SA342Mistral_24.jpg | Bin 0 -> 1168 bytes resources/ui/units/aircrafts/SH-60B_24.jpg | Bin 0 -> 1085 bytes .../units/aircrafts/Spitfire LF Mk. IX_24.jpg | Bin 0 -> 1104 bytes resources/ui/units/aircrafts/Su-17M4_24.jpg | Bin 0 -> 1156 bytes resources/ui/units/aircrafts/Su-24MR_24.jpg | Bin 0 -> 1099 bytes resources/ui/units/aircrafts/Su-24M_24.jpg | Bin 0 -> 1122 bytes resources/ui/units/aircrafts/Su-25TM_24.jpg | Bin 0 -> 1084 bytes resources/ui/units/aircrafts/Su-25T_24.jpg | Bin 0 -> 1088 bytes resources/ui/units/aircrafts/Su-25_24.jpg | Bin 0 -> 1115 bytes resources/ui/units/aircrafts/Su-27_24.jpg | Bin 0 -> 1077 bytes resources/ui/units/aircrafts/Su-30_24.jpg | Bin 0 -> 1057 bytes resources/ui/units/aircrafts/Su-33_24.jpg | Bin 0 -> 1123 bytes resources/ui/units/aircrafts/Su-34_24.jpg | Bin 0 -> 1157 bytes resources/ui/units/aircrafts/Tornado_24.jpg | Bin 0 -> 1176 bytes resources/ui/units/aircrafts/Tu-142M_24.jpg | Bin 0 -> 1068 bytes resources/ui/units/aircrafts/Tu-160_24.jpg | Bin 0 -> 1037 bytes resources/ui/units/aircrafts/Tu-22M3_24.jpg | Bin 0 -> 1064 bytes resources/ui/units/aircrafts/Tu-95_24.jpg | Bin 0 -> 1064 bytes resources/ui/units/aircrafts/UH-1H_24.jpg | Bin 0 -> 1131 bytes resources/ui/units/aircrafts/UH-60A_24.jpg | Bin 0 -> 1199 bytes resources/ui/units/aircrafts/Yak-40_24.jpg | Bin 0 -> 1102 bytes resources/ui/units/readme.md | 29 ++++++++ resources/ui/units/vehicles/AAV-7_24.jpg | Bin 0 -> 1074 bytes resources/ui/units/vehicles/BMD-1_24.jpg | Bin 0 -> 1071 bytes resources/ui/units/vehicles/BMP-1_24.jpg | Bin 0 -> 1047 bytes resources/ui/units/vehicles/BMP-2_24.jpg | Bin 0 -> 1073 bytes resources/ui/units/vehicles/BMP-3_24.jpg | Bin 0 -> 1092 bytes resources/ui/units/vehicles/BTR-80_24.jpg | Bin 0 -> 1096 bytes resources/ui/units/vehicles/BTR-RD_24.jpg | Bin 0 -> 1101 bytes .../ui/units/vehicles/Bedford MWD_24.jpg | Bin 0 -> 1045 bytes .../ui/units/vehicles/Blitz 3.6-6700A_24.jpg | Bin 0 -> 1040 bytes resources/ui/units/vehicles/CCKW 353_24.jpg | Bin 0 -> 1101 bytes .../ui/units/vehicles/Challenger 2_24.jpg | Bin 0 -> 1079 bytes resources/ui/units/vehicles/Cobra_24.jpg | Bin 0 -> 1085 bytes .../ui/units/vehicles/Cromwell IV_24.jpg | Bin 0 -> 1119 bytes .../ui/units/vehicles/Jagdpanther_24.jpg | Bin 0 -> 1071 bytes .../ui/units/vehicles/Jagdpanzer IV_24.jpg | Bin 0 -> 1108 bytes resources/ui/units/vehicles/LAV-25_24.jpg | Bin 0 -> 1109 bytes resources/ui/units/vehicles/Leclerc_24.jpg | Bin 0 -> 1068 bytes .../ui/units/vehicles/Leopard 1A3_24.jpg | Bin 0 -> 1076 bytes resources/ui/units/vehicles/Leopard-2_24.jpg | Bin 0 -> 1037 bytes resources/ui/units/vehicles/M 818_24.jpg | Bin 0 -> 1081 bytes resources/ui/units/vehicles/M-1 Abrams_24.jpg | Bin 0 -> 1095 bytes resources/ui/units/vehicles/M-113_24.jpg | Bin 0 -> 1067 bytes .../ui/units/vehicles/M-2 Bradley_24.jpg | Bin 0 -> 1081 bytes .../ui/units/vehicles/M1043 HMMWV_24.jpg | Bin 0 -> 1091 bytes resources/ui/units/vehicles/M109_24.jpg | Bin 0 -> 1083 bytes .../units/vehicles/M1126 Stryker IFV_24.jpg | Bin 0 -> 1076 bytes .../units/vehicles/M1128 Stryker MGS_24.jpg | Bin 0 -> 1129 bytes .../units/vehicles/M1134 Stryker ATGM_24.jpg | Bin 0 -> 1074 bytes resources/ui/units/vehicles/M12_24.jpg | Bin 0 -> 1081 bytes .../units/vehicles/M30 Cargo Carrier_24.jpg | Bin 0 -> 1050 bytes .../vehicles/M4A4 Sherman Firefly_24.jpg | Bin 0 -> 1065 bytes .../ui/units/vehicles/M4A4 Sherman_24.jpg | Bin 0 -> 1059 bytes .../ui/units/vehicles/MCV-80 Warrior_24.jpg | Bin 0 -> 1087 bytes resources/ui/units/vehicles/MTLB_24.jpg | Bin 0 -> 1075 bytes .../ui/units/vehicles/Merkava Mk IV_24.jpg | Bin 0 -> 1092 bytes resources/ui/units/vehicles/Panther G_24.jpg | Bin 0 -> 1074 bytes .../ui/units/vehicles/PzKpfw IV H_24.jpg | Bin 0 -> 1090 bytes resources/ui/units/vehicles/T-55_24.jpg | Bin 0 -> 1044 bytes resources/ui/units/vehicles/T-72B_24.jpg | Bin 0 -> 1035 bytes resources/ui/units/vehicles/T-80U_24.jpg | Bin 0 -> 1062 bytes resources/ui/units/vehicles/T-90_24.jpg | Bin 0 -> 1075 bytes resources/ui/units/vehicles/TPZ_24.jpg | Bin 0 -> 1100 bytes resources/ui/units/vehicles/Tiger II_24.jpg | Bin 0 -> 1044 bytes resources/ui/units/vehicles/Tiger I_24.jpg | Bin 0 -> 1067 bytes resources/ui/units/vehicles/ZBD-04A_24.jpg | Bin 0 -> 1096 bytes 163 files changed, 612 insertions(+), 54 deletions(-) create mode 100644 game/factions/sweden_1990.py create mode 100644 game/factions/ukraine_2010.py delete mode 100644 qt_ui/widgets/base/QPlannedFlightView.py create mode 100644 qt_ui/windows/mission/QChooseAirbase.py create mode 100644 qt_ui/windows/mission/QFlightItem.py create mode 100644 qt_ui/windows/mission/QMissionPlanning.py create mode 100644 qt_ui/windows/mission/QPlannedFlightsView.py create mode 100644 qt_ui/windows/mission/flight/QF14FlightComputerEditor.py create mode 100644 qt_ui/windows/mission/flight/QFlightAircraftEditor.py create mode 100644 qt_ui/windows/mission/flight/QFlightPlanner.py create mode 100644 qt_ui/windows/mission/flight/QFlightWaypointsEditor.py create mode 100644 qt_ui/windows/mission/flight/payload/QFlightPayloadTab.py create mode 100644 qt_ui/windows/mission/flight/settings/QFlightDepartureEditor.py create mode 100644 qt_ui/windows/mission/flight/settings/QFlightSlotEditor.py create mode 100644 qt_ui/windows/mission/flight/settings/QFlightTypeTaskInfo.py create mode 100644 qt_ui/windows/mission/flight/settings/QGeneralFlightSettingsTab.py create mode 100644 qt_ui/windows/mission/flight/waypoints/QFlightWaypointTab.py create mode 100644 resources/ui/units/aircrafts/A-10A_24.jpg create mode 100644 resources/ui/units/aircrafts/A-10C_24.jpg create mode 100644 resources/ui/units/aircrafts/A-50_24.jpg create mode 100644 resources/ui/units/aircrafts/AH-1W_24.jpg create mode 100644 resources/ui/units/aircrafts/AH-64A_24.jpg create mode 100644 resources/ui/units/aircrafts/AH-64D_24.jpg create mode 100644 resources/ui/units/aircrafts/AJS37 Viggen_24.jpg create mode 100644 resources/ui/units/aircrafts/AV8BNA_24.jpg create mode 100644 resources/ui/units/aircrafts/An-26B_24.jpg create mode 100644 resources/ui/units/aircrafts/An-30M_24.jpg create mode 100644 resources/ui/units/aircrafts/B-17G_24.jpg create mode 100644 resources/ui/units/aircrafts/B-1B_24.jpg create mode 100644 resources/ui/units/aircrafts/B-52H_24.jpg create mode 100644 resources/ui/units/aircrafts/Bf 109 K-4_24.jpg create mode 100644 resources/ui/units/aircrafts/C-101EB CC_24.jpg create mode 100644 resources/ui/units/aircrafts/C-130_24.jpg create mode 100644 resources/ui/units/aircrafts/CH-47D_24.jpg create mode 100644 resources/ui/units/aircrafts/CH-53E_24.jpg create mode 100644 resources/ui/units/aircrafts/Christen Eagle II_24.jpg create mode 100644 resources/ui/units/aircrafts/E-2D_24.jpg create mode 100644 resources/ui/units/aircrafts/E-3C_24.jpg create mode 100644 resources/ui/units/aircrafts/F-117A_24.jpg create mode 100644 resources/ui/units/aircrafts/F-14A_24.jpg create mode 100644 resources/ui/units/aircrafts/F-14B_24.jpg create mode 100644 resources/ui/units/aircrafts/F-15C_24.jpg create mode 100644 resources/ui/units/aircrafts/F-15E_24.jpg create mode 100644 resources/ui/units/aircrafts/F-16C_24.jpg create mode 100644 resources/ui/units/aircrafts/F-4E_24.jpg create mode 100644 resources/ui/units/aircrafts/F-5E_24.jpg create mode 100644 resources/ui/units/aircrafts/F-86F_24.jpg create mode 100644 resources/ui/units/aircrafts/FA-18C_24.jpg create mode 100644 resources/ui/units/aircrafts/Fw 190 A-8_24.jpg create mode 100644 resources/ui/units/aircrafts/Fw 190 D-9_24.jpg create mode 100644 resources/ui/units/aircrafts/Hawk T.1A_24.jpg create mode 100644 resources/ui/units/aircrafts/I-16_24.jpg create mode 100644 resources/ui/units/aircrafts/IL-76MD_24.jpg create mode 100644 resources/ui/units/aircrafts/IL-78M_24.jpg create mode 100644 resources/ui/units/aircrafts/J-11A_24.jpg create mode 100644 resources/ui/units/aircrafts/KC-135_24.jpg create mode 100644 resources/ui/units/aircrafts/KJ-2000_24.jpg create mode 100644 resources/ui/units/aircrafts/Ka-27_24.jpg create mode 100644 resources/ui/units/aircrafts/Ka-50_24.jpg create mode 100644 resources/ui/units/aircrafts/L-39C_24.jpg create mode 100644 resources/ui/units/aircrafts/L-39ZA_24.jpg create mode 100644 resources/ui/units/aircrafts/M-2000C_24.jpg create mode 100644 resources/ui/units/aircrafts/MB-339A PAN_24.jpg create mode 100644 resources/ui/units/aircrafts/MQ RQ-1_24.jpg create mode 100644 resources/ui/units/aircrafts/Mi-24_24.jpg create mode 100644 resources/ui/units/aircrafts/Mi-26_24.jpg create mode 100644 resources/ui/units/aircrafts/Mi-28_24.jpg create mode 100644 resources/ui/units/aircrafts/Mi-8MT_24.jpg create mode 100644 resources/ui/units/aircrafts/MiG-15bis_24.jpg create mode 100644 resources/ui/units/aircrafts/MiG-19P_24.jpg create mode 100644 resources/ui/units/aircrafts/MiG-21Bis_24.jpg create mode 100644 resources/ui/units/aircrafts/MiG-23MLD_24.jpg create mode 100644 resources/ui/units/aircrafts/MiG-25PD_24.jpg create mode 100644 resources/ui/units/aircrafts/MiG-25RBT_24.jpg create mode 100644 resources/ui/units/aircrafts/MiG-27K_24.jpg create mode 100644 resources/ui/units/aircrafts/MiG-29A_24.jpg create mode 100644 resources/ui/units/aircrafts/MiG-29S_24.jpg create mode 100644 resources/ui/units/aircrafts/MiG-31_24.jpg create mode 100644 resources/ui/units/aircrafts/Mirage 2000-5_24.jpg create mode 100644 resources/ui/units/aircrafts/OH-58D_24.jpg create mode 100644 resources/ui/units/aircrafts/P-51D_24.jpg create mode 100644 resources/ui/units/aircrafts/S-3B_24.jpg create mode 100644 resources/ui/units/aircrafts/SA342L_24.jpg create mode 100644 resources/ui/units/aircrafts/SA342M_24.jpg create mode 100644 resources/ui/units/aircrafts/SA342Minigun_24.jpg create mode 100644 resources/ui/units/aircrafts/SA342Mistral_24.jpg create mode 100644 resources/ui/units/aircrafts/SH-60B_24.jpg create mode 100644 resources/ui/units/aircrafts/Spitfire LF Mk. IX_24.jpg create mode 100644 resources/ui/units/aircrafts/Su-17M4_24.jpg create mode 100644 resources/ui/units/aircrafts/Su-24MR_24.jpg create mode 100644 resources/ui/units/aircrafts/Su-24M_24.jpg create mode 100644 resources/ui/units/aircrafts/Su-25TM_24.jpg create mode 100644 resources/ui/units/aircrafts/Su-25T_24.jpg create mode 100644 resources/ui/units/aircrafts/Su-25_24.jpg create mode 100644 resources/ui/units/aircrafts/Su-27_24.jpg create mode 100644 resources/ui/units/aircrafts/Su-30_24.jpg create mode 100644 resources/ui/units/aircrafts/Su-33_24.jpg create mode 100644 resources/ui/units/aircrafts/Su-34_24.jpg create mode 100644 resources/ui/units/aircrafts/Tornado_24.jpg create mode 100644 resources/ui/units/aircrafts/Tu-142M_24.jpg create mode 100644 resources/ui/units/aircrafts/Tu-160_24.jpg create mode 100644 resources/ui/units/aircrafts/Tu-22M3_24.jpg create mode 100644 resources/ui/units/aircrafts/Tu-95_24.jpg create mode 100644 resources/ui/units/aircrafts/UH-1H_24.jpg create mode 100644 resources/ui/units/aircrafts/UH-60A_24.jpg create mode 100644 resources/ui/units/aircrafts/Yak-40_24.jpg create mode 100644 resources/ui/units/readme.md create mode 100644 resources/ui/units/vehicles/AAV-7_24.jpg create mode 100644 resources/ui/units/vehicles/BMD-1_24.jpg create mode 100644 resources/ui/units/vehicles/BMP-1_24.jpg create mode 100644 resources/ui/units/vehicles/BMP-2_24.jpg create mode 100644 resources/ui/units/vehicles/BMP-3_24.jpg create mode 100644 resources/ui/units/vehicles/BTR-80_24.jpg create mode 100644 resources/ui/units/vehicles/BTR-RD_24.jpg create mode 100644 resources/ui/units/vehicles/Bedford MWD_24.jpg create mode 100644 resources/ui/units/vehicles/Blitz 3.6-6700A_24.jpg create mode 100644 resources/ui/units/vehicles/CCKW 353_24.jpg create mode 100644 resources/ui/units/vehicles/Challenger 2_24.jpg create mode 100644 resources/ui/units/vehicles/Cobra_24.jpg create mode 100644 resources/ui/units/vehicles/Cromwell IV_24.jpg create mode 100644 resources/ui/units/vehicles/Jagdpanther_24.jpg create mode 100644 resources/ui/units/vehicles/Jagdpanzer IV_24.jpg create mode 100644 resources/ui/units/vehicles/LAV-25_24.jpg create mode 100644 resources/ui/units/vehicles/Leclerc_24.jpg create mode 100644 resources/ui/units/vehicles/Leopard 1A3_24.jpg create mode 100644 resources/ui/units/vehicles/Leopard-2_24.jpg create mode 100644 resources/ui/units/vehicles/M 818_24.jpg create mode 100644 resources/ui/units/vehicles/M-1 Abrams_24.jpg create mode 100644 resources/ui/units/vehicles/M-113_24.jpg create mode 100644 resources/ui/units/vehicles/M-2 Bradley_24.jpg create mode 100644 resources/ui/units/vehicles/M1043 HMMWV_24.jpg create mode 100644 resources/ui/units/vehicles/M109_24.jpg create mode 100644 resources/ui/units/vehicles/M1126 Stryker IFV_24.jpg create mode 100644 resources/ui/units/vehicles/M1128 Stryker MGS_24.jpg create mode 100644 resources/ui/units/vehicles/M1134 Stryker ATGM_24.jpg create mode 100644 resources/ui/units/vehicles/M12_24.jpg create mode 100644 resources/ui/units/vehicles/M30 Cargo Carrier_24.jpg create mode 100644 resources/ui/units/vehicles/M4A4 Sherman Firefly_24.jpg create mode 100644 resources/ui/units/vehicles/M4A4 Sherman_24.jpg create mode 100644 resources/ui/units/vehicles/MCV-80 Warrior_24.jpg create mode 100644 resources/ui/units/vehicles/MTLB_24.jpg create mode 100644 resources/ui/units/vehicles/Merkava Mk IV_24.jpg create mode 100644 resources/ui/units/vehicles/Panther G_24.jpg create mode 100644 resources/ui/units/vehicles/PzKpfw IV H_24.jpg create mode 100644 resources/ui/units/vehicles/T-55_24.jpg create mode 100644 resources/ui/units/vehicles/T-72B_24.jpg create mode 100644 resources/ui/units/vehicles/T-80U_24.jpg create mode 100644 resources/ui/units/vehicles/T-90_24.jpg create mode 100644 resources/ui/units/vehicles/TPZ_24.jpg create mode 100644 resources/ui/units/vehicles/Tiger II_24.jpg create mode 100644 resources/ui/units/vehicles/Tiger I_24.jpg create mode 100644 resources/ui/units/vehicles/ZBD-04A_24.jpg diff --git a/game/db.py b/game/db.py index 8141e237..6302863b 100644 --- a/game/db.py +++ b/game/db.py @@ -30,9 +30,11 @@ from game.factions.russia_1965 import Russia_1965 from game.factions.russia_1990 import Russia_1990 from game.factions.russia_2010 import Russia_2010 from game.factions.spain_1990 import Spain_1990 +from game.factions.sweden_1990 import Sweden_1990 from game.factions.turkey_2005 import Turkey_2005 from game.factions.uae_2005 import UAE_2005 from game.factions.uk_1990 import UnitedKingdom_1990 +from game.factions.ukraine_2010 import Ukraine_2010 from game.factions.usa_1944 import USA_1944 from game.factions.usa_1955 import USA_1955 from game.factions.usa_1960 import USA_1960 @@ -162,23 +164,26 @@ PRICES = { Armor.IFV_BMD_1: 8, Armor.IFV_BMP_1: 14, Armor.IFV_BMP_2: 16, - Armor.IFV_BMP_3: 20, + Armor.IFV_BMP_3: 18, + Armor.ZBD_04A: 12, Armor.APC_Cobra: 4, Armor.APC_M113: 6, Armor.APC_M1043_HMMWV_Armament: 2, Armor.ATGM_M1045_HMMWV_TOW: 8, Armor.IFV_M2A2_Bradley: 12, - Armor.APC_M1126_Stryker_ICV: 16, - Armor.ATGM_M1134_Stryker: 18, + Armor.APC_M1126_Stryker_ICV: 10, + Armor.ATGM_M1134_Stryker: 12, Armor.MBT_M60A3_Patton: 18, Armor.MBT_M1A2_Abrams: 35, Armor.MBT_Leclerc: 35, Armor.MBT_Leopard_1A3: 24, Armor.MBT_Leopard_2: 35, Armor.MBT_Merkava_Mk__4: 35, - Armor.TPz_Fuchs: 8, + Armor.TPz_Fuchs: 5, Armor.MBT_Challenger_II: 30, + Armor.IFV_Marder: 10, + Armor.IFV_MCV_80: 10, Unarmed.Transport_UAZ_469: 3, Unarmed.Transport_Ural_375: 3, @@ -336,9 +341,24 @@ UNIT_BY_TASK = { Armor.ARV_BRDM_2, Armor.ARV_BRDM_2, Armor.ARV_BTR_RD, + Armor.ARV_BTR_RD, + Armor.ARV_BTR_RD, + Armor.ARV_BTR_RD, Armor.APC_BTR_80, Armor.APC_BTR_80, Armor.APC_BTR_80, + Armor.APC_BTR_80, + Armor.APC_BTR_80, + Armor.IFV_BMP_1, + Armor.IFV_BMP_1, + Armor.IFV_BMP_1, + Armor.IFV_BMP_2, + Armor.IFV_BMP_2, + Armor.IFV_BMP_3, + Armor.IFV_BMP_3, + Armor.ZBD_04A, + Armor.ZBD_04A, + Armor.ZBD_04A, Armor.MBT_T_55, Armor.MBT_T_55, Armor.MBT_T_55, @@ -368,6 +388,16 @@ UNIT_BY_TASK = { Armor.IFV_M2A2_Bradley, Armor.ATGM_M1134_Stryker, Armor.ATGM_M1134_Stryker, + Armor.APC_M1126_Stryker_ICV, + Armor.APC_M1126_Stryker_ICV, + Armor.APC_M1126_Stryker_ICV, + Armor.IFV_MCV_80, + Armor.IFV_MCV_80, + Armor.IFV_MCV_80, + Armor.IFV_Marder, + Armor.IFV_Marder, + Armor.IFV_Marder, + Armor.IFV_Marder, Armor.MBT_M60A3_Patton, Armor.MBT_M60A3_Patton, Armor.MBT_M60A3_Patton, @@ -531,6 +561,8 @@ FACTIONS = { "United Kingdown 1990": UnitedKingdom_1990, "Spain 1990": Spain_1990, "Italy 1990": Italy_1990, + "Sweden 1990": Sweden_1990, + "Ukrain 2010": Ukraine_2010, "India 2010": India_2010, "Israel 2000": Israel_2000, "Turkey 2005": Turkey_2005, @@ -899,7 +931,6 @@ class DefaultLiveries: class Default(Enum): af_standard = "" -# TODO : refactor/remove OH_58D.Liveries = DefaultLiveries F_16C_50.Liveries = DefaultLiveries P_51D_30_NA.Liveries = DefaultLiveries \ No newline at end of file diff --git a/game/factions/germany_1990.py b/game/factions/germany_1990.py index e819b8ca..23d36843 100644 --- a/game/factions/germany_1990.py +++ b/game/factions/germany_1990.py @@ -23,6 +23,7 @@ Germany_1990 = { Armor.TPz_Fuchs, Armor.MBT_Leopard_1A3, Armor.MBT_Leopard_2, + Armor.IFV_Marder, Unarmed.Transport_M818, Infantry.Infantry_M4, diff --git a/game/factions/israel_2000.py b/game/factions/israel_2000.py index 438bf33e..c7449fa0 100644 --- a/game/factions/israel_2000.py +++ b/game/factions/israel_2000.py @@ -20,7 +20,7 @@ Israel_2000 = { AH_64D, Armor.MBT_Merkava_Mk__4, - Armor.APC_M113, # Standing as VAB + Armor.APC_M113, Unarmed.Transport_M818, Infantry.Infantry_M4, diff --git a/game/factions/sweden_1990.py b/game/factions/sweden_1990.py new file mode 100644 index 00000000..4a1c711a --- /dev/null +++ b/game/factions/sweden_1990.py @@ -0,0 +1,31 @@ +from dcs.vehicles import * +from dcs.ships import * +from dcs.planes import * +from dcs.helicopters import * + +Sweden_1990 = { + "country": "Sweden", + "side": "blue", + "units": [ + AJS37, + + UH_1H, + + AirDefence.SAM_Hawk_LN_M192, + + Armor.IFV_MCV_80, # Standing as Strf 90 + Armor.MBT_Leopard_2, + Armor.APC_M1126_Stryker_ICV, # Closest thing available + + Unarmed.Transport_Ural_375, + Unarmed.Transport_UAZ_469, + Infantry.Soldier_AK, + CV_1143_5_Admiral_Kuznetsov, + Bulk_cargo_ship_Yakushev, + Dry_cargo_ship_Ivanov, + Tanker_Elnya_160, + ], + "shorad":[ + AirDefence.SAM_Avenger_M1097 + ] +} \ No newline at end of file diff --git a/game/factions/uk_1990.py b/game/factions/uk_1990.py index 5febf4dd..33cb324e 100644 --- a/game/factions/uk_1990.py +++ b/game/factions/uk_1990.py @@ -20,7 +20,7 @@ UnitedKingdom_1990 = { AH_64A, Armor.MBT_Challenger_II, - Armor.IFV_M2A2_Bradley, # Standing as Warrior IFV + Armor.IFV_MCV_80, Unarmed.Transport_M818, Infantry.Infantry_M4, diff --git a/game/factions/ukraine_2010.py b/game/factions/ukraine_2010.py new file mode 100644 index 00000000..f5650fa7 --- /dev/null +++ b/game/factions/ukraine_2010.py @@ -0,0 +1,51 @@ +from dcs.vehicles import * +from dcs.ships import * +from dcs.planes import * +from dcs.helicopters import * + +Ukraine_2010 = { + "country": "Ukraine", + "side": "blue", + "units": [ + Su_25, + Su_25T, + Su_24M, + Su_27, + MiG_29S, + L_39ZA, + + IL_76MD, + IL_78M, + An_26B, + An_30M, + Yak_40, + A_50, + + Mi_8MT, + Mi_24V, + + AirDefence.SAM_SA_3_S_125_LN_5P73, + AirDefence.SAM_SA_11_Buk_LN_9A310M1, + AirDefence.SAM_SA_10_S_300PS_LN_5P85C, + + Armor.APC_M1043_HMMWV_Armament, + Armor.IFV_BMP_3, + Armor.IFV_BMP_2, + Armor.APC_BTR_80, + Armor.MBT_T_80U, + Armor.MBT_T_72B, + + Unarmed.Transport_Ural_375, + Unarmed.Transport_UAZ_469, + Infantry.Soldier_AK, + CV_1143_5_Admiral_Kuznetsov, + Bulk_cargo_ship_Yakushev, + Dry_cargo_ship_Ivanov, + Tanker_Elnya_160, + ], + "shorad":[ + AirDefence.SAM_SA_19_Tunguska_2S6, + AirDefence.SAM_SA_13_Strela_10M3_9A35M3, + AirDefence.AAA_ZU_23_on_Ural_375 + ] +} \ No newline at end of file diff --git a/qt_ui/main.py b/qt_ui/main.py index 36e53797..e17a0d0d 100644 --- a/qt_ui/main.py +++ b/qt_ui/main.py @@ -29,6 +29,8 @@ if __name__ == "__main__": app = QApplication(sys.argv) uiconstants.load_icons() uiconstants.load_event_icons() + uiconstants.load_aircraft_icons() + uiconstants.load_vehicle_icons() # Splash screen setup pixmap = QPixmap("./resources/ui/splash_screen.png") diff --git a/qt_ui/uiconstants.py b/qt_ui/uiconstants.py index 532898da..1cef14aa 100644 --- a/qt_ui/uiconstants.py +++ b/qt_ui/uiconstants.py @@ -1,4 +1,5 @@ # URL for UI links +import os from typing import Dict from PySide2.QtGui import QColor, QFont, QPixmap @@ -38,7 +39,8 @@ CP_SIZE = 25 FONT = QFont("Arial", 12, weight=5, italic=True) - +AIRCRAFT_ICONS: Dict[str, QPixmap] = {} +VEHICLES_ICONS: Dict[str, QPixmap] = {} ICONS: Dict[str, QPixmap] = {} def load_icons(): @@ -93,4 +95,22 @@ def load_event_icons(): NavalInterceptEvent: "naval_intercept", StrikeEvent: "strike", UnitsDeliveryEvent: "delivery"}.items(): - EVENT_ICONS[category] = QPixmap("./resources/ui/events/" + image + ".png") \ No newline at end of file + EVENT_ICONS[category] = QPixmap("./resources/ui/events/" + image + ".png") + + +def load_aircraft_icons(): + for aircraft in os.listdir("./resources/ui/units/aircrafts/"): + print(aircraft) + if aircraft.endswith(".jpg"): + print(aircraft[:-7] + " : " + os.path.join("./resources/ui/units/aircrafts/", aircraft) + " ") + AIRCRAFT_ICONS[aircraft[:-7]] = QPixmap(os.path.join("./resources/ui/units/aircrafts/", aircraft)) + AIRCRAFT_ICONS["F-16C_50"] = AIRCRAFT_ICONS["F-16C"] + AIRCRAFT_ICONS["FA-18C_hornet"] = AIRCRAFT_ICONS["FA-18C"] + + +def load_vehicle_icons(): + for vehicle in os.listdir("./resources/ui/units/vehicles/"): + print(vehicle) + if vehicle.endswith(".jpg"): + print(vehicle[:-7] + " : " + os.path.join("./resources/ui/units/vehicles/", vehicle) + " ") + VEHICLES_ICONS[vehicle[:-7]] = QPixmap(os.path.join("./resources/ui/units/vehicles/", vehicle)) diff --git a/qt_ui/widgets/QTopPanel.py b/qt_ui/widgets/QTopPanel.py index 80480943..cf02b625 100644 --- a/qt_ui/widgets/QTopPanel.py +++ b/qt_ui/widgets/QTopPanel.py @@ -1,4 +1,4 @@ -from PySide2.QtWidgets import QFrame, QHBoxLayout, QPushButton, QVBoxLayout, QMessageBox +from PySide2.QtWidgets import QFrame, QHBoxLayout, QPushButton, QVBoxLayout, QMessageBox, QGridLayout from game import Game from qt_ui.widgets.QBudgetBox import QBudgetBox @@ -7,6 +7,7 @@ from qt_ui.widgets.QTurnCounter import QTurnCounter import qt_ui.uiconstants as CONST from qt_ui.windows.GameUpdateSignal import GameUpdateSignal +from qt_ui.windows.mission.QMissionPlanning import QMissionPlanning from qt_ui.windows.settings.QSettingsWindow import QSettingsWindow @@ -23,11 +24,17 @@ class QTopPanel(QFrame): self.turnCounter = QTurnCounter() self.budgetBox = QBudgetBox() + self.passTurnButton = QPushButton("Pass Turn") self.passTurnButton.setIcon(CONST.ICONS["PassTurn"]) self.passTurnButton.setProperty("style", "btn-primary") self.passTurnButton.clicked.connect(self.passTurn) + self.proceedButton = QPushButton("Proceed") + self.proceedButton.setIcon(CONST.ICONS["PassTurn"]) + self.proceedButton.setProperty("style", "btn-primary") + self.proceedButton.clicked.connect(self.proceed) + self.submenus = QVBoxLayout() self.settings = QPushButton("Settings") self.settings.setIcon(CONST.ICONS["Settings"]) @@ -48,6 +55,7 @@ class QTopPanel(QFrame): self.layout.addWidget(self.turnCounter) self.layout.addWidget(self.budgetBox) self.layout.addWidget(self.passTurnButton) + self.layout.addWidget(self.proceedButton) self.setLayout(self.layout) def setGame(self, game:Game): @@ -66,4 +74,8 @@ class QTopPanel(QFrame): def passTurn(self): self.game.pass_turn() - GameUpdateSignal.get_instance().updateGame(self.game) \ No newline at end of file + GameUpdateSignal.get_instance().updateGame(self.game) + + def proceed(self): + self.subwindow = QMissionPlanning(self.game) + self.subwindow.show() \ No newline at end of file diff --git a/qt_ui/widgets/base/QBaseInformation.py b/qt_ui/widgets/base/QBaseInformation.py index 0bea5bdb..1fd7968b 100644 --- a/qt_ui/widgets/base/QBaseInformation.py +++ b/qt_ui/widgets/base/QBaseInformation.py @@ -1,5 +1,7 @@ from PySide2.QtWidgets import QGridLayout, QLabel, QGroupBox, QVBoxLayout +from game import db +from qt_ui.uiconstants import AIRCRAFT_ICONS, VEHICLES_ICONS from theater import ControlPoint, Airport @@ -26,7 +28,14 @@ class QBaseInformation(QGroupBox): i = 0 for k,v in unit_dict.items(): - self.layout.addWidget(QLabel(str(v) + " x " + k), i, 0) + icon = QLabel() + if k in VEHICLES_ICONS.keys(): + icon.setPixmap(VEHICLES_ICONS[k]) + else: + icon.setText(""+k[:6]+"") + icon.setProperty("style", "icon-plane") + self.layout.addWidget(icon, i, 0) + self.layout.addWidget(QLabel(str(v) + " x " + k), i, 1) i = i + 1 stretch = QVBoxLayout() diff --git a/qt_ui/widgets/base/QPlannedFlightView.py b/qt_ui/widgets/base/QPlannedFlightView.py deleted file mode 100644 index 6032579f..00000000 --- a/qt_ui/widgets/base/QPlannedFlightView.py +++ /dev/null @@ -1,29 +0,0 @@ -from PySide2.QtWidgets import QGridLayout, QLabel, QGroupBox, QVBoxLayout, QHBoxLayout - -from game import db -from gen.flights.ai_flight_planner import FlightPlanner - - -class QPlannedFlightView(QGroupBox): - - def __init__(self, flight_planner:FlightPlanner): - super(QPlannedFlightView, self).__init__("Planned flights") - self.flight_planner = flight_planner - self.init_ui() - - def init_ui(self): - self.layout = QGridLayout() - - for i,f in enumerate(self.flight_planner.flights): - ftype = QLabel("" + f.flight_type.name + "") - count = QLabel(str(f.count) + " x " + db.unit_type_name(f.unit_type)) - sched = QLabel(" in " + str(f.scheduled_in) + " minutes") - - self.layout.addWidget(ftype, i, 0) - self.layout.addWidget(count, i, 1) - self.layout.addWidget(sched, i, 2) - - stretch = QVBoxLayout() - stretch.addStretch() - self.layout.addLayout(stretch, len(self.flight_planner.flights)+1, 0) - self.setLayout(self.layout) diff --git a/qt_ui/widgets/map/QLiberationMap.py b/qt_ui/widgets/map/QLiberationMap.py index e7d48ff5..2e0dc7a8 100644 --- a/qt_ui/widgets/map/QLiberationMap.py +++ b/qt_ui/widgets/map/QLiberationMap.py @@ -83,13 +83,28 @@ class QLiberationMap(QGraphicsView): text.setPos(pos[0] + CONST.CP_SIZE + 1, pos[1] - CONST.CP_SIZE / 2 + 1) + if cp.captured: + pen = QPen(brush=CONST.COLORS["blue"]) + brush = CONST.COLORS["blue_transparent"] + + flight_path_pen = QPen(brush=CONST.COLORS["blue"]) + flight_path_pen.setColor(CONST.COLORS["blue"]) + flight_path_pen.setWidth(1) + flight_path_pen.setStyle(Qt.DashDotLine) + else: + pen = QPen(brush=CONST.COLORS["red"]) + brush = CONST.COLORS["red_transparent"] + + flight_path_pen = QPen(brush=CONST.COLORS["bright_red"]) + flight_path_pen.setColor(CONST.COLORS["bright_red"]) + flight_path_pen.setWidth(1) + flight_path_pen.setStyle(Qt.DashDotLine) + for ground_object in cp.ground_objects: - if ground_object.airbase_group: - continue - go_pos = self._transform_point(ground_object.position) - scene.addItem(QMapGroundObject(self, go_pos[0], go_pos[1], 16, 16, cp, ground_object)) + if not ground_object.airbase_group: + scene.addItem(QMapGroundObject(self, go_pos[0], go_pos[1], 16, 16, cp, ground_object)) if ground_object.category == "aa" and self.get_display_rule("sam"): max_range = 0 @@ -99,17 +114,24 @@ class QLiberationMap(QGraphicsView): unit = db.unit_type_from_name(u.type) if unit.threat_range > max_range: max_range = unit.threat_range - if cp.captured: - pen = QPen(brush=CONST.COLORS["blue"]) - brush = CONST.COLORS["blue_transparent"] - else: - pen = QPen(brush=CONST.COLORS["red"]) - brush = CONST.COLORS["red_transparent"] + scene.addEllipse(go_pos[0] - max_range/300.0 + 8, go_pos[1] - max_range/300.0 + 8, max_range/150.0, max_range/150.0, pen, brush) if self.get_display_rule("lines"): self.scene_create_lines_for_cp(cp) + if cp.id in self.game.planners.keys(): + planner = self.game.planners[cp.id] + for flight in planner.flights: + scene.addEllipse(pos[0], pos[1], 4, 4) + prev_pos = list(pos) + for points in flight.points: + new_pos = self._transform_point(Point(points[0], points[1])) + scene.addLine(prev_pos[0]+2, prev_pos[1]+2, new_pos[0]+2, new_pos[1]+2, flight_path_pen) + scene.addEllipse(new_pos[0], new_pos[1], 4, 4, pen, brush) + prev_pos = list(new_pos) + scene.addLine(prev_pos[0] + 2, prev_pos[1] + 2, pos[0] + 2, pos[1] + 2, flight_path_pen) + def scene_create_lines_for_cp(self, cp: ControlPoint): scene = self.scene() pos = self._transform_point(cp.position) diff --git a/qt_ui/windows/QBaseMenu.py b/qt_ui/windows/QBaseMenu.py index 219318cb..bedad38a 100644 --- a/qt_ui/windows/QBaseMenu.py +++ b/qt_ui/windows/QBaseMenu.py @@ -7,9 +7,10 @@ from PySide2.QtWidgets import QHBoxLayout, QLabel, QWidget, QDialog, QVBoxLayout from dcs.unittype import UnitType from game.event import UnitsDeliveryEvent +from qt_ui.widgets.QBudgetBox import QBudgetBox from qt_ui.widgets.base.QAirportInformation import QAirportInformation from qt_ui.widgets.base.QBaseInformation import QBaseInformation -from qt_ui.widgets.base.QPlannedFlightView import QPlannedFlightView +from qt_ui.windows.mission.QPlannedFlightsView import QPlannedFlightsView from qt_ui.windows.GameUpdateSignal import GameUpdateSignal from theater import ControlPoint, CAP, Embarking, CAS, PinpointStrike, db from game import Game @@ -90,6 +91,9 @@ class QBaseMenu(QDialog): self.recruitment = QGroupBox("Recruitment") self.recruitmentLayout = QVBoxLayout() + self.budget = QBudgetBox() + self.budget.setBudget(self.game.budget, self.game.budget_reward_amount) + self.recruitmentLayout.addWidget(self.budget) for task_type in units.keys(): @@ -147,7 +151,7 @@ class QBaseMenu(QDialog): self.rightLayout = QVBoxLayout() try: - self.rightLayout.addWidget(QPlannedFlightView(self.game.planners[self.cp.id])) + self.rightLayout.addWidget(QPlannedFlightsView(self.game.planners[self.cp.id])) except Exception: traceback.print_exc() self.rightLayout.addWidget(QAirportInformation(self.cp, self.airport)) @@ -212,7 +216,7 @@ class QBaseMenu(QDialog): if self.game.budget >= price: self.deliveryEvent.deliver({unit_type: 1}) self.game.budget -= price - + self.budget.setBudget(self.game.budget, self.game.budget_reward_amount) self._update_count_label(unit_type) def sell(self, unit_type): diff --git a/qt_ui/windows/mission/QChooseAirbase.py b/qt_ui/windows/mission/QChooseAirbase.py new file mode 100644 index 00000000..dc1a79d2 --- /dev/null +++ b/qt_ui/windows/mission/QChooseAirbase.py @@ -0,0 +1,34 @@ +from PySide2.QtCore import Signal +from PySide2.QtWidgets import QGroupBox, QHBoxLayout, QComboBox, QLabel + +from game import Game + + +class QChooseAirbase(QGroupBox): + + selected_airbase_changed = Signal(str) + + def __init__(self, game:Game, title=""): + super(QChooseAirbase, self).__init__(title) + self.game = game + + self.layout = QHBoxLayout() + self.depart_from_label = QLabel("Airbase : ") + self.depart_from = QComboBox() + + for i, cp in enumerate([b for b in self.game.theater.controlpoints if b.captured]): + self.depart_from.addItem(str(cp.name), cp) + self.depart_from.setCurrentIndex(0) + self.depart_from.currentTextChanged.connect(self._on_airbase_selected) + self.layout.addWidget(self.depart_from_label) + self.layout.addWidget(self.depart_from) + self.setLayout(self.layout) + + def _on_airbase_selected(self): + selected = self.depart_from.currentText() + print("Airbase changed to : " + selected) + self.selected_airbase_changed.emit(selected) + print("Airbase changed to : " + selected) + + + diff --git a/qt_ui/windows/mission/QFlightItem.py b/qt_ui/windows/mission/QFlightItem.py new file mode 100644 index 00000000..e93a9b9e --- /dev/null +++ b/qt_ui/windows/mission/QFlightItem.py @@ -0,0 +1,20 @@ +from PySide2.QtGui import QStandardItem, QIcon + +from game import db +from gen.flights.flight import Flight +from qt_ui.uiconstants import AIRCRAFT_ICONS + + +class QFlightItem(QStandardItem): + + def __init__(self, flight:Flight): + super(QFlightItem, self).__init__() + self.flight = flight + + if db.unit_type_name(self.flight.unit_type).replace("/", " ") in AIRCRAFT_ICONS.keys(): + icon = QIcon((AIRCRAFT_ICONS[db.unit_type_name(self.flight.unit_type)])) + self.setIcon(icon) + self.setEditable(False) + self.setText("["+str(self.flight.flight_type.name[:6])+"] " + + str(self.flight.count) + " x " + db.unit_type_name(self.flight.unit_type) + + " in " + str(self.flight.scheduled_in) + " minutes") diff --git a/qt_ui/windows/mission/QMissionPlanning.py b/qt_ui/windows/mission/QMissionPlanning.py new file mode 100644 index 00000000..ee126413 --- /dev/null +++ b/qt_ui/windows/mission/QMissionPlanning.py @@ -0,0 +1,63 @@ +from PySide2.QtCore import Qt, Slot, QItemSelectionModel, QPoint +from PySide2.QtWidgets import QDialog, QGridLayout, QScrollArea, QVBoxLayout +from game import Game +from qt_ui.windows.mission.QPlannedFlightsView import QPlannedFlightsView +from qt_ui.windows.mission.QChooseAirbase import QChooseAirbase +from qt_ui.windows.mission.flight.QFlightPlanner import QFlightPlanner + + +class QMissionPlanning(QDialog): + + def __init__(self, game: Game): + super(QMissionPlanning, self).__init__() + self.game = game + self.setWindowFlags(Qt.WindowStaysOnTopHint) + self.setMinimumSize(750, 350) + self.setModal(True) + self.setWindowTitle("Mission Preparation") + self.init_ui() + print("DONE") + + def init_ui(self): + + self.captured_cp = [cp for cp in self.game.theater.controlpoints if cp.captured] + + self.layout = QGridLayout() + self.left_bar_layout = QVBoxLayout() + + self.select_airbase = QChooseAirbase(self.game) + self.select_airbase.selected_airbase_changed.connect(self.on_departure_cp_changed) + self.planned_flight_view = QPlannedFlightsView(None) + if self.captured_cp[0].id in self.game.planners.keys(): + self.planner = self.game.planners[self.captured_cp[0].id] + self.planned_flight_view.set_flight_planner(self.planner) + + self.planned_flight_view.selectionModel().setCurrentIndex(self.planned_flight_view.indexAt(QPoint(1, 1)), QItemSelectionModel.Select) + self.planned_flight_view.selectionModel().selectionChanged.connect(self.on_flight_selection_change) + + self.flight_planner = QFlightPlanner(self.planned_flight_view.flight_planner.flights[0], self.game) + + + self.left_bar_layout.addWidget(self.select_airbase) + self.left_bar_layout.addWidget(self.planned_flight_view) + + self.layout.addLayout(self.left_bar_layout, 0, 0) + self.layout.addWidget(self.flight_planner, 0, 1) + + self.setLayout(self.layout) + + @Slot(str) + def on_departure_cp_changed(self, cp_name): + cps = [cp for cp in self.game.theater.controlpoints if cp.name == cp_name] + if len(cps) == 1: + self.planner = self.game.planners[cps[0].id] + self.planned_flight_view.set_flight_planner(self.planner) + else: + self.planned_flight_view.set_flight_planner(None) + + def on_flight_selection_change(self): + index = self.planned_flight_view.selectionModel().currentIndex().row() + flight = self.planner.flights[index] + + self.flight_planner = QFlightPlanner(flight, self.game) + self.layout.addWidget(self.flight_planner,0 ,1) diff --git a/qt_ui/windows/mission/QPlannedFlightsView.py b/qt_ui/windows/mission/QPlannedFlightsView.py new file mode 100644 index 00000000..3d6c0ff2 --- /dev/null +++ b/qt_ui/windows/mission/QPlannedFlightsView.py @@ -0,0 +1,30 @@ +from PySide2.QtCore import QSize +from PySide2.QtGui import QStandardItemModel +from PySide2.QtWidgets import QListView + +from gen.flights.ai_flight_planner import FlightPlanner +from qt_ui.windows.mission.QFlightItem import QFlightItem + + +class QPlannedFlightsView(QListView): + + def __init__(self, flight_planner: FlightPlanner): + super(QPlannedFlightsView, self).__init__() + self.model = QStandardItemModel(self) + self.setModel(self.model) + self.setIconSize(QSize(91, 24)) + if flight_planner: + self.set_flight_planner(flight_planner) + + def update_content(self): + for i, f in enumerate(self.flight_planner.flights): + self.model.appendRow(QFlightItem(f)) + + def clear_layout(self): + self.model.removeRows(0, self.model.rowCount()) + + def set_flight_planner(self, flight_planner: FlightPlanner): + self.clear_layout() + self.flight_planner = flight_planner + if self.flight_planner: + self.update_content() diff --git a/qt_ui/windows/mission/flight/QF14FlightComputerEditor.py b/qt_ui/windows/mission/flight/QF14FlightComputerEditor.py new file mode 100644 index 00000000..e69de29b diff --git a/qt_ui/windows/mission/flight/QFlightAircraftEditor.py b/qt_ui/windows/mission/flight/QFlightAircraftEditor.py new file mode 100644 index 00000000..e69de29b diff --git a/qt_ui/windows/mission/flight/QFlightPlanner.py b/qt_ui/windows/mission/flight/QFlightPlanner.py new file mode 100644 index 00000000..36cf1af5 --- /dev/null +++ b/qt_ui/windows/mission/flight/QFlightPlanner.py @@ -0,0 +1,19 @@ +from PySide2.QtWidgets import QTabWidget + +from gen.flights.flight import Flight +from game import Game +from qt_ui.windows.mission.flight.payload.QFlightPayloadTab import QFlightPayloadTab +from qt_ui.windows.mission.flight.settings.QGeneralFlightSettingsTab import QGeneralFlightSettingsTab +from qt_ui.windows.mission.flight.waypoints.QFlightWaypointTab import QFlightWaypointTab + + +class QFlightPlanner(QTabWidget): + + def __init__(self, flight: Flight, game: Game): + super(QFlightPlanner, self).__init__() + self.general_settings_tab = QGeneralFlightSettingsTab(flight, game) + self.payload_tab = QFlightPayloadTab(flight) + self.waypoint_tab = QFlightWaypointTab(flight) + self.addTab(self.general_settings_tab, "General Flight settings") + self.addTab(self.payload_tab, "Payload") + self.addTab(self.waypoint_tab, "Waypoints") \ No newline at end of file diff --git a/qt_ui/windows/mission/flight/QFlightWaypointsEditor.py b/qt_ui/windows/mission/flight/QFlightWaypointsEditor.py new file mode 100644 index 00000000..e69de29b diff --git a/qt_ui/windows/mission/flight/payload/QFlightPayloadTab.py b/qt_ui/windows/mission/flight/payload/QFlightPayloadTab.py new file mode 100644 index 00000000..2f6f25b5 --- /dev/null +++ b/qt_ui/windows/mission/flight/payload/QFlightPayloadTab.py @@ -0,0 +1,16 @@ +from PySide2.QtWidgets import QFrame, QGridLayout, QLabel + +from gen.flights.flight import Flight + + +class QFlightPayloadTab(QFrame): + + def __init__(self, flight: Flight): + super(QFlightPayloadTab, self).__init__() + self.flight = flight + self.init_ui() + + def init_ui(self): + layout = QGridLayout() + layout.addWidget(QLabel("Coming in two weeks")) + self.setLayout(layout) diff --git a/qt_ui/windows/mission/flight/settings/QFlightDepartureEditor.py b/qt_ui/windows/mission/flight/settings/QFlightDepartureEditor.py new file mode 100644 index 00000000..69b9e90c --- /dev/null +++ b/qt_ui/windows/mission/flight/settings/QFlightDepartureEditor.py @@ -0,0 +1,28 @@ +from PySide2.QtWidgets import QLabel, QHBoxLayout, QGroupBox, QSpinBox + + +class QFlightDepartureEditor(QGroupBox): + + def __init__(self, flight): + super(QFlightDepartureEditor, self).__init__("Departure") + self.flight = flight + + layout = QHBoxLayout() + self.depart_from = QLabel("Departing from " + self.flight.from_cp.name + "") + self.depart_at_t = QLabel("At T +") + self.minutes = QLabel(" minutes") + + self.departure_delta = QSpinBox(self) + self.departure_delta.setMinimum(0) + self.departure_delta.setMaximum(120) + self.departure_delta.setValue(self.flight.scheduled_in) + self.departure_delta.valueChanged.connect(self.change_scheduled) + + layout.addWidget(self.depart_from) + layout.addWidget(self.depart_at_t) + layout.addWidget(self.departure_delta) + layout.addWidget(self.minutes) + self.setLayout(layout) + + def change_scheduled(self): + self.flight.scheduled_in = int(self.departure_delta.value()) diff --git a/qt_ui/windows/mission/flight/settings/QFlightSlotEditor.py b/qt_ui/windows/mission/flight/settings/QFlightSlotEditor.py new file mode 100644 index 00000000..7ef2b076 --- /dev/null +++ b/qt_ui/windows/mission/flight/settings/QFlightSlotEditor.py @@ -0,0 +1,50 @@ +from PySide2.QtWidgets import QLabel, QHBoxLayout, QGroupBox, QSpinBox, QGridLayout + + +class QFlightSlotEditor(QGroupBox): + + def __init__(self, flight, game): + super(QFlightSlotEditor, self).__init__("Slots") + self.flight = flight + self.game = game + + layout = QGridLayout() + + self.aircraft_count = QLabel("Aircraft count :") + self.aircraft_count_spinner = QSpinBox() + self.aircraft_count_spinner.setMinimum(1) + self.aircraft_count_spinner.setMaximum(4) + self.aircraft_count_spinner.setValue(flight.count) + self.aircraft_count_spinner.valueChanged.connect(self._changed_aircraft_count) + + self.client_count = QLabel("Client slots count :") + self.client_count_spinner = QSpinBox() + self.client_count_spinner.setMinimum(0) + self.client_count_spinner.setMaximum(4) + self.client_count_spinner.setValue(flight.client_count) + self.client_count_spinner.valueChanged.connect(self._changed_client_count) + + if not self.flight.unit_type.flyable: + self.client_count_spinner.setValue(0) + self.client_count_spinner.setEnabled(False) + + layout.addWidget(self.aircraft_count, 0, 0) + layout.addWidget(self.aircraft_count_spinner, 0, 1) + + layout.addWidget(self.client_count, 1, 0) + layout.addWidget(self.client_count_spinner, 1, 1) + + self.setLayout(layout) + + def _changed_aircraft_count(self): + self.flight.count = int(self.aircraft_count_spinner.value()) + # TODO check if enough aircraft are available + + def _changed_client_count(self): + self.flight.client_count = int(self.client_count_spinner.value()) + self._cap_client_count() + + def _cap_client_count(self): + if self.flight.client_count > self.flight.count: + self.flight.client_count = self.flight.count + self.client_count_spinner.setValue(self.flight.client_count) \ No newline at end of file diff --git a/qt_ui/windows/mission/flight/settings/QFlightTypeTaskInfo.py b/qt_ui/windows/mission/flight/settings/QFlightTypeTaskInfo.py new file mode 100644 index 00000000..c1e82ef3 --- /dev/null +++ b/qt_ui/windows/mission/flight/settings/QFlightTypeTaskInfo.py @@ -0,0 +1,28 @@ +from PySide2.QtWidgets import QLabel, QHBoxLayout, QGroupBox, QSpinBox, QGridLayout + +from game import db +from qt_ui.uiconstants import AIRCRAFT_ICONS + + +class QFlightTypeTaskInfo(QGroupBox): + + def __init__(self, flight): + super(QFlightTypeTaskInfo, self).__init__("Flight") + self.flight = flight + + layout = QGridLayout() + + self.aircraft_icon = QLabel() + if db.unit_type_name(self.flight.unit_type) in AIRCRAFT_ICONS: + self.aircraft_icon.setPixmap(AIRCRAFT_ICONS[db.unit_type_name(self.flight.unit_type)]) + + self.task = QLabel("Task :") + self.task_type = QLabel(flight.flight_type.name) + self.task_type.setProperty("style", flight.flight_type.name) + + layout.addWidget(self.aircraft_icon, 0, 0) + + layout.addWidget(self.task, 1, 0) + layout.addWidget(self.task_type, 1, 1) + + self.setLayout(layout) diff --git a/qt_ui/windows/mission/flight/settings/QGeneralFlightSettingsTab.py b/qt_ui/windows/mission/flight/settings/QGeneralFlightSettingsTab.py new file mode 100644 index 00000000..067f3b29 --- /dev/null +++ b/qt_ui/windows/mission/flight/settings/QGeneralFlightSettingsTab.py @@ -0,0 +1,29 @@ +from PySide2.QtWidgets import QFrame, QGridLayout, QVBoxLayout + +from gen.flights.flight import Flight +from game import Game +from qt_ui.windows.mission.flight.settings.QFlightDepartureEditor import QFlightDepartureEditor +from qt_ui.windows.mission.flight.settings.QFlightSlotEditor import QFlightSlotEditor +from qt_ui.windows.mission.flight.settings.QFlightTypeTaskInfo import QFlightTypeTaskInfo + + +class QGeneralFlightSettingsTab(QFrame): + + def __init__(self, flight: Flight, game: Game): + super(QGeneralFlightSettingsTab, self).__init__() + self.flight = flight + self.game = game + self.init_ui() + + def init_ui(self): + layout = QGridLayout() + self.flight_info = QFlightTypeTaskInfo(self.flight) + self.flight_departure = QFlightDepartureEditor(self.flight) + self.flight_slots = QFlightSlotEditor(self.flight, self.game) + layout.addWidget(self.flight_info, 0, 0) + layout.addWidget(self.flight_departure, 1, 0) + layout.addWidget(self.flight_slots, 2, 0) + vstretch = QVBoxLayout() + vstretch.addStretch() + layout.addLayout(vstretch, 3, 0) + self.setLayout(layout) diff --git a/qt_ui/windows/mission/flight/waypoints/QFlightWaypointTab.py b/qt_ui/windows/mission/flight/waypoints/QFlightWaypointTab.py new file mode 100644 index 00000000..9325d7b7 --- /dev/null +++ b/qt_ui/windows/mission/flight/waypoints/QFlightWaypointTab.py @@ -0,0 +1,16 @@ +from PySide2.QtWidgets import QFrame, QGridLayout, QLabel + +from gen.flights.flight import Flight + + +class QFlightWaypointTab(QFrame): + + def __init__(self, flight: Flight): + super(QFlightWaypointTab, self).__init__() + self.flight = flight + self.init_ui() + + def init_ui(self): + layout = QGridLayout() + layout.addWidget(QLabel("Coming in two weeks")) + self.setLayout(layout) diff --git a/resources/stylesheets/style.css b/resources/stylesheets/style.css index e018df5a..8b1b0764 100644 --- a/resources/stylesheets/style.css +++ b/resources/stylesheets/style.css @@ -59,6 +59,48 @@ QLabel[style="base-title"]{ border: 1px solid #ccc; } +QLabel[style="icon-plane"]{ + background-color:#48719D; + min-height:24px; + border: 1px solid black; + text-align:center; + color:white; +} + +QLabel[style="bordered"]{ + border: 1px solid black; +} + +QLabel[style="BARCAP"]{ + border: 1px solid black; + background-color: #445299; + color:white; +} + +QLabel[style="INTERCEPTION"]{ + border: 1px solid black; + background-color: #7752bc; + color:white; +} + +QLabel[style="CAS"]{ + border: 1px solid black; + background-color: #ab2244; + color:white; +} + +QLabel[style="DEAD"]{ + border: 1px solid black; + background-color: #cc8844; + color:white; +} + +QLabel[style="SEAD"]{ + border: 1px solid black; + background-color: #aa7744; + color:white; +} + /*QBaseMenu{ background-color:#699245; color:white; diff --git a/resources/ui/units/aircrafts/A-10A_24.jpg b/resources/ui/units/aircrafts/A-10A_24.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0c5ae44770800e0ed98871d1f1b1fc69184ca105 GIT binary patch literal 1239 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 B!36*S literal 0 HcmV?d00001 diff --git a/resources/ui/units/aircrafts/AH-64A_24.jpg b/resources/ui/units/aircrafts/AH-64A_24.jpg new file mode 100644 index 0000000000000000000000000000000000000000..65ad0301e74e748a41584ed4146279581e5e8d89 GIT binary patch literal 1201 zcmex=^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#L&`Qyo;1(MWXG#>9`GNzTG}OE5vC^e^UOmj zBZ->D>Jwv^eqGvf&Dhyy! zSodvh;(vzvX{%pr%uiIF`|phX-4*xFX`EA;WTO824EyJ`w*E)=iC$hC7g)`DrJ-iS z?LTLZU%pUhdMfsh=cT28?^N-9v8}tPar_D6l8+wQ{K^?O7y^>t&(Ys6xx7AY{=4h* z|1%s47730%ox5Ch*RhBxP0vEZ)Nk8V6<*tQSO0ifZlcL{1HmU#|K7T5II&r#aQ8Z^ zd6_yv$rYKpz5Z`5|Giak+5dZXy#KW?vM#F**S6KP@*QAPmSp&%KI@u5)N{FV`@rz8 zO|oKrKAFpZZ`pry`R}dQI&}9xU-4J-p6~iUU!rXHPpDSE^E5g*$?j{?`DHiaSaRKK z-<&dhcIt^t6$1xDpljAc@m;E(YrD=qe9O}R<0JD+<@#P{^|lgqndlSkSJU!eyNc|c zVlDbs{m%J%_ROazy-!}PsWGd zaiP-ok6O9PcE@(vD&69heVU=ZW8#v4wa@ldl^lQWD!L@&khQX9$doNPSEUx$S55yN OxPPy!Xqk)r|C<1R`Ry_Q literal 0 HcmV?d00001 diff --git a/resources/ui/units/aircrafts/AH-64D_24.jpg b/resources/ui/units/aircrafts/AH-64D_24.jpg new file mode 100644 index 0000000000000000000000000000000000000000..cbc1ff42ef59aa93abf0f8de5be05266183e85ba GIT binary patch literal 1215 zcmex=^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!>Juj(y45f$=zjzdz+qrUbedfS`Cv#Zzsxhc`7df>Zi z$I;?X74OtkT$i{sG@thH{A(EW(a_bc=f0E6l`k*##3Y_fa;x7Jq^9uCY3sfN^}Az& zv%O_s-E&XnNzc3XY5TIruRL=8ZM}5k$Du2c*5|pz+(SQIO6LptnmFeP|GKQiuK0|d z7qTCk)E%hRbZz{yHkvoyalfHfe8;UIr^@~-*a z4)qsAZ7;dWU+dEN7Vt*q)4Ra`3@!d{_ve1M`1kJPKau7`RT|8?#k*xD>KXq?>e8&1 zs_pu=`JMhBrCUZ!q3eE?2=&!_o!I)}SDebGpT;*eSd+Uli;nK~WN!TPV$sqI&DA2S z&g!1k&gXvl$n>}Ksd(nHlNIVO!nS{z@n%cd)HR_Omoivpa;M8$ymS@ynj&^$dXRrv eR&SpF`}yal|1SK`u&>@qW7U)XB)#+hZvp@-RQ!(s literal 0 HcmV?d00001 diff --git a/resources/ui/units/aircrafts/AJS37 Viggen_24.jpg b/resources/ui/units/aircrafts/AJS37 Viggen_24.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a973d5a2056cb81e7076022a8415216916f7541c GIT binary patch literal 1161 zcmex=^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!#%6|t(E>AUuWO;7r(o9>649Xgg6edotnEK zUHkI2z4}MysqDF!7`-}L+w!er=)`4nCpHVeU{_vV_3`x2eOGI3kMzxcr;;hLx`5O2 z%YO!obzNIiH=cHzQhw)4JnxT5hhr17)fD#0e>&TLT7B32m)Bp%+J7tGTH%ry6n5LF zN3cm=!hUMGRrwL#q+=%)X6C%-;!~Lwyrkiaa6j*zb%+sF6T`5*xgw;;g4C}43U2uA!>iHs9J}cbirJw!-rBb_d@)zVrEQs>;>1QWuZZ zIVK#Lt}w~2X@h%fZd>`GHMU|&_De;=E-mETy(u{?Fw7X*;tA5V&ciHVvi(Gsd-Eg#T^^SQ@`Rc7S7QedkoBQ_pomLs* z8xJM>1_q>;pIUp}anBw05_T2&x7Ig1;oIkTIhmKU%wD;^TQEJQu%k@y X$MaeHzkPn~D!QsGO47Wn{{Kw?kxAoO literal 0 HcmV?d00001 diff --git a/resources/ui/units/aircrafts/AV8BNA_24.jpg b/resources/ui/units/aircrafts/AV8BNA_24.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b688a886a109560bf30c63094a6f824a80c7c82b GIT binary patch literal 1161 zcmex=^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!}TjAC;es@KQVSU=+nTCN5h@$kOq^PhI5pLhrCO@|Tl&^Y-+3!nWCp%%d-U&)`3KF^ zn7>wG(+ZF%Ld|MagFZ7zBxQ5YIG%4mk zgPyiszR10!YCpF|iXOOS*i=w?fT240+a~di?uCD6zI6v#vS**k)zk^n*|!@+Qf5BA zJ^u&Ce+H?!HPLIP+%#Kpyy7K4OP$*EZOPv_zUaR>|1GnAbM5N0{at!G@7AXD{d!f$ z_hsfu8H*g|>+^%Zyo|OgKTcXzJ*fmR11d4crR+?|*n-lh2Bj10mqsj!2r}s2& z?)7TQShQQG$IWKqmTIO|JZVRNZRvZSdQae6#^)}Ll~XPDp6pIVauVIqxUl(=tCo=8ba#Gx*!z|*M`^q5SC||213j9JFWe+NU zS=6=Ei+jObPrJqY4laAglbfum@u42%b485VVAs&1H_U;O_j0I}KKg#Z8m literal 0 HcmV?d00001 diff --git a/resources/ui/units/aircrafts/An-26B_24.jpg b/resources/ui/units/aircrafts/An-26B_24.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8d6bc5731db5d8f469afa134ec3c2a0f56a49cce GIT binary patch literal 1189 zcmex=^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!@iQse{X%hFaB!Qx~c1Jw{AV`&ULJhX@RY~ zrN#Q#U3<4|k(^|CvwBORIP>eSPx>9=8(vj?DVOp+bUyFet4X;EiH&(2HeZgGUR|v& zt;?rnGHL3)<&g{g#da=rEf+I?oU{7xwfFx_m;aqrzdJ7c;d#MVcJli(FUecVh)z;} z82wT9XccSwk+)hk+;@$>-Q2y2QR_d0^RGaeuvsl1&i%^C{Lhd!|J_B9?kKZ)svrKo zdeIwbc0M zwWe$~t#3Tls`KC1#H=W}{*`z3o;|uzc)!laok9L9Wi=LUE9kzsNMuf_&xzRwzg7Ha zaNjpiKP}+!udtGPf_wcE_jLuna13@8oqaf{mRGcD?y0j6??$>^U_4&%`uuC3dfu!e zHA#to*gq=-+0eqx0LpYAAoYDLTc>F^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!{)#9YPI?n3rDHsFi3aG^k=tDsbcP}P_LJId+I?+_J!-d$Gti}S4!8`W6hzsJO;h5k_X<|W?lbQ z`DKkf?@<$T`^>(3X~Aj{EACjnvUq#8tl<9iqDe2OcQ_t<(y_truSRdRuDccQ?#1fA zZGHs;t=C@J#jz}AmB+sGlEJ?&&$^@%doDEmY9Fip8l~EnzF?TD<)7Ae9w?}rbJczS zWu<~icT{q!4Vn7aD0~w#wBLMwsXoyDwO4jsPEk<3qOQXDnXhtnZa$aZvsCUolPng$ z=CEz)O9mPh^ta(ZL)os12TdXOr5CSXHK(imrt-JtZ;!r7Nt6xTzc*xk-SHKo<^}HB z8izKQGQV~eU9M6seCEuvOKU>6N1rUtyZ_}}+3_b?+OumNPkbt^4B=~-WIu6Hm*12~ zuQk_$X0Pv1IzD}cP4lgsdc(-_TX7rfKAg0s{_WNz>@Hy*E=F=dUx!+B>~{-2-$%hNp<>rR|`gyTo4gVi@(LK9Xw@S}f S-zgI48`Py1s;Ybb|4jhYjKrk? literal 0 HcmV?d00001 diff --git a/resources/ui/units/aircrafts/B-17G_24.jpg b/resources/ui/units/aircrafts/B-17G_24.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8f0c23ed71cc1813fe58b5d712006160682bfeb5 GIT binary patch literal 1147 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 R{Xtq+zV&_czU=(}CIC(7+JOK7 literal 0 HcmV?d00001 diff --git a/resources/ui/units/aircrafts/C-130_24.jpg b/resources/ui/units/aircrafts/C-130_24.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b970e7981efa7750b057fd078cb88becd1ee89fd GIT binary patch literal 1125 zcmex=^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#gXfw*E8?6CMAA0B-5SkY|BZVl)9%05Z-4i{ zwwt%=RHTm0Y>z)TC67H=!o&FWk9OaD?<+}jPCrq}v6{x^XSZ|R%WL^*1(%mh`aW^P zuWV(}l!GGoH&ll$>#mzV?KIE7XpcGCDknVUTGCB-n7ln~7oB{EYiUQUM@414bN|2d z_IDTmw)xLcw(F236zu%*}!H0a@XWvp^2+9c?BoL9&+lLv#Ww@BUUA5wNl<+sX5IDIoR zIJf5hefzoU-!}hesQFhC81+dh@67Kj8?G3C+wGB>|6cTPUGl7x(>(;6O5S?CyYg7N z=FsUsM@5247JPROo^*4ndBvjphR3TmDcWp0!Dv52)a|kV)x0HlZ46J{_>q=C6*J5Sybj7kKQ(nIOvZ%{$Eki|ThxCzGE4JO5yLN^CPGErYOB@JbdMtWH eZ?%RiuYwN4NoGmg7mK#^Y8*KiDzn}G|4je}PRK|A literal 0 HcmV?d00001 diff --git a/resources/ui/units/aircrafts/CH-47D_24.jpg b/resources/ui/units/aircrafts/CH-47D_24.jpg new file mode 100644 index 0000000000000000000000000000000000000000..48647792a314841ac143028d31acb70f94370902 GIT binary patch literal 1084 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 literal 0 HcmV?d00001 diff --git a/resources/ui/units/aircrafts/E-3C_24.jpg b/resources/ui/units/aircrafts/E-3C_24.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b1df7a9f070c54eb0714b3f613f0ceee53df48db GIT binary patch literal 1150 zcmex=^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!;8F<IeVjHyQ}Vfl&4=RHzM!bhT>{+~ z)`!?cImcikbTbCZ2yW*fwn{K)4&QAsGF+G=F+|y1>nfQvI+pCLx#wO~g;8E3NU{dDEPpgvRsn$*}?-b!WcT(!X+H zmH&>XUbcej-|~N(?7w;c&1LqEHMf@@vHyP6w)A$Hh0u}W7gzo+>HOwlzj^P9f9Jlf zWLwWE`8o0U?<@OnefaqMM&*BooWQp#awi4)h=7@2bC} zuUCFjjKX%y;Hugz$@IvI3CjI$0U3*S>-2a{x^>h0n!x^dLRzz5nzhudSFn3-5*YOI z=oei-@0DJ)rjKqZM%?xM*?)H8e}?{$4Usoj=9}@)me(}g{rQWI#-fdLHI`*dZQ7W2 z^PWoRv}4!%_XJ%n{*k&$daeCi699;N+-m>; literal 0 HcmV?d00001 diff --git a/resources/ui/units/aircrafts/F-117A_24.jpg b/resources/ui/units/aircrafts/F-117A_24.jpg new file mode 100644 index 0000000000000000000000000000000000000000..13b9f5be718dc842bfb632a4ee74ee2e35cd2158 GIT binary patch literal 1243 zcmex=^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!~XTJFIE&RzW4HaZr1aRo!!|Ac7HzpxW-d2 z{KqE!)AOcpf^#b8MeX|6Zojnra?I`X!beRqRs76$S+GV_2~=I5Q8E4Do}x2(HTEin zE6?Ss=TEJ_lRT%E|9PzbtrAP2rB}XqOX_^JcG-#^3@(rjc?D& z-Ryt$;+I(J_U)4MGLqyrS;Rk&47XGHaCf0nZq^Zb*Xfo28IBjn+f1+Y%#@t-Yvak4 z$*!u!YK*^c$d^sumi%jve`)ivI=NlDJam`O$~`A?VuOLpxdKny9qVT1hE6eh(0oF9 zZ_R%O)_sc?TiuKNdE&Ff_S<^Y^X3Y1l=iEQdoud~Abo4ZFd^24%W!^DA!RR?x zw#y}newMYpxS`(a{G-?z&8ztB7Jm$^Hk%RW?h>ywgok*?z|Esw{ZQEgMYJD zewfy9TsKo$K5Xv!uZz0k&dGKKPcQh-&=P$3K>hLdf3Eo-m&l2H_`y=!AYZIp-zyUM zX5o#xOSLD156|LaV4KZ(yi8^O^B`V+XLeei#WC7 z(8`kxRgAN0%DxHKuimuH|9cWsm*yw;4Lg_K*|47LOPk_<1_n`$-3Jals19_s3(=nc G|0V#;fC)MP literal 0 HcmV?d00001 diff --git a/resources/ui/units/aircrafts/F-14A_24.jpg b/resources/ui/units/aircrafts/F-14A_24.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6ff978cb34ca68ba982a473206f69bf8c1f3db3b GIT binary patch literal 1247 zcmex=^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!>w#KEvLraGU>}|U!UPWlD*q|XYTtg9py(A z-8nUbI4qPWWZ(MFQ2a{!h@D2p#)FSC_1~&AF52nvS!1fBCp&x3^Eu2vuZO%kT~c^? zsr1dc-&$APsAxO>*32kf##6Z9<9sLk_0CcA6TYpV|7C8_ZzeHQqqDC}op#%ILttZ5T4v$v69-KGZScQ3^WNX~Tm2iV!zac5@%pHG znOXKp*n@N?4u*e~XC3wXYFrERMS`;!U0j6KxHkW1*xR>%s(gg})yOyXiQks~=HFVe zs^WEQbff<5==Yo71a2+5^F_9xitGO6I?b$ahHK2XZHQ};(774@_(~t=AI;hnyEW&1 zfV%W=)UKX=>7RCnc+bZBuBP4d%;oQ?KeLpdS{`^h*Thq&Xt8p`sRJJz--oP@Pm1Nv zEBbs+k4-A`N|n2&|I?Ub%OCvJ`sY41WtL{V%En}M_5Ejxe_eDfu_~-ytZ^>z=A66N z55GQf+idy=FZMrQgWB!eT!Y&W?)tDNBx%Cpg3D`ua@jS{(pYm(YUZjVK3C=W7MI;M zTX&|`#nOIt=!|`GnOTn0e!czM5c;pJOKU1uZRfYE*0aL?@qYNi6}oom?0>t?9GCY= znr+`yV`<2$yR7}+PM^v@pIt@cPRVwDoBS>#`bYiYZx_~hFO9Z{e>Aat6iwY_7Fj%RMY{5C1|#c8hRpO0lb|91G#P}QaR KNilZ*|C<1!jSQ0j literal 0 HcmV?d00001 diff --git a/resources/ui/units/aircrafts/F-14B_24.jpg b/resources/ui/units/aircrafts/F-14B_24.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b6d90a23796b7e3f9f97a9d856f757b1269fba76 GIT binary patch literal 1147 zcmex=^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!?JI!Q&y;YN}PBb)4OeDJ?rD6hM%We6#S5| zJRW!T<+3w;eC$`Q&#Gv2`Z4YG8zbeF2`a~>qh-EI*mQl-_I+{L=9i%FmW!8e%~-D> zbg0Nmplan8yRY^)YgbRal(Oqmdgir9VopULr|IsgW7;KY6T5s-zS!sa-@Ii0Gqi>n za;~okUa0c-()*ixSNzuB8rXdFTDVrt?o844Orym=Lry=+cG$nSn|<4LiN7AJejTx% z{3feR=kM%W)8E{?I$yslmqStdw8Hn;``1>Ueq=IXf%i#sHP0Ihozs^UY1;U>ZTM_n zclNFKxBRT*{(>te2o@Y~vf0)le`G@Oe}-3U_gaTkH^_LttjPu=}H z_KlF&?;EZf-18IrrUb@Sm*08ssoS&qe7iWqdq?x4_-_j>cl$rQdeXU4< zc-p2K%L^A|W=~806PL&TLQ8U=)Jwkyhs#TazRPQ;e^lzyVESUmbU~>_eWLQbcbDeO zKi##q^uu@m%D^?xvs2`&jCLO`e&y%5sEZ}%=8tr*jfE;=KMF6-JZXP!%b%7-UFAtn I-T&VN0C-T>VE_OC literal 0 HcmV?d00001 diff --git a/resources/ui/units/aircrafts/F-15C_24.jpg b/resources/ui/units/aircrafts/F-15C_24.jpg new file mode 100644 index 0000000000000000000000000000000000000000..33298e466e7ddd7cffda334f1f77b6adf013d660 GIT binary patch literal 1070 zcmex=^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!|HGGStqZgPCECppw5Tsuio^x)pIZDpPhPW8@K+)_21jK z?_XMe(NW}uoI2l<^sd4+YghQq_IKugv+qjn^jo|5H^}Ywf9igt{-*uJRo_;epA_4} zzv*|--|4ruK8;wIw8S!1xgbP6ullO^RUPFiN1nMPUa!ev|FrnF`_8yiwO#)iQok(~ z+jrICic)%y^Aj)0j@-?x3S}0y*-@8HMeo?Yc1xFgsDeygY-V*v`{wD%0#RVIxA!)( zvwGOI1pV#4HGhlCr_CA11?8*dog;S5Z_6na+;g(?x2J|t;me*ryD5P&>Uqal{xKF6 zvwmGQ|JM`uucou@8@6^#ym#x{jT3eWLGED|Z>$4d#pI2RqYur~d6WM9-#q)@S`jwN zk2;oy-!I^>^*w2ScEzH;5SceO?f9=R(@NRfP{4TP$Uj@HCw6QzQkU#+FSL1HT(>3A zCtPQFQ-i|RFRqOztoh^5E$KhRFTD78wM^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#L(i@1aP>#pr}tV%gmgVW-G5RjC$Fc-&ED(F ze})b9n}3DR_~Wz9?AO`pEP31i`D9;M8+`Y|=M~QPuk3yJ)+1ZcW6~RO!#Ps|8^Slr zZQcIOKkL(7t8b4E{nB0?#By<)gL<3nmETfdyW<5izMEYJfmsh-T25PfA`8K?M>z169`-gx1XJ~c$^{;2I9`}ESUHczL{Z2`J^ZZ8pn|W7i zC*NA-|5(?|xMS_}>67@i_Fvn~-?zW^Z2xqzcYNhSwpw)?g{E@uYx~b|({|8O{Wd!6 zWp3H-wa@wj{~cxyu5G`y`qrXK$;Ik7Q_lS>J|3hk_WRI2+5KUkbD2&Yw@b-8xZlWE zBwSs|s`8fQ$$b(pbB->&`tI@hwBBg>Qybs?6FC(#yEg8gb}d%n^YN#&p3`dwAeI>Tx4hRqVFaEkM7kHvhgYZk`tD!s*c z{@3PzqPHUc*lpOqq3PM{fW2Lr!o^3DLT^;}NNFrt&^6U9D!y%&(aPH^?&cjoJ=G`u zepm2^+n%2prKVnpDgLys`1bZ|U7DYiY}a&$?PIv4n-VD=e5IUuLXgA!6{6P^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!^$<8)74Hc-8RW(lHraPi#yiWO_SH0XE~T> z?kj2Ye8qRRz2Sk?x>_gS>!%7jv@jhJK54%325c2V0WK^-1h|7W)SOMSmFzl^!te{0LhYaS`x$}5aM9KP@|`a{Kn zX-BRF2>xgAdH(#X=%OR##?xficGexJ)%eZ%WwqxcX{P2Hp|&pp9REtKvc3fg2ubqQ zdiB5df6WnhD6Rem|5E)M{!4R?D@qR^3LKi5vE0r%bP446kCaJs&9dB#Uh2c}>3!tia>MwKOT@&Zy(E=W|1+#>5&Ut{Rqhz$+a(GY?_SBIVNFdApe6`B=}q58-JVK keQmmC%rn+1IsZGU{Oel7RSyZ?UqDmO**4FMJ^%kE0FOk(1ONa4 literal 0 HcmV?d00001 diff --git a/resources/ui/units/aircrafts/F-4E_24.jpg b/resources/ui/units/aircrafts/F-4E_24.jpg new file mode 100644 index 0000000000000000000000000000000000000000..231566fb4ac4b7c7678a3e753836cc2c370f4a31 GIT binary patch literal 1099 zcmex=^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!|S>uoXn!n1%Av9XnK1o)1_;jn=G4!-PIS* zg96X{gwKilQO0pAa@h{nCuxZdZz@$DXxLm2o-*yZjH39)D-qeZN}q|PiCvO^KYz-9 zh6DSLZFikDf#V?i1ox_s+iEPDG%n?AGZQ#4|G=zkmrKw3`@1*YO55&gq2cFXck}#9 zck37Co^o@)DZX^S(Z00ugY$sW--^lM3zp>xz znaO>LvntYa7wuB>vk;iOZ_Wq*r?EUzht3P_a01%Eovi%Hq}ao6PN4aX<4g5{*!;I= zb))y+CHtCI-&ea}>6zx~HC=k!C$@^^wd-a1G#2f)3~W7Re(l@$8<~PGi-J^x>#Vd6mtYUr(3>`UbTpT5WpgHA_d}n3(46 zzBgM|FF!B;Yxf-afHxY8`cvf&zE#PH+IlDAv;Gq0-|am7&$NK{@UImK4(KUU3o5$v G|0V#DOt%35 literal 0 HcmV?d00001 diff --git a/resources/ui/units/aircrafts/F-5E_24.jpg b/resources/ui/units/aircrafts/F-5E_24.jpg new file mode 100644 index 0000000000000000000000000000000000000000..244100e94ecfc70c3d9054640a6d2e11a2a0ad06 GIT binary patch literal 1157 zcmex=^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!;RmZU)Jki`QyLx@FVNR*_PQBYFdg4xmwHF zZPF*tKesnM^6HnrO6St2y%OEQaW5vi?O9F=PubgRd&HtEX9d-L^YhfbwoB_;-bv$0 zQ$^O@e6y?g_N!er;oFv%1o8BT+8+Ean*GM^>a%~s*WcS17b@MkwP%}f(Z$sap}UQq z-)^$Lp7ftV@JoSxd2+qtmm7D${$rsaqhu^y2s9imG{-e}YJjWN`5&n0l zpbb9eo?qI{nDbv;wtF+az*CBhBVi zr(AbWe;lipubL;DR35XB&&jN+`s2OUPKOVh^!|3=>fcx$`nxvRYd6E;YUcEfIr7)m ztts4aYQo_wGFP>}-^tit zXWj6uk>$N77yY{>@0HWGda15_rrRElQY{U?kMVz9)U|*0^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!`**pzOAbc-Zbraz`eecJM!Wl{7%~S(v-pf z-CdC?qx4^0&upS?zg(Mmn(4@CK5vQZy3NO(s_IN{J=a_Dphvk@(r%{dzQr@Hth%G| zbMd))!B^VOzm0G0xp(=kS&-y4=^0Da%f5CzUuh}xd)EE_0Y+>rzIix|J27pczVe)Vkr zxA?94-_p0H)gP*4c%5hUpMgVd((_|Xu}$|LCY+CnmgIkxS)Iv#^{hY0$j!E^C4Tg5 z?zG=#z@gk-yxnfc`JYF9iywKPc&Auv_u7AV=jG>J0T)G;@BDiH;i%lrc8I=spx(6E zk7k%MZ#Xc~i|<-+q2$3o9*?%n4(^Ot$*l0Wc~;h%r5lYFE#7%z_T$&S=EtvfX>U4l zB>#5dg-463|D2rGI$!>1tNodauHH?l$HG2KZ8y9B`N`rrk59Y)b6Y%d?UFlnXGA9U zPyN_`sY}bY>;2FAiOa7E{nq~YpTTI=t?0=!d1id8|F>b~G;Yxsll~b6x|({a?AnyX zq0{bhqyE6lhq;ZXjZ&^>+xczMJFiU#nxA&E?~u)k-!31eu`19z(d^#y|2F~h ChRf9e literal 0 HcmV?d00001 diff --git a/resources/ui/units/aircrafts/FA-18C_24.jpg b/resources/ui/units/aircrafts/FA-18C_24.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e20a2fc8ab1fcc4331ca76e5704ca3bfee218b05 GIT binary patch literal 1124 zcmex=^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!=>NiTTRz^vLs7NoGqzOjapt>y6mR?^wR2l z?#I@04$|^|TkpT^H@~s@wAAyUE&DXTO-~jUcz9i_ps?%JmX()-nw6OxuY`$rEZt&t z_sF&Bg1$U6a!*v8l<7aWGIQ7Lh`2QywmsrMvv|jv#eqlPV6L+Py<5y^8 zO{_#f!ex~SkAEx;74?f3yPtPgY^vOyBA%W9Lf2mt?7#XXySDq*^fz%=&(D{7Wm~^# zGPC3f`^Wyvxo_JLal(Sju)pTB_iK*&@QHiB>1V}ntPZzMeqj;;p*!|@K2F<_^r>>y(Qf&I!u~^DT6?EN zXl;u1+1<}|XS0!t+2f1X`=4cA+aCn{EM>g6o7ES&0Vo`sh;O|P_?!)Ci-7?oX7Vt$^=G9Gk_MvNs^?HH% z-+e_wt0gACUB>xPV2$Tq=lS3Ke_Z;{a7bIBAncpri?TUg8jEkb*lsynt^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!-bD+d)0b*_k^X2Wp=8bdUtEFEW6L7Z0*B# zdg;4!f{HVM3?B6Tpf~i-NZ?{S+&-t>h&UBm5t|gmi20XkP zk|JOAa!O3>%+q2^)>XT|tKXw(%>TW$;@`qYf1~}{Bp&XFDPk;Pc@R=IPy1T_;;HlA zg>ku`7Q13=o0(x3zVpq@4xUMdfq$2snY5^)Q`RBDW4%<@zg++N`QO&57VbDdfjw2( zc5lYk`}sOWj%5jDcephVKDhFkf5O+DrgOC1^2a^ z>}*aSci(95(YWzl=kTx4p2L41#xPtLl8vyg+{E26QRG-_)5F>8>;5w=&Hm4jAs=;5 z;CYlW=jo}hdV-7J2d;LNS+C^Qt^D^H7i0d)_pYLMljr30iYyj#>;LzuIZ&r;<=kl> z)>S=ZI4csEBA!%fw)kI!`;~c9qhhTN1yAOXe>W%4)qA=4g{78yipF literal 0 HcmV?d00001 diff --git a/resources/ui/units/aircrafts/Fw 190 D-9_24.jpg b/resources/ui/units/aircrafts/Fw 190 D-9_24.jpg new file mode 100644 index 0000000000000000000000000000000000000000..af7c52c450550bfcae4cfa84196ae38568a92d93 GIT binary patch literal 1094 zcmex=^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!=-CA$@xp~>8>eTYqHdQqdM2(4ZkjLu@{fd zy7;ytPV&G>K8yPA^@nz>4ZBo*`esT}ocb~L7@q3lNI}jiGZl7bdhI`T@kr4ctKxYa z>pJx!BNtDz`?U9b%D)TU7lP_Do#*8K%|5O4QEg}cz32l41raOdPp$EPWc}ixlEzL+ z7NL5-tKrL^`7VD_75{CD{N2UBy_j$9Y2D+xI>v(OX%f4Q!js}J%i=3PE!v#**@s`n zSd_W(MeVD~g%=H1oL_C*{@Y95Kg)j0!Y}IuCWq{ZIOAEtB!15&p|9-i+c%o8*T3pm zpfWw^L2|>hzKSyKo9B1FoqsFfSI~ck%mZwNaa#LyuOuBhae1}yB?m|Oxmi&^+5>mB zYjT^PJ*mIF;GL!XTA44u4J~|2-B+otW`5pP|E))E>T{{QwPoKYyXvl)=r&hHcdGh@ zs=u|X!{0u?woBQ|DBR6x&Z0Ld(#@}ZKYzU3zf>gLb8d?{`<2T+UjjYKBx3nPg1-g^ znv|U>y7po6yQVI!oZTYp;x_DSJKnl+OX<0yMCtv^(aJ}rSsNtnj!#L6f5IvfVii!! z6_i?iHrjJ{|Fdnog!F2*>#Yg-XF4ITQ@(b^qB#kRH_YDmB=C$|QT3Ji8Q&LmZ8@3o G|0V!Kak=*Z literal 0 HcmV?d00001 diff --git a/resources/ui/units/aircrafts/Hawk T.1A_24.jpg b/resources/ui/units/aircrafts/Hawk T.1A_24.jpg new file mode 100644 index 0000000000000000000000000000000000000000..cba6259fb5da45d209a05d4e1c3f20120a4edb05 GIT binary patch literal 1243 zcmex=^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!@Yl}zpYb$q?9FPy0mX$YN1JBr%%wD{4Hi~ z;r0_n@5N+)n>JB0FSSkL_(zY2?yuu&AFr3oxV5d-ZgN(C$)~AGAwPqRmMb(>{gd09 zy>7|VY~!{$%4bVgh9CZCvNe0gm%nkZ)b$ppzFK$nPJQd~B>TOWe_mh6tFItn#Bcg} zOVO#I=!#^%O$=TWBznr_re3c|KQ5ZgPBw8eMEse6h}5ARB~WKG@{di>ee3yvRiFI^He-Lkeww0xtM zV4vl$^e<=SBa$kT_XC4x@o(c>JG1k<%I=kP7U!+%;tc1r%VT7gTWcyA)l9{uX zcznAqFfEnkSWI4gl5yCoQ_(^%R=o57JM*nK5Qo`sef;mm(tp?ce=k}+Yk5*-;+==j ze(QYdOxxDx$?jHhSn%hyvZYHhtClQ^o?ZB?l}lDS^T5mFUK;DBbL_py<(qSc`#kG` zv$M7L>m{vVvH_|v!cnN)u3f6u)Bk5m-u@ zULzr6(dt)Meha^SmXmp_Y-_SX{@Xjt+@2Ut^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!<)ME?BA#Dd4Keu*<`<~DVIxjJU+vobJ^lt z^u@Y)TQ}>id$E)2{hJ-@P54@7LuR(%kzs({i!`(Y&uE$24({}Ef-CVUO*Zz^( zVwTt6b|~&>w>LN#c6{T12B|M=l|wI??oKqFd+7O(MRl_LJN_;1`ndjwdwNho?16VH zJpR10Gay6}q2sZt3*EEm{(4 zE~|TwFZeYlyhY&T_qCQ^HG_^;7jjMH+LPF!qHsW^#A4~&C&7o0%6&O>GELCrVkgH5 zr^@4NJ-=1hx>k5zeIMbeGe4ucN5fNc#>DfcJim@DajA>H)qcYK@8fCD@6F$yQq5BR z{N{tNBDM4Q1LN)1tzEJDoqZwB^P`-Lfb8zR6NxkZ1Na{XoSNXZMB=jDjzwLauAY&Lrd~Umubt26W;f;I z#6RpJfid~)d~aTaKG`j-+<4_``o_%@XU@`#c$fStW6{>-ZOi%XgDpd+bgpf>wWY~U aaD&4yp3wd+^P@D@wJzFZob_w-|C<0$l*}~% literal 0 HcmV?d00001 diff --git a/resources/ui/units/aircrafts/IL-76MD_24.jpg b/resources/ui/units/aircrafts/IL-76MD_24.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a25bad96c61169b38d1366c8aad4acdd295905af GIT binary patch literal 1070 zcmex=^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!`{EM9M9ePo6Q|Q>$m?-j%go65~r&AD}P?^ zbaems*3^ood*^D^Vt?xGFq{%I;r_$dvG=ZSJ|D30#7ptjD`U2<-n*q-`$T7vcU}70 z-1@Zn@2*?qG@X!>Tzf6&)0whaZ?>HEe9|cNF|m@J&Er{6^efw}sh%!DP1P9z|IXUq zUHseRKSSBBRI_tN981!+x^bObID5gnjBjt^jy&7H+5dY6NYT2*r&}(oR(phO*`&mH zWjEuWm$eCX2j|@Xmih0k{LSURx9-m`Uv_s+bgZM{^S{w;FT>0Z&zry0KJVz8$TR;L zfKIyfpCMiT-E}V)=JoP{p0o4cbJ=cwBX|7F)4oOb?=73_x__^$=zc9@=$! zC2i$t**VRBomPGg)Bdw!(d3qRrzx{kHdR-LSuZxyd~@0IuW{GT!qw+4{%2TpR)qIL zl7Yvc7mF5NXzjJ#vc7o6l|>&}KUiL0di;BkvxNOrtIIwfN7CM(+&$6Z=TaSy{|t?M z^-&rtLlg^2mt0(@#xXnhh}fTGO-YsNC!Yh|E-yK{?@r-uPFK<8n>yt#c6=`{I{W!V ibf(0_-;G}^SHE0ow1DSnhs?a0i@FM%oQiV(-vj{VV!s6d literal 0 HcmV?d00001 diff --git a/resources/ui/units/aircrafts/IL-78M_24.jpg b/resources/ui/units/aircrafts/IL-78M_24.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a27276e11b9f48a0e7bcb75ce4db0d1d24d1ccc8 GIT binary patch literal 1107 zcmex=^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!v(2AcEzl@f7hO}__S@sms@=GR&VSt{%6>u z)wf!8N|?^4eGCdrj27xIZ|#oto+H>g?-}ph%|?#`g|{y|Q?E7sx5X&#>A5d&a-B_IKB9f76kYadmOJ z1Gm|gRx8gy>OWl2^s~X>`b(LBk>^-=$cOko+&;0KPmw#=n zW-GdX^Z4&A`)?ksF3$h^(0zN-H@kGbQn7zu&40V@-;=Rumu2A0 zu%~PDj{kDq6I8va=U=JAjVR?b@p=3i%ToV^1bSZX+3xC=o0D-fUYg;VsnLlWKiBD{ z)I4718od8{jiZLzy^_w(SDkzM7baya+Eh^y?Hn2vZm`~OZ_WJu`>#lT{A2t!_&+d( zY{|*hz2Npe>}8=6gZUYb{4>SBF1l)5=sot@^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!;8AZZzJW@`(B+syggjZPiZdG!*h0lJD4ih z?p`mDDdu;wuu{tCE4#YrnIFx^=1E`qqW#zI+V6AoDk24g)PCP}w|G43)zt88nZU)X z((NDi3&tES*j9DrUP{m$*P)T%r_+BgSKpo-%ym}V*z@6)xsOWY6TdBf6L)pKde2)i-|jr| zc|Mz2|1y}0>@(^R60>Nter|sy_}4-E(6sG0YFGRg-28ThZQ zepR(>g)ylQ**h!zUL$d?-1`Q z`t$ww^1gdlZQ|@NJ@z>I>MZvLbzMREWq$TnOCu+Jcy|59-j#L7-+C^unCyDh@3!@e zxgY22%rSqG?R~EOO7ORy`6<($YpPy4VeljI@~oqioi9s%SC}MF-=@Z8uM_B6YE@Xh zSk%%zE%`sgA$8@u`g2!G>NX3x-La5s`0^*~Kf@p8s-ks*PlMPPRpifgX@yGYwOU=S z^-?|@&gFOehMT*BHqX@)HnurTvpZ+(uvD}X{LypKRqmK<^KJi~7Y^H$ee8JX(#!7Z z*cep1=RZSLm)6g~xkt>i?pJ93>gsaNHve@yLtg$~kNitlk)nlnCpqf~@Hq1X{%6?H UP_H%n?eS|}8c!X|>i^#a07?kg3jhEB literal 0 HcmV?d00001 diff --git a/resources/ui/units/aircrafts/KC-135_24.jpg b/resources/ui/units/aircrafts/KC-135_24.jpg new file mode 100644 index 0000000000000000000000000000000000000000..118a0a836b037364f22c78ba891f5c15815b0359 GIT binary patch literal 1136 zcmex=^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!!@hSFYEM=3C3rdZ}88x>6BT0=$&=B=JWmn z*Q%1q3;r{NZQTC*{Ptf`4{c&s>TO)QMBQiCwn>_scV1R4FsP92tFXIzQ)^PzabBxT zucvE;p52bzEacicwf>s>y!Puaqv~(oe4~A?Z3ch@0zL-|0~5q`9f2r==J4C zG@KZ9C+PQioM8X3Y_-W&&H&#R+5Z{R=6l(1_Wz!({ZCAE`JbQsXD%P_e{f9*EezuAAO{LST;R`ko&{Kd|HQ+gloPC575X~(-G{V(0OC4Mc-s0SJp z|K{@FTW9PAbi&^|HQPN~6J7D!ZL(7G(_gtk#qQgaf9=+*PnUmp=|4ky{pRpBTi?nD z6ivGxxTnh~*doEU@a6mPJ-_n<-M39os_lyP3%EZ&D)Wl;@8h2rb-jA(=9=BUeP__- zgCY(887f@^r~6%Aa!e`X<9`O5C8__m1bQCQFELfymTKKAb@k%D^M%FS^XBhM+CMd= zJ2&XSj7#!cG%SUf{OWl=x{A(uaqv|(*QO}3ZLhuyF1=*!sPtzU?^E;s_oe?CELJK? zwZ40u{Uzg}@=P(G?UyH2U367-vNGIt=_>bs29CGW|NOaA|9JmHe}DeW1HGSOEWYTm ze-a4{f3xsLf2Q5Dtvz8@Wxh-I6z-JJ@7X9f)8^{?x59s4X{-wLPLj?q{(lny6LZ)j literal 0 HcmV?d00001 diff --git a/resources/ui/units/aircrafts/KJ-2000_24.jpg b/resources/ui/units/aircrafts/KJ-2000_24.jpg new file mode 100644 index 0000000000000000000000000000000000000000..23c8a011b918d71cbc77ae24138b1c19affb1da0 GIT binary patch literal 1136 zcmex=^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!!4-!0ie|IU6}XA${UVd*8O1J9p_$*dV@B>xLiayYQXf z)@Izr#XLH04&@B<4=wWia#NbSHqZZWiRgCQV{;1@zcuSr&z~#$x^LIUzIchF-=dkn z8JzI(7C+_wQTW%D-;umQojW#0?U@%9<8*#bE}v2Tu{HH+^Sv%N9XoXQ`@zI~>H5lK zhD+yH+_<&U_>QB1Z21W`jc;dcn_i^;XGr@U1R}zE*R4&g?%#A?7);EFE|IU5u{;hm#w)BeW(i7Wi!$s!jZeRXZ^+wz|+j9Z;<)bq9sU*zO zShrePNo+2Ej(naLr|X*bXInddHwFBg5*YOI=od}TbxXS~-{c0%Cp+Cdp{s21r#EVH zM4FGYX1o38GmL)@F6wG`VqLY#-Fj_wT>Ok#yg~2F-rwWY^Sfj_g+ViSP42@&l?%~# zJlKC7KllDjpsT7AbLo=Pm;9&R=GI|WcxK@)ck`V8W0#^kZfE~92wQU4+65K5ie^pm we4fHzTUo5w=Q5e|yXw?7dxo{M_Dw&tan^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!=h_4#S_0+toYBc`FN)MzhCPvJvwAvota+v z$*uLaTtnK9>mN(^eGR>QgN>#4QhmdE-|L;v+@{<+k^immt#aM`hu(kZ{Aajt|NX>D zojtM3d~0?0zOhenk&N`t<9*v;r1kcAM~TEjebz&FJa3sud;W=L>dzPW7W^i?KKy6=O%C2dhe%vZQH#$ zDe~)|dp=4ET4=Ydw`X$vX|3Z-texMsc{A0`3B8=F@LGEL{wWc4Z98Sn1Fyb$`g59D z&(1WtrrBOovi9F>b4W>$KYQyo!$FI4_9qv0ohwON zoA+$PYV~42eV(%tKi4VL6`y<6^x88cKcT@O*x=BvHtpTE=PXPDT~;`1FLc{-d$SHN z+ZV5eOFJ*fJYAyxMQL}m_Sa3DyKb53Z0upWGuc&i(PEKwtxc&5*V%u6S-)NW_m@Eb No5wfoTzcpKO#r8M`yl`T literal 0 HcmV?d00001 diff --git a/resources/ui/units/aircrafts/Ka-50_24.jpg b/resources/ui/units/aircrafts/Ka-50_24.jpg new file mode 100644 index 0000000000000000000000000000000000000000..214e487ed717e85f0408b3f222c62268f1a7924b GIT binary patch literal 1199 zcmex=^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#L+2W^rf3GfB_BPuNnbHaobpBcgz5H2yUqI# zhxg`5oN(%0v3o|-0ReliXM6N(6H_yCzKUrbnBLz!CGNqa-S;##Bj*(@xRV!URrv3% z;^p(-eY1Sm{K#UKd+TYoL%qmaU_sTdkcnARA|EA_ugp-$-T9ec{r1}MYm4v19ZJ*A zeB;Kn;XBi!Y{?5LZYkexH~)E^m+S4)=xn!ENxMXaiT~Nwnd&_?wtL)mwO)8&I5D?b zhJrX+vQQ_t>m^{?Dt*g1sQkE^?iEgW!=A_`cC)!qr<<#=0~_xOUlgH6ntUj zFG2r*=k2CmsZXENb1<*|LH*xe|8E?BSNuA}pRCOA>YRPg6{CAc4bN;m_M~{4gRe-~ zo{36t78d6&i|z4E<&-?noL8^4;+I{|sa3j8T5}rKIs93%X!%XYFPeVdD}!>`jy9X< zoYb^E7yh#_bn%Bb1>0xJUg|XBWU`-b@1?P_qAGu(*P81=yE3Mqv}XDyMTGl<+||De>RxyIH+J<8|Wmi@b0?C003Je{pQf$ieU1J7TF?caL)_wmn* Ox-L3toISbu|4jf|Y4R-q literal 0 HcmV?d00001 diff --git a/resources/ui/units/aircrafts/L-39C_24.jpg b/resources/ui/units/aircrafts/L-39C_24.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ffff344b87c4d17dda1366dbf4fd9313ec29f4b1 GIT binary patch literal 1176 zcmex=^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!-eTyMn_(72Ay(9ynS!aUDLnezWb`H=T55h z3vwy_V)Nko7EjwfSrN+n*j*XsKaX>Nls#8J;_8za~ePZ{Y;c=Aw&E>zhKHYZR-Fv6^Z0(OSuPQW_ zFJJh^eQQ}+ypUa}_il+Nb*+z78UOHQJ?<*I(wVsR!o7cI?e8xBZStR?Z1eO-qBAYb zcz@XcXNa1u-v98HPnqWgi@6fN^D*w*e-(C9eoZZxg>FZva zpX=m#T)phWk|Or~3%{*?t-HGRdhnNLt8W`tOP3ndZ|+~J|E=)L+V@7ce;=A&yZw8s z+^yKwH`9x!ST+9pnid=Ja(c^_Z-rv&stvd5y)@RfbL_pyxpm`Q^|mi%mLXH^Ce`=4 z)L19thuO3qE|v>$JbK$F(W3_m)g}X;#?dDSKx5^>f^RR{6i#YuhJvD^+e$ zo%?H7(Ni0^e?I+DKXL!H`=8by|8pu_POdL4QS|g-xeA{0N%l*_{xh^hG#^`dd{_O~ z7mIdHlbRJ~So(Zt+I{C)SGPN_$jy(PTB>*@>7@4yZn?Mo_Vc4O7Qedkn|=Gts&k)% k+Z?}jKA2|rAdmgS>nQnK>es(6>RNFruv{tlnfw2n0M(oFu>b%7 literal 0 HcmV?d00001 diff --git a/resources/ui/units/aircrafts/L-39ZA_24.jpg b/resources/ui/units/aircrafts/L-39ZA_24.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6658aa4d0bd935738eec49a75df062105a823192 GIT binary patch literal 1157 zcmex=^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!`8p^YPH+;UE3y+GYBLIYP~XB zb&2uxfgkMunB3*(h7?9sA34vvephyV`uukn|IVx59aw*;c=7kP#QCL5?MyG7zthQbnRJ0 zBYVNj=H!=KxX#T!EIv_`)9RFMXjNTWmv(4tOLA@`zo6MW|LnzCVwc$a+<2_tGRv>c zIbyoPvvl{ibX#vGPWx7oP#qJ_(q|brUqziM(%4y@sr-KH4f(?g*JfOmmYE~JRwVRT OSNGl%Q{689zX^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#L*_=isb}}C`F5-2+UDpyj-z!S*zF(2e%o1` zx*)T^y6SeYwE(M5WM6@S<=Yt1dsB5VRH_Z34J5;|rYX7ZS>GJmRh5t+|>kb`Add4&FUc%~cF9lY5 z&Ut>rf2lqY=f{``FgQs%{(G$d)pTn4BW`W&)~0Cf1J5`1%T)CTep&jpMebN?JG>-q;h(6DH}Ap!3~ugojhmJDC;$6p!T#Z_++Frf6VLzc z_!YeGNUiqDf9K?;?7#W=Qh#3Snuae6QVLXc6h7C7kmkH-_&t8(#U-4M*W@1 zw+fr5sm-~Nc}Y)w^Y$s<(tPAEb!q;#=nR=&H0PGzjQ9JrGbV2A-*e;7=1}zux$jck zroD3zez)pDI;Ad+ ol1GPcd5SN-`i}kA>DKz+X{^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!}Wh>|1+fRnS4|{YF_W7=-ny%cLuGKvcD(8 zVs9Yv<=Niyu#ausi&=krdp+I3Et0zP%X!D2*QZoG4&L(7Y(4MO-px@{x=&ACK9#XX zj*ronQTfxlSzD#UEHy5B-g)&$b=~bBUGhq?8(#_b&t+$F{QLCZ;_a7q)xSCXGEP48 z+0FAZ*S>R$Y}}AqQs?+}y~CCtODkm<^S1o9e8S9n$<6oPlZ5_Lt4yCvow2;#_nvy< z-x>A0-M=M%S!WmDy-A(frA0ot=ty06NcxZMtL$oK%UbD|-TTjQCHU7#`>^!dzcXqz z{++R#`po{rW*c{v7suY66_5+fJ;46@-u5r+JHC5u`p=M|bZ0_yLMv0v&40=l_~x#N znDA?}H9ydKU~7u*Kk_?z+qT*A&XI{qANGbXIB2_{>*j_Z%?t0{^=6*dp3N}H;%Ca^ zjc?DdwO?bV-k!1j@2pzQ`pxw>*M?llRf)a0Y16NjZ1ca}&RU;occj|lyT$Bl+pj2m z%2)Dy#9k0C$?)r%?)A1WnU8OaZrGml_s7Y9E*D)(tO~0aC2Q)=bp9u(9a=x_?IF3v z=@x%p-Tsm7Rpc!_$v-IdKf~)lSN{#mZ|u*udzSmYHCgb)HJ_gQhh=s?|9Jk(nynv> zE#mWCI{)uKlfZxv7m`Dtb^oew+jeK=-Ywey@82sDdTdVeCbi%x+wK3~1OVb-3_kz> literal 0 HcmV?d00001 diff --git a/resources/ui/units/aircrafts/MQ RQ-1_24.jpg b/resources/ui/units/aircrafts/MQ RQ-1_24.jpg new file mode 100644 index 0000000000000000000000000000000000000000..732d3f69d3f1865dab008f15abe10cee57362aad GIT binary patch literal 1017 zcmex=^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!DezW_(4=vm=h2uZN#WSw| z8D1_c{1slmb$asIZ{9mQ|IVG))c@x4OMlO=?4_-8jJpdT$gZ;GJXi0fyWUjuab!T$ z8_NgVEtjk|-{{vBy~!S^)csrLm*uA`*Zf_W+;!`Anz_lE$C=+`p4+!+6|OLm$bOly zoqgfm3H86e{M|C$QA_iy)_;by`Cjorok80cFH@geoL?y%W5BRp!90KYXV;tBs}=D{Ez0fdkQ<;QfG3% zwMbaur}1sm8@Xe)r{ixPzcd}FK5Xi=#iDmy&-e<+)I65_6}sN){*_>$8vT^ra~59V zU#ob9|NDwXyDS4IEc3;8*$9Rn%~)#G9B^ zUeW#kF4*5&^6z5)`#{&&i43J;?~YCW?L4XYg&Yi3P literal 0 HcmV?d00001 diff --git a/resources/ui/units/aircrafts/Mi-24_24.jpg b/resources/ui/units/aircrafts/Mi-24_24.jpg new file mode 100644 index 0000000000000000000000000000000000000000..97efd518587729fbe2241c3ca0bcee1d8fdf58cf GIT binary patch literal 1203 zcmex=^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!|vLQY17u4^dyJAI%uB!%2tcJe)FB^B@6z( zGgz?wljv33tBY5<2b^-_P;Sybclof@yvgh8Gctc|jPMqVE_zd`{!Z}1`n_elwhHfZ zpSSYRt<8)3{Xd6n=)ICIZ}iyY@zVM4=AT*}Q_+3IAWrK)L(h?D;pF|6cwXT))|U`OCd&TsKw zHs7Kkx$|(X;eGkIspp*^-;ER9zjsHZn0dXCbkbrDewI9Cg~9{BeqH&SIsI$!hDql% z8jU=IgY-8EvpND4z9bE5AhCs}EX7vkRLHw=OkYt@&7;CFMEOx~PiF z0ULXhtEOn}6&4XDFKvCO3ca7t5+@TQxD}rJ-x8 z&bpP#vg;VmS*XvudX@XOyJYAc`fS zR#k;&+wvVd+s&D$VsYqa58s_Rb87vJzbxvSpXk3a?o#c^g&VqLBkr%cly`FrAAjCn zi$7W~=e>S=+G79g^zR0Can^E+?T&S6)vfp6P#yVQSJusKvUPIke}cVWXQh{ Obj?~ct;N>=|4jfCne>kU literal 0 HcmV?d00001 diff --git a/resources/ui/units/aircrafts/Mi-26_24.jpg b/resources/ui/units/aircrafts/Mi-26_24.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9b0204efb0dee658abb8b13ec1949a5531d8e701 GIT binary patch literal 1122 zcmex=^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#! z+`T;Rert)*tHL!o7mvvv_!+XzsBY`otg5V;_FGMUM(M^&P6|2x-k$mR_8qTZ$Nsyt zJo#Ked(oAus#8m+M({j-=Ct$A%lkLut_J&k?D=@~Y1XWovsQB?6_$`__b)5t7PGjgMmuxAAN9-3^@StbZjWJWi$U)3K7R z&bfvUWjpRzKjE6*wc+17FO#)*+3Mz8`p=Lu|K0W3S@TqPw-xixFIHJ`U^mC1K1&(q zFY8u2ecV4g`QPNMX9=8#tThh2^7Hqy+hV_3`ai=>_upIg1BtC>GuK7GDqB|47ILdH zSkM3Z+GwfPZH%{W*fhm_4wt$#?TD3U-kJXlZx;W(75`@Q-&>cYrf#rNf9?10O7ri< zpI1GfpIGF)^Q83S*FNUQuXSlJJC^MGyT0OI$>qBH_w4721SV+2xaM2GKkWANWXA2h zx_w*Q%~}UR*L&l@*qhn`?WgBJrJN76# zwB@cF2ZJ%IO{1&m9D@&8&nB(bzTuG*#xYSY$FhE!$CM_!Wm^^JJrmW?e^#Pyox<2) kcc;)*H1P0czi+BnCcCcRK0hjc`~3HTuKCH@^8arF0G;s6jsO4v literal 0 HcmV?d00001 diff --git a/resources/ui/units/aircrafts/Mi-28_24.jpg b/resources/ui/units/aircrafts/Mi-28_24.jpg new file mode 100644 index 0000000000000000000000000000000000000000..48d8cc97c805554a821b48f7ab5ee34bb58b475d GIT binary patch literal 1169 zcmex=^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!;M<&eCw>9;LPj7GZc2Wc{U#Gjn?7cTXMEM z=dN4!S)16@;srmt^o24sj#)~Z8)%$rd*>m4=p;p9IT4de*&@DKhqPnS9v=hl4NA$2?m8nrHp$ z+4VP1zuG@n{$}M1#x>Uc-BJeI)4P3lPyMB}Az;bxIdkel&&SjR@1NQ~dC|*{eYYEn z{~VQ%O#GU>=Gu~O=gUXmT>E@ha$@ok%^gj(_2-vnsLhHqt?k*}V3F8l{5meW`q5v% zj}ALFZ3-GP#s7t3&B=vGhr>Fk1+d@?j4gajRis#ALWcQ>i z!vC-Fl*eDsiiGScs9tpC$+i^Vhq|4BYG$0ipKpI}>F>&aUq!;E8QcHA2>?!K^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!<$jX# z?R;EUzc*6IwOI7c^)T~AY_n$yKEAi+-i{N`cFz^tX7e@B_PoPy*X`?H`u_IazP2Df zp*<8fWNeoLYLp{Scxlt`JI5u*1z<~d+Wab!LmKO{(V2X z;n=cUkM2F4@kz)ucK-aRr=_*YM}_RCSDIY33^+4!+r`E?^3y-An7epa+62F7lj`o* zvqH+5*k`P1NoO;YsSC}`dn=I|Bfqrfq0Fxt6Fk4YH;`7_TF8%!WZ|m{@3>ot8<@$34{Hjz*pT9m!W6dj-N0+svJWYbO zUs#*6-BZn|vTyf{bP4s_w`S`#=ZoYkWOv?ZFk@Ko`%#y+eX`$escO&oqQCQ|W~OR+ qN=}_+zkBZ|_J>jN8FpI&qmF55os``6bjSWoyDcCb7@{rz|0Vz+uDkgF literal 0 HcmV?d00001 diff --git a/resources/ui/units/aircrafts/MiG-15bis_24.jpg b/resources/ui/units/aircrafts/MiG-15bis_24.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e581ad9353998aaf54ee919123089d327a144b70 GIT binary patch literal 1112 zcmex=^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!;M<=6^EH$iCe6z`*-Zut(?lwk5^bS$e-IC z|5n3Ri+lBK?;Sot3lzTC9{ehL=c)OH&yN=DnlpFrozA0ohz~bM?;kGsPZq+@q}&HuMmKVRY3 z&g|bhzXJbGe;csAdu`{okbFGw82eiJh~!@z!+-1Fn*Q71 zSJ|~kL~hZH?|~k_@7j1CEjJr?{1&C|6YOpRGYZlYG%<2Ur*fq^VwCj?ikDO zNS+;6WKS4$Txgy+q1N!WXy7`%n_fxhGbMiaUh2}UmSEp9p~-vyY;gfaTQBGHud<$$ a&x^@g+AVnJ`=YKDmwU?8f{O0^zX^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!z)vbcQ(D(jNR7lyd!0Bn-LFPX4+H|+OpeL7ugRZP>o)XnRvrX|(O=!X2ebS1ZJ?c6V~rRE8l zCN2Jucxm(Ho!j*%zP_FC@55q&`ik)Bu8-D+nH=sndHmkQrCzK2kE+#5=BGaM?s*3; zFD%-3;>#b$zYpDjhHIa>e&p85b6>dMe=GaXAXV{E_OVCfdz+=_&(xi$U%A-t;Yqy{ zU*>M8uLyeE{QJ-jjjzimJ$xSP(D7}8l37oP{QGqK=b~$~SHC>ha5r1ft$;x@Ti@>a zWUtpdeyZMhWp)^7$%*-_VRyTzBt;c`1eWw-$6WeOqbH5Sd^)Sg)FSuS&{=lo%>CslbCe^%`_$(t=HvVNJyqW)CA kL(iudo>Wp~tx&d5zCSsrcD3w_MXL;Z%A9idp8tOn08Zl45C8xG literal 0 HcmV?d00001 diff --git a/resources/ui/units/aircrafts/MiG-21Bis_24.jpg b/resources/ui/units/aircrafts/MiG-21Bis_24.jpg new file mode 100644 index 0000000000000000000000000000000000000000..07de7821c357805730b4ad1a17352a9407fe3752 GIT binary patch literal 1161 zcmex=^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!>c@#XVcg{o@T`KPjh9MYPZ8i>eFBMkdI-L z>s6N?eZ{G4|M_IW;f*pyyj2sg9N$`KFRSm9$gOdj&3lLGEXRe*;5>}%H!h2ZrkKH&X@W(@_T){ z{P?{f3;S=k6Mq#X|Ap53e4MwtoZ0w(WNNfzfyn&jBGqpG8{8NE?WhX;ruZ_hy8hAI zGM32Tz%2}OL=V{i)^$w&C?49E`0ZrEJe{7FfaP+>MgA`4Pw4mhE%0UWo8(IyOy*0v zSEkBL=VzF@iEE*a%G?GQ)NQZPptjiFLh~eo@#qWI6Im7H{+rSd%`^) ze4A!`{7L3w-(8U%X4Ckj8BRUz418mJR3xnK5ZkIP7qfrMGC$38kiYvWylei6U7??@ zedS3=;8%70b6`ohaQ^*dfzy_ zp*r%r7(f5*19j2U6Yq$Ms{9h2dw_B2L=VeTKn4Ccoj2@V^LtjA*|%9mZ@2a=mr&W6 XRBs$^ccV6A(Mng{j@-SG|8D{S^M%!U literal 0 HcmV?d00001 diff --git a/resources/ui/units/aircrafts/MiG-23MLD_24.jpg b/resources/ui/units/aircrafts/MiG-23MLD_24.jpg new file mode 100644 index 0000000000000000000000000000000000000000..876a6c2b52d2442c1a07e5730321993d78c4c4a0 GIT binary patch literal 1146 zcmex=^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!`&+-KkGN=?K^i={Zq`b!z*%R!uwv@sb5>P zS7`Q4_1>M6EdLd_Z(sN;eDl3mPTrMDfdwu7UndxZ$vb5qdE9sTeC48u-!GGEAal4qO7t`GeJ$Dg}zPyAX^rT(qr%hKNrU)D)oe$=z%-Hxpt z%NbhFIlez<6?XcM*Tsch=5yzk&yig{ce(tjS!?SSmFSenC&*3NpCC8Y@9@!Eam(d? zd+$hPUct^%>$v)HXira%;G3)~%f2Zd<1U_P-hOS9sWf-y+nA_>BEet7;-{28>(btM z&@?S+cGO}qUg3aAPMh!O?(wSoWKfp)#<20nwL4K|^MzOqB{}|SN=(XFw8$h;uJzQC zB_26nK3}_L{B?!>rY-M(KD+<@u1Kg=;TwOG-ThK^^X#9t%gsLPHSL?`rCZAXKAiu& zsLN9MhUL;bg>5I>c-L5biwS9o65`y}F!8csbN{6-ji<4#Wf9REy0^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!?oYyTZ_V9*NUw+>VDnP6M5`PK&$78a}|%5 zWnZ>CxAply%`0z&Lxzoc8a2?i%Kk!J91<9log~biFY7@!sTx&B{mN+j?r&MJNP* zO}_lvH*|ZzRO!6}Ks}4!#9b}iT5HL{uccvsL?!G$!v)V(pDUXEdz+4JI#Yksr*65( z-_`0jCjRZdH65r{WS`nLmpeM^EbLbQGg*ElVB3KSqG`wV-0bJdUF^PDIq7ddP+8qo zFMTn$)QYErwR=q;t+vXdawSRl=-y1nSY+CsA{8E$Zr3ps<+nv8I>biXM_(q#g zu|BWYT0Y;yvsT)nYNqPsia&jtn=0y#`Mle?>)@+>Y3{FGMfT2dzU48Am*2lhS)%er z)#fXY{Wiw6<^O)yrL|LF=Z&WuHnP0?93xk7{?fc_W$F{<_^Rhzbd~9_oN@onUz<5U z-9Ol7Eq&f@(*50Sj(^L!t9`MHXK5^XC}wJ@bZ!2Uj9)3;s#_Nb=_}s7dE(F6oc|1& S^6vv(^*p}uRhHZTzX<^1&B>7f literal 0 HcmV?d00001 diff --git a/resources/ui/units/aircrafts/MiG-25RBT_24.jpg b/resources/ui/units/aircrafts/MiG-25RBT_24.jpg new file mode 100644 index 0000000000000000000000000000000000000000..379d07712429f09f7675cda17d4338e1ace15e44 GIT binary patch literal 1111 zcmex=^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!wcVu2M;{oTFAR5>$Of_Z@Sts#swM`3W*JQ z2j*3ZzMTE&tLXEn-I4dQwr_BFb853_!SXx_nXi9%%Zj%Zy3KNXHgUzx*IcK?l6Lmg zeY)o-Yy0>3jRi? zy(@mpZ&m-JGAn(KfY*_U2R_}X_sW^4yxHO0L{BX}LMX?Ogs`;EV= zB=$ru+_iGj)3x7Ae!KY0UuXF1+T6W=TW`JFw!10uKZDN`-ajj=!|aoj=HK|cvhMiX zsOUvsMRo&mwVQrQU-@rm*~VYbHl$qGvNCVU&I;i(lbkgbtLLvg_}W$U!po!YQYBAW zizV;9GG%tivBn_ESZIz8UD>_MCcb4&SBk zd1tI9?X8cR5UIh!-F)KTgGF8IJSLtyt~xe3RcYz1WZalWMwnIFIxX ZIiD53ctY22pC6^M{M1C7v-AJo1OOeg!A$@F literal 0 HcmV?d00001 diff --git a/resources/ui/units/aircrafts/MiG-27K_24.jpg b/resources/ui/units/aircrafts/MiG-27K_24.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1f8dcbff447055ba49f67ab756b05e61ae91acca GIT binary patch literal 1140 zcmex=^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!_6I+mzZ7Z=(}lVcDS!yrf%!gX?Cht9;D8F z_vgcLex5&{?@PRlJ6~*4bm-&Csop&KT@F3A2j9l27pJG~+WSP%xBTg0Wo@y}$WHco zGeq}BO}@BzRj>oK-oJtZTzO|McFBjp53#w!JEozj^OUefsZkiTeUu zU3Kct>~=VB$Y-w{6j|fEJM+$64whsF&2CBc`}R@s(VzHN{hV9>t$wRM5T_h{eA`s} zTStRa;e<-|pJ8A3ca+Rt%4R*|Qx%(qskhMlKpW%e2|%NR{x;v*a`X&KicEi0{FZ~S z!{4gj=uek>u9e@vHsw`WL7cnFgrg$mKJM?`Px-Gay#8@f*Q)~Gtd!Y)FHUZ|xbB|+ zm))C1vg+RGPD}i%+;vNA8+ZSgQWc(*N&cS~bxrltSRUl#wrxX#`^^jKJ6;F;XGp)% zJa_$<`$t8BpY$gdd++#|p1@Z#=WoR2-nESie`m5^n5D7!=J5?c8EIeJUAK^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!`0vXTZ`j#uH9p=kI8fo9mwG>t32qT+KbDcSh~?#Dia6 z``>QgkXpatchKMNTiXSdCNeM9)_mc3VtJ+JTla0^8`EvR-`=&mf3aZ5`b*rulesqr z&uN#LYIpOjNZ6f;ik|D1XmaH?8NZH4cmjO$#Bq5}#q^SFOn)Kz!R rw)6S)qHpu_lb5a(E10pp^zUPte`#CnxAcGSf9@($^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!=>MxU)Cib`M!OZ@6`?4HI%hto7Kt%s?s;C z_xx>io%^*m~PLmOcsdcnd*1WcJrO8 zaQAP@FXL>VpX6J})5Z11f@g2>KhsxM^4)7ywt9SxWGQBD)Q~a1e&OE~r_I|IuXK$2 zXkvGyR^zwem(|7<&91GI`>sA?mHc~a+WE_}Sxf9Rw(M&0%uTL(x`XSYK=F&Ly&L5Y zIqy4Ct66vSZRol^uBEcOjWVV;9%nC-;d&N*eAYoD^&3fUpP5!fbfz$To;a__;;rX( zslzAU*d2ZA{Y^jX+{TYngig5L-5kA);pZm_nc`#C^H1%P)^$7d%QWK&SM-mFK6}B5 z{~WrZeNSN)sUrf(D9m}dWNa(&G;vz?iL*K;x2-CS%LRzI`y zmEq4o*UUGMR4tWRZLC$IRVv=(Es>cr(_rTxhVzfZx4)X`y2)1EL*jwRsmEUzb;TW1 zt*#Vt_$ZXmWU()A#+1S@@4GxxKgMkA`13QFAwlB#e+EmiDy>Um*Um>5Zi~L%@wsRB z8IR+2jL)_!Twbdb5EuD$LQzWklld=QMXqWrN)7YbTqt86_Kb7cj*9)eF6GIuO`Xq| z*|#H8{q_8*P5&9ZG**2pRKMlDbLG<8w_hrBSHA13>QvXU*PFWh@3Q;%?dOUFeJkXv Jv|IlFCIF4)(iH#z literal 0 HcmV?d00001 diff --git a/resources/ui/units/aircrafts/MiG-31_24.jpg b/resources/ui/units/aircrafts/MiG-31_24.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c1c1a238f68347c020d891db966991a490810f98 GIT binary patch literal 1180 zcmex=^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!~F2RY+s|yw+B9p@CX_A%t;qL7nyy%@Xha- zq>N*sCt@eb)qRjW_^WW%>pjtHUPkFo*t);cW%`PjT*u`ec^p^2kka)z>EUvxa|c%1 zq&LrxdQ%!*W!xn)b?=iZ)dk!4Z5O`nvFTXFi8r+zulP5v+;{YCOxx`2HHWS4Wp41P z%2zB{x3Aqs@XzjWU%9<2+Ws?mUA%U)Hf6T_!lU8aYCS8;FKqs%pJjLSZJ>VVn$t#G zCh#uSaeKy4f1o%(UNW=gk@;u;zs7COe-12v+xoRE=C}M-{TqK*Tg6K_thg=c+}EvS z@Na8ezNqJupA%1uqJNQQ8{KnrwfBSE3&3(Fgm*n=HZSmh#*w)m} z34GgpWAn6YTW<4~KBzu#TqF7ErpIFo^%ZtgJ6BYsN(KC?+}c}s>QuYsSC&B6_{|+t zJ@u9qTsD1Nqf-zBvfi>7bxC_cUO|4jf$g!Fm< literal 0 HcmV?d00001 diff --git a/resources/ui/units/aircrafts/Mirage 2000-5_24.jpg b/resources/ui/units/aircrafts/Mirage 2000-5_24.jpg new file mode 100644 index 0000000000000000000000000000000000000000..bc5eeb842f574b463038b4f079125ce89e863e1a GIT binary patch literal 1093 zcmex=^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!-;v9{1yM~-@oPUuWP1j-^@Nxv+teRc6Pg~ zH?p>eRXMc8oa)wjyG`P@W%0xp{A&}UUliZTvR+g%&8+tI?*kUkd%mytTk2Z9tn$i& zTUW(|?pLufzp~Y=J5{UgWvle+PR*w1KYPplZ{P1q-ShNG>O6_S;?|VeW%WE<1?%QL znya?em4DNGuXrH7b#(oouTj&aL*_Y5{Bxw|>hFk|pH6RV{1*Ju8;E07ZY3WSoVcir zdEL=F^;)MV{W>M87H`VN`E!x7#nQJ6@6?^E?UGOZwwycoWmLiWM6(OiIj6-QkmHRO zJ8_(&eBKVf%vBqc3Mbt;B)0t0T#$hbm(PFCtlxZoseMN0X1&*Pau>gzSGe!K^Fi)K ztDQl6jlat9@jBF)E>mXfdD3U#XYog4(T<$5Vo|-4>@+pQuzEAa@EYoMm`4Y`*=k{BVvv|->`Q= z|Yjjc}B?GHg<1J<&i86i7As@{cWGjl{HWK z#WuAt9@?Oi{%KJc^NbtYw_FLAD_fp(-^2K?Yv!sWB5b8;?;MV0ELwJW?=SiPHvuwJ Bz4QP8 literal 0 HcmV?d00001 diff --git a/resources/ui/units/aircrafts/OH-58D_24.jpg b/resources/ui/units/aircrafts/OH-58D_24.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8392fe4f9c6ec85572065d9a5f4b9aa2ae9adc19 GIT binary patch literal 1171 zcmex=^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!-ZS}h0}@dK9jrnrqu5a-@0w{m6Gb&mWuZ# zyM_FD==E{JfnQCG>--PJ8DCj;(WP9<_1vOsZ=Z6{m@8hv-1AOZ{Z4gw^;(s;$>&0X z!+q{p1=p8N{;j!xN2Y&Itl_hYi_S56^0q*BhrLfA=qJd>PaJNBy2= zk^Q3#_Dd4S>b?9$lcq`TTORqy*>+0Vp<}@0NOl=gr5J=S{s?QGe`xB~RJg#Ya>+n}stN zf+b#YJ?^u9zSXCYf7VlP{&!3A|1+e@zqhgLvI8 z|8Cm$ZS$MNH;?Ze`*+Iz?otr3cK%!G_;+3LZ?)s!UHUfpjodlgb4Jk{wTvuPB}7xt zvq*K_i^zF<>E12VE|uRa7Bd98mfRGwxj#S3|1I0UkAGe)>gMRGUb3_C;T%q-!Zx=j zQqR>s9GmrI#*$h34jc*gRvIg(TAY65dMv2#%;|jIe#-;9)J&B#HLrhNetdE4EkC() ze;?dEm~mS3_=Ai^JOB1rOaG26H{J5q^sSf8^h;+}?FeBx-hZShyE4D4!CbiS$&-t& e`5bQ65~uv4yZ^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!>x~MYfA3gnQuw`ykvrgYH?$e|Ce>%?jPTL z{L$v^8+mcf-7`tPjXu6NK3=Wct95LH$`uxiq%b2-h6mSl_K9wtd+*__hcnN4aZdF3 z%WLVh>WInu?3$j%T6tZ2*H!JGo&QR6S#@I1hUZHwvod~dUCp|2&pgrdjPJa8Y8j4t zuDJW^Ta@eCC$~2CY-HVYyH2pfCM9Lg=UcnX?ix$SXUolfe!J?@&u`E7zl_s2?<}>r zcCl~Al5@st%8%rI9;7dg*_E4g>(ZrXvgrYz)la4{w%x0E`TF{tpj|I!{FIND+ojUl z$Ds0y@vP#kJEf2Il*wjCd-mMFm2+uj3g1KX2OkRjZF=fLlk$bLr*kaIzO*kc#O&fE z+w=8V;h*Hy7rwU7*!FetTd{jvp9;L%^`uKu|4~iPgQ;rk57(}5GB@%6caE*zIb_zG zlTYj17jv)9{c&RX&u{m(KHqlh$z`wSZ#MOXq!--2Z(FPF{@dk0L)E$|p`mA`yH-tA z&y0SOBHdq=xnoh+JIj{ep0a#emQSN+_!#$_DW7zI66mVF;$nPom#(*0yMMw)6%~<+ z>vI?!*srh6wEend+qMs1d;0CJJ*YXATM literal 0 HcmV?d00001 diff --git a/resources/ui/units/aircrafts/S-3B_24.jpg b/resources/ui/units/aircrafts/S-3B_24.jpg new file mode 100644 index 0000000000000000000000000000000000000000..422feba0b67f295261b8ae375dc0752ca7e26dbb GIT binary patch literal 1099 zcmex=^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!?fqVQ*Q5{JW)Y1&gyr##jKu>o}X7tNq;wo zsb22t%T2Yj^!G)-5}5dl>tT&!qQI5NH~T9^7FTi^Zrt7fI`-Y_i3hpL?rhJP5bqXs zca!@)=fnCB|7O*{dHna*(}!KpI9(>{bZX6Mb12eYcWLX)c?Q$36&v$S(y5uh;@_65 znYu?_EdMa!KSR2_m;L7c@7XIn-ri+qGN`RsD(K*F@bz2wYpicnitgV${(DP(y8OHA z;oma;+I#h^UG;S$`yYU*~EE)=o58 zar40EHCtsY&Ea;KG-?4QPJNvq)|E2^6zFBlS zG^JDF>er*;!K!PL3vY<2O2pmOoRlSXriE>P;{11W_n!!K^}qTceEUp>$pL(l?`HWG zw@sLT;o6j2OUebc&M!Uoj?Lyss@orqMO}V9VTXG&jn%wsJk@VH_KD{{O{v+Kd}aQz zRnE&LmP~9h%q_d)kYrTrD-!(8FzMSSD{I@3gIq4(UWB??6d(1vwNR&Q5_^JQ#-ep5 Mmz08w?El{c0Buje^#A|> literal 0 HcmV?d00001 diff --git a/resources/ui/units/aircrafts/SA342L_24.jpg b/resources/ui/units/aircrafts/SA342L_24.jpg new file mode 100644 index 0000000000000000000000000000000000000000..75e0a003f0a7b265687444cdd2b25016c5c82711 GIT binary patch literal 1196 zcmex=^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!|KO(;{!h&eK*~7{gi8y^M#JRuuEDZlfL4F z{nAn^pJ`S1X7c`>&DIupdDpyGwMPr(EI04D`mE{WQgbo06=$x^JSHt)QD42yt-AWU z^}_63>sm`vFXc9F+CRZ<;z`L~l?jZ~LeHQ6`S@4Kc8k-&6W!)4UifCYU%Z$9o2UQY z7Hq7ze#GqKsr)VBMLnJwI~c2eKYtxCzw^^7?R}F=H?}#iE^vS9KX>g-yR#+k3+mJL zzi0BzS^OjWMCpF<(<_c@zx>s=JX`tX-bK~@cjqTwSbw1~a>I}H;Z289q^>Q}lWAC} z%Cn%{(&qWgz_)Y1>jwDB?Pa~Y_UMssA8*~0Oh}ltqS>1B&)W^)3HGA4aiv zmHHY-X3x}rW>;79Z1QuS!h^~?Wmo4^9FMV@73aR{#KUHT?WIRliVQ?*t)81)4bQ$K z%W>!H{x@I0EdFg<%UU?gzkkvvkGIRyJ#Q}-y|t!(Y5sqPoc-U=W{X;CFH2UH*lm*a zx6yWG{pRZz!ot6u{?AZz38Ele*D+4EFXit1sKniNTLNR#oaLTa8JTfyP-wmr9P}`$ zGs!{BlrhxZfjvuOiP4r1w_>~|`Lg7l;E;^7d_D2rhOfMASD#hpE}qD(FL;dYLcPsJ zSC^N^yhCErHQt>0J)dWH>!*~Q=g;m-{`q0Q)H{2@sZNRP)vXH2O!~X{^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#L;EAM%`0BS-wdA>dw)8&$4QfF$1r8q;^WI6 z#;Uh}eQSNh%BOsT(Q5f=5t}DVf0uty-SyBWbou!;wtEkqO6|KLX4ZFKdw$^i+q0g& z(J#%_N?!5ugQrMvZsWBGr=M%jTeJK7{AcJbIc3zd^~RI#p2f?a?|!%K--jjlbN@b! zix=DZsJh-H=B9h$=M<4t27brp6Thx-KkoHi7&+a&QYmq2NpkbA(2VW7ehR03^Z1&3 z?ce^Tiq(a2ifghD2lpkdu1vL_5N*8g*fFd1es@>v-4EN@b}i%R(}%Mh8xrR<*q(U* zv+L}YuCkqrmff=5r(1O|`}S_7 lVfXXTYyG#(kJ4D1EGj#3c3yP%x5=-)f!I|vTy*09n*b!{?1%sW literal 0 HcmV?d00001 diff --git a/resources/ui/units/aircrafts/SA342Minigun_24.jpg b/resources/ui/units/aircrafts/SA342Minigun_24.jpg new file mode 100644 index 0000000000000000000000000000000000000000..517e33c4b40bcaa5bec4b02a3ec73f0566e0440e GIT binary patch literal 1211 zcmex=^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!}*VI-z|Q4?6O|YT^AvblUhbh5b?Dy(`B2TZ_aKnRS(J@0Q;Qw|#tDdTs97b(i9;E?tbgciQ6Q!JpHwJl?)tHhcPq zciY!w+?w`Q?qbyaK-ZOnM^YwTELgSUe9WA`S;`;7Qn)Tw|`i+ZJNV>hOi^Q!l%5xr(>$24+-6#cx7d|_FLQb zZ)@M0vDAFyj75=R#}EGi@J1-=6r~Z@ll&~&r(9uf2Ny(Uscub>-Mz| ze^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#L%hU~b@kk@b`>pMVlHOR<vcaa-TQ2%>7I2pcdhP5-V|;RJFb4EZ?08w#4Y)b zbtYmHZXQX$yewh2V?t9*@rHTXOP5PV`8!Wk)wrwcUvxY7@6#nm*MGmZ=bXM|+=9t( zcg3DbjqdI8W8W{E+5Sj$#=#7|23rn>{^z0ZzD^XI{%PLaf8Bq-F8R;k`tQejg)4vJ zZO;_#o4)G2^hWlR6&D!aNUvD)q9%UL@odfM!G)RzePk_MCGm+waTE7Yb}R|NN*(SnzU5-M}TODqm8~KKv+s z_V8G>MD(A`Z@+9NuKLfg)T+UQ!J+s^T9>wdD&MhvmtxOy*D7hGM#eqzl#DKSU|ie3 fWqy>#+Q*{2O37+ZckIu!+XBLY;YB(9|8D{S|0&;c literal 0 HcmV?d00001 diff --git a/resources/ui/units/aircrafts/SH-60B_24.jpg b/resources/ui/units/aircrafts/SH-60B_24.jpg new file mode 100644 index 0000000000000000000000000000000000000000..24365edba351abaa32ef352c71e823c7e5176cfe GIT binary patch literal 1085 zcmex=^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!)ra?wVTAIxw#$qMPF>W{Z}FXeP!c~D%k#Mb>pOGA<6 z_a&bczpm4@3D3Hq({Db_|HHgRi|QpKnOmpc`K5K~>Aw&4x0e?`as2zx^GWo7hT3|o z&%4h{?-BSpA>zEzB=N$81;UqYv!?FvDP5_WnbvkO_x#<^G#&oD`d?S|{g!HMzwqUI z-z~%G6CJ)TjmW)`Vl*)>zWh=2?ipnsiXJDW`~0f@+7?EY-P7P{*saLE>-isz*E@dN z^!;ae^Wi^3WyWtC`+HFjgO5(jRXLIN>4*=r$s9g+(S?7P9BwKMTe*F+ajx#gtAFRo zzvr?$&;Px(X#cJB-}l$*e_QzP`|Hp*OYg*de3K}>__eROrG!nF#=6DU0v3%wGm_Q+ zUJR7TEzc8JVOwNzR3v1_x}$0*)VDTX$!U#vCwb>dLb-iZ!sWM9CM|8NEy!53^pI^= z(DcIf%Wv;1Hx{Vs;i(IaiQ05`hLF*=gN%{o{Cof233T;dDtA=##O&X8LPxt3JC21E w|GIiR%xv3h{`oo!t4!AJXng4^@|a_JNz0RaJ+t4sUz-lZU0Uy4`~Tkr0RB^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!`5{_j((Z3SkOgnmQ&ekGY00BCU=F8om{;z zj7huoT!2g)^Nv5SXJ6HQyg%bf!MTe~Ozqrrem}UTf8)>0{TFp^ru9soSmqg2H)Gw& zqsO8%3Js()Z3F z;H>9!`6!L0g*Q3U?Y6Q^JgBbElk)5Bvo1|*+hbd9?9Eo2D{!F2rT(Vx{gun5Z(Kch zQ(XS*xh`#SFYRPkv#9p44&F(-w)h^_cHuahdeVwB#&K$U;f>`R-nxoBWZBB;xyjxn UkM|Bw(9eHg0;6KO<^SIV0MZf35dZ)H literal 0 HcmV?d00001 diff --git a/resources/ui/units/aircrafts/Su-17M4_24.jpg b/resources/ui/units/aircrafts/Su-17M4_24.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1af68e9647417a61420327b2358fed781605929d GIT binary patch literal 1156 zcmex=^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!`k%`uQ->_{POdRzxbI~0%lL&U%$LIC3Du5 zMGB^@LMb0rvfGaDc>g1Oh3WiLw;j}Fm@k_?t(wbt#cI~&8{N~?U@a)xVzblj9OwZ(gAXZQ$eWUN| z{{IY|r56sUUADEqYHs&8YnryN$28gH3palge(8S0e`#>M__Fh}ZZSP5{(Z@)ZpNc! z-A4^hYQ$^ZVZQM5?#sVfD!(~}Yg>K={cZUbs_T6ueA>lhA6yd-p0mI9uJwLq@OC?OkbmKG`#$Xy zSH4HPrx?7sBY$o6Yr|UCH!8)CPW%eqccfN(q1eZHJ^N=Yubo)C@^@jiSlYg&dlEL+ z@wk6lvwL^6_HllVqytZc%Ij?|x`uD=Pb@yYb8_*5+b0|yndQTM>b2VLA1*s3xh!$V zJT`Bhx}+{mD}z+6P0>8{T(`tjRoe`zbtM1gI{iqKSo<_|hkLm~(?tgM&x^W5CCY?X z>pcxRAl|NTgapU|CtK)A7PVH5ja%cU=%1s+@{(JGC;cK9)+$q`STi!cJ8&s|=4pk_~ RShV`)@r^d0-qruV2>{!U)^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!?o*+XZvsdUAiawObQ!oAH(?|_Nb*xUSHdO zPH{J9zNJO*{E7cszN~$je=Q?Ut;cHDRP9$BFJl-lyuUNG-+%Xm53y|Qk9^DGyo>t` zd!|l&5uYeGrM96e+;;Ju*Ryhxq<2hQ+wSyf-4prwN?R@;`8H|WjU{FI@7DO#Pgr_Z zp=43_{RFW3kn9zAPC2w)%H({`%JuO_*Ua?2+LJT2=KF5h`SecQ$ujA0j4$19xGxQ# z9r@d4Ud-cUxrV9Fzpm+|1C_`p%1sTr99_MWOC@Gf*#t+H zdgr%cOZH8Z|GLqte$SF%KmSCFqj}bEoG^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!`*9Nlb1-WW7@L8@K#_*>3@dmt&x|$uI3HX zIdnTkzDn));Xm1I?@D%Uoy1w`9yj;%ZMmGOtmE+YS}-2pvEZwmjAV%RZsMW?FHr+KmH2pN&3~Y zbGq}&&k0{e=H>2Ru`YF8$^ngbE@_***{w?D0Q}qPv zRLg%Qf&Mp+#9eazYxT@q`o=Qx&n?cAR?n-CdXe@q#F$B~H_y$=o9X%Ivm!y?4EZya jh2H(se0rC6*X{M+LniS*zqIhT|6Y->l@aYL|K9`vNm9%! literal 0 HcmV?d00001 diff --git a/resources/ui/units/aircrafts/Su-25TM_24.jpg b/resources/ui/units/aircrafts/Su-25TM_24.jpg new file mode 100644 index 0000000000000000000000000000000000000000..452d3365a75353371be872c49e1a28084f551a0b GIT binary patch literal 1084 zcmex=^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!<~Pp?eDI)ys|a>b-chG8}ppp#WNNiatmlY zW(gEFi2WBz1+DCDRXpXb+ZV3)_LqK{E410d zOYPMy;1IlqM8Jo5iL_1{_fn{iho|Ku;%GS)ivL;kR&<*NRVVh7p(RNncg#VYfe z&qHed&A2P|slUVY|LCmN`Ok2?XYs2;Ti@73r`9#BQ_i!Cwe=q9Gn%g`{ z_MGMVA_G5Hhqw89%*W=(ZV8O_RddojyZB{!@M>@4W9&f_pKRZ5x>Bm5>YS*cLqs3b z&(xXwg^!Aa87iN_6e|R?0LXL^(WGc@L{md~?W)}`$&RR8}b0A{?m!vFvP literal 0 HcmV?d00001 diff --git a/resources/ui/units/aircrafts/Su-25T_24.jpg b/resources/ui/units/aircrafts/Su-25T_24.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b0a75db9a9b81c94376223e3aa4b1fe790b8218c GIT binary patch literal 1088 zcmex=^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#L-QNmX)7g9SJKJ8#^K&yQuRKnFFWcHb zwVq*;-r}~nS6Sz8_%AJtO8xt6a+T^y6&Wj!yY36uyS2w%RN3ySvNK|Cn@>v0%3poj zuA#SsRQ=97Tfb4i)W2cA*S>!W7e$0No%kX7Q%P;*{_c{cGEw*Bf2Xn9XZb5je-nP` z4a5QSr7{j}C*EIL`tPjVl)by;H%~m-E&S5&x8Rp`>wlY61^%67tMToH?VK*-tV}DBsY0&G zEJn?d+r@Up9{9QDQSh9nY?oa{vsvO@mHRnzqPQ9r{vb}&*A&G&HjBQ(0y}%QsvV-|8D{S@ME~P literal 0 HcmV?d00001 diff --git a/resources/ui/units/aircrafts/Su-25_24.jpg b/resources/ui/units/aircrafts/Su-25_24.jpg new file mode 100644 index 0000000000000000000000000000000000000000..61e7d5a2080c0e5c45c80fecf3455e93c1912b6a GIT binary patch literal 1115 zcmex=^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!}h=PYPIKl6xh3Eo?*87v`)E~R#hLb?VjuP zBlFDu7eaTmWtfH6zn+t{Bev$=EAh`U2h+8VIRwhjn0Y|K#BjYZ2s7VDnwc`Dm|@t&^)f2vC>ltX=i)uz<`x8};$ a4VEt~CH`dAZ@K;ZN???RigWJ#|2F~t!OqtJ literal 0 HcmV?d00001 diff --git a/resources/ui/units/aircrafts/Su-27_24.jpg b/resources/ui/units/aircrafts/Su-27_24.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2beaff029c587fa2cf3e170d39e72b651c6aaef0 GIT binary patch literal 1077 zcmex=^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!<)LhqCr5P!ETL=~RcA0b2 zZ$J97`0dAVYnk#*D{gY$adS}HtpAmJx8)gMo`q9V8X6nr=YLwc#k%h+-}Sc_gZ}Q) zdZ=64_G!`QcO56K=Vgb*^ye<=vzxk_^-MVTj8bk({_ifW{{L)PO(j@g$=cseTKsln zxUtUW!)Ll2Y$b~LA6cyUcdIt*s>nCRtCQ{={q6qv>nh&mFL&Q^*|^P9V$wNbmC0XC z0%MI@Qg;~#Whd$$J-TH^Z_ZWD--iUE<$I&2efs8cs(Y!Q)e;9Ojg=vb!naJE_BgDd zxa{7I>5{)bI^8gSxNOIS$yd_t*NTMvmgv9baiPPR>205B;Fo7he>;9%)OA&*;||a7 rHh%l4{2BA_#GmTYELwg+@3_iAM($6|*V*QN>(W>@DVn+b&i|VL?mN2T literal 0 HcmV?d00001 diff --git a/resources/ui/units/aircrafts/Su-30_24.jpg b/resources/ui/units/aircrafts/Su-30_24.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7f492d73c2bd0ad71f266b1b2bdd82eccf8f0f9e GIT binary patch literal 1057 zcmex=^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!@b|^TU`sY6t+)Fi&G9d{y}o>eIxnzTx+XM zXKb0NI?Lkfx}_=Ti+;9|ukruIkUaxNV}C@2vWSZ;Ri^U0pA; z;l%FgWwu@uL!Vqx@U+?5dv`Cx@y~1iF6jnZk|i98Y4DTzi^( zMybTjwO1zX4e#l9KB^wN)+=Q4jk7?-`ZsD<$M$60j(=*`k~F!-Zqf9uiEpMCPoMO` zV|O%5^)=OZ{h6gj-?=xc6mi}an2=H}>?(Tcq4>^8lcN?cI`=e2W0!ROo;}GQRx4>< z(_I`e+xA@5zdeDjb|K=)h86ZtpUht^70k1~-{|e;i6_*Rx-_0T?X0p)?sV!sE_<`n z^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!)v?aZzJw0?X^;!6Wr1Kb5hQeFBWIB?_`U8 z+py)b*@^3`6Xw)~9;?`Vq$+Ih;=g^z-m32O40Bk;?>M3InDzCfqJ7Kxb>fcPitl>6 zZY#^yUH+=6ipdjtc<;5pejQtW^r``_x&92SaiIsBtBVgN^MV7sMtpxZEg>R35^F?`aiCEd{pS9 zwAIa)z(4+K?k}A}S^mxn-?{di;Y;@$$CoDRcWl+;*@0|FJpOZ++R;uajJ9 zuNh&pXQBMvlPB$?q-Na_SH5xkx5AgDzty)EfA}%$(N%{%(XF={r7{;-!zfaX2quq4fQ$~T}yYU?`)bJ&C~9;L+?=a zG4B5iKDXCDytRDRsbIMi>r;-opL*l}dX~o0H;=+?y5`?B&Od)kB;|AS^)D+QUwpgg zXm-1?)_(@>l7A(EPD=&8O)_0HNh3rj@K{3$*Mi`GSNH??uLQb=YbibaHuac+y;l5| lb%t9DzbxwV)9iZ_x{J$T0pknJ{|q^HTLRs+L~s7T2>=e2&xrs4 literal 0 HcmV?d00001 diff --git a/resources/ui/units/aircrafts/Su-34_24.jpg b/resources/ui/units/aircrafts/Su-34_24.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3309ff97cae7f42c6a044c7da15ecd95171ba190 GIT binary patch literal 1157 zcmex=^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!`tnL|338GCm$FS`n>DQYtA#`;?b$hs!WsI zuZxEKc<%9^Vg9oJ4Eu9q^8}+ew|e|qBW~A)4;9ZaTe5&=Gl}9$Zx)J zUh(UM7Wr#ySFBr>J@@bAOM6b#y2_>4-xGaORB<_GZqx0eces#W|*v_gh}n5{|r^@Z)~>D zeo`E~cJKLLKa?i_{mQoa-Im>v+d39?@yNXEbx{AZsO!}fW!;NYQXX&g|0j4lL1HG) zB)NHM1@=l>u9tjl4qVG{cm7u7|IAk;M9V&H} zzqfUpeMI;l&2N_+GYfe>L_5oD*!JS4c;4l=T^b7y=`T>v?e+ZQSzao4^3P27--T_; XA8oGH->QAFsN<+^+wJQ4|8D{S1d8K{ literal 0 HcmV?d00001 diff --git a/resources/ui/units/aircrafts/Tornado_24.jpg b/resources/ui/units/aircrafts/Tornado_24.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9e9c00e13fd28c2b68f1765597e21fcb8eeb10e8 GIT binary patch literal 1176 zcmex=^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!{SH2;$ecdn|=1p)7P!9WMU}if6w3^pY`Oe zjpK@2C+?M=zjZ+Jrk2JZM+wun`(ONLxF`C|USN+k?~H#}FW*w_?KE=TqZ#&kD*FoC z1M7DBh3~R>$eI_P9PGJ&!_}){l1_J$pSAwT`F?!GudwysGXK4;nC-j5?3#BbqfC>< z@g3{>4j;GE-MC%Qa{Ek?1k+ng?ti!y<{z7NWZ$A`(wl9Sf1CVgDC>W7`R}dO%PM|* z?P|2UoUaq~An(&hrRV#-_TAIFN7@ zX1tWwyOB4;=v|D$&-R?+b6LTU)~e=SO6z(fcK7#wmFW^+nU_@uzP(Y+=JYWPWgD`^a2;dz;WYnCJ literal 0 HcmV?d00001 diff --git a/resources/ui/units/aircrafts/Tu-142M_24.jpg b/resources/ui/units/aircrafts/Tu-142M_24.jpg new file mode 100644 index 0000000000000000000000000000000000000000..65c377a6d9cbd48ae13a741f3afa67fff47e5bc9 GIT binary patch literal 1068 zcmex=^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!3}srSAM zt!A{C#Gn<@?a^vQvPW7-0%yZA9^q8eso${Aw{mOf5UvQyy^9_ zn|=oS%1r!by}|u?bYbkvOa0THDb#Xv?a%XG^h;uYqTQ6*mS15nrXBdQv;E(%r9zQr z{`2K*Jw>WZ^plm@->6@j{>J^%_9-_v9y%{A?@;V%ee1USGoPd31p#IAJQv?y@XhE= z;@^&6K|maKW73h0frVo3fja`9-DEpHU;er>&>XpAZu&R+mx6Hi+IzE(GkxNDcf09^ z%Gcw2BO?+^dDg92zEEWEF8*Ytomc(8uj0&4n)1wJadA)T6giDWt8X5$e0pcq%jNsZ zBM%gxzq{&f@>28Yg#GU(*{>A|JkfgY1l#nb?RSFQ{~IkEL!) zVDOv78+EtJ?<8klD>`?{%Tt9fg!Szkd#UnoakJ`M|1-Q_rLpQ;q53WFohD{shJuZX b@$aTv*iX%=&))uh#iIUnf#=hU|K9`vYl^WK literal 0 HcmV?d00001 diff --git a/resources/ui/units/aircrafts/Tu-160_24.jpg b/resources/ui/units/aircrafts/Tu-160_24.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2b1f09abf8d6a0453d640d9e5e888538477c425c GIT binary patch literal 1037 zcmex=^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!;5!sYj%6a6oh)74Y<7S;jXmSxjq}`E_uFx z;rF$j@06!;3Rej^GR8FUZ(MU?%{%UCUDr;>=RsJ*F_5b~9I#8!i|Hj{e-|VxlRK(fu-%?lqFjQ?% zp8&s6agWQ=j_(S5Q>xwMj*9*}{?`4*-&H4fa?e@JQyo;hO>14I@JZ(B=F6{5xHtLA z^H;{MqSsILRc|sZYF<*e-JxxKz3VWpaG zUdOh)@-$u&Tkp2TVWL}F>f?eAp5ITdM*fL;x{)RD*xZw>{XYU-Roff=1&tE-u)i$jf{u4ZoCee&bJcZL1$PK5sqbd6fddg1Jq*{_tdzUwh$-feh1O>L3*5wmy3 tue&r>J?T#@_TKSgD|;i8%bV^OOD^Qk?2GJF-?^yEGU$fy_MQK40su9%qj~@U literal 0 HcmV?d00001 diff --git a/resources/ui/units/aircrafts/Tu-22M3_24.jpg b/resources/ui/units/aircrafts/Tu-22M3_24.jpg new file mode 100644 index 0000000000000000000000000000000000000000..290558f781d71e788eb79aa14079b4a88167b4f6 GIT binary patch literal 1064 zcmex=^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!|Uf8griRi6t!MiQEH*(@j5Pb*^gEK8Qk|w zx*d4GSjy5<^!D>0K0eNWZo40^GXK8%)K}})E2h=Emu45sY}&}XUs7(zAMI6Mfp;Fa z>umA(I@jpk;fSr`V!=Ayf1DRJNf zs`{>Yw9Kl0ldgP9)HC<)HU5A0u7B(j(2j-YV`YoBT@s)Gq1z)F``CTc`eAb^qSde^>M02S1sybK#9= zXD^;Bmp`}Sbn5amp4A>jwc_%py0q6GwLKG@o!IPi*{{B+!*1q+%wJJ5Kc&y_V_4MH zpDGr=Ws-!>TG34kE$bJ%@xS)}t=n(^VuH+nhRcRWMS{Ntypg*Ud*a;u<^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!;AGLFK3;L-z>YCRh8qb?CR;4w|@TC+V!6y zP3EE3I*vcuYyVx7+rP9ZylmV1dYeV}-e_AU1m{^k`S>!ne{NpEQO6gh6K}ffWPO}) z;;=$r+uXl%Y_;cYxGL?(n*7^+T7B!~g1_31HG!PJAG!W#*yc9frv1&MjQVtbFZ<2y zO9SmRw(|Cy^w;ZLTHl#_cf+PR_1BHvZCc-4EdOm$6$ms-OXQkMZ_8)?zne@8Rd&s0 zGn#SU^2;CosJM&Y<1bmfAjIB)puTJXO?{XG)<>-?>4nJ#eIdB7RYIAeQvY? zXldGfo89f3Vte`De0=Hscb=_Q@3#G_myBJR4IHQaoZk5J%Ih^k3nnmrF}XbZ#&ikY za}oFCqcZo{Z3&FsW*`7$my|QP9X_+MKkVc`r!I|*jQM9TKenu1sb+t-Po{3kWtIJx zdpeaeCz^B^$ffK4Dp}NZ_EPu#pewg-G<^=;y|ZUYcz(w6=5GnBC%!ykvU=4i-6Q@c z=ME&CxU}u@xyqv=!QTSj$X$v(_2^squAP(ISyk*c*e4jCx2>DF><1i@H_|)&IW<08(|eEC2ui literal 0 HcmV?d00001 diff --git a/resources/ui/units/aircrafts/UH-1H_24.jpg b/resources/ui/units/aircrafts/UH-1H_24.jpg new file mode 100644 index 0000000000000000000000000000000000000000..423db195e4c31758725dd6f436b858df5031f9b6 GIT binary patch literal 1131 zcmex=^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!+zbSqr#qw99>3d?l9P9No$Mm*w~g9W6~jg zeQn7l?{t-1nJ!6*#3?;Z+WoDi{(SKs+r*v+T$;IEN425k{P*I^@)OrRkIG*7Tr05F z`?y!#jsFb$GM9VJ-speS|Hmco$FsBZfBd>=Dp7lC(Y%=2ZXbgev1Y7U)zvt-i<{_L$^m%mNDVLRzvk$Qmry=Afv{~4;fw3nSYlX*p2zT#?T%J$iR za|G?LvWf&1`WG&mbImGeG22!4T~ESt?{#J*t69nxo?uDq(zd+V94#(2$-ij(x14q2 zC9e;>D5{^ij8}Khy}SYge=gg-FBWb5W?=Shl9?{=lfn}lvx1|SbU!_z7+`bsi%Q?r rHKt7L_w472gnfB=O#7~z@#M)@0$0p`AH08y|MwM(wrn!C|9=wz$iv2c literal 0 HcmV?d00001 diff --git a/resources/ui/units/aircrafts/UH-60A_24.jpg b/resources/ui/units/aircrafts/UH-60A_24.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f26d9a4d266ac53b28bc5d13e908872bcc864400 GIT binary patch literal 1199 zcmex=^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!_2pWcE7d$dWZ&zZQZ$RmPOuzdL0I*6a4Cb zy563hlD;DNtLT$D&_Ok08z6pXyHhMVCxc#fYYNOrKMbXU9UWGOE9SZP&qWL#b z_>D?pZTpRXA@dVOv+^Y>vPABFJ2v65b+%X8XOuIy87v|8IYM@-?)p0|?@|Gjwm z^U|*?dJ~_WYk#BgE7l!ygi&TJ&l)@XT9FSo9=ks={VOKag`Kjg@09%D|JOzNKf`|aKbd+q znuW4^HmzHdlG-!3QDXXmhgJVX0=-{-`OSa({LZOMe`LK6?_H-lAzCvh%~fUlrEQ5H z(hl~&b?f<-vG|~TU&f+kA_|XYYn3ira>+Vc`=+kWqwU!<(=`mAc@>@gx?29$+P{xo OMfa=t$jr9?e-i*^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!^?AX=gpLFO}}S-Yo~L@8h2%uPqwRFULC%* zI`*Dxx!7@L<;7Lu`THvWJ#_ZFvL^reZ|mcxd+r~){b5nUs>Zf#P& zUiI|tkL{9OciPR7+jDicZ@GVi)%I>(uQ|Ey4otO1Susy~ZRez}a$Ekb;LDPK=j5iG zC|zsyOj5SSJ?-MrtxHNm8Qt8Bs#8AxxbmOj_Al|j>~HGdKl;zmtDmXxjidj!MODy$ zhID?fnpyWIO6C2#zCF+3&|{k~k4@SCsLb+^{C9zUl0~R`-(IQtTPE!7QUO`8|K{UM zv*syWl5O~RrAN4LVfB}PS`)XP713$Qp4M`VQ?V|o@CD<^rEgX2liGl0_j|>^`S>z4 z;iKx(Yjx*siujHc&aca=e_QxA{P$tA1$`m+d2&2>z`(!HHEnWQ{nLg&3?hM1Zc~CRpPJp+z2-l| z^M?Nn`@;WdGHzy9Vr9Rg^`D_tB(&P1d*(ESE4&;3o)-OfXyTuhQa?5ePcXhwps{FH NQ#9wc@Am(10ssj)z(D{2 literal 0 HcmV?d00001 diff --git a/resources/ui/units/readme.md b/resources/ui/units/readme.md new file mode 100644 index 00000000..96c96f1a --- /dev/null +++ b/resources/ui/units/readme.md @@ -0,0 +1,29 @@ +In this folder are icons for the different units in DCS / DCS Liberation. + +# How were these retrieved : +- I took screenshoot of the units from the encyclopedia in DCS. If you want to add more pictures, please do the same, so that the units have the same background. +- Then resized all the image so that have static size. Aspect ratio is not perfect, but it's hard to notice on such small image. + +```python + +import os +from PIL import Image + +for img_name in os.listdir("."): + if os.path.isfile(img_name) and img_name.endswith(".png"): + print(img_name) + img = Image.open(img_name) + img = img.resize((64,24), Image.ANTIALIAS) + img.save('./out/' + img_name[:-4] + "_24.jpg") + +``` + +You need PIL to run the script : + +``` +pip install PIL +``` + +If you want access to get my high res screenshoot, i still have them, but to reduce size and ram usage, i believe it's better to use super small jpg icons instead. + +@Khopa \ No newline at end of file diff --git a/resources/ui/units/vehicles/AAV-7_24.jpg b/resources/ui/units/vehicles/AAV-7_24.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c1b33ce6a69fbfdb8cffd3ce46b601d735bc37e9 GIT binary patch literal 1074 zcmex=^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!~J>O++nv1%X7J_JhfK->0A{QUr}fC{+bSZ z{@2%WiH~PblT-No#8H1v*Qp!F?i6nSvaTd<^;9)I#}nVyK95?Ga`Cj3z$BknVQ_AfeDKA`E_jcp$-+IeRF<8zRZ+hHHIF!ix+)jdnbKFRN9k3OwTTJo#N z;@i61r+US6WXerAd(ss@6yCT}9eMA&$+v*5YpVWDe>7L=*(FW=r_r7rhgT~nmlyGI z9Df}3t8C?htnJ#l$t!Q4wPp%aoN!#WLTQhaq}0Q2rUzv|9Bz({Z#9Wr^OeIieMbdP zx~7D@ag*Ws1@`kVZCf6+=I+E^uaHOUPMXg4e;c9fZ?f3!_Vf$aP5-tU?9lqSfBMNg z%hhf7u2{4y>r&5rW2L$7qA7+YmOVvcorjyu80VO;tM{7xoBuC|*-6)Pl}>gswS}&t z{TsVXzfDrAl}hBv*|2d!^Inbz#m9K^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!`-WCmrcA=cU;K};+VNjQ(@Ba3yde%I6nH% zz_szf6;AuFM~{CNJ^16>vuCek-LfZYbu@b1nB!t=FO#;@=XCR@^{-=vR$J_r*|?Zf z<$Qd;WJRv}1kRo7KNAHU0d(qVVg==kts9&asx;x%~At*7>RQW? z*_(`3`U!?7#oxS@#ka|);lyIbz3vOYik`jyQd~YafAj6u-i_N6e}@0M=vsPpsbp5F zU!E2B%9oR*C*-`nefkyygJAQW&w=+}PU;MPv%xU7i;wa5-SZ}a5xWA*O@p%zy|T(~ z>$v6cgyTR0SYrCFoW_LTHhTWkSQ;IF{{^b_yxhIx%DuL!+a~5+`|x*>p!5pqZ2KGc((aRDm-Xy9$-TD6}0Il)2+yDRo literal 0 HcmV?d00001 diff --git a/resources/ui/units/vehicles/BMP-1_24.jpg b/resources/ui/units/vehicles/BMP-1_24.jpg new file mode 100644 index 0000000000000000000000000000000000000000..262049c8e0f1dd44f12657b61c0742bab0b54311 GIT binary patch literal 1047 zcmex=^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!>g1{+dI-Cl^v>gGyZusvsN?qaF$p@lhv7h z^P@ifXOPV@zLPCrvWg{J>_$h;G|7|dm*?4YJ*~UPA69?ny34C`MjKCa8BW^y_SUqO zi!-^XlDm9y6qEINqJBHqoYAE#&^^pXZoGk0)6F%|1OnIOAueioBc2 z=T(+*=@aJr%xaISmGo+{mRl~~_2p*jjoe!T9$cvti#*>pPSTFM9(d{9(u~mCXWec* zPGg#9J#X>EvlWT+?#|a0Q2DA_x$=6jVUPA4zNY?MgKq+MEmBE>6Ps+^O&0t5XMK<` ztzNPJ%AHexU5A@zHtgjKA`1Nci*W}rojOS_`jh(Xo z?b=e+z+$;aJ8vC$ur7Pfo)2&46_~A+pWY)giR1gCt~YZv&X=Tfp0eiscW^@d`%mpR z%Tt!mGEcs=u-|bfQ^2eJB`u1_<8ChMI{)f}ZrFtTZ>-mEo`1LByq>}0*q!=b^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!<}3m#z_ovUnAeX6?phA_sZ9UQ{A_(O{sCX z@_fgKA6?uDA30ejd+wKuh?`S>()4L=g~(e4=9fFJ$GkqLcUC4~p``Y*D)o-9)!dp% zZIUW;Z*u2tnWGU`*kL%XZwIe?!~gxP#+87Q zy!~G;ToYPr_P#jdVpo`L+NEE&-l`37F6<+?Z*8NDhxnOMk-LtZ@8e1kd8u8uNlze|} zo#}J+l#Zz!M`Jf`FLJHSRo(NrCWv>9ao5vQeZEGnZqeQoIZw~Y%gub@{?t|Ux>ex3 zX9lzTj&g31KD6OY^E1v)&eDT9^Qyiav)A%8;htD>NF&B^a$C}pFTZ|WbWQni!8G)V zi;4AnmB~3Z2M%*jJn`K2-xRa<>falt9oN}!=fUXbU-K)eORH`zXo kKV@Ih-wT{t^L@VBechtpzg8sNCuz}|o|HRtZ~ngt029QjoB#j- literal 0 HcmV?d00001 diff --git a/resources/ui/units/vehicles/BMP-3_24.jpg b/resources/ui/units/vehicles/BMP-3_24.jpg new file mode 100644 index 0000000000000000000000000000000000000000..99bd096c2a67206741435e0bb9b7263dc2c3d96c GIT binary patch literal 1092 zcmex=^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!$qseFU#f{%R0zMJ>92x$5n58{{!9~Z(X&|<3FxBTOPRm zvSP=P?xJ&^Y-TKawuN8U8%|w&E7O10{F(>9u1yIy=uQpWA7J)i-LsX`)N(VT4!c@! zUa;Y#^PN|LoC$(Q{xfK6usmPK_4)YTeCJheM`vYAF6yr6l`oom=J->I69-M7zDW!y zyYoEXf5x@F`xbILwRsyG$}(OhJV~*LncpXT!4K)6D|zc=m+em55V*JbVfXG5$ybKw z>VJJ*Qz(>oEa>o(^+mc-_il$bChfXYCKNd3!AjE;cYai?Td_zwciWm%603z9?>zZD zOJiNvmc_b0FRx4~adrD}X3^7y4#)Hg4SnSEY<~qEe)uv<^H#(RD-A)t%b(?*e^}IY z{Kk>{w@%EG=U<#zESZqH=T6N&en0DyudDWd=s%b6*~?&pWxRfV=)dpJkBS79EaFu5xbX7ZBk97{a}gh>*)10dj5Sy;u~zWB<<7kN G|2F|vy1v8! literal 0 HcmV?d00001 diff --git a/resources/ui/units/vehicles/BTR-80_24.jpg b/resources/ui/units/vehicles/BTR-80_24.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ca3f814e21a6a001b1b126a752842f16f12c5155 GIT binary patch literal 1096 zcmex=^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!^^FlTkh%!>VCaqplA{Fw)gmr@-;3W+gtC> zsok^g+*@IW`+k<|ypJ8rKE8Fw=a?f6%P!Qtw0ZvV-_)b0ja(HvPJT{EnST7?rR{T` zb4EOEweXDjCiXGCZKhZEwUaV+4?q4{DSmXGv;t$PnuDaAbNIx)kDL~WE4H&nuYd06 zz2Ftsii0nl(@o{BrT&(Xo4mT>x&Nje9&d7eKW$=4;oYM7@1?|f(beJ|TUJVn7v-h6 zF?j5GC(B;b*Am`uwovNC!6{7jdw!htDCM|h_^IaZ^}>H8)sgKR+mr9SRoT4zp5Wtf zCuYS0j}s>zt^M1lAG%)sl1*%8Y2r8O-{tqEo=L9`lS_J#%x>}aSn;LpZ%c2lUTGe! zGa;IdMS7-B&taRs8y4@QoQfuI6kaZ|dgdjcP3vxo#@0%tgp01o6feAYhr2piCun0z z>M;h}{$(1Ac57Ykxwg#Y*`qIFpPhF!NmnlBwP`feT6ymBjsB?Zi(W=VrtNE&?msCl zlYC`@#-hz33d@V`Mp{fU^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!;AV&`)@A(t@59tD)hx%+p)g zE7`=R#~1NMCRDp|c^0?)O&dqqjqK_tQ&ig*@>r}_u-bCT?~-w{C38+f;g{8AyB^)r zuB>i0zn3U*@=um*rO1Yl?uE&`UuK;>y7zjAn6=Bfljd5}o-{U{Y`#2yZOOOQ8P~#v z{x0!kT`qKIGm``>%Qp9)53YB|XRR+UmwB?;sCRi0*TwcDpO5Bj`*`N0bfH$ILc7S~ zD36r^-L{kNoswRiu}-0Ml4OXL)t6LTj+Og2{at-@&7atnH@)6wukaN~cp5IRAvfd8 zdan=PJHB@BE}8dp!KaSLPY;{_s54!X?dNymREe@^*}350OS-1k2g^0xwyWFl@O~ShKgqw{}gdl+RH>9 N^Y&GqJYD?%CICYtyKMjf literal 0 HcmV?d00001 diff --git a/resources/ui/units/vehicles/Bedford MWD_24.jpg b/resources/ui/units/vehicles/Bedford MWD_24.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3bc240743cf6ceae61e8a42bbaa90b2eea0b56f8 GIT binary patch literal 1045 zcmex=^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!{gH4r1$<;*R4(d^vzWZ>-@nyVNVXe|KCVd(R$M4wmeo`RV-?f8DazeCY4} z8hyJn_x&{OEdk5V#i&oSJXbxb;&InCi{?I+__~?P7oO^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!QnU&H9_qJWAyyO05T~NJv z)@?`crsexjwbX0vf4t*;sr6~^*%fi2eah0J&snz1pW6{w@T%gNyTsAl&?`M_ZnkP1 z3XGDC|DzT)@0=c^-N*Gmf}(%y4o&izZoTt`sGGgl(|wnf`7Hl4G+fY2dD_gsUUa_A z@6G<{d?#M5vx!|P7RY*~p>Xbr{SV{jO#dgJ*#EYh_dw0z^KsgTgg!Ydr8fR-4-8Mb zzApD|)I}CGrs%fLh&dmx^jtl*W_pmio6(EvUoQ)d+Jcq{PH->u`*+Ge>tn3>@mXi5 z&I#LiVv~yZR`YcpvTfPLt{>kmuU>sLyF@vpz>VP`J4^Ggu#KypT-w>Q;%3~DWlw%x z<@J(ypYx>ubkE7AfQkLHH<|>-Zn_#dQ#HM$Xxp#cpF0G%_^t9kcmBKkkL!+N6PFzq zS{$viq%>V-@@rSo^L|s3S8jQBuX(!nr7MEpB>b^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!?Qo}EAD67DT|eTt}NsbypfO~cG8y5hC=io^2nTsH`ve5Tb9GAG^Es()>PTuDzwlE=5TTD!XZ z-kh4$+_lLn{iEHob?xWx_ASt0_%~Jh$Lz4FZMWyn`4TGsFy{WPl;qyy%D3jIO<`l* zPl5ALviQ)n&`ei4^k3-hdbs!s?J=~dgAi^JWj=Qr^C$Z zeLKFdx4gVgP~T;G&?AGsBHOaLdu>1Z_PKVQRmlvTGj}OlIb+}Qp5%|Kdn1o#oS3TN z`KrHk>t)xoOU$`i!y>LZ@CR_5|GM&6|JykA^ha;=4yktC4&K#gDiOlt!F;1CJo%x1 zM^w-EOVL@^H|{d(*IW{?ysRpHZ?25Xk~fJuMqW=Q`%FG^(QD!3#I~>}QV*YhxccbM zCg-PHT>EZvKW4T)9&^#P^vY7H*)uQCZacib#=KCNZF{2K!_P$`ZGWmm|C%5EcJX#| z-M*aVKb$8BR25$9(l&MCymxfhrmUkE7roT-{H)2IBu2>@GBz!Cre literal 0 HcmV?d00001 diff --git a/resources/ui/units/vehicles/Challenger 2_24.jpg b/resources/ui/units/vehicles/Challenger 2_24.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7a5e0df96684e2e3dee5234b266c44ea72ca9636 GIT binary patch literal 1079 zcmex=^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!`r$u`=*|%n0=J_@U5P()yw}b*b|rbS?_}7 zaUXfFXEmP1t5yGOmrMRT%bl@oTY=$$+q0hjXV{XLw%f?=o2#r#`ucTM*Dg(&yz#8W z(baS1)<3SE6qxfpYSOcyWwkY}{~5TZ%AGS0_x4UrwdC2Tq42vf>bK>L&xbdjzq9Gi zk-+m8z8)>sTQP+(l|8D{Sb-1$< literal 0 HcmV?d00001 diff --git a/resources/ui/units/vehicles/Cobra_24.jpg b/resources/ui/units/vehicles/Cobra_24.jpg new file mode 100644 index 0000000000000000000000000000000000000000..58ac6182a876996304c40d914294fe3f932fb496 GIT binary patch literal 1085 zcmex=^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!-iXy0p1J@ulz;(>#LW(yw1km`JbVJ&Fk3i zjc<=v-TUaaQ1^bje!>PW^^^z6s?+Ta-Mc+^Ed*e4G+2wy+ z{MOGxv0m%h+^R{hN}PI>N>;CQR6Q`^PL_B67UO;e*&X)Ayo;CTpWAg>)=vAi$GW#^ z#s?KnSy;0FXILNSS30{plk1Sz1hYv?dVYuA6+bF9ZMw?ZM9Y?wXF42G^K0ac-(TC( zrsiF2`S9|MuYrrrzh@qH&wqEFZ@%!?6>}t|t{yM_mOuiJc^k+$!MDV)Y#2B_s!Q9?o-{mcjwi8*Pre^qGqr{B=2V5V)?ZqVPBJ$ zN*e~%Y}%#y@}K;)cW%{7t0Rm!d}_{qkzKts*W4%VPHy`J>*SvoU0pOC-IJCF`MwL? zd7)(WB>pKM&DZ2#e?8~IEV1dbyN_(#_e|n5_uRwxFLi0{ony^CFZNtgtzNbC^hkxu y$@VIZ=4|rq&aw8bXP-`8a;Wy>k@vea=6qVb|FTJ7#N}m+18-a^E^1r;|0Vzkg|yuO literal 0 HcmV?d00001 diff --git a/resources/ui/units/vehicles/Cromwell IV_24.jpg b/resources/ui/units/vehicles/Cromwell IV_24.jpg new file mode 100644 index 0000000000000000000000000000000000000000..adf20478665d5ee555da89cb514da6c345ef3fa0 GIT binary patch literal 1119 zcmex=^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!?m4TwrvT`p82T7@YXVS?#VBV{d}z~Jq0(} zS-rJfmw((&7IpBqKRwwzM?&kc4YU9WPN8oRqOT1 zg}vbt<1gk=zl{aAT^fACm(K~^`18tXLA5P<7AbRYUQ+MQKef`}wv3$LCG)yHVap~z zn(ii_|L${`8vkonu^b(TX)j8U0s>`$F)4YVDo{AM-5I0DFhr4 zY;OLt=4w^vyXb}N7rtKn#*_Y*!}t})zbQYior;_!@lJ3_ov2$;z1Qcn_Q!8coA*(>`VeE=c2g z;TgPL;rTlEr!i-4*&gBZI+XGtagp`T@9gX%fw86^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!^^z0Q~S zl7h!VrygY6bN%?m`?2w=KX?3RaQ3+Bkp6r9oCN*23Y&0|)T!b5x1{?{@r&+R<)?S% zS*wI+tla$KN0rk9c5L0cq4(Qv9ltYmbrm^P1(`}88|>m|FH0_uoy@oIK>zZp&r7e) z40+$=UT5I;@ay|~Q?e6S>9xm} zu!KwQ8jV)zs{XQ@8>0@bdGhAWs=$`ei}x8*9F$(&XukY?^*@uoZ-Pdv??tUPJk)IT z9_b&hY!~erlb^o-mY;L1dMaxh4^k3TkbVc#KnI~SG9S+?r@N>4TjFoxL z?|-GoJ(u4*tZ_e8r-v`1^^U}^=X*uMroMEG`xuhtWu+vXZZ+{=v!OJ{!Hy4^Qny@B zh)ovU&ivga;i7BNE>Bsm#jK5ojdYi6%8On7dyzr*;tOAH=B%r`Zk?m(bzH2-!S=?N iKN^d+9lq52{>G`T?%A^9x6ZHC*lo8ZFt%Ou|4jh(QLfei literal 0 HcmV?d00001 diff --git a/resources/ui/units/vehicles/Jagdpanzer IV_24.jpg b/resources/ui/units/vehicles/Jagdpanzer IV_24.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2bc0c950ff7d98e72005b491d84a5217d73a034e GIT binary patch literal 1108 zcmex=^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!~K1YIcxOvy4XG?r{D53ZoF)I(!5KLG1MxB zH()?Ix0_()LR+R5+cCmF|F{nuWvd)rfXiRJ{mjMVpi{uVa#wgkooFXWUwv}WC=`}F6}_uGVQ z+a>!sX8p`Gj^p~q35-2umKKY;ym`5sk9ZxATpSVo;^O`(N1sjLH*zwZQ^veuZD3Vx T#-d#!A)yn`-JZPL{{Kw?0W7t` literal 0 HcmV?d00001 diff --git a/resources/ui/units/vehicles/LAV-25_24.jpg b/resources/ui/units/vehicles/LAV-25_24.jpg new file mode 100644 index 0000000000000000000000000000000000000000..170edeb1f0ca3f9d72276f903c1d238c4f57f908 GIT binary patch literal 1109 zcmex=^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!<|{j?%mbUefzYo=LJum%%>hkjISry&n?=Nt&zf`yIDa((pG!f(x{0w z%XPIxp6py#^0DGlQPjO^>FUhOGRD)+KfL^P)&36?YG-}TlM+cuoEDNE#Zec8952xqq9)0ZbFZra^Bm>Jwn@Y3HckWv3tJ@!Q>HXs?iz40T7PI*6p7^xl zK;heI>|fRz=SwXtmgHh9O6iyQ&#-Uxp|$TK*9E+v*fr`_`#5(<3fV;(n+iwqvW7T}0yn+s~obJ$Fp^ zuWlCZ3_W(#zG9i>e}>m}CV|dN#m%@D2RbglDLwl|!0r8$mVZCGiOv4lZtJkFbF6Kw YoKoN9uV3rZ_OS`-J+bC?nf?Ep0Lj_I;s5{u literal 0 HcmV?d00001 diff --git a/resources/ui/units/vehicles/Leclerc_24.jpg b/resources/ui/units/vehicles/Leclerc_24.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d722c3782c132127933c0139620b68903bd5eff8 GIT binary patch literal 1068 zcmex=^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!&|#E^RAw**nechkJ{v|ZHlIU8a$MfLPHr} z`S0V9Sfelf>emyo!qdxRe}>&JN|gU~$bbLx%hz_4UwOY?w|%b3q_^^)u1r(@Y`WLe zOYgXjvZVIh*8U^ev)dS6PTO0TpqkkDby@6>PcPrURTXQKjz~MxnQ!)OhD@S|LO3($ zL{;U40QW?%*{A!bv`XfDKDcJ*(>vF19^d%t+J6SYFOhtDIq%o{IY?iOR{vlV?ltRJ zyBgE0ZIQ~>KCk$n&icr))p~WN^G{B_O1rF1#y=8*v2m@BqODKASey5yTH(^%6{oWr zRvy2+oPFNaC26;}o|tPg^^&d3t6dto%R@KvzQ_}{KexpER@5fV{ae}GZY@3+=f6Da zph0H-_bsoLzi#*cuvF|U5inpmOUnYrAc6{sHR)hrp&X)UBax)7Ua&Dl5b*vYEO~jb<3|y{~g);Io90! z=@b<+`)*mgnTxuP-*CBp+oSupbU=jY)KsH9<@5!Q*?(U5U2?;Hxn^0uQQGt3gg0^x g7hPku0{xzZtW;Z*^>@Xu%dHo`F6w$=VE_Ln08(eLaR2}S literal 0 HcmV?d00001 diff --git a/resources/ui/units/vehicles/Leopard 1A3_24.jpg b/resources/ui/units/vehicles/Leopard 1A3_24.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7108ef340ba6b586bb1f24464703942429d36ccc GIT binary patch literal 1076 zcmex=^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!>j)cn>YVa|Fq_B_CM7q+p`~<&wdJ#oq4Rt z;q{N}^J-l7?y60*RNOJiqK891TVSVZ!-?}-ivsR?%NU98m^*s|Pho%Itb3s;bNeDL zHha!}dcHqQAk<_-O5&$yd5qs5&&yK%c=d?h{>%-n`(Mt@Z-&pzTg*+pKfcOOEh(Gz zu2*li=+$!zlk?s*F6n-&^_zd0d((Z+eQ#nf9OWD>hxWjXJO@zJVe}=dP|J;`K2V7iI(77sNvv32; z>&d?^%KqIL@bMr6j}b?w`yo(TaV5p`_3@vNy0o*lBZUOqi^7gMoSS`+v0=i#B`{H2=0qt|a=R$toe=-JEyNpDD0dE35A$E}$L1X64q; nTlN_(-XObgOJKNPkL6aS($wUQzZ1VM6>q=RrM>RB=Kq@j{yVU? literal 0 HcmV?d00001 diff --git a/resources/ui/units/vehicles/Leopard-2_24.jpg b/resources/ui/units/vehicles/Leopard-2_24.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6a58616fe10d250882b94cc14b2dc52e06984c85 GIT binary patch literal 1037 zcmex=^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!&|OHR+}1M`4))p7tUF{W0G{N+M{^gQ`087 z`aJHNGwbml@4{m7j&*jIt1a8y?h8rsUEtrI_jT&Glao>-mip^_WzT%JWzMZKH^HW? z=kaU)c+Prt<#tr0XS!xeq0#9bA8y|6DN#t;qHCx6%vkl=tcG$y&!+uz3(B|aDrwqz zmi|*%Ij2rke#T0{lEahFN#~o&eA1s}+wZ&KNB{EkW~Xm!>NY25v-9v@w^)1m(Rn_G z_TP>ibu-*7etkSzadqpzlY5Rd-8m_F>b+z0uj_$}DozJX59~Yj?v9n^p{WNnzc6p# zn#pNtZRYY|(k}PK^@ki6{Aak}b^o*dL$6)`T8?O3S$ooUQ~jY$ZAAhMX3?6~ zT(-w&YS^^5KRMGq=lAc@WxQPPHMr)K<{15(^H*ch=3i^LzkQM_kv=;^u=nS?(>+PM zw6!I2mwC5)oO!i7Jn3OTvP{+dVpq|Eg&fw4Qp1A6O!i%V@1?i*#iFf7_Wy4J0FHy7 ATmS$7 literal 0 HcmV?d00001 diff --git a/resources/ui/units/vehicles/M 818_24.jpg b/resources/ui/units/vehicles/M 818_24.jpg new file mode 100644 index 0000000000000000000000000000000000000000..23372bf0a87b6a037bdb5ab56b89d2163e619f18 GIT binary patch literal 1081 zcmex=^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!?};4cYdj!UFF7hGw?=})dYusTO0o~aEiWU z*sL^pa_`OqYyUHJY>atT6md3{c}s!2=F}-Y8V^4Il=@trz2aHQ#F)7YH|$7al$5ny zT{U^W*>YPA=jpzFtN#f}uh)?`n=vk(7@HY+<}d4h3QplkTX_N3Y+zh}(qZ#%p8*4gDpE=SLK urqh;U-yayhMOIKyWp==JZuJ>*jB{)%ewCbj>nh6CBJwVJwYs$Y|C<0IU9i~z literal 0 HcmV?d00001 diff --git a/resources/ui/units/vehicles/M-1 Abrams_24.jpg b/resources/ui/units/vehicles/M-1 Abrams_24.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d0bf9a664fca42babfb9bce5df65d8ba61ccaef0 GIT binary patch literal 1095 zcmex=^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!_9wZzO8c(`RF=z&7|nt2R`}Aw5kZDGEJy! zw>-GKV*634ee)l2Ds9~>aC=o-XQ%^<;JG5Zk>>a>0qO?95(? z=Z$?=uSYxQS4iAGu_-6Fx9|9+JxwgRZNZAN1!n1=o^9Xqx7aN-ec#2_ua^bFJY}b6 zFfW&%8D}Q*8V4~zZyE6OVrcrA(b5gYo``$eMw0P2~Pp$7g$QFYTOpF``)i=55Z2mnBXf_lov4^VIXQ3D;RY$0S3% z@Yi+*DUC%Yi|#g_T~cx@Y|gfD`^+ip9@v*l{W)m+T_)up({|UNUl(<~>QNR=DLUon I_vZgi0R8m6X8-^I literal 0 HcmV?d00001 diff --git a/resources/ui/units/vehicles/M-113_24.jpg b/resources/ui/units/vehicles/M-113_24.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8319228dd89ee18e3d7bd4bbc3796c146af80e77 GIT binary patch literal 1067 zcmex=^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#Lx04M%U|?W;!k{>*?DuD(Os)qXa6&_Og_9s z{>vr9*WAUw!t{@vKCCyrvPFG3{^q0k7q->@kIo9+4RL)QBmAGi=CZ`|eT8vl67wJ0&(-t)?*Baa>#Ekj zQS6CkJ5$T;lCHde(`bETC(jP~LkskZYR_i7KCda_ zdG}YWjObjr$42sXl-t53uY+{V%B`1c`A>S~{Gjyl*R|{4H2=Nz;m5LRoGcSgTs*N? zQa)3@!}R4o&W}evIscu%+Vk1j9o&@>O=k?hM|`(y+uEk)@0My~6t!47Vncgyzm`&8 z(Zilrqv)Q5dHesZdiL&*dBH~aCyXl1*5^JpStoUAFDpqjFLTj4Wu>I{;qCLAqT7TE zcTYWW?Ebo{OZA6rE5F4a<)6R56)fo co=pu-y*s$){bz{MSl!Cu9+Vmubm9L^04z^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!}Yz}H(y>PbnlL9Uhmvx&OMJWU)!vF&Bj)z z&Gf2*j^TtN!}&3N+GqC!<>l3Q*P0v)`K+qbFu8ZHk?m@MEgLsVs!Y6Ydg1k1Ynj#j zZ0ky`&UbwE$X}P#_3Db#BoWVCuSp?t{6X2aHjb6nt&@Je(0hAeom+)$;q|3StUQmO zT6{SxsomT2b@H6~!5NpkUR3c-e^gef+?Vn8&$QRNM;-~xczs>vU+7icqs^l7IhQxx zHLTk6Z|b9tzK92(swNqS={}pJbT4@Bk%YO6Cx)#)s~vMLMB(oF@_w%(qmQe8C2pR7 zY01Bna#J7Os_)w4xVT~4t(MagFNGUU{%5F}r@i^Z{Ufq&?;h%!3d;1Wm7Qr&vv}cN ze`rf@rss`wAwuCsrnz>vL;IiW$}D)|HMd?qFy`vF#$w?GTl+l4^CVjqJl$J)Ok>fm ztiYbFDNaikFJ!#1-sRLHOD@@+1yxla{o9>)nm4BQm2T%LdfoH(ZR2ZK(dio+*KeKR zy(p&p(!}GI+jR_{OWwY3_f;xm`o3b#zRR3-oaCIDnWwRHdh literal 0 HcmV?d00001 diff --git a/resources/ui/units/vehicles/M1043 HMMWV_24.jpg b/resources/ui/units/vehicles/M1043 HMMWV_24.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f24eddfdf56dc376842c7329336b85aa81489d05 GIT binary patch literal 1091 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 literal 0 HcmV?d00001 diff --git a/resources/ui/units/vehicles/M12_24.jpg b/resources/ui/units/vehicles/M12_24.jpg new file mode 100644 index 0000000000000000000000000000000000000000..fb047d17dacc3fb3b12e53d2538a480af84fc517 GIT binary patch literal 1081 zcmex=^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!+P5-V&^(dx_W+UN$=C<4!IiazgK`G^zkhT z&)v=QeZt)z_48#OvtFC@ICf|2A_s@kupY*X1q>=O-@dLlm>noyuVD)f6n1~CS-Wuz~NwuU{ojW6rLW zVk=R}Exw;_dEoonvHxV>^g@%5j9uHK6Ue|rj<%``gK;A(Rq uq5tlt&p)nvE_}Iqd2H<_w^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!_g~Cw_KWKx=W8|rh?Y<{-~q7uC2XYbbB*{ zWjOcAZwDpTJwGNVmm8V8bknY_{clb^{qs#h=J7t;-Pb3c)C_u)sKVTP>ahI3Rj*ff z%zd-P;$>iWc=cSnxwR}So_+c!;gLTzW`&C2e6MTU#lkhBq)(_aJecrk2fxLfBr(bF zXANQ&Kj8TMpMgnaVb_$)`mO@{?D-KPO0`us;^z0bG5 z4LqWJk9&!k}T*1KKLyLVM_*0q4$Q~b9-|H{nrIc%fn%sn<2=bHYQ zrQYQ~Q`T#P?ZF4vwTl2<(KRcNMK4M=m+hH)VI4~mTa#-} z&2GuU_w%xp7o6X2pOSmv3rq6Pi>}FEBc!V<`ErHoH5uB{?2jy$_+yuq{bF*e*)0zX zhV2E_-xqcH^D?gbBy-F5z|1m7lP<%i2YU8V_b-{8c%ygilbc-Dq(Ffu`j78*X|24_ NRIXN^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#L-QNwP-*1yFiN1yE2QF~mO{r-mYqW5)Tw|G40lkyKc z8+|tE!-LwHYdap>Jo#4=nQi&z*) z>3TfX^W@#lOM|<@Hr~DUO2FDAZ%Gb!TNt~-uO~fHmm|EB#jZ=(e&heR-ay>TjUlc6+Js3JWuGR5$wO|re-F&?X5&%Z9}niD=dPO0^VAaui?_?|nKvcS{p#a_Z=bCDd0t+us5osgx%ABHtsCk>W1cf# d-)?vH5^v^zhJ6`}wuda5I?14Ta(T}Gn*ffevz7n= literal 0 HcmV?d00001 diff --git a/resources/ui/units/vehicles/M4A4 Sherman_24.jpg b/resources/ui/units/vehicles/M4A4 Sherman_24.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a902812ffaaef9be834fd8b55755efe02ccf2909 GIT binary patch literal 1059 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 G|C<2kF2+&- literal 0 HcmV?d00001 diff --git a/resources/ui/units/vehicles/Panther G_24.jpg b/resources/ui/units/vehicles/Panther G_24.jpg new file mode 100644 index 0000000000000000000000000000000000000000..00ba78519b550b55f5ff8a37d26cac42108386d5 GIT binary patch literal 1074 zcmex=^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!yc=j}aOnSIA=P4rvgJcTla$Dh}oOqx|KV|eJZ_MLa8m3Oz=zuCce$?i9E z^L(FgD}3+1Z8iyN(Vo0@rXRm;Usbr!^hvG?1*&Q1yhWe<+wyX&b^8pDjRp$IEQNnw zPYczu{H#{yHb*2R%KEH)M6Hu1_si?N8&Azt^q>4W$#QLLB%l4G*ed(Cv;H%D41MYx zvg=k@#4T5a-u3FI?3x#>Yj^y(ZEb?`c7fxiJPE6ge5!L+5I(*%U&d!z@0`zv*FGxe z7HR*N_&xbm_kV_?0VlP#BxGLC-SJ?;>elb}rX^CMf27X!=B|)vVM|pxzQ^nmr>y&> zEj26b_iSCit@cdq^od7bJvFV>tCmdB+SK@&ufXwy{fzb2`!4I}#$Jl9RGYl$q|~&q zxEo)71-gb-1!g^79OQXpz3!gAKG!KHZZhakstWStHlK0mQi!@lyvmoOBH`+r-NUV= zJ~BVsblYor!{SpmJ)yT_tsVzXH~Y4hgE8c!!mWAFugsgPv1rv?Rn5rBL5q9x`hI(8 mFL^mJQf29(lxa4pohMCevU2~v(pdMEV`*~hw!1g~-vj`lO|QiO literal 0 HcmV?d00001 diff --git a/resources/ui/units/vehicles/PzKpfw IV H_24.jpg b/resources/ui/units/vehicles/PzKpfw IV H_24.jpg new file mode 100644 index 0000000000000000000000000000000000000000..af0685949e25717c4d5488c5ae6090e7007ff34c GIT binary patch literal 1090 zcmex=^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!_9wZ?C-8QTd8{K%SydPEjAsem?l)uDO+u) z_fd9f+hmo%^|Py${yh_Tv;1;d_+`uIO|BK&Z|lVu?LBgK;>og;k6*_IuUB1ol*g*- z&Wo?IMgLwd4v$w^HBUKc=lQy-FK@%%n%;h$!8BFqVR@S0k}tQ?wm8{K}y)R$&b9(>V2pz_Et&UZsV)1wa?bWhJR_+>a%%g zmbQ1_lv|@P<@rC=@6NA;|1)$g5j>Zl-2B_$3H-A3T>;#2=fs>(bWEktg#_ z3|ANZOWN@Ad%xw&YrFinNB;_2wdB?=gOWvaXFk2BaOufay=kvF#m{gEPCY4k(Bk0R zE7whH7v1IVx&89<3a-5#6NLNx<+cPyU0KM!B6zLp!tmd6Up^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!%O?kdso_TZeLm)r}U%kSIYggjhlu1)`i|m zaO&YZ-1Gc(%$fNjTZ@kWbxA4Q;z_ zKP~-t*8YzD)U?0TeQnp(e=y4br?p5bZIYf??e^-c&HP_pZk+gb*Ves$$6~hpp0jLo zvfLWwqNgeSjptdas%x{mCm){GeD8#mctmINe(8P9eS23d+Pcz7sOIqUu)r{dc)nM> zB0b+eY3rFSyYuer^R2uO-#R9^i+wWb@q2Rnd#&Z7uH!dcuHW{U_WW?LD~o^LW^YaT zz5W_K^7&EMFV(X9z I-0=TR0M&x6{{R30 literal 0 HcmV?d00001 diff --git a/resources/ui/units/vehicles/T-72B_24.jpg b/resources/ui/units/vehicles/T-72B_24.jpg new file mode 100644 index 0000000000000000000000000000000000000000..dc8c5ff37d81fb366e661e9be29e7317b3aa87df GIT binary patch literal 1035 zcmex=^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!;AXOwJYs6*RGa7DyO&a67PbIoBKkhOjPOP z(k&O8henR@Zk`Bd3GaXCwr_?~T2 zzp}RF+r%43N*V3SrOSh#_8CO0Bu~D#=X1>7_TU}W9j&*#71jLhUYw99?&0A{UVb4g zNBAViEiWVC@BaT8RxNy_df{T?;w#^dY@E1p*WJnUAEiG2WUBuye{1Ew$&aglyMB6l zMMYr6p@qGv${+Kx7i{^sD%LRUy6?`f(@q)KGjXm8y{&k`<5m6Uy(@uuwQXLh`C+}C zlFlcTPV%`w4_bR{k%aIXCdMbVy_SEo{j%nEJXwC{d7f(5Gkd*~Na2FqwU?Eb7Fo?} zRXS^OZRuRu?o}&~9ja=w?qB}YRrF%el(emCbMC~om47RJXgHat*~b3e?5A(%&H3nS zm3l9REBs>KUL753R}35?z5uKE8a02H>K-v9sr literal 0 HcmV?d00001 diff --git a/resources/ui/units/vehicles/T-80U_24.jpg b/resources/ui/units/vehicles/T-80U_24.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8537a9b3f3951cdf2c416b67f4106919ea93dcb0 GIT binary patch literal 1062 zcmex=^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!@Ym!zO4#BpSWyg_U#o3jOB^9*(Hw^USBJx z`myUr70Z;&{|p&?w;hF7eLL?X99O@#;+VZ~l%Uz(rE6YHGcuU>Pr=7iYt^Snf1m2#p}zKElY_5DSw|@Smj1KROAo3BO+JrBN?^Ca!Y?!2oL z=C8Zp8g;}-PVRW(-}!I7bZl2iyt!uByf*9n`Hz0f|1+d6SDmHO^`GIk)#ilf*)f{z zH~ws0zGZ&0eLCNB&DD{&UTyoNv!W@@VYS(XNC!*im-DV3^;{6=Sdip8Iaw|xRA;YM zPrcrjz^JQ>C9_0Ud07d{ioLzseca-PLqJke^tEZWN*^R9EIF~JF8S&9cgLTe6$z6& zrgra|OZ|=QI_IJ+>td1(&Ckx;yE@zTg5kHycSk1XB)t{PnQr;G|DpWKZ;QHil_b`B Zt_%yaR;;Pbbp82tQP-^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!@Ym!zbygcHTL2aKTABPT{?7EZKrgU`{Z{D z_J`by+@Hp@{%1Jy`mEEnZ0)sH7jB=~kd#z+mXP;_+t8-G@e4RCuA6xdRq}J5wDaqVd zXaC-sTJzSx_@L(0SV?IKWtN1e)mLm>&Wg#I*`AV?lytUsI_1u$^Z4^w?{ADRU%=#*leVE0F|Da(uutr8ob&!4nLcTyAow|nam9$Tee-x zS+acxgP6QdL(M67=eWxHhrVvyOZqtOMa*EhwD6AAr@||Rx4$mxy0=u~beONzroN7n zd2)L*?wM@g5in=vr}OVQ9@JWVUA5^)b?B$SYnL9J@Z_28f67|sUrAuZ-#E5=w_GPb z+`WuVUa5xh$T8)U#|r!QR;-S)Z_`_6b7f!W+C{1bPdf_x7CKlwzjDzvq~OC&qqW*{ j?fC`Mwq1-q`suh3i{qRJjE%wEpI^I*UOv^A{Qo8ZS*5Sc literal 0 HcmV?d00001 diff --git a/resources/ui/units/vehicles/TPZ_24.jpg b/resources/ui/units/vehicles/TPZ_24.jpg new file mode 100644 index 0000000000000000000000000000000000000000..425b9a8255f2efdafc54706a0d3a47c8c438b0a7 GIT binary patch literal 1100 zcmex=^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!%I`k9Fx^zd-hCG(KyA;s#9t4LYs3>^24n^ z_xzmc@1$sddTq*&X}==3v}^rm&`Gc6ds6am>k*%Ao6f9%8pGMuGlhGz?eA+})2)g& zp7s)$lb?KX_OV?O^;7lC){_MhRQ)`wq_DYp-(Oj14}&3^ie<;%$GthRZ_Wc&U8GqmhKydz0vhqWJ{ zf=%_+-1H;c4tp0bU9;$A2Ukju-qm*n)xV`azqgZEY9KPr;-;sh$}{K?#J%I3*`lv`N8BKmf$f5zg%&*jJ4wAcgt5A9{tRnjoG67E}l zX^)lk?A0?5A6sU*DBqAlLGXNX?6jHdvc!#6-4)dqKl@Cd-QpO>iwe`Fnmg^HU%7f^ zX?@c?X)sYzerjTq_WUbvmzcM?^lWi;2w-!td(@@9ZI8&}mAz_@zHr+brZ$Ur-7(Zy zxUr$?KZByr-pk4zi=!7y9C#wUo2^UR+)eJ>v92XMkH6gZbmrM3%BTLZ=2^b)>JQl5 zCs}i1kzH`n!J>kUMN2RBZ{jOIr#CxklV){m!h%0@9^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!z+1z>FB4IA2|$yZ-7l z&uBrb6}RWqUhZq}xwc`g*_$)Vodm<({q#yUS?q28_iNe7+9iiKpV{A7K1W}Da`1nK zT=VZM>$iEny1IAOoc|2FEOhhOuI9LCYq*8;nU~ne@js90ekp#@GC1q~yxj(lzXV-H z*G3u6TT`;?l$DbGo7WewT`E2^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!z;cyizN@7_nEbFm6OR?y;naD#W+e9?L1ca zKCb$4^z*ak;t)sZ%{nKgxW7enB(Km7#Kb3OdxLshsdu!r}^Y#_t!3!(CJvyY`^(y=J z3h{~B`U+LaDj&n8K2>j0ZEw0MyXpM$4J=+i?7tlH|ED(7^xMpQl}wdMdBv?q_q5Od z{cJvehg3#T$i!{C+G0K)loVCCcK`SD&+FzzwVS{DEtkIL<)yoE?&TTDLJCj)B`wd@ zZS5;Lz2MI6({s`ln2dj3bdB|~QTf@`n&}$RTXK5>Lw4rw{|pQkOJeOF%bTt_(BN^T zmRBT9pI`3Tsx2*I!iBr;1z!IbDcl^ETQYm4ee(&KhBJi+|1+eo6$x&W<9($WHYrNB eBwQ}UQzFSpBWB(YiRFJc{JQ8`cH@ct|C<1uMz44P literal 0 HcmV?d00001 diff --git a/resources/ui/units/vehicles/ZBD-04A_24.jpg b/resources/ui/units/vehicles/ZBD-04A_24.jpg new file mode 100644 index 0000000000000000000000000000000000000000..552ed34506a71dbe691f7c050a96d0112bc8d149 GIT binary patch literal 1096 zcmex=^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!`>C%%Q7RyuWxX;U7lO^v*Vl*dvN4`hTHdK z4ozNlV0W9_gTueVjX!FI?Ya7PU6{GnwA+$Ra~JD)NWP2-JD%6!xvuk(mg|ity&Rq~ zZ@%V>d9rQRdU-!}-dTn~4c6`DU%#GMb#0#EZu3{4j*Co~%5_oy6yx(}a_#f#rk-T@ zy=}^~dCa8|Cyu|4*mYIEde$m~t!t|KX0E#(dwcVpBNI>VY1ru1v*Yb)gOh&@qdrXC z5pW?g_SEu)y@8E?=IzN$o+jZv<@aHQ#!EA$PO>bD_`am8oGt9&U#-WT^MmB%WciD_ zu0~nLd89VDes5XD_;TKns}q<04)2fpu{wV1se>!;HMlYD{@MJWLGEnnKCzGaUHb1X zs#k|^?w8A%u1Y*X{@VHWUkLvjP{vuBK*`2LD?I2fhQ~;_n%s@{j#2!m!9&DAcjxhj`;c4{0emS z-`FL;Wn$5Fw`sMnRk-Cmj=YOVs8+8(wrj4X(q&!NJ*r(#HtJNWd|%Y{a;cX=xSOb! JrM2<@n*cChyO{t0 literal 0 HcmV?d00001