From 7c7fec06422f6f66544b151b2549b9daf002ebaa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=A1s=20Badano?= Date: Sun, 11 Jan 2015 16:56:58 -0300 Subject: [PATCH 01/18] Rename function files for attach --- .../functions/fn_attach.sqf => attach/functions/fnc_attach.sqf} | 0 .../fn_canAttach.sqf => attach/functions/fnc_canAttach.sqf} | 0 .../fn_canDetach.sqf => attach/functions/fnc_canDetach.sqf} | 0 .../functions/fn_detach.sqf => attach/functions/fnc_detach.sqf} | 0 .../fn_openAttachUI.sqf => attach/functions/fnc_openAttachUI.sqf} | 0 5 files changed, 0 insertions(+), 0 deletions(-) rename addons/{Attach/functions/fn_attach.sqf => attach/functions/fnc_attach.sqf} (100%) rename addons/{Attach/functions/fn_canAttach.sqf => attach/functions/fnc_canAttach.sqf} (100%) rename addons/{Attach/functions/fn_canDetach.sqf => attach/functions/fnc_canDetach.sqf} (100%) rename addons/{Attach/functions/fn_detach.sqf => attach/functions/fnc_detach.sqf} (100%) rename addons/{Attach/functions/fn_openAttachUI.sqf => attach/functions/fnc_openAttachUI.sqf} (100%) diff --git a/addons/Attach/functions/fn_attach.sqf b/addons/attach/functions/fnc_attach.sqf similarity index 100% rename from addons/Attach/functions/fn_attach.sqf rename to addons/attach/functions/fnc_attach.sqf diff --git a/addons/Attach/functions/fn_canAttach.sqf b/addons/attach/functions/fnc_canAttach.sqf similarity index 100% rename from addons/Attach/functions/fn_canAttach.sqf rename to addons/attach/functions/fnc_canAttach.sqf diff --git a/addons/Attach/functions/fn_canDetach.sqf b/addons/attach/functions/fnc_canDetach.sqf similarity index 100% rename from addons/Attach/functions/fn_canDetach.sqf rename to addons/attach/functions/fnc_canDetach.sqf diff --git a/addons/Attach/functions/fn_detach.sqf b/addons/attach/functions/fnc_detach.sqf similarity index 100% rename from addons/Attach/functions/fn_detach.sqf rename to addons/attach/functions/fnc_detach.sqf diff --git a/addons/Attach/functions/fn_openAttachUI.sqf b/addons/attach/functions/fnc_openAttachUI.sqf similarity index 100% rename from addons/Attach/functions/fn_openAttachUI.sqf rename to addons/attach/functions/fnc_openAttachUI.sqf From 2c1d925dc4845975c62256f5dfd6d9fd2fda795c Mon Sep 17 00:00:00 2001 From: commy2 Date: Sun, 11 Jan 2015 21:39:01 +0100 Subject: [PATCH 02/18] trying to fix captilization --- addons/Attach/UI/attach_ca.paa | Bin 22016 -> 0 bytes addons/Attach/UI/detach_ca.paa | Bin 22016 -> 0 bytes addons/Attach/UI/irstrobe_item.paa | Bin 44650 -> 0 bytes addons/Attach/config.cpp | 165 ------------------- addons/Attach/stringtable.xml | 150 ----------------- addons/attach/$PBOPREFIX$ | 1 - addons/attach/CfgEventHandlers.hpp | 5 - addons/attach/XEH_preInit.sqf | 7 - addons/attach/functions/fnc_attach.sqf | 62 ------- addons/attach/functions/fnc_canAttach.sqf | 21 --- addons/attach/functions/fnc_canDetach.sqf | 19 --- addons/attach/functions/fnc_detach.sqf | 65 -------- addons/attach/functions/fnc_openAttachUI.sqf | 65 -------- addons/attach/script_component.hpp | 12 -- main/config.cpp | 22 +++ main/script_component.hpp | 12 ++ main/script_macros.hpp | 1 + main/script_mod.hpp | 19 +++ main/script_version.hpp | 5 + main/version.hpp | 2 + 20 files changed, 61 insertions(+), 572 deletions(-) delete mode 100644 addons/Attach/UI/attach_ca.paa delete mode 100644 addons/Attach/UI/detach_ca.paa delete mode 100644 addons/Attach/UI/irstrobe_item.paa delete mode 100644 addons/Attach/config.cpp delete mode 100644 addons/Attach/stringtable.xml delete mode 100644 addons/attach/$PBOPREFIX$ delete mode 100644 addons/attach/CfgEventHandlers.hpp delete mode 100644 addons/attach/XEH_preInit.sqf delete mode 100644 addons/attach/functions/fnc_attach.sqf delete mode 100644 addons/attach/functions/fnc_canAttach.sqf delete mode 100644 addons/attach/functions/fnc_canDetach.sqf delete mode 100644 addons/attach/functions/fnc_detach.sqf delete mode 100644 addons/attach/functions/fnc_openAttachUI.sqf delete mode 100644 addons/attach/script_component.hpp create mode 100644 main/config.cpp create mode 100644 main/script_component.hpp create mode 100644 main/script_macros.hpp create mode 100644 main/script_mod.hpp create mode 100644 main/script_version.hpp create mode 100644 main/version.hpp diff --git a/addons/Attach/UI/attach_ca.paa b/addons/Attach/UI/attach_ca.paa deleted file mode 100644 index ec545508ba595a2a3625507bd65226cc81b6d6e7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22016 zcmeHPeQZm z@(+ugP;JpBwMN<2qP11J&Pw-B*OY=gX|QCV##vTArYeMDy0!}lORU09MuEo8-S6D{ zUi=lX9p{6Lcco|hy!+n0_x#Se=iYnnxwh~fJDNO??AX~<#u!T`liv{Z_nRIknj;at zqv^3`q7__3KhfO$T@}B(aP{EFb8g0d>tXCAjj;(_g{LkmLoNJy^GOo{69E%}QW5Zq z0xogRn5Jo#$9hBi>XT&dKwFUa4m(Jcpy|=8EY_GtSA;^fC-{`iR~g&ZAKDigNS>GF zdCKV(Gu=H1C=STC`MHFYufk5phx>#$A#WPg=sqR7C%*+*Fuir=Ok9?ym(A&X1CZrzS);mxnMu;9lWFY@Y2TYra_4__1G zxkXWw#g=!z29>H0_r-X;QCDE9%ZB-A^~s|AomP!Ve_>LHYvmFFBqy z!C~K(kat?xDGSC6vC6ppe3Xs*V|6@UN6)E9rpPl9XbYb9B|i0CA$%0YV#$Z6BjJzf z=2alCI0kCZ+Y(}ZHlN|PBIs&Qh$+Y1>&J>x!ivaQ#jR$k%nWG<$%=KBZ`jAte zkYY-HIr&p-Me_@7-?#exiIaoUp9J|Y`goO&?MnPz>UfLwT*i7mpFV7zdG{J0_FWZn zR#;y9lcNt=`Xcm~Pt_UvVe9Ovjp+LA_T*oWtVEeDW}8dZ2S*}vKHd-xJrD`d5CZ=& zHo6`Ohj#CB&j{LXN57w1BYeJw{PM{=JHPIREiuHU3z2Xke`N$il&DYhxNV)FL%YRz zr)hSj4gTi(Te3EdTwCK={_62ee|1|hgu--xHLQtPU!?riD%JV_oJ!S)Y{5bvJllV#o)7 z)xwltYWs5DFLL}_Y4Xn3UR!U6w^|=>6}zUj1$iHLwTt;BW|$i0*u_&+wd2wnyoXi-Wb1CkESUOI1BaiEhr!Q5a7*T>_5&^AFdNetDMIB-yB6b1MBtn zdOQuI+;%DSBb~Nu7|)h;ew+{Qdo5p%-@3orZnxB5yxB*xqeNKb^vA6EVZQvWGcP1h z@?;M^=VodSyxI1y=>3a(+&<(0TI7wQ{nes>v(59>k9^H5RUa^3n*Qp1AgAY#7w4~T z=4;C@bk|Dz?RI-Af_#vl^VLf`kh|Ye(T~MrV~toZpjtJ(>Oy{J>w_3Cc;WM*w*EAK zwdt?Sg?zj?e|1gp?aucDFzK-8p2gp;$Z2oG=sDjNmsjks!o8Z;zrjxVO@DO`im4mL z`m2leN2O|7m|qQ}5PpXj5pkIPS}b|@SJ^4kUwtR!v;EcB@4dU`VCQ@iRGq z-0L@5M{Jj{1wr<9A@rf<_lPGt^Iyma^9T5=Icw<+z9H9{8u_b>?B8;|$Y%Wwio+ip z>el@Y2$;Ip#kb)6m#PntJ0`IF(;~jnl($6fF8IvShZ@>?;sNXj%~QTv`f-}} z&-s*CZ-86XQQ!Ep^Ka_@Ox11L^SeL=(wndi@sEZ-xeWf~pZ+<^UyYsV41e`IB;S<3 z`mtWl2WS1&kgwM!iYIMy<3LP$UFL5S0TTfe0TTfe0TTfefyF>Tr7a5)K_yCe;*%yU zg20DK&yB~faA;q3$2Dy3BP`9Xu!awZpC{aiCI?>G{Kcmx0+*(oc7}yjMEpHWaoYa<-wWCc7Vx9Fbv?2$P)+lfGShv+;N~%Fl3| zBrx!3iux0E{Dz-sl^E5N6W`0hzZ#`5cNxZmFn2p2qz0wj#MUsKVUS^+Dss?2GQvi! zue;i>eCk8f#Ws#*-IzaP+n#;$(Hmf1LU=mtkt) z?eX|>+~xbrK*iT2|CNk?hR4CE!HX{US=u_y6BoLZ!hRs?UTs4EL)h(QdJg{*!8+*J z>7#lWFc!%oe;|q2Ov+DrL6-`j96Yl0Bbz^|KPk6fxsY@~sDMB+oEa9%2Q%%>9OY%$ zQ)_s6?P*hV=d4?V!7b9!#RFx!JtPS=MFZ;$`$&Ec>vXfPzT=wM=2UQwG>1RvOS&w- zICZ6?(#B-HycaA*`XO1t+jR(n;k`tGq^XYU`^mKqv4^kF1n6dg#@WUT_Psc%B zhw%l+YJ{_q@~y8ACL;me-r^ixwmr?kV=xmBjAsuR$68^o^V(~wladpc(Z+?Oo1$R; zrkp>aT;e^NVm7A*?3fq3HvDc#jylS)foO`ML(9H5JtzSyp+9Bqu3@q zEZxe8YMOO3I`Pn4c+$(1oVb=EziKRNe96M&mFR29HPjGYKdO22$<3H@5-s=@<57xV zE9~i9+hj|{4`36?iO>1qSH+)d|9a>rG7L>Y81#NB#r7rLJ}3^#2E_H2rE_@-R#yNF*@4}EzdIpjasDEL>w zuS)V-uj`Xmsa`+lOOEu3dH4 z;3(OH-!sZ`#c5cY-Q6v@K582!CoZFoQs{DW1p=2*#(p@o;bDRiy0Mo>$;Px=zXE+(;LrPKRaucVlTjZGPeJ~{diNnuV~tL zT2qIHg!hJ7$qQk>HT=<^z7pL=j{y|LPO&{lULGPE%Br$mL#tlVi=necG4{v9QSH|P e7T61|3>Fo5ZhH0A<7ap7wb5%Tf{gG6(*FR9p6lNL diff --git a/addons/Attach/UI/detach_ca.paa b/addons/Attach/UI/detach_ca.paa deleted file mode 100644 index 886c494d904f7bea2d583b05ad2b65deae32535d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22016 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 - - - - - Attach item >> - Gegenstand befestigen >> - Acoplar objeto >> - Przyczep przedmiot >> - Attacher l'objet >> - Připnout předmět >> - Acoplar item >> - Attacca l'oggetto >> - Tárgy hozzácsatolása >> - Добавить приспособления - - - Attach - Befestigen - Acoplar - Przyczep - Attacher - Připnout - Acoplar - Attacca - Hozzácsatolás - Присоединить - - - Detach item - Gegenstand entfernen - Quitar objeto - Odczep przedmiot - Détacher l'objet - Odepnout předmět - Separar item - Stacca l'oggetto - Tárgy lecsatolása - Отсоединить - - - IR Strobe Attached - IR-Stroboskop befestigt - Marcador IR acoplado - Przyczepiono stroboskop IR - Strobe IR attaché - IR Značkovač Připnutý - Marcador IV Acoplado - Strobo IR attaccata - Infravörös jeladó hozzácsatolva - ИК строб присоединён - - - IR Strobe Detached - IR-Stroboskop entfernt - Marcador IR quitado - Odczepiono stroboskop IR - Strobe IR détaché - IR Značkovač Odepnutý - Marcador IV Separado - Strobo IR staccata - Infravörös jeladó lecsatolva - ИК строб отсоединён - - - IR Grenade Attached - IR-Granate befestigt - Granada IR acoplada - Przyczepiono granat IR - Grenade IR attachée - IR Granát Připnutý - Granada IV Acoplada - Granata IR attaccata - Infravörös gránát hozzácsatolva - ИК граната присоединена - - - IR Grenade Detached - IR-Granate entfernt - Granada IR quitada - Odczepiono granat IR - Grenade IR détachée - IR Granát Odepnutý - Granada IV Separada - Granata IR staccata - Infravörös gránát lecsatolva - ИК граната отсоединена - - - Chemlight Attached - Leuchtstab befestigt - Barra de luz acoplada - Przyczepiono światło chemiczne - Chemlight attaché - Chemické světlo Připnuto - Chemlight Acoplada - Chemlight attaccata - Chemlight hozzácsatolva - Химсвет присоединён - - - Chemlight Detached - Leuchtstab entfernt - Barra de luz quitada - Odczepiono światło chemiczne - Chemlight détaché - Chemické světlo Odepnuto - Chemlight Separada - Chemlight staccata - Chemlight hozzácsatolva - Химсвет отсоединён - - - No inventory space - Kein Platz im Inventar - Sin espacio en inventario - Brak miejsca w ekwipunku - Pas de place dans l'inventaire - Není místo v inventáři - Sem espaço no inventário - Non hai più spazio - Nincs több hely - В инвентаре нет места - - - IR Strobe - IR-Stroboskop - Marcador IR - Stroboskop IR - Strobe IR - IR Značkovač - Marcador IV - Strobo IR - Infravörös jeladó - ИК строб - - - IR Strobe allows you to signal your position through a pulsating beacon only visible with NVGs. - Das IR-Stroboskop erlaubt es dir deine Position mit einem blinkenden Leuchtfeuer zu signalisieren, welches nur mit Nachtsichtgerät zu erkennen ist. - Stroboskop światła podczerwieni umożliwia oznaczenie swojej pozycji pulsacyjnym światłem widocznym tylko przez optykę noktowizyjną i gogle noktowizyjne. - El Marcador IR permite señalizar su posisición a través de una baliza visible solo a través de dispositivos de visión nocturna. - Le Strobe IR permet de signaler votre position grace à un clignotement visible par des JVN. - IR Značkovač je Infračerveně zářící stroboskop umožňující signalizaci vaší pozice díky blikajícímu světlu, které je vidět pouze při užití noktovizoru. - O Marcador IV permite que você sinalize sua posição através de um pulso visível somente com equipamento de visão noturna. - La Strobo IR è una luce stroboscopica che ti permette di segnalare la tua posizione grazie all'emissione di impulsi ad infrarossi visibili solo con i visori notturni. - Az infravörös jeladóval megjelölheted a helyzetedet úgy, hogy annak pulzáló fénye csak éjjellátó készülékkel látható. - ИК строб позволяет сигнализировать свое местоположение через пульсирующий маяк, видимый только через ПНВ. - - - \ No newline at end of file diff --git a/addons/attach/$PBOPREFIX$ b/addons/attach/$PBOPREFIX$ deleted file mode 100644 index 1e4e48a4ca..0000000000 --- a/addons/attach/$PBOPREFIX$ +++ /dev/null @@ -1 +0,0 @@ -z\ace\Addons\laser \ No newline at end of file diff --git a/addons/attach/CfgEventHandlers.hpp b/addons/attach/CfgEventHandlers.hpp deleted file mode 100644 index f4997ba248..0000000000 --- a/addons/attach/CfgEventHandlers.hpp +++ /dev/null @@ -1,5 +0,0 @@ -class Extended_PreInit_EventHandlers { - class ADDON { - init = QUOTE( call compile preprocessFileLineNumbers PATHTOF(XEH_preInit.sqf) ); - }; -}; \ No newline at end of file diff --git a/addons/attach/XEH_preInit.sqf b/addons/attach/XEH_preInit.sqf deleted file mode 100644 index 7f953d62d9..0000000000 --- a/addons/attach/XEH_preInit.sqf +++ /dev/null @@ -1,7 +0,0 @@ -#include "script_component.hpp" - -PREPF(attach); -PREPF(canAttach); -PREPF(canDetach); -PREPF(detach); -PREPF(openAttachUI); \ No newline at end of file diff --git a/addons/attach/functions/fnc_attach.sqf b/addons/attach/functions/fnc_attach.sqf deleted file mode 100644 index b4cf675096..0000000000 --- a/addons/attach/functions/fnc_attach.sqf +++ /dev/null @@ -1,62 +0,0 @@ -#include "script_component.hpp" - -/* -Author: eRazeri and CAA-Picard - -Attach an item to the unit - -Arguments: -0: unit -1: Item name - -Return Value: -none -*/ - -private ["_unit", "_itemName", "_attachedItem"]; - -_unit = _this select 0; -_itemName = _this select 1; - -// Check if unit has an attached item -if (_unit getVariable [QGVAR(ItemName), ""] != "") exitWith {}; - -// Check if the unit still has the item -if !((_itemName in items _unit) or (_itemName in magazines _unit)) exitWith {}; - -// Attach item -switch true do { - case (_itemName == "AGM_IR_Strobe_Item") : { - _attachedItem = "AGM_IR_Strobe_Effect" createVehicle [0,0,0]; - _attachedItem attachTo [_unit,[0,-0.11,0.16],"pilot"];//makes it attach to the head a bit better, shoulder is not good for visibility - eRazeri - [localize "STR_AGM_Attach_IrStrobe_Attached"] call EFUNC(core,displayTextStructured); - }; - case (_itemName == "B_IR_Grenade") : { - _attachedItem = "B_IRStrobe" createVehicle [0,0,0]; - _attachedItem attachTo [_unit,[-0.05,0,0.12],"rightshoulder"]; - [localize "STR_AGM_Attach_IrGrenade_Attached"] call EFUNC(core,displayTextStructured); - }; - case (_itemName == "O_IR_Grenade") : { - _attachedItem = "O_IRStrobe" createVehicle [0,0,0]; - _attachedItem attachTo [_unit,[-0.05,0,0.12],"rightshoulder"]; - [localize "STR_AGM_Attach_IrGrenade_Attached"] call EFUNC(core,displayTextStructured); - }; - case (_itemName == "I_IR_Grenade") : { - _attachedItem = "I_IRStrobe" createVehicle [0,0,0]; - _attachedItem attachTo [_unit,[-0.05,0,0.12],"rightshoulder"]; - [localize "STR_AGM_Attach_IrGrenade_Attached"] call EFUNC(core,displayTextStructured); - }; - case (_itemName == "Chemlight_blue" or {_itemName == "Chemlight_green"} or {_itemName == "Chemlight_red"} or {_itemName == "Chemlight_yellow"}) : { - _attachedItem = _itemName createVehicle [0,0,0]; - _attachedItem attachTo [_unit,[-0.05,0,0.12],"rightshoulder"]; - [localize "STR_AGM_Attach_Chemlight_Attached"] call EFUNC(core,displayTextStructured);; - }; - default { - if (true) exitWith {}; - }; -}; - -// Remove item -_unit removeItem _itemName; -_unit setVariable [QGVAR(ItemName), _itemName, true]; -_unit setVariable [QGVAR(Item), _attachedItem, true]; diff --git a/addons/attach/functions/fnc_canAttach.sqf b/addons/attach/functions/fnc_canAttach.sqf deleted file mode 100644 index fe5191d7e2..0000000000 --- a/addons/attach/functions/fnc_canAttach.sqf +++ /dev/null @@ -1,21 +0,0 @@ -#include "script_component.hpp" - -/* - * Author: commy2 - * - * Check if a unit can attach a specific item. - * - * Argument: - * 0: Unit that wants to attach the object (Object) - * 1: Name of the attachable item (String) - * - * Return value: - * Boolean (Bool) - */ - -private ["_unit", "_item"]; - -_unit = _this select 0; -_item = _this select 1; - -canStand _unit && {_unit getVariable [QGVAR(ItemName), ""] == ""} && {_item in (magazines _unit + items _unit + [""])} diff --git a/addons/attach/functions/fnc_canDetach.sqf b/addons/attach/functions/fnc_canDetach.sqf deleted file mode 100644 index 3ddfc6c11e..0000000000 --- a/addons/attach/functions/fnc_canDetach.sqf +++ /dev/null @@ -1,19 +0,0 @@ -#include "script_component.hpp" - -/* - * Author: commy2 - * - * Check if a unit has an item attached and if it can remove that item. - * - * Argument: - * 0: Unit that wants to detach something (Object) - * - * Return value: - * Boolean (Bool) - */ - -private "_unit"; - -_unit = _this select 0; - -canStand _unit && {_unit getVariable [QGVAR(ItemName), ""] != ""} diff --git a/addons/attach/functions/fnc_detach.sqf b/addons/attach/functions/fnc_detach.sqf deleted file mode 100644 index 415429440b..0000000000 --- a/addons/attach/functions/fnc_detach.sqf +++ /dev/null @@ -1,65 +0,0 @@ -#include "script_component.hpp" - -/* -Author: eRazeri and CAA-Picard - -Detach an item from a unit - -Arguments: -unit - -Return Value: -none -*/ - -private ["_unit", "_itemName", "_count", "_attachedItem"]; - -_unit = _this select 0; -_itemName = _unit getVariable [QGVAR(ItemName), ""]; - -// Check if unit has an attached item -if (_itemName == "") exitWith {}; - -// Add item to inventory -_count = (count items _unit) + (count magazines _unit); -_unit addItem _itemName; -if ((count items _unit) + (count magazines _unit) <= _count) exitWith { - [localize "STR_AGM_Attach_Inventory_Full"] call EFUNC(core,displayTextStructured); -}; - -if (_itemName == "B_IR_Grenade" or _itemName == "O_IR_Grenade" or _itemName == "I_IR_Grenade") then { - // Hack for dealing with X_IR_Grenade effect not dissapearing on deleteVehicle - [_unit getVariable QGVAR(Item), _unit] spawn { - _attachedItem = _this select 0; - _unit = _this select 1; - detach _attachedItem; - _attachedItem setPos [getPos _unit select 0, getPos _unit select 1, (getPos _unit select 2) -1000]; - sleep 0.5; - deleteVehicle _attachedItem; - }; -} -else -{ - // Delete attached item - deleteVehicle (_unit getVariable QGVAR(Item)); -}; - -// Reset unit variables -_unit setVariable [QGVAR(ItemName),"", true]; -_unit setVariable [QGVAR(Item),nil, true]; - -// Display message -switch true do { - case (_itemName == "AGM_IR_Strobe_Item") : { - [localize "STR_AGM_Attach_IrStrobe_Detached"] call EFUNC(core,displayTextStructured); - }; - case (_itemName == "B_IR_Grenade" or _itemName == "O_IR_Grenade" or _itemName == "I_IR_Grenade") : { - [localize "STR_AGM_Attach_IrGrenade_Detached"] call EFUNC(core,displayTextStructured); - }; - case (_itemName == "Chemlight_blue" or {_itemName == "Chemlight_green"} or {_itemName == "Chemlight_red"} or {_itemName == "Chemlight_yellow"}) : { - [localize "STR_AGM_Attach_Chemlight_Detached"] call EFUNC(core,displayTextStructured); - }; - default { - if (true) exitWith {}; - }; -}; diff --git a/addons/attach/functions/fnc_openAttachUI.sqf b/addons/attach/functions/fnc_openAttachUI.sqf deleted file mode 100644 index 5af80d2c9e..0000000000 --- a/addons/attach/functions/fnc_openAttachUI.sqf +++ /dev/null @@ -1,65 +0,0 @@ -#include "script_component.hpp" - -/* - Name: AGM_Attach_fnc_openAttachUI - - Author: Garth de Wet (LH) - - Description: - Opens the UI for attaching objects. - - Parameters: - 0: OBJECT - unit - - Returns: - Nothing - - Example: - [player] call AGM_Attach_fnc_openAttachUI; -*/ -private ["_unit", "_actions", "_attachables", "_item"]; -_unit = _this select 0; -_listed = []; -_attachables = magazines _unit; -_actions = [localize "STR_AGM_Attach_AttachDetach", localize "STR_AGM_Attach_Attach"] call EFUNC(interaction,prepareSelectMenu); -{ - if !(_x in _listed) then { - _item = ConfigFile >> "CfgMagazines" >> _x; - if (getNumber (_item >> "AGM_Attachable") == 1) then { - _actions = [ - _actions, - getText(_item >> "displayName"), - getText(_item >> "picture"), - _x - ] call EFUNC(interaction,addSelectableItem); - }; - _listed pushBack _x; - }; -} forEach _attachables; -_attachables = items _unit; -{ - if !(_x in _listed) then { - _item = ConfigFile >> "CfgWeapons" >> _x; - if (getNumber (_item >> "AGM_Attachable") == 1) then { - _actions = [ - _actions, - getText(_item >> "displayName"), - getText(_item >> "picture"), - _x - ] call EFUNC(interaction,addSelectableItem); - }; - _listed pushBack _x; - }; -} forEach _attachables; - -[ - _actions, - { - [AGM_player, _this] call FUNC(attach); - call EFUNC(interaction,hideMenu); - }, - { - call EFUNC(interaction,hideMenu); - if !(profileNamespace getVariable [EQGVAR(interaction,AutoCloseMenu), false]) then {"Default" call EFUNC(interaction,openMenuSelf)}; - } -] call EFUNC(interaction,openSelectMenu); diff --git a/addons/attach/script_component.hpp b/addons/attach/script_component.hpp deleted file mode 100644 index f4b58802e3..0000000000 --- a/addons/attach/script_component.hpp +++ /dev/null @@ -1,12 +0,0 @@ -#define COMPONENT attach -#include "\z\ace\Addons\main\script_mod.hpp" - -#ifdef DEBUG_ENABLED_ATTACH - #define DEBUG_MODE_FULL -#endif - -#ifdef DEBUG_SETTINGS_ATTACH - #define DEBUG_SETTINGS DEBUG_SETTINGS_ATTACH -#endif - -#include "\z\ace\Addons\main\script_macros.hpp" \ No newline at end of file diff --git a/main/config.cpp b/main/config.cpp new file mode 100644 index 0000000000..17c0f5c465 --- /dev/null +++ b/main/config.cpp @@ -0,0 +1,22 @@ +#include "script_component.hpp" + +class CfgPatches { + class ADDON { + units[] = {}; + weapons[] = {}; + requiredVersion = REQUIRED_VERSION; + requiredAddons[] = {"Extended_EventHandlers", "CBA_MAIN"}; + VERSION_CONFIG; + }; +}; + +class CfgMods { + class ACE3 { + dir = "@ACE3"; + picture = ""; + action = "http://www.unitedoperations.net"; + hideName = 0; + hidePicture = 0; + name = "UnitedOperations"; + }; +}; diff --git a/main/script_component.hpp b/main/script_component.hpp new file mode 100644 index 0000000000..02a8608ef4 --- /dev/null +++ b/main/script_component.hpp @@ -0,0 +1,12 @@ +#define COMPONENT main +#include "\x\ace\Addons\main\script_mod.hpp" + +#ifdef DEBUG_ENABLED_MAIN + #define DEBUG_MODE_FULL +#endif + +#ifdef DEBUG_SETTINGS_MAIN + #define DEBUG_SETTINGS DEBUG_SETTINGS_MAIN +#endif + +#include "script_macros.hpp" diff --git a/main/script_macros.hpp b/main/script_macros.hpp new file mode 100644 index 0000000000..79d3ca7089 --- /dev/null +++ b/main/script_macros.hpp @@ -0,0 +1 @@ +#include "\x\cba\addons\main\script_macros_common.hpp" \ No newline at end of file diff --git a/main/script_mod.hpp b/main/script_mod.hpp new file mode 100644 index 0000000000..65915b59df --- /dev/null +++ b/main/script_mod.hpp @@ -0,0 +1,19 @@ +// COMPONENT should be defined in the script_component.hpp and included BEFORE this hpp +#define MAINPREFIX x + +#define PREFIX ace + +//--BUILDPREFIX +#include "\x\ace\Addons\main\script_version.hpp" +//--ENDBUILDPREFIX + +#define VERSION MAJOR.MINOR.PATCHLVL.BUILD +#define VERSION_AR MAJOR,MINOR,PATCHLVL,BUILD +#define VERSION_PLUGIN MAJOR.MINOR.PATCHLVL.BUILD + +// MINIMAL required version for the Mod. Components can specify others.. +#define REQUIRED_VERSION 1.0 + +#ifndef VERSION_CONFIG + #define VERSION_CONFIG version = VERSION; versionStr = QUOTE(VERSION); versionAr[] = {VERSION_AR} +#endif \ No newline at end of file diff --git a/main/script_version.hpp b/main/script_version.hpp new file mode 100644 index 0000000000..4188e0496b --- /dev/null +++ b/main/script_version.hpp @@ -0,0 +1,5 @@ +#define MAJOR 1 +#define MINOR 0 +#define PATCHLVL 0 +#define BUILD 1 +#define BUILDDATE 2015-01-10 21:26:00.000000 \ No newline at end of file diff --git a/main/version.hpp b/main/version.hpp new file mode 100644 index 0000000000..c120d484cc --- /dev/null +++ b/main/version.hpp @@ -0,0 +1,2 @@ +version = QUOTE(VERSION); +text = QUOTE(UOMODS VERSION); \ No newline at end of file From f969be6302ac400b25980ba864aa40769f35a3b8 Mon Sep 17 00:00:00 2001 From: commy2 Date: Sun, 11 Jan 2015 21:39:49 +0100 Subject: [PATCH 03/18] trying to fix capitilization 2 --- addons/attach/$PBOPREFIX$ | 1 + addons/attach/CfgEventHandlers.hpp | 5 + addons/attach/UI/attach_ca.paa | Bin 0 -> 22016 bytes addons/attach/UI/detach_ca.paa | Bin 0 -> 22016 bytes addons/attach/UI/irstrobe_item.paa | Bin 0 -> 44650 bytes addons/attach/XEH_preInit.sqf | 7 + addons/attach/config.cpp | 165 +++++++++++++++++++ addons/attach/functions/fnc_attach.sqf | 62 +++++++ addons/attach/functions/fnc_canAttach.sqf | 21 +++ addons/attach/functions/fnc_canDetach.sqf | 19 +++ addons/attach/functions/fnc_detach.sqf | 65 ++++++++ addons/attach/functions/fnc_openAttachUI.sqf | 65 ++++++++ addons/attach/script_component.hpp | 12 ++ addons/attach/stringtable.xml | 150 +++++++++++++++++ 14 files changed, 572 insertions(+) create mode 100644 addons/attach/$PBOPREFIX$ create mode 100644 addons/attach/CfgEventHandlers.hpp create mode 100644 addons/attach/UI/attach_ca.paa create mode 100644 addons/attach/UI/detach_ca.paa create mode 100644 addons/attach/UI/irstrobe_item.paa create mode 100644 addons/attach/XEH_preInit.sqf create mode 100644 addons/attach/config.cpp create mode 100644 addons/attach/functions/fnc_attach.sqf create mode 100644 addons/attach/functions/fnc_canAttach.sqf create mode 100644 addons/attach/functions/fnc_canDetach.sqf create mode 100644 addons/attach/functions/fnc_detach.sqf create mode 100644 addons/attach/functions/fnc_openAttachUI.sqf create mode 100644 addons/attach/script_component.hpp create mode 100644 addons/attach/stringtable.xml diff --git a/addons/attach/$PBOPREFIX$ b/addons/attach/$PBOPREFIX$ new file mode 100644 index 0000000000..1e4e48a4ca --- /dev/null +++ b/addons/attach/$PBOPREFIX$ @@ -0,0 +1 @@ +z\ace\Addons\laser \ No newline at end of file diff --git a/addons/attach/CfgEventHandlers.hpp b/addons/attach/CfgEventHandlers.hpp new file mode 100644 index 0000000000..8af0265fe2 --- /dev/null +++ b/addons/attach/CfgEventHandlers.hpp @@ -0,0 +1,5 @@ +class Extended_PreInit_EventHandlers { + class ADDON { + init = QUOTE( call compile preprocessFileLineNumbers PATHTOF(XEH_preInit.sqf) ); + }; +}; \ No newline at end of file diff --git a/addons/attach/UI/attach_ca.paa b/addons/attach/UI/attach_ca.paa new file mode 100644 index 0000000000000000000000000000000000000000..ec545508ba595a2a3625507bd65226cc81b6d6e7 GIT binary patch literal 22016 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 literal 0 HcmV?d00001 diff --git a/addons/attach/UI/detach_ca.paa b/addons/attach/UI/detach_ca.paa new file mode 100644 index 0000000000000000000000000000000000000000..886c494d904f7bea2d583b05ad2b65deae32535d GIT binary patch literal 22016 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 "CfgMagazines" >> _x; + if (getNumber (_item >> "AGM_Attachable") == 1) then { + _actions = [ + _actions, + getText(_item >> "displayName"), + getText(_item >> "picture"), + _x + ] call EFUNC(interaction,addSelectableItem); + }; + _listed pushBack _x; + }; +} forEach _attachables; +_attachables = items _unit; +{ + if !(_x in _listed) then { + _item = ConfigFile >> "CfgWeapons" >> _x; + if (getNumber (_item >> "AGM_Attachable") == 1) then { + _actions = [ + _actions, + getText(_item >> "displayName"), + getText(_item >> "picture"), + _x + ] call EFUNC(interaction,addSelectableItem); + }; + _listed pushBack _x; + }; +} forEach _attachables; + +[ + _actions, + { + [AGM_player, _this] call FUNC(attach); + call EFUNC(interaction,hideMenu); + }, + { + call EFUNC(interaction,hideMenu); + if !(profileNamespace getVariable [EQGVAR(interaction,AutoCloseMenu), false]) then {"Default" call EFUNC(interaction,openMenuSelf)}; + } +] call EFUNC(interaction,openSelectMenu); diff --git a/addons/attach/script_component.hpp b/addons/attach/script_component.hpp new file mode 100644 index 0000000000..c09a5b97e1 --- /dev/null +++ b/addons/attach/script_component.hpp @@ -0,0 +1,12 @@ +#define COMPONENT attach +#include "\z\ace\Addons\main\script_mod.hpp" + +#ifdef DEBUG_ENABLED_ATTACH + #define DEBUG_MODE_FULL +#endif + +#ifdef DEBUG_SETTINGS_ATTACH + #define DEBUG_SETTINGS DEBUG_SETTINGS_ATTACH +#endif + +#include "\z\ace\Addons\main\script_macros.hpp" \ No newline at end of file diff --git a/addons/attach/stringtable.xml b/addons/attach/stringtable.xml new file mode 100644 index 0000000000..895dff95c7 --- /dev/null +++ b/addons/attach/stringtable.xml @@ -0,0 +1,150 @@ + + + + + + Attach item >> + Gegenstand befestigen >> + Acoplar objeto >> + Przyczep przedmiot >> + Attacher l'objet >> + Připnout předmět >> + Acoplar item >> + Attacca l'oggetto >> + Tárgy hozzácsatolása >> + Добавить приспособления + + + Attach + Befestigen + Acoplar + Przyczep + Attacher + Připnout + Acoplar + Attacca + Hozzácsatolás + Присоединить + + + Detach item + Gegenstand entfernen + Quitar objeto + Odczep przedmiot + Détacher l'objet + Odepnout předmět + Separar item + Stacca l'oggetto + Tárgy lecsatolása + Отсоединить + + + IR Strobe Attached + IR-Stroboskop befestigt + Marcador IR acoplado + Przyczepiono stroboskop IR + Strobe IR attaché + IR Značkovač Připnutý + Marcador IV Acoplado + Strobo IR attaccata + Infravörös jeladó hozzácsatolva + ИК строб присоединён + + + IR Strobe Detached + IR-Stroboskop entfernt + Marcador IR quitado + Odczepiono stroboskop IR + Strobe IR détaché + IR Značkovač Odepnutý + Marcador IV Separado + Strobo IR staccata + Infravörös jeladó lecsatolva + ИК строб отсоединён + + + IR Grenade Attached + IR-Granate befestigt + Granada IR acoplada + Przyczepiono granat IR + Grenade IR attachée + IR Granát Připnutý + Granada IV Acoplada + Granata IR attaccata + Infravörös gránát hozzácsatolva + ИК граната присоединена + + + IR Grenade Detached + IR-Granate entfernt + Granada IR quitada + Odczepiono granat IR + Grenade IR détachée + IR Granát Odepnutý + Granada IV Separada + Granata IR staccata + Infravörös gránát lecsatolva + ИК граната отсоединена + + + Chemlight Attached + Leuchtstab befestigt + Barra de luz acoplada + Przyczepiono światło chemiczne + Chemlight attaché + Chemické světlo Připnuto + Chemlight Acoplada + Chemlight attaccata + Chemlight hozzácsatolva + Химсвет присоединён + + + Chemlight Detached + Leuchtstab entfernt + Barra de luz quitada + Odczepiono światło chemiczne + Chemlight détaché + Chemické světlo Odepnuto + Chemlight Separada + Chemlight staccata + Chemlight hozzácsatolva + Химсвет отсоединён + + + No inventory space + Kein Platz im Inventar + Sin espacio en inventario + Brak miejsca w ekwipunku + Pas de place dans l'inventaire + Není místo v inventáři + Sem espaço no inventário + Non hai più spazio + Nincs több hely + В инвентаре нет места + + + IR Strobe + IR-Stroboskop + Marcador IR + Stroboskop IR + Strobe IR + IR Značkovač + Marcador IV + Strobo IR + Infravörös jeladó + ИК строб + + + IR Strobe allows you to signal your position through a pulsating beacon only visible with NVGs. + Das IR-Stroboskop erlaubt es dir deine Position mit einem blinkenden Leuchtfeuer zu signalisieren, welches nur mit Nachtsichtgerät zu erkennen ist. + Stroboskop światła podczerwieni umożliwia oznaczenie swojej pozycji pulsacyjnym światłem widocznym tylko przez optykę noktowizyjną i gogle noktowizyjne. + El Marcador IR permite señalizar su posisición a través de una baliza visible solo a través de dispositivos de visión nocturna. + Le Strobe IR permet de signaler votre position grace à un clignotement visible par des JVN. + IR Značkovač je Infračerveně zářící stroboskop umožňující signalizaci vaší pozice díky blikajícímu světlu, které je vidět pouze při užití noktovizoru. + O Marcador IV permite que você sinalize sua posição através de um pulso visível somente com equipamento de visão noturna. + La Strobo IR è una luce stroboscopica che ti permette di segnalare la tua posizione grazie all'emissione di impulsi ad infrarossi visibili solo con i visori notturni. + Az infravörös jeladóval megjelölheted a helyzetedet úgy, hogy annak pulzáló fénye csak éjjellátó készülékkel látható. + ИК строб позволяет сигнализировать свое местоположение через пульсирующий маяк, видимый только через ПНВ. + + + \ No newline at end of file From 8cfe073f3a8c42093ddda2220188772c123991f8 Mon Sep 17 00:00:00 2001 From: commy2 Date: Sun, 11 Jan 2015 22:06:40 +0100 Subject: [PATCH 04/18] port ragdolls --- .../agm/Ragdolls => addons/ragdolls}/config.cpp | 4 +++- addons/ragdolls/script_component.hpp | 12 ++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) rename {TO_MERGE/agm/Ragdolls => addons/ragdolls}/config.cpp (99%) create mode 100644 addons/ragdolls/script_component.hpp diff --git a/TO_MERGE/agm/Ragdolls/config.cpp b/addons/ragdolls/config.cpp similarity index 99% rename from TO_MERGE/agm/Ragdolls/config.cpp rename to addons/ragdolls/config.cpp index 8e71dfef61..35390a407b 100644 --- a/TO_MERGE/agm/Ragdolls/config.cpp +++ b/addons/ragdolls/config.cpp @@ -1,5 +1,7 @@ +#include "script_component.hpp" + class CfgPatches { - class AGM_Ragdolls { + class ADDON { units[] = {}; weapons[] = {}; requiredVersion = 0.60; diff --git a/addons/ragdolls/script_component.hpp b/addons/ragdolls/script_component.hpp new file mode 100644 index 0000000000..f0306957b0 --- /dev/null +++ b/addons/ragdolls/script_component.hpp @@ -0,0 +1,12 @@ +#define COMPONENT ragdolls +#include "\z\ace\Addons\main\script_mod.hpp" + +#ifdef DEBUG_ENABLED_RAGDOLLS + #define DEBUG_MODE_FULL +#endif + +#ifdef DEBUG_ENABLED_RAGDOLLS + #define DEBUG_SETTINGS DEBUG_ENABLED_RAGDOLLS +#endif + +#include "\z\ace\Addons\main\script_macros.hpp" \ No newline at end of file From 670a3a687dbea079bc6966c9ec54ecaf46d410be Mon Sep 17 00:00:00 2001 From: commy2 Date: Sun, 11 Jan 2015 22:21:16 +0100 Subject: [PATCH 05/18] port thermals --- .../agm/Thermals => addons/thermals}/config.cpp | 5 +++-- addons/thermals/script_component.hpp | 12 ++++++++++++ 2 files changed, 15 insertions(+), 2 deletions(-) rename {TO_MERGE/agm/Thermals => addons/thermals}/config.cpp (97%) create mode 100644 addons/thermals/script_component.hpp diff --git a/TO_MERGE/agm/Thermals/config.cpp b/addons/thermals/config.cpp similarity index 97% rename from TO_MERGE/agm/Thermals/config.cpp rename to addons/thermals/config.cpp index 044e17c838..2b41d3d3a9 100644 --- a/TO_MERGE/agm/Thermals/config.cpp +++ b/addons/thermals/config.cpp @@ -1,6 +1,7 @@ -// PATCH CONFIG +#include "script_component.hpp" + class CfgPatches { - class AGM_Thermals { + class ADDON { units[] = {}; weapons[] = {}; requiredVersion = 0.60; diff --git a/addons/thermals/script_component.hpp b/addons/thermals/script_component.hpp new file mode 100644 index 0000000000..5daf18e62d --- /dev/null +++ b/addons/thermals/script_component.hpp @@ -0,0 +1,12 @@ +#define COMPONENT thermals +#include "\z\ace\Addons\main\script_mod.hpp" + +#ifdef DEBUG_ENABLED_THERMALS + #define DEBUG_MODE_FULL +#endif + +#ifdef DEBUG_ENABLED_THERMALS + #define DEBUG_SETTINGS DEBUG_ENABLED_THERMALS +#endif + +#include "\z\ace\Addons\main\script_macros.hpp" \ No newline at end of file From 716c77b8084bd52d307afebc0c9203c8145f7df3 Mon Sep 17 00:00:00 2001 From: commy2 Date: Sun, 11 Jan 2015 22:28:38 +0100 Subject: [PATCH 06/18] port realistic names --- .../realisticnames}/config.cpp | 4 +++- addons/realisticnames/script_component.hpp | 12 ++++++++++++ .../realisticnames}/stringtable.xml | 0 3 files changed, 15 insertions(+), 1 deletion(-) rename {TO_MERGE/agm/RealisticNames => addons/realisticnames}/config.cpp (99%) create mode 100644 addons/realisticnames/script_component.hpp rename {TO_MERGE/agm/RealisticNames => addons/realisticnames}/stringtable.xml (100%) diff --git a/TO_MERGE/agm/RealisticNames/config.cpp b/addons/realisticnames/config.cpp similarity index 99% rename from TO_MERGE/agm/RealisticNames/config.cpp rename to addons/realisticnames/config.cpp index 366cd139df..3fc7e9a168 100644 --- a/TO_MERGE/agm/RealisticNames/config.cpp +++ b/addons/realisticnames/config.cpp @@ -1,5 +1,7 @@ +#include "script_component.hpp" + class CfgPatches { - class AGM_RealisticNames { + class ADDON { units[] = {}; weapons[] = {}; requiredVersion = 0.60; diff --git a/addons/realisticnames/script_component.hpp b/addons/realisticnames/script_component.hpp new file mode 100644 index 0000000000..74a7dd413f --- /dev/null +++ b/addons/realisticnames/script_component.hpp @@ -0,0 +1,12 @@ +#define COMPONENT realisticnames +#include "\z\ace\Addons\main\script_mod.hpp" + +#ifdef DEBUG_ENABLED_REALISTICNAMES + #define DEBUG_MODE_FULL +#endif + +#ifdef DEBUG_ENABLED_REALISTICNAMES + #define DEBUG_SETTINGS DEBUG_ENABLED_REALISTICNAMES +#endif + +#include "\z\ace\Addons\main\script_macros.hpp" \ No newline at end of file diff --git a/TO_MERGE/agm/RealisticNames/stringtable.xml b/addons/realisticnames/stringtable.xml similarity index 100% rename from TO_MERGE/agm/RealisticNames/stringtable.xml rename to addons/realisticnames/stringtable.xml From 979222d21c96645228e36823cdc7ef5cadce7d07 Mon Sep 17 00:00:00 2001 From: KoffeinFlummi Date: Sun, 11 Jan 2015 22:36:31 +0100 Subject: [PATCH 07/18] Add AGM authors list --- AUTHORS.txt | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 AUTHORS.txt diff --git a/AUTHORS.txt b/AUTHORS.txt new file mode 100644 index 0000000000..74d75babdd --- /dev/null +++ b/AUTHORS.txt @@ -0,0 +1,57 @@ +# ACE 3 CONTRIBUTOR LIST +# If you contributed, but are not listed here, contact me: +# koffeinflummi@gmail.com +# +# Feel free to add yourself to this when creating a pull +# request, preferably including an email address. + +# CORE TEAM +commy2 +esteldunedain +Felix Wiegand +Garth "L-H" de Wet +Jo David +PabstMirror + +# CONTRIBUTORS +11RDP-LoupVert +[BIG]Bull +ACCtomeek +Adanteh +aeroson +Aggr094 +BlackQwar +Brakoviejo +Codingboy +Crusty +eRazeri +evromalarkey +Falke75 +Ferenczi +Ferenzi +Filip Basara (Logo) +geraldbolso1899 +Ghost +gienkov +gpgpgpgp +Grzegorz +Hamburger SV +havena +Hawkins +jokoho48 +Jonpas +Legolasindar +licht-im-Norden87 +MarcBook +Michail Nikolaev +nic547 +oscarmolinadev +pokertour +rakowozz +Raspu86 +Riccardo Petricca +Robert Boklahánics +simon84 +Tonic +Tourorist +Valentin Torikian From 876fa59a32b323171dce1a8bf146bf83e8507788 Mon Sep 17 00:00:00 2001 From: jaynus Date: Sun, 11 Jan 2015 13:40:51 -0800 Subject: [PATCH 08/18] gitignore updated. Development build.bat added. --- .gitignore | 2 ++ tools/build.bat | 4 ++++ 2 files changed, 6 insertions(+) create mode 100644 .gitignore create mode 100644 tools/build.bat diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000000..fa6a8122af --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +*.pbo +$PBOPREFIX$ diff --git a/tools/build.bat b/tools/build.bat new file mode 100644 index 0000000000..837aee5490 --- /dev/null +++ b/tools/build.bat @@ -0,0 +1,4 @@ +pushd ..\addons\ +for /D %%i in (*.*) do ( + makepbo -NUP -@=z\addons\ace\%%i %%i ace_%%i.pbo +) From 1bdb2038ebba27736e0a1e101e8576ac568f677b Mon Sep 17 00:00:00 2001 From: commy2 Date: Sun, 11 Jan 2015 23:01:27 +0100 Subject: [PATCH 09/18] port ai --- {TO_MERGE/agm/AI => addons/ai}/config.cpp | 125 ++++++++++++++++++---- addons/ai/script_component.hpp | 12 +++ 2 files changed, 119 insertions(+), 18 deletions(-) rename {TO_MERGE/agm/AI => addons/ai}/config.cpp (94%) create mode 100644 addons/ai/script_component.hpp diff --git a/TO_MERGE/agm/AI/config.cpp b/addons/ai/config.cpp similarity index 94% rename from TO_MERGE/agm/AI/config.cpp rename to addons/ai/config.cpp index bd2e7b922e..5e1264d418 100644 --- a/TO_MERGE/agm/AI/config.cpp +++ b/addons/ai/config.cpp @@ -1,5 +1,7 @@ +#include "script_component.hpp" + class CfgPatches { - class AGM_AI { + class ADDON { units[] = {}; weapons[] = {}; requiredVersion = 0.60; @@ -60,24 +62,29 @@ class CfgWeapons { aiDispersionCoefX = 6; aiDispersionCoefY = 6; }; + class Rifle_Base_F: Rifle {}; class Rifle_Long_Base_F: Rifle_Base_F {}; + // MX class arifle_MX_Base_F: Rifle_Base_F { aiDispersionCoefY = 18.0; aiDispersionCoefX = 12.0; - modes[] = {"Single","FullAuto","fullauto_medium","single_medium_optics1","single_far_optics2","AGM_Burst_far"}; + modes[] += {"AGM_Burst_far"}; + class Single: Mode_SemiAuto { minRange = 120; // 2; minRangeProbab = 0.7; // 0.5; midRange = 300; // 200; midRangeProbab = 0.5; // 0.7; }; + class FullAuto; class fullauto_medium: FullAuto { minRange = 20; // 2; burst = "3 + round random 5"; //3; }; + class AGM_Burst_far: fullauto_medium { aiRateOfFire = 2.0; aiRateOfFireDistance = 500; @@ -89,11 +96,13 @@ class CfgWeapons { maxRangeProbab = 0.2; burst = "2 + round random 3"; }; + class single_medium_optics1: Single { aiRateOfFireDistance = 700; // 600; minRange = 120; // 2; maxRange = 700; // 600; }; + class single_far_optics2: single_medium_optics1 { aiRateOfFireDistance = 900; // 700; minRange = 200; // 100; @@ -101,20 +110,24 @@ class CfgWeapons { }; }; + // MX carbine class arifle_MXC_F: arifle_MX_Base_F { aiDispersionCoefY = 18.0; aiDispersionCoefX = 12.0; + class Single: Single { minRange = 120; // 2; minRangeProbab = 0.5; // 0.3; midRange = 250; // 150; midRangeProbab = 0.3; // 0.5; }; + class FullAuto; class fullauto_medium: fullauto_medium { minRange = 20; // 2; burst = "3 + round random 5"; //3; }; + class AGM_Burst_far: fullauto_medium { aiRateOfFire = 2.0; aiRateOfFireDistance = 400; @@ -126,11 +139,13 @@ class CfgWeapons { maxRangeProbab = 0.2; burst = "2 + round random 3"; }; + class single_medium_optics1: single_medium_optics1 { aiRateOfFireDistance = 600; // 500; minRange = 120; // 2; maxRange = 600; // 500; }; + class single_far_optics2: single_medium_optics1 { aiRateOfFireDistance = 800; // 700; minRange = 200; // 100; @@ -141,6 +156,7 @@ class CfgWeapons { //class arifle_MX_F: arifle_MX_Base_F {}; //class arifle_MX_GL_F: arifle_MX_Base_F {}; + // MX machine gun class arifle_MXM_F: arifle_MX_Base_F { class Single: Single { minRange = 120; // 2; @@ -148,15 +164,18 @@ class CfgWeapons { midRange = 350; // 250; midRangeProbab = 0.5; // 0.7; }; + class fullauto_medium: fullauto_medium { minRange = 20; // 2; burst = "3 + round random 5"; //3; }; + class single_medium_optics1: single_medium_optics1 { aiRateOfFireDistance = 700; // 600; minRange = 120; // 2; maxRange = 750; // 650; }; + class single_far_optics2: single_far_optics2 { aiRateOfFireDistance = 900; // 800; minRange = 200; // 100; @@ -164,13 +183,16 @@ class CfgWeapons { }; }; + // MX sniper rifle class arifle_MX_SW_F: arifle_MX_Base_F { aiDispersionCoefY = 24.0; aiDispersionCoefX = 21.0; - modes[] = {"Single","manual","close","short","medium","far_optic1","far_optic2","AGM_Burst_far"}; + modes[] += {"AGM_Burst_far"}; + class Single: Mode_SemiAuto { minRange = 120; // 2; }; + class close; class medium; class AGM_Burst_far: medium { @@ -184,31 +206,37 @@ class CfgWeapons { maxRangeProbab = 0.2; burst = "3 + round random 5"; }; + class far_optic1: close { aiRateOfFireDistance = 750; // 650; maxRange = 750; // 650; }; + class far_optic2: far_optic1 { maxRange = 1100; // 900; aiRateOfFireDistance = 1100;// 900; }; }; + // Katiba class arifle_Katiba_Base_F: Rifle_Base_F { aiDispersionCoefY = 18.0; aiDispersionCoefX = 12.0; - modes[] = {"Single","FullAuto","single_medium_optics1","single_far_optics2","fullauto_medium","AGM_Burst_far"}; + modes[] += {"AGM_Burst_far"}; + class Single: Mode_SemiAuto { minRange = 120; // 2; minRangeProbab = 0.7; // 0.5; midRange = 300; // 200; midRangeProbab = 0.5; // 0.7; }; + class FullAuto; class fullauto_medium: FullAuto { minRange = 20; // 2; burst = "3 + round random 5"; //3; }; + class AGM_Burst_far: fullauto_medium { aiRateOfFire = 2.0; aiRateOfFireDistance = 500; @@ -220,32 +248,40 @@ class CfgWeapons { maxRangeProbab = 0.2; burst = "2 + round random 3"; }; + class single_medium_optics1: Single { aiRateOfFireDistance = 700; // 600; minRange = 120; // 2; maxRange = 700; // 600; }; + class single_far_optics2: single_medium_optics1 { aiRateOfFireDistance = 900; // 800; minRange = 200; // 100; maxRange = 900; // 800; }; }; + + // Katiba carbine class arifle_Katiba_C_F: arifle_Katiba_Base_F { aiDispersionCoefY = 18.0; aiDispersionCoefX = 12.0; + class Single: Single { minRange = 120; // 2; minRangeProbab = 0.5; // 0.3; midRange = 250; // 150; midRangeProbab = 0.3; // 0.7; }; + //class FullAuto: FullAuto {}; + class fullauto_medium: fullauto_medium { minRange = 20; // 2; maxRange = 150; //100; burst = "3 + round random 5"; //3; }; + class AGM_Burst_far: fullauto_medium { aiRateOfFire = 2.0; aiRateOfFireDistance = 400; @@ -257,10 +293,12 @@ class CfgWeapons { maxRangeProbab = 0.2; burst = "2 + round random 3"; }; + class single_medium_optics1: single_medium_optics1 { minRange = 120; // 2; maxRange = 600; // 500; }; + class single_medium_optics2: single_medium_optics1 { aiRateOfFireDistance = 800; // 700; minRange = 200; // 100; @@ -268,24 +306,29 @@ class CfgWeapons { }; }; + // F2002 class mk20_base_F: Rifle_Base_F { aiDispersionCoefY = 18.0; aiDispersionCoefX = 12.0; - modes[] = {"Single","FullAuto","fullauto_medium","single_medium_optics1","single_far_optics2","AGM_Burst_far"}; + modes[] += {"AGM_Burst_far"}; + class Single: Mode_SemiAuto { minRange = 120; // 2; minRangeProbab = 0.7; // 0.5; midRange = 250; // 150; midRangeProbab = 0.5; // 0.7; }; + class FullAuto: Mode_FullAuto { minRange = 0; //2; }; + class fullauto_medium: FullAuto { minRange = 20; // 2; maxRange = 150; // 100; burst = "3 + round random 5"; // 3; }; + class AGM_Burst_far: fullauto_medium { aiRateOfFire = 2.0; aiRateOfFireDistance = 500; @@ -297,20 +340,25 @@ class CfgWeapons { maxRangeProbab = 0.2; burst = "2 + round random 3"; }; + class single_medium_optics1: Single { aiRateOfFireDistance = 600; // 500; minRange = 120; // 5; maxRange = 600; // 500; }; + class single_far_optics2: single_medium_optics1 { aiRateOfFireDistance = 800; // 700; minRange = 200; // 100; maxRange = 800; // 700; }; }; + + // F2002 carbine class arifle_Mk20C_F: mk20_base_F { aiDispersionCoefY = 18.0; aiDispersionCoefX = 12.0; + class Single: Single { minRange = 120; // 2; minRangeProbab = 0.7; // 0.5; @@ -318,19 +366,23 @@ class CfgWeapons { midRangeProbab = 0.5; // 0.7; maxRange = 350; // 250; }; + class FullAuto: FullAuto { minRange = 0; //2; }; + class single_medium_optics1: single_medium_optics1 { aiRateOfFireDistance = 600; // 500; minRange = 120; // 5; maxRange = 550; // 450; }; + //class single_medium_optics2: single_medium_optics1 {}; class fullauto_medium: fullauto_medium { minRange = 20; //2; burst = "3 + round random 5"; //3; }; + class AGM_Burst_far: fullauto_medium { aiRateOfFire = 2.0; aiRateOfFireDistance = 400; @@ -344,11 +396,12 @@ class CfgWeapons { }; }; + // TAR-20 class Tavor_base_F: Rifle_Base_F { aiDispersionCoefY = 18.0; aiDispersionCoefX = 12.0; + modes[] += {"AGM_Burst_far"}; - modes[] = {"Single","FullAuto","single_medium_optics1","single_medium_optics2","fullauto_medium","AGM_Burst_far"}; class Single: Mode_SemiAuto { minRange = 120; //2; minRangeProbab = 0.7; //0.5; @@ -356,14 +409,17 @@ class CfgWeapons { midRangeProbab = 0.5; //0.7; maxRange = 350; //250; }; + class FullAuto: Mode_FullAuto { minRange = 0; //2; }; + class fullauto_medium: FullAuto { minRange = 20; // 2; maxRange = 150; // 100; burst = "3 + round random 5"; // 3; }; + class AGM_Burst_far: fullauto_medium { aiRateOfFire = 2.0; aiRateOfFireDistance = 400; @@ -375,20 +431,25 @@ class CfgWeapons { maxRangeProbab = 0.2; burst = "2 + round random 3"; }; + class single_medium_optics1: Single { aiRateOfFireDistance = 600; // 500; minRange = 120; // 5; maxRange = 550; // 450; }; + class single_medium_optics2: single_medium_optics1 { aiRateOfFireDistance = 700; // 600; minRange = 200; // 100; maxRange = 700; // 600; }; }; + + // TAR-21 class arifle_TRG21_F: Tavor_base_F { aiDispersionCoefY = 18.0; aiDispersionCoefX = 12.0; + class Single: Single { minRange = 120; // 2; minRangeProbab = 0.7; // 0.3; @@ -396,24 +457,17 @@ class CfgWeapons { midRangeProbab = 0.5; // 0.7; maxRange = 400; // 300; }; + class FullAuto: FullAuto { minRange = 0; //2; }; + class fullauto_medium: fullauto_medium { minRange = 20; // 2; maxRange = 150; // 100; burst = "3 + round random 5"; // 3; }; - class single_medium_optics1: single_medium_optics1 { - aiRateOfFireDistance = 700; // 600; - minRange = 120; // 2; - maxRange = 600; // 500; - }; - class single_medium_optics2: single_medium_optics1 { - aiRateOfFireDistance = 800; // 700; - minRange = 200; // 100; - maxRange = 800; // 700; - }; + class AGM_Burst_far: fullauto_medium { aiRateOfFire = 2.0; aiRateOfFireDistance = 400; @@ -425,58 +479,86 @@ class CfgWeapons { maxRangeProbab = 0.2; burst = "2 + round random 3"; }; + + class single_medium_optics1: single_medium_optics1 { + aiRateOfFireDistance = 700; // 600; + minRange = 120; // 2; + maxRange = 600; // 500; + }; + + class single_medium_optics2: single_medium_optics1 { + aiRateOfFireDistance = 800; // 700; + minRange = 200; // 100; + maxRange = 800; // 700; + }; }; // sub machine guns + + // SDAR class SDAR_base_F: Rifle_Base_F { aiDispersionCoefY = 28.0; aiDispersionCoefX = 20.0; + class Single: Mode_SemiAuto { minRange = 10; //2; }; + class Burst: Mode_Burst { minRange = 5; //1; }; }; + // PD2000 class pdw2000_base_F: Rifle_Base_F { aiDispersionCoefY = 18.0; aiDispersionCoefX = 12.0; + class Single: Mode_SemiAuto { minRange = 100; //2; }; + class Burst: Mode_Burst { minRange = 50; //1; }; }; + // Vector class SMG_01_Base: Rifle_Base_F { aiDispersionCoefY = 18.0; aiDispersionCoefX = 12.0; + class Single: Mode_SemiAuto { minRange = 50; //2; }; + class Burst: Mode_Burst { minRange = 25; //2; }; }; + // Scorpion EVO class SMG_02_base_F: Rifle_Base_F { aiDispersionCoefY = 18.0; aiDispersionCoefX = 12.0; + class Single: Mode_SemiAuto { minRange = 50; //2; }; + class Burst: Mode_Burst { minRange = 25; //2; }; }; // machine guns + + // Stoner class LMG_Mk200_F: Rifle_Long_Base_F { aiDispersionCoefY = 24.0; aiDispersionCoefX = 21.0; - modes[] = {"manual","close","short","medium","far_optic1","far_optic2","AGM_Burst_far"}; + modes[] += {"AGM_Burst_far"}; + class medium; class AGM_Burst_far: medium { aiRateOfFire = 6.0; @@ -489,22 +571,27 @@ class CfgWeapons { maxRangeProbab = 0.2; burst = "3 + round random 5"; }; + class far_optic1: medium { maxRange = 750; // 650; }; + class far_optic2: far_optic1 { maxRange = 1100; // 900; aiRateOfFireDistance = 1100;// 900; }; }; + // Negev class LMG_Zafir_F: Rifle_Long_Base_F { aiDispersionCoefY = 23.0; aiDispersionCoefX = 19.0; - modes[] = {"Single","FullAuto","close","short","medium","far_optic1","far_optic2","AGM_Burst_far"}; + modes[] += {"AGM_Burst_far"}; + class Single: Mode_SemiAuto { minRange = 120; // 2; }; + class close; class medium; class AGM_Burst_far: medium { @@ -518,9 +605,11 @@ class CfgWeapons { maxRangeProbab = 0.2; burst = "3 + round random 5"; }; + class far_optic1: close { maxRange = 800; //700; }; + class far_optic2: far_optic1 { maxRange = 1200; //1000; }; diff --git a/addons/ai/script_component.hpp b/addons/ai/script_component.hpp new file mode 100644 index 0000000000..46602db75c --- /dev/null +++ b/addons/ai/script_component.hpp @@ -0,0 +1,12 @@ +#define COMPONENT ai +#include "\z\ace\Addons\main\script_mod.hpp" + +#ifdef DEBUG_ENABLED_AI + #define DEBUG_MODE_FULL +#endif + +#ifdef DEBUG_ENABLED_AI + #define DEBUG_SETTINGS DEBUG_ENABLED_AI +#endif + +#include "\z\ace\Addons\main\script_macros.hpp" \ No newline at end of file From 2222bb721bf84b9914b949cc3e0d0c98edcd4684 Mon Sep 17 00:00:00 2001 From: jaynus Date: Sun, 11 Jan 2015 14:04:19 -0800 Subject: [PATCH 10/18] Add example blank module and EGVAR() QEGVAR() --- addons/main/script_macros.hpp | 6 +++++- extras/blank_module/CfgEventHandlers.hpp | 5 +++++ extras/blank_module/XEH_preInit.sqf | 3 +++ extras/blank_module/config.cpp | 17 +++++++++++++++++ extras/blank_module/functions/fnc_empty.sqf | 3 +++ extras/blank_module/script_component.hpp | 12 ++++++++++++ 6 files changed, 45 insertions(+), 1 deletion(-) create mode 100644 extras/blank_module/CfgEventHandlers.hpp create mode 100644 extras/blank_module/XEH_preInit.sqf create mode 100644 extras/blank_module/config.cpp create mode 100644 extras/blank_module/functions/fnc_empty.sqf create mode 100644 extras/blank_module/script_component.hpp diff --git a/addons/main/script_macros.hpp b/addons/main/script_macros.hpp index 8207dd12c3..0253260685 100644 --- a/addons/main/script_macros.hpp +++ b/addons/main/script_macros.hpp @@ -171,4 +171,8 @@ #define PREPF(fncName) FUNC(fncName) = compile preprocessFileLineNumbers QUOTE(PATHTOF(functions\DOUBLES(fnc,fncName).sqf)) -#define PREP_MODULE(folder) [] call compile preprocessFileLineNumbers QUOTE(PATHTOF(folder\__PREP__.sqf)) \ No newline at end of file +#define PREP_MODULE(folder) [] call compile preprocessFileLineNumbers QUOTE(PATHTOF(folder\__PREP__.sqf)) + +#define EGVAR(module,var) TRIPLES(PREFIX,module,var) +#define QEGVAR(module,var) QUOTE(EGVAR(module,var)) + diff --git a/extras/blank_module/CfgEventHandlers.hpp b/extras/blank_module/CfgEventHandlers.hpp new file mode 100644 index 0000000000..8af0265fe2 --- /dev/null +++ b/extras/blank_module/CfgEventHandlers.hpp @@ -0,0 +1,5 @@ +class Extended_PreInit_EventHandlers { + class ADDON { + init = QUOTE( call compile preprocessFileLineNumbers PATHTOF(XEH_preInit.sqf) ); + }; +}; \ No newline at end of file diff --git a/extras/blank_module/XEH_preInit.sqf b/extras/blank_module/XEH_preInit.sqf new file mode 100644 index 0000000000..a8321ce3d5 --- /dev/null +++ b/extras/blank_module/XEH_preInit.sqf @@ -0,0 +1,3 @@ +#include "script_component.hpp" + +PREPF(empty); \ No newline at end of file diff --git a/extras/blank_module/config.cpp b/extras/blank_module/config.cpp new file mode 100644 index 0000000000..56fa6a3b32 --- /dev/null +++ b/extras/blank_module/config.cpp @@ -0,0 +1,17 @@ +#include "script_component.hpp" + +class CfgPatches { + class ADDON { + units[] = {}; + weapons[] = {}; + requiredVersion = 0.60; + requiredAddons[] = {"AGM_Core", "AGM_Interaction"}; + version = "0.95"; + versionStr = "0.95"; + versionAr[] = {0,95,0}; + author[] = {""}; + authorUrl = ""; + }; +}; + +#include "CfgEventHandlers.hpp" \ No newline at end of file diff --git a/extras/blank_module/functions/fnc_empty.sqf b/extras/blank_module/functions/fnc_empty.sqf new file mode 100644 index 0000000000..028fb068c9 --- /dev/null +++ b/extras/blank_module/functions/fnc_empty.sqf @@ -0,0 +1,3 @@ +#include "script_component.hpp" + +diag_log text format["This is here as an example!!!"]; \ No newline at end of file diff --git a/extras/blank_module/script_component.hpp b/extras/blank_module/script_component.hpp new file mode 100644 index 0000000000..1b99905148 --- /dev/null +++ b/extras/blank_module/script_component.hpp @@ -0,0 +1,12 @@ +#define COMPONENT blank +#include "\z\ace\Addons\main\script_mod.hpp" + +#ifdef DEBUG_ENABLED_BLANK + #define DEBUG_MODE_FULL +#endif + +#ifdef DEBUG_SETTINGS_BLANK + #define DEBUG_SETTINGS DEBUG_SETTINGS_BLANK +#endif + +#include "\z\ace\Addons\main\script_macros.hpp" \ No newline at end of file From 61d7309c9d4d4f1fb96075c7577e102d88fe78d6 Mon Sep 17 00:00:00 2001 From: jaynus Date: Sun, 11 Jan 2015 14:07:32 -0800 Subject: [PATCH 11/18] More macro's and ACRE debug callstack macros added --- addons/main/script_macros.hpp | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/addons/main/script_macros.hpp b/addons/main/script_macros.hpp index 0253260685..525aa34a2c 100644 --- a/addons/main/script_macros.hpp +++ b/addons/main/script_macros.hpp @@ -176,3 +176,24 @@ #define EGVAR(module,var) TRIPLES(PREFIX,module,var) #define QEGVAR(module,var) QUOTE(EGVAR(module,var)) +#define DGVAR(varName) if(isNil "ACE_DEBUG_NAMESPACE") then { ACE_DEBUG_NAMESPACE = []; }; if(!(QUOTE(GVAR(varName)) in ACE_DEBUG_NAMESPACE)) then { PUSH(ACE_DEBUG_NAMESPACE, QUOTE(GVAR(varName))); }; GVAR(varName) +#define DVAR(varName) if(isNil "ACE_DEBUG_NAMESPACE") then { ACE_DEBUG_NAMESPACE = []; }; if(!(QUOTE(varName) in ACE_DEBUG_NAMESPACE)) then { PUSH(ACE_DEBUG_NAMESPACE, QUOTE(varName)); }; varName +#define DFUNC(var1) TRIPLES(ADDON,fnc,var1) + +#ifdef ENABLE_CALLSTACK +#define CALLSTACK(function) {private ['_ret']; if(ACE_IS_ERRORED) then { ['AUTO','AUTO'] call ACE_DUMPSTACK_FNC; ACE_IS_ERRORED = false; }; ACE_IS_ERRORED = true; ACE_STACK_TRACE set [ACE_STACK_DEPTH, [diag_tickTime, __FILE__, __LINE__, ACE_CURRENT_FUNCTION, 'ANON', _this]]; ACE_STACK_DEPTH = ACE_STACK_DEPTH + 1; ACE_CURRENT_FUNCTION = 'ANON'; _ret = _this call ##function; ACE_STACK_DEPTH = ACE_STACK_DEPTH - 1; ACE_IS_ERRORED = false; _ret;} +#define CALLSTACK_NAMED(function, functionName) {private ['_ret']; if(ACE_IS_ERRORED) then { ['AUTO','AUTO'] call ACE_DUMPSTACK_FNC; ACE_IS_ERRORED = false; }; ACE_IS_ERRORED = true; ACE_STACK_TRACE set [ACE_STACK_DEPTH, [diag_tickTime, __FILE__, __LINE__, ACE_CURRENT_FUNCTION, functionName, _this]]; ACE_STACK_DEPTH = ACE_STACK_DEPTH + 1; ACE_CURRENT_FUNCTION = functionName; _ret = _this call ##function; ACE_STACK_DEPTH = ACE_STACK_DEPTH - 1; ACE_IS_ERRORED = false; _ret;} +#define DUMPSTACK ([__FILE__, __LINE__] call ACE_DUMPSTACK_FNC) + +#define FUNC(var1) {private ['_ret']; if(ACE_IS_ERRORED) then { ['AUTO','AUTO'] call ACE_DUMPSTACK_FNC; ACE_IS_ERRORED = false; }; ACE_IS_ERRORED = true; ACE_STACK_TRACE set [ACE_STACK_DEPTH, [diag_tickTime, __FILE__, __LINE__, ACE_CURRENT_FUNCTION, 'TRIPLES(ADDON,fnc,var1)', _this]]; ACE_STACK_DEPTH = ACE_STACK_DEPTH + 1; ACE_CURRENT_FUNCTION = 'TRIPLES(ADDON,fnc,var1)'; _ret = _this call TRIPLES(ADDON,fnc,var1); ACE_STACK_DEPTH = ACE_STACK_DEPTH - 1; ACE_IS_ERRORED = false; _ret;} +#define EFUNC(var1,var2) {private ['_ret']; if(ACE_IS_ERRORED) then { ['AUTO','AUTO'] call ACE_DUMPSTACK_FNC; ACE_IS_ERRORED = false; }; ACE_IS_ERRORED = true; ACE_STACK_TRACE set [ACE_STACK_DEPTH, [diag_tickTime, __FILE__, __LINE__, ACE_CURRENT_FUNCTION, 'TRIPLES(DOUBLES(PREFIX,var1),fnc,var2)', _this]]; ACE_STACK_DEPTH = ACE_STACK_DEPTH + 1; ACE_CURRENT_FUNCTION = 'TRIPLES(DOUBLES(PREFIX,var1),fnc,var2)'; _ret = _this call TRIPLES(DOUBLES(PREFIX,var1),fnc,var2); ACE_STACK_DEPTH = ACE_STACK_DEPTH - 1; ACE_IS_ERRORED = false; _ret;} + +#else +#define CALLSTACK(function) function +#define CALLSTACK_NAMED(function, functionName) function +#define DUMPSTACK + +#define FUNC(var1) TRIPLES(ADDON,fnc,var1) +#define EFUNC(var1,var2) TRIPLES(DOUBLES(PREFIX,var1),fnc,var2) + +#endif From 84d40005816bce3928d1c8a9676c0a1653fff7bd Mon Sep 17 00:00:00 2001 From: jaynus Date: Sun, 11 Jan 2015 15:40:44 -0800 Subject: [PATCH 12/18] drop main duplicate. --- main/config.cpp | 22 ---------------------- main/script_component.hpp | 12 ------------ main/script_macros.hpp | 1 - main/script_mod.hpp | 19 ------------------- main/script_version.hpp | 5 ----- main/version.hpp | 2 -- 6 files changed, 61 deletions(-) delete mode 100644 main/config.cpp delete mode 100644 main/script_component.hpp delete mode 100644 main/script_macros.hpp delete mode 100644 main/script_mod.hpp delete mode 100644 main/script_version.hpp delete mode 100644 main/version.hpp diff --git a/main/config.cpp b/main/config.cpp deleted file mode 100644 index 17c0f5c465..0000000000 --- a/main/config.cpp +++ /dev/null @@ -1,22 +0,0 @@ -#include "script_component.hpp" - -class CfgPatches { - class ADDON { - units[] = {}; - weapons[] = {}; - requiredVersion = REQUIRED_VERSION; - requiredAddons[] = {"Extended_EventHandlers", "CBA_MAIN"}; - VERSION_CONFIG; - }; -}; - -class CfgMods { - class ACE3 { - dir = "@ACE3"; - picture = ""; - action = "http://www.unitedoperations.net"; - hideName = 0; - hidePicture = 0; - name = "UnitedOperations"; - }; -}; diff --git a/main/script_component.hpp b/main/script_component.hpp deleted file mode 100644 index 02a8608ef4..0000000000 --- a/main/script_component.hpp +++ /dev/null @@ -1,12 +0,0 @@ -#define COMPONENT main -#include "\x\ace\Addons\main\script_mod.hpp" - -#ifdef DEBUG_ENABLED_MAIN - #define DEBUG_MODE_FULL -#endif - -#ifdef DEBUG_SETTINGS_MAIN - #define DEBUG_SETTINGS DEBUG_SETTINGS_MAIN -#endif - -#include "script_macros.hpp" diff --git a/main/script_macros.hpp b/main/script_macros.hpp deleted file mode 100644 index 79d3ca7089..0000000000 --- a/main/script_macros.hpp +++ /dev/null @@ -1 +0,0 @@ -#include "\x\cba\addons\main\script_macros_common.hpp" \ No newline at end of file diff --git a/main/script_mod.hpp b/main/script_mod.hpp deleted file mode 100644 index 65915b59df..0000000000 --- a/main/script_mod.hpp +++ /dev/null @@ -1,19 +0,0 @@ -// COMPONENT should be defined in the script_component.hpp and included BEFORE this hpp -#define MAINPREFIX x - -#define PREFIX ace - -//--BUILDPREFIX -#include "\x\ace\Addons\main\script_version.hpp" -//--ENDBUILDPREFIX - -#define VERSION MAJOR.MINOR.PATCHLVL.BUILD -#define VERSION_AR MAJOR,MINOR,PATCHLVL,BUILD -#define VERSION_PLUGIN MAJOR.MINOR.PATCHLVL.BUILD - -// MINIMAL required version for the Mod. Components can specify others.. -#define REQUIRED_VERSION 1.0 - -#ifndef VERSION_CONFIG - #define VERSION_CONFIG version = VERSION; versionStr = QUOTE(VERSION); versionAr[] = {VERSION_AR} -#endif \ No newline at end of file diff --git a/main/script_version.hpp b/main/script_version.hpp deleted file mode 100644 index 4188e0496b..0000000000 --- a/main/script_version.hpp +++ /dev/null @@ -1,5 +0,0 @@ -#define MAJOR 1 -#define MINOR 0 -#define PATCHLVL 0 -#define BUILD 1 -#define BUILDDATE 2015-01-10 21:26:00.000000 \ No newline at end of file diff --git a/main/version.hpp b/main/version.hpp deleted file mode 100644 index c120d484cc..0000000000 --- a/main/version.hpp +++ /dev/null @@ -1,2 +0,0 @@ -version = QUOTE(VERSION); -text = QUOTE(UOMODS VERSION); \ No newline at end of file From 6efe1f9a189cc85ded442086eb794c82ad9f82c8 Mon Sep 17 00:00:00 2001 From: commy2 Date: Mon, 12 Jan 2015 00:57:04 +0100 Subject: [PATCH 13/18] fix updating base class, sort realistic names --- addons/realisticnames/config.cpp | 1292 +++++++++++++++++------------- 1 file changed, 733 insertions(+), 559 deletions(-) diff --git a/addons/realisticnames/config.cpp b/addons/realisticnames/config.cpp index 3fc7e9a168..07c2d8d2e7 100644 --- a/addons/realisticnames/config.cpp +++ b/addons/realisticnames/config.cpp @@ -15,66 +15,9 @@ class CfgPatches { }; // VEHICLES - class CfgVehicles { - // Global Inheritance + // static weapons class StaticMGWeapon; - class GMG_TriPod; - class AT_01_base_F; - class AA_01_base_F; - class UAV_02_base_F; - class UAV_02_CAS_base_F: UAV_02_base_F {}; - - // BLUFOR Inheritance - class MRAP_01_base_F; - class MRAP_01_gmg_base_F: MRAP_01_base_F {}; - class MRAP_01_hmg_base_F: MRAP_01_gmg_base_F {}; - class MBT_01_base_F; - class B_MBT_01_base_F: MBT_01_base_F {}; - class MBT_01_arty_base_F: MBT_01_base_F {}; - class B_MBT_01_arty_base_F: MBT_01_arty_base_F {}; - class MBT_01_mlrs_base_F: MBT_01_base_F {}; - class B_MBT_01_mlrs_base_F: MBT_01_mlrs_base_F {}; - class B_APC_Wheeled_01_base_F; - class B_APC_Tracked_01_base_F; - class Truck_01_base_F; - class Heli_Attack_01_base_F; - class Heli_Light_01_base_F; - class Heli_Light_01_armed_base_F; - class B_Heli_Transport_03_base_F; - class B_Heli_Transport_03_unarmed_base_F: B_Heli_Transport_03_base_F {}; - class Plane_CAS_01_base_F; - - // INDEP Inheritance - class MRAP_03_base_F; - class MRAP_03_hmg_base_F: MRAP_03_base_F {}; - class MRAP_03_gmg_base_F: MRAP_03_hmg_base_F {}; - class I_MBT_03_base_F; - class I_APC_Wheeled_03_base_F; - class I_APC_tracked_03_base_F; - class Truck_02_base_F; - class I_Heli_light_03_base_F; - class I_Heli_light_03_unarmed_base_F; - class Heli_Transport_02_base_F; - class Plane_Fighter_03_base_F; - - // OPFOR Inheritance - class MRAP_02_base_F; - class MRAP_02_hmg_base_F: MRAP_02_base_F {}; - class MRAP_02_gmg_base_F: MRAP_02_hmg_base_F {}; - class MBT_02_base_F; - class O_MBT_02_base_F: MBT_02_base_F {}; - class MBT_02_arty_base_F: MBT_02_base_F {}; - class O_MBT_02_arty_base_F: MBT_02_arty_base_F {}; - class O_APC_Wheeled_02_base_F; - class O_APC_Tracked_02_base_F; - class Truck_03_base_F; - class Heli_Light_02_base_F; - class Plane_CAS_02_base_F; - - //////////////////////////////////// - - // Global class HMG_01_base_F: StaticMGWeapon { displayName = "$STR_AGM_RealisticNames_HMG_01_Name"; }; @@ -84,6 +27,30 @@ class CfgVehicles { class HMG_01_high_base_F: HMG_01_base_F { displayName = "$STR_AGM_RealisticNames_HMG_01_high_Name"; }; + + class AT_01_base_F; + class B_static_AT_F: AT_01_base_F { + displayName = "$STR_AGM_RealisticNames_static_AT_Name"; + }; + class O_static_AT_F: AT_01_base_F { + displayName = "$STR_AGM_RealisticNames_static_AT_Name"; + }; + class I_static_AT_F: AT_01_base_F { + displayName = "$STR_AGM_RealisticNames_static_AT_Name"; + }; + + class AA_01_base_F; + class B_static_AA_F: AA_01_base_F { + displayName = "$STR_AGM_RealisticNames_static_AA_Name"; + }; + class O_static_AA_F: AA_01_base_F { + displayName = "$STR_AGM_RealisticNames_static_AA_Name"; + }; + class I_static_AA_F: AA_01_base_F { + displayName = "$STR_AGM_RealisticNames_static_AA_Name"; + }; + + class GMG_TriPod; class GMG_01_base_F: GMG_TriPod { displayName = "$STR_AGM_RealisticNames_GMG_01_Name"; }; @@ -94,42 +61,146 @@ class CfgVehicles { displayName = "$STR_AGM_RealisticNames_GMG_01_high_Name"; }; - // BLUFOR + // M-ATV + class MRAP_01_base_F; class B_MRAP_01_F: MRAP_01_base_F { displayName = "$STR_AGM_RealisticNames_MRAP_01_Name"; }; - class B_MRAP_01_hmg_F: MRAP_01_hmg_base_F { - displayName = "$STR_AGM_RealisticNames_MRAP_01_hmg_Name"; - }; + + class MRAP_01_gmg_base_F: MRAP_01_base_F {}; class B_MRAP_01_gmg_F: MRAP_01_gmg_base_F { displayName = "$STR_AGM_RealisticNames_MRAP_01_gmg_Name"; }; + class MRAP_01_hmg_base_F: MRAP_01_gmg_base_F {}; + class B_MRAP_01_hmg_F: MRAP_01_hmg_base_F { + displayName = "$STR_AGM_RealisticNames_MRAP_01_hmg_Name"; + }; + + // punisher + class MRAP_02_base_F; + class O_MRAP_02_F: MRAP_02_base_F { + displayName = "$STR_AGM_RealisticNames_MRAP_02_Name"; + }; + + class MRAP_02_hmg_base_F: MRAP_02_base_F {}; + class O_MRAP_02_hmg_F: MRAP_02_hmg_base_F { + displayName = "$STR_AGM_RealisticNames_MRAP_02_hmg_Name"; + }; + + class MRAP_02_gmg_base_F: MRAP_02_hmg_base_F {}; + class O_MRAP_02_gmg_F: MRAP_02_gmg_base_F { + displayName = "$STR_AGM_RealisticNames_MRAP_02_gmg_Name"; + }; + + // strider + class MRAP_03_base_F; + class I_MRAP_03_F: MRAP_03_base_F { + displayName = "$STR_AGM_RealisticNames_MRAP_03_Name"; + }; + + class MRAP_03_hmg_base_F: MRAP_03_base_F {}; + class I_MRAP_03_hmg_F: MRAP_03_hmg_base_F { + displayName = "$STR_AGM_RealisticNames_MRAP_03_hmg_Name"; + }; + + class MRAP_03_gmg_base_F: MRAP_03_hmg_base_F {}; + class I_MRAP_03_gmg_F: MRAP_03_gmg_base_F { + displayName = "$STR_AGM_RealisticNames_MRAP_03_gmg_Name"; + }; + + // merkava derivates + class MBT_01_base_F; + class B_MBT_01_base_F: MBT_01_base_F {}; + class B_MBT_01_cannon_F: B_MBT_01_base_F { displayName = "$STR_AGM_RealisticNames_MBT_01_cannon_Name"; }; class B_MBT_01_TUSK_F: B_MBT_01_cannon_F { displayName = "$STR_AGM_RealisticNames_MBT_01_TUSK_Name"; }; + + class MBT_01_arty_base_F: MBT_01_base_F {}; + class B_MBT_01_arty_base_F: MBT_01_arty_base_F {}; + class B_MBT_01_arty_F: B_MBT_01_arty_base_F { displayName = "$STR_AGM_RealisticNames_MBT_01_arty_Name"; }; + + class MBT_01_mlrs_base_F: MBT_01_base_F {}; + class B_MBT_01_mlrs_base_F: MBT_01_mlrs_base_F {}; + class B_MBT_01_mlrs_F: B_MBT_01_mlrs_base_F { displayName = "$STR_AGM_RealisticNames_MBT_01_mlrs_Name"; // Fictional name, (probably wrong) hebrew translation of storm. }; + + // T100 derivates + class MBT_02_base_F; + class O_MBT_02_base_F: MBT_02_base_F {}; + + class O_MBT_02_cannon_F: O_MBT_02_base_F { + displayName = "$STR_AGM_RealisticNames_MBT_02_cannon_Name"; + }; + + class MBT_02_arty_base_F: MBT_02_base_F {}; + class O_MBT_02_arty_base_F: MBT_02_arty_base_F {}; + + class O_MBT_02_arty_F: O_MBT_02_arty_base_F { + displayName = "$STR_AGM_RealisticNames_MBT_02_arty_Name"; + }; + + // leopard sg + class I_MBT_03_base_F; + class I_MBT_03_cannon_F: I_MBT_03_base_F { + displayName = "$STR_AGM_RealisticNames_MBT_03_cannon_Name"; + }; + + // tracked apcs + class B_APC_Tracked_01_base_F; class B_APC_Tracked_01_rcws_F: B_APC_Tracked_01_base_F { displayName = "$STR_AGM_RealisticNames_APC_Tracked_01_rcws_Name"; }; + class B_APC_Tracked_01_AA_F: B_APC_Tracked_01_base_F { displayName = "$STR_AGM_RealisticNames_APC_Tracked_01_AA_Name"; // Fictional name, (probably wrong) hebrew translation of cheetah. }; - class B_APC_Wheeled_01_cannon_F: B_APC_Wheeled_01_base_F { - displayName = "$STR_AGM_RealisticNames_APC_Wheeled_cannon_Name"; - }; + class B_APC_Tracked_01_CRV_F: B_APC_Tracked_01_base_F { displayName = "$STR_AGM_RealisticNames_APC_Tracked_01_CRV_Name"; }; + class O_APC_Tracked_02_base_F; + class O_APC_Tracked_02_cannon_F: O_APC_Tracked_02_base_F { + displayName = "$STR_AGM_RealisticNames_APC_Tracked_02_cannon_Name"; + }; + + class O_APC_Tracked_02_AA_F: O_APC_Tracked_02_base_F { + displayName = "$STR_AGM_RealisticNames_APC_Tracked_02_AA_Name"; + }; + + class I_APC_tracked_03_base_F; + class I_APC_tracked_03_cannon_F: I_APC_tracked_03_base_F { + displayName = "$STR_AGM_RealisticNames_APC_tracked_03_cannon_Name"; + }; + + // wheeled apcs + class B_APC_Wheeled_01_base_F; + class B_APC_Wheeled_01_cannon_F: B_APC_Wheeled_01_base_F { + displayName = "$STR_AGM_RealisticNames_APC_Wheeled_cannon_Name"; + }; + + class O_APC_Wheeled_02_base_F; + class O_APC_Wheeled_02_rcws_F: O_APC_Wheeled_02_base_F { + displayName = "$STR_AGM_RealisticNames_APC_Wheeled_02_rcws_Name"; + }; + + class I_APC_Wheeled_03_base_F; + class I_APC_Wheeled_03_cannon_F: I_APC_Wheeled_03_base_F { + displayName = "$STR_AGM_RealisticNames_APC_Wheeled_03_cannon_Name"; + }; + + // trucks + class Truck_01_base_F; class B_Truck_01_transport_F: Truck_01_base_F { displayName = "$STR_AGM_RealisticNames_Truck_01_transport_Name"; }; @@ -155,59 +226,24 @@ class CfgVehicles { displayName = "$STR_AGM_RealisticNames_Truck_01_Repair_Name"; }; - class B_Heli_Attack_01_F: Heli_Attack_01_base_F { - displayName = "$STR_AGM_RealisticNames_Heli_Attack_01_Name"; + class Truck_02_base_F; + class O_Truck_02_transport_F: Truck_02_base_F { + displayName = "$STR_AGM_RealisticNames_Truck_02_transport_Name"; }; - class B_Heli_Light_01_F: Heli_Light_01_base_F { - displayName = "$STR_AGM_RealisticNames_Heli_Light_01_Name"; + class O_Truck_02_covered_F: Truck_02_base_F { + displayName = "$STR_AGM_RealisticNames_Truck_02_covered_Name"; }; - class B_Heli_Light_01_armed_F: Heli_Light_01_armed_base_F { - displayName = "$STR_AGM_RealisticNames_Heli_Light_01_armed_Name"; + class O_Truck_02_ammo_F: Truck_02_base_F { + displayName = "$STR_AGM_RealisticNames_Truck_02_ammo_Name"; }; - class B_Heli_Transport_03_F: B_Heli_Transport_03_base_F { - displayName = "$STR_AGM_RealisticNames_Heli_Transport_03_Name"; + class O_Truck_02_fuel_F: Truck_02_base_F { + displayName = "$STR_AGM_RealisticNames_Truck_02_fuel_Name"; }; - class B_Heli_Transport_03_unarmed_F: B_Heli_Transport_03_unarmed_base_F { - displayName = "$STR_AGM_RealisticNames_Heli_Transport_03_unarmed_Name"; + class O_Truck_02_box_F: Truck_02_base_F { + displayName = "$STR_AGM_RealisticNames_Truck_02_box_Name"; }; - class B_Plane_CAS_01_F: Plane_CAS_01_base_F { - displayName = "$STR_AGM_RealisticNames_Plane_CAS_01_Name"; - }; - - class B_UAV_02_F: UAV_02_base_F { - displayName = "$STR_AGM_RealisticNames_UAV_02_Name"; - }; - class B_UAV_02_CAS_F: UAV_02_CAS_base_F { - displayName = "$STR_AGM_RealisticNames_UAV_02_CAS_Name"; - }; - - class B_static_AT_F: AT_01_base_F { - displayName = "$STR_AGM_RealisticNames_static_AT_Name"; - }; - class B_static_AA_F: AA_01_base_F { - displayName = "$STR_AGM_RealisticNames_static_AA_Name"; - }; - - - // INDEP - class I_MRAP_03_F: MRAP_03_base_F { - displayName = "$STR_AGM_RealisticNames_MRAP_03_Name"; - }; - class I_MRAP_03_hmg_F: MRAP_03_hmg_base_F { - displayName = "$STR_AGM_RealisticNames_MRAP_03_hmg_Name"; - }; - class I_MRAP_03_gmg_F: MRAP_03_gmg_base_F { - displayName = "$STR_AGM_RealisticNames_MRAP_03_gmg_Name"; - }; - - class I_MBT_03_cannon_F: I_MBT_03_base_F { - displayName = "$STR_AGM_RealisticNames_MBT_03_cannon_Name"; - }; - class I_APC_tracked_03_cannon_F: I_APC_tracked_03_base_F { - displayName = "$STR_AGM_RealisticNames_APC_tracked_03_cannon_Name"; - }; - class I_APC_Wheeled_03_cannon_F: I_APC_Wheeled_03_base_F { - displayName = "$STR_AGM_RealisticNames_APC_Wheeled_03_cannon_Name"; + class O_Truck_02_medical_F: O_Truck_02_box_F { + displayName = "$STR_AGM_RealisticNames_Truck_02_medical_Name"; }; class I_Truck_02_transport_F: Truck_02_base_F { @@ -229,83 +265,7 @@ class CfgVehicles { displayName = "$STR_AGM_RealisticNames_Truck_02_medical_Name"; }; - class I_Heli_light_03_F: I_Heli_light_03_base_F { - displayName = "$STR_AGM_RealisticNames_Heli_light_03_Name"; - }; - class I_Heli_light_03_unarmed_F: I_Heli_light_03_unarmed_base_F { - displayName = "$STR_AGM_RealisticNames_Heli_light_03_unarmed_Name"; - }; - class I_Heli_Transport_02_F: Heli_Transport_02_base_F { - displayName = "$STR_AGM_RealisticNames_Heli_Transport_02_Name"; - }; - class I_Plane_Fighter_03_CAS_F: Plane_Fighter_03_base_F { - displayName = "$STR_AGM_RealisticNames_Plane_Fighter_03_CAS_Name"; - }; - class I_Plane_Fighter_03_AA_F: I_Plane_Fighter_03_CAS_F { - displayName = "$STR_AGM_RealisticNames_Plane_Fighter_03_AA_Name"; - }; - - class I_UAV_02_F: UAV_02_base_F { - displayName = "$STR_AGM_RealisticNames_UAV_02_Name"; - }; - class I_UAV_02_CAS_F: UAV_02_CAS_base_F { - displayName = "$STR_AGM_RealisticNames_UAV_02_CAS_Name"; - }; - - class I_static_AT_F: AT_01_base_F { - displayName = "$STR_AGM_RealisticNames_static_AT_Name"; - }; - class I_static_AA_F: AA_01_base_F { - displayName = "$STR_AGM_RealisticNames_static_AA_Name"; - }; - - - // OPFOR - class O_MRAP_02_F: MRAP_02_base_F { - displayName = "$STR_AGM_RealisticNames_MRAP_02_Name"; - }; - class O_MRAP_02_hmg_F: MRAP_02_hmg_base_F { - displayName = "$STR_AGM_RealisticNames_MRAP_02_hmg_Name"; - }; - class O_MRAP_02_gmg_F: MRAP_02_gmg_base_F { - displayName = "$STR_AGM_RealisticNames_MRAP_02_gmg_Name"; - }; - - class O_MBT_02_cannon_F: O_MBT_02_base_F { - displayName = "$STR_AGM_RealisticNames_MBT_02_cannon_Name"; - }; - class O_MBT_02_arty_F: O_MBT_02_arty_base_F { - displayName = "$STR_AGM_RealisticNames_MBT_02_arty_Name"; - }; - class O_APC_Tracked_02_cannon_F: O_APC_Tracked_02_base_F { - displayName = "$STR_AGM_RealisticNames_APC_Tracked_02_cannon_Name"; - }; - class O_APC_Tracked_02_AA_F: O_APC_Tracked_02_base_F { - displayName = "$STR_AGM_RealisticNames_APC_Tracked_02_AA_Name"; - }; - class O_APC_Wheeled_02_rcws_F: O_APC_Wheeled_02_base_F { - displayName = "$STR_AGM_RealisticNames_APC_Wheeled_02_rcws_Name"; - }; - - class O_Truck_02_transport_F: Truck_02_base_F { - displayName = "$STR_AGM_RealisticNames_Truck_02_transport_Name"; - }; - class O_Truck_02_covered_F: Truck_02_base_F { - displayName = "$STR_AGM_RealisticNames_Truck_02_covered_Name"; - }; - class O_Truck_02_ammo_F: Truck_02_base_F { - displayName = "$STR_AGM_RealisticNames_Truck_02_ammo_Name"; - }; - class O_Truck_02_fuel_F: Truck_02_base_F { - displayName = "$STR_AGM_RealisticNames_Truck_02_fuel_Name"; - }; - class O_Truck_02_box_F: Truck_02_base_F { - displayName = "$STR_AGM_RealisticNames_Truck_02_box_Name"; - }; - class O_Truck_02_medical_F: O_Truck_02_box_F { - displayName = "$STR_AGM_RealisticNames_Truck_02_medical_Name"; - }; - + class Truck_03_base_F; class O_Truck_03_transport_F: Truck_03_base_F { displayName = "$STR_AGM_RealisticNames_Truck_03_transport_Name"; }; @@ -328,33 +288,100 @@ class CfgVehicles { displayName = "$STR_AGM_RealisticNames_Truck_03_medical_Name"; }; + // helicopters + class Heli_Attack_01_base_F; + class B_Heli_Attack_01_F: Heli_Attack_01_base_F { + displayName = "$STR_AGM_RealisticNames_Heli_Attack_01_Name"; + }; + + class Heli_Light_01_base_F; + class B_Heli_Light_01_F: Heli_Light_01_base_F { + displayName = "$STR_AGM_RealisticNames_Heli_Light_01_Name"; + }; + + class Heli_Light_01_armed_base_F; + class B_Heli_Light_01_armed_F: Heli_Light_01_armed_base_F { + displayName = "$STR_AGM_RealisticNames_Heli_Light_01_armed_Name"; + }; + + class Heli_Light_01_civil_base_F: Heli_Light_01_base_F { + displayName = "$STR_AGM_RealisticNames_Heli_Light_01_civil_Name"; + }; + + class B_Heli_Transport_03_base_F; + class B_Heli_Transport_03_F: B_Heli_Transport_03_base_F { + displayName = "$STR_AGM_RealisticNames_Heli_Transport_03_Name"; + }; + + class B_Heli_Transport_03_unarmed_base_F: B_Heli_Transport_03_base_F {}; + class B_Heli_Transport_03_unarmed_F: B_Heli_Transport_03_unarmed_base_F { + displayName = "$STR_AGM_RealisticNames_Heli_Transport_03_unarmed_Name"; + }; + + class Heli_Light_02_base_F; class O_Heli_Light_02_F: Heli_Light_02_base_F { displayName = "$STR_AGM_RealisticNames_Heli_Light_02_Name"; }; class O_Heli_Light_02_unarmed_F: Heli_Light_02_base_F { displayName = "$STR_AGM_RealisticNames_Heli_Light_02_unarmed_Name"; }; + + class I_Heli_light_03_base_F; + class I_Heli_light_03_F: I_Heli_light_03_base_F { + displayName = "$STR_AGM_RealisticNames_Heli_light_03_Name"; + }; + + class I_Heli_light_03_unarmed_base_F; + class I_Heli_light_03_unarmed_F: I_Heli_light_03_unarmed_base_F { + displayName = "$STR_AGM_RealisticNames_Heli_light_03_unarmed_Name"; + }; + + class Heli_Transport_02_base_F; + class I_Heli_Transport_02_F: Heli_Transport_02_base_F { + displayName = "$STR_AGM_RealisticNames_Heli_Transport_02_Name"; + }; + + // planes + class Plane_CAS_01_base_F; + class B_Plane_CAS_01_F: Plane_CAS_01_base_F { + displayName = "$STR_AGM_RealisticNames_Plane_CAS_01_Name"; + }; + + class Plane_CAS_02_base_F; class O_Plane_CAS_02_F: Plane_CAS_02_base_F { displayName = "$STR_AGM_RealisticNames_Plane_CAS_02_Name"; }; + class Plane_Fighter_03_base_F; + class I_Plane_Fighter_03_CAS_F: Plane_Fighter_03_base_F { + displayName = "$STR_AGM_RealisticNames_Plane_Fighter_03_CAS_Name"; + }; + + class I_Plane_Fighter_03_AA_F: I_Plane_Fighter_03_CAS_F { + displayName = "$STR_AGM_RealisticNames_Plane_Fighter_03_AA_Name"; + }; + + // uavs + class UAV_02_base_F; + class B_UAV_02_F: UAV_02_base_F { + displayName = "$STR_AGM_RealisticNames_UAV_02_Name"; + }; class O_UAV_02_F: UAV_02_base_F { displayName = "$STR_AGM_RealisticNames_UAV_02_Name"; }; + class I_UAV_02_F: UAV_02_base_F { + displayName = "$STR_AGM_RealisticNames_UAV_02_Name"; + }; + + class UAV_02_CAS_base_F: UAV_02_base_F {}; + class B_UAV_02_CAS_F: UAV_02_CAS_base_F { + displayName = "$STR_AGM_RealisticNames_UAV_02_CAS_Name"; + }; class O_UAV_02_CAS_F: UAV_02_CAS_base_F { displayName = "$STR_AGM_RealisticNames_UAV_02_CAS_Name"; }; - - class O_static_AT_F: AT_01_base_F { - displayName = "$STR_AGM_RealisticNames_static_AT_Name"; - }; - class O_static_AA_F: AA_01_base_F { - displayName = "$STR_AGM_RealisticNames_static_AA_Name"; - }; - - // Civilian - class Heli_Light_01_civil_base_F: Heli_Light_01_base_F { - displayName = "$STR_AGM_RealisticNames_Heli_Light_01_civil_Name"; + class I_UAV_02_CAS_F: UAV_02_CAS_base_F { + displayName = "$STR_AGM_RealisticNames_UAV_02_CAS_Name"; }; // pistols @@ -362,18 +389,23 @@ class CfgVehicles { class Weapon_hgun_P07_F: Pistol_Base_F { displayName = "P99"; }; + class Weapon_hgun_Rook40_F: Pistol_Base_F { displayName = "MP-443 Grach"; }; + class Weapon_hgun_ACPC2_F: Pistol_Base_F { displayName = "ACP-C2"; }; + class Weapon_hgun_Pistol_heavy_01_F: Pistol_Base_F { displayName = "FNX-45 Tactical"; }; + class Weapon_hgun_Pistol_heavy_02_F: Pistol_Base_F { displayName = "Chiappa Rhino 60DS"; }; + class Weapon_hgun_Pistol_Signal_F: Pistol_Base_F { displayName = "Taurus Judge"; }; @@ -383,20 +415,25 @@ class CfgVehicles { class Weapon_launch_NLAW_F: Launcher_Base_F { displayName = "NLAW"; }; + class Weapon_launch_RPG32_F: Launcher_Base_F { displayName = "RPG-32"; }; + class Weapon_launch_Titan_F: Launcher_Base_F { displayName = "Mini-Spike (AA)"; }; + class Weapon_launch_Titan_short_F: Launcher_Base_F { displayName = "Mini-Spike (AT)"; }; + class Weapon_launch_B_Titan_F: Launcher_Base_F { displayName = "Mini-Spike (AA)"; }; //class Weapon_launch_I_Titan_F: Weapon_launch_B_Titan_F {}; //class Weapon_launch_O_Titan_F: Weapon_launch_B_Titan_F {}; + class Weapon_launch_launch_B_Titan_short_F: Launcher_Base_F { displayName = "Mini-Spike (AT)"; }; @@ -404,58 +441,76 @@ class CfgVehicles { //class Weapon_launch_O_Titan_short_F: Weapon_launch_launch_B_Titan_short_F {}; // rifles + + // MX class Weapon_Base_F; class Weapon_arifle_MX_F: Weapon_Base_F { displayName = "MX"; }; + class Weapon_arifle_MXC_F: Weapon_Base_F { displayName = "MXC"; }; + class Weapon_arifle_MX_GL_F: Weapon_Base_F { displayName = "MX 3GL"; }; + class Weapon_arifle_MX_SW_F: Weapon_Base_F { displayName = "MX LSW"; }; + class Weapon_arifle_MXM_F: Weapon_Base_F { displayName = "MXM"; }; + // Katiba class Weapon_arifle_Katiba_F: Weapon_Base_F { displayName = "KT2002 Katiba"; }; + class Weapon_arifle_Katiba_C_F: Weapon_Base_F { displayName = "KT2002C Katiba"; }; + class Weapon_arifle_Katiba_GL_F: Weapon_Base_F { displayName = "KT2002 Katiba KGL"; }; + // F2000 class Weapon_arifle_Mk20_F: Weapon_Base_F { displayName = "F2000 (Camo)"; }; + class Weapon_arifle_Mk20_plain_F: Weapon_Base_F { displayName = "F2000"; }; + class Weapon_arifle_Mk20C_F: Weapon_Base_F { displayName = "F2000 Tactical (Camo)"; }; + class Weapon_arifle_Mk20C_plain_F: Weapon_Base_F { displayName = "F2000 Tactical"; }; + class Weapon_arifle_Mk20_GL_F: Weapon_Base_F { displayName = "F2000 EGLM (Camo)"; }; + class Weapon_arifle_Mk20_GL_plain_F: Weapon_Base_F { displayName = "F2000 EGLM"; }; + // TAR-21 class Weapon_arifle_TRG21_F: Weapon_Base_F { displayName = "TAR-21"; }; + class Weapon_arifle_TRG20_F: Weapon_Base_F { displayName = "CTAR-21"; }; + class Weapon_arifle_TRG21_GL_F: Weapon_Base_F { displayName = "TAR-21 EGLM"; }; @@ -464,12 +519,15 @@ class CfgVehicles { class Weapon_SMG_01_F: Weapon_Base_F { displayName = "Vector SMG"; }; + class Weapon_SMG_02_F: Weapon_Base_F { displayName = "Scorpion Evo 3 A1"; }; + class Weapon_hgun_PDW2000_F: Weapon_Base_F { displayName = "CPW"; }; + class Weapon_arifle_SDAR_F: Weapon_Base_F { displayName = "RFB SDAR"; }; @@ -478,6 +536,7 @@ class CfgVehicles { class Weapon_LMG_Mk200_F: Weapon_Base_F { displayName = "Stoner 99 LMG"; }; + class Weapon_LMG_Zafir_F: Weapon_Base_F { displayName = "Negev NG7"; }; @@ -486,441 +545,518 @@ class CfgVehicles { class Weapon_srifle_EBR_F: Weapon_Base_F { displayName = "Mk14 Mod 1 EBR"; }; + class Weapon_srifle_GM6_F: Weapon_Base_F { displayName = "GM6 Lynx"; }; + class Weapon_srifle_GM6_camo_F: Weapon_Base_F { displayName = "GM6 Lynx (Camo)"; }; + class Weapon_srifle_LRR_F: Weapon_Base_F { displayName = "M200 Intervention"; }; + class Weapon_srifle_LRR_camo_F: Weapon_Base_F { displayName = "M200 Intervention (Camo)"; }; + class Weapon_srifle_DMR_01_F: Weapon_Base_F { displayName = "VS-121"; }; }; // WEAPONS - class Mode_FullAuto; + class CfgWeapons { - class Rifle_Base_F; + // assault rifles + + // MX + class arifle_MX_Base_F; + class arifle_MX_F: arifle_MX_Base_F { + displayName = "MX"; + }; + class arifle_MX_Black_F: arifle_MX_F { + displayName = "MX (Black)"; + }; + + class arifle_MXC_F: arifle_MX_Base_F { + displayName = "MXC"; + }; + class arifle_MXC_Black_F: arifle_MXC_F { + displayName = "MXC (Black)"; + }; + + class arifle_MX_GL_F: arifle_MX_Base_F { + displayName = "MX 3GL"; + }; + class arifle_MX_GL_Black_F: arifle_MX_GL_F { + displayName = "MX 3GL (Black)"; + }; + + class arifle_MX_SW_F: arifle_MX_Base_F { + displayName = "MX LSW"; + }; + class arifle_MX_SW_Black_F: arifle_MX_SW_F { + displayName = "MX LSW (Black)"; + }; + + class arifle_MXM_F: arifle_MX_Base_F { + displayName = "MXM"; + }; + class arifle_MXM_Black_F: arifle_MXM_F { + displayName = "MXM (Black)"; + }; + + // Katiba + class arifle_katiba_Base_F; + class arifle_Katiba_F: arifle_katiba_Base_F { + displayName = "KT2002 Katiba"; + }; + class arifle_Katiba_GL_F: arifle_katiba_Base_F { + displayName = "KT2002 Katiba KGL"; + }; + class arifle_Katiba_C_F: arifle_katiba_Base_F { + displayName = "KT2002C Katiba"; + }; + + // SDAR + class SDAR_base_F; + class arifle_SDAR_F: SDAR_base_F { + displayName = "RFB SDAR"; + }; + + // TAR-21 + class Tavor_base_F; + class arifle_TRG21_F: Tavor_base_F { + displayName = "TAR-21"; + }; + class arifle_TRG21_GL_F: arifle_TRG21_F { + displayName = "TAR-21 EGLM"; + }; + class arifle_TRG20_F: Tavor_base_F { + displayName = "CTAR-21"; + }; + + // F2000 + class mk20_base_F; + class arifle_Mk20_F: mk20_base_F { + displayName = "F2000 (Camo)"; + }; + class arifle_Mk20_plain_F: arifle_Mk20_F { + displayName = "F2000"; + }; + + class arifle_Mk20C_F: mk20_base_F { + displayName = "F2000 Tactical (Camo)"; + }; + class arifle_Mk20C_plain_F: arifle_Mk20C_F { + displayName = "F2000 Tactical"; + }; + + class arifle_Mk20_GL_F: mk20_base_F { + displayName = "F2000 EGLM (Camo)"; + }; + class arifle_Mk20_GL_plain_F: arifle_Mk20_GL_F { + displayName = "F2000 EGLM"; + }; + + // Vector + class SMG_01_Base; + class SMG_01_F: SMG_01_Base { + displayName = "Vector SMG"; + }; + + // Scorpion + class SMG_02_base_F; + class SMG_02_F: SMG_02_base_F { + displayName = "Scorpion Evo 3 A1"; + }; + + // PDW 2000 + class pdw2000_base_F; + class hgun_pdw2000_F: pdw2000_base_F { + displayName = "CPW"; + }; + + // pistols + class Pistol_Base_F; + class hgun_P07_F: Pistol_Base_F { + displayName = "P99"; + }; + + class hgun_Rook40_F: Pistol_Base_F { + displayName = "MP-443 Grach"; + }; + + class hgun_ACPC2_F: Pistol_Base_F { + displayName = "ACP-C2"; + }; + + class hgun_Pistol_heavy_01_F: Pistol_Base_F { + displayName = "FNX-45 Tactical"; + }; + + class hgun_Pistol_heavy_02_F: Pistol_Base_F { + displayName = "Chiappa Rhino 60DS"; + }; + + class hgun_Pistol_Signal_F: Pistol_Base_F { + displayName = "Taurus Judge"; + }; + + // machine guns + class Rifle_Long_Base_F; + class LMG_Mk200_F: Rifle_Long_Base_F { + displayName = "Stoner 99 LMG"; + }; + + class LMG_Zafir_F: Rifle_Long_Base_F { + displayName = "Negev NG7"; + }; + + // sniper rifles + class EBR_base_F; + class srifle_EBR_F: EBR_base_F { + displayName = "Mk14 Mod 1 EBR"; + }; + + class LRR_base_F; + class srifle_LRR_F: LRR_base_F { + displayName = "M200 Intervention"; + }; + class srifle_LRR_camo_F: srifle_LRR_F { + displayName = "M200 Intervention (Camo)"; + }; + + class GM6_base_F; + class srifle_GM6_F: GM6_base_F { + displayName = "GM6 Lynx"; + }; + class srifle_GM6_camo_F: srifle_GM6_F { + displayName = "GM6 Lynx (Camo)"; + }; + + class DMR_01_base_F; + class srifle_DMR_01_F: DMR_01_base_F { + displayName = "VS-121"; + }; + + // launchers + class Launcher_Base_F; + class launch_RPG32_F: Launcher_Base_F { + displayName = "RPG-32"; + }; + + class launch_Titan_base: Launcher_Base_F { + displayName = "Mini-Spike (AA)"; + }; + class launch_Titan_short_base: launch_Titan_base { + displayName = "Mini-Spike (AT)"; + }; + + class launch_NLAW_F: Launcher_Base_F { + displayName = "NLAW"; + }; + + // vehicle weapons + + // gatlings class CannonCore; - class RocketPods; - class MissileLauncher; - class MGunCore; - class MGun; - class LMG_RCWS; - class GMG_F; - class Bomb_04_Plane_CAS_01_F; - class autocannon_Base_F; - - // INFANTRY STUFF - // (I indented this on purpose, so you can collapse it in ST) - class arifle_MX_Base_F; - class arifle_MX_F : arifle_MX_Base_F { - displayName = "MX"; + class gatling_20mm: CannonCore { + //displayName = ""; + class manual: CannonCore { + //displayName = ""; }; - class arifle_MX_Black_F: arifle_MX_F { - displayName = "MX (Black)"; - }; - class arifle_MXC_F : arifle_MX_Base_F { - displayName = "MXC"; - }; - class arifle_MXC_Black_F: arifle_MXC_F { - displayName = "MXC (Black)"; - }; - class arifle_MX_GL_F : arifle_MX_Base_F { - displayName = "MX 3GL"; - }; - class arifle_MX_GL_Black_F : arifle_MX_GL_F { - displayName = "MX 3GL (Black)"; - }; - class arifle_MX_SW_F : arifle_MX_Base_F { - displayName = "MX LSW"; - }; - class arifle_MX_SW_Black_F : arifle_MX_SW_F { - displayName = "MX LSW (Black)"; - }; - class arifle_MXM_F : arifle_MX_Base_F { - displayName = "MXM"; - }; - class arifle_MXM_Black_F : arifle_MXM_F { - displayName = "MXM (Black)"; - }; - - class arifle_katiba_Base_F; - class arifle_Katiba_F : arifle_katiba_Base_F { - displayName = "KT2002 Katiba"; - }; - class arifle_Katiba_GL_F : arifle_katiba_Base_F { - displayName = "KT2002 Katiba KGL"; - }; - class arifle_Katiba_C_F : arifle_katiba_Base_F { - displayName = "KT2002C Katiba"; - }; - - class SDAR_base_F; - class arifle_SDAR_F : SDAR_base_F { - displayName = "RFB SDAR"; - }; - - class Tavor_base_F; - class arifle_TRG21_F : Tavor_base_F { - displayName = "TAR-21"; - }; - class arifle_TRG21_GL_F : arifle_TRG21_F { - displayName = "TAR-21 EGLM"; - }; - class arifle_TRG20_F : Tavor_base_F { - displayName = "CTAR-21"; - }; - - class mk20_base_F; - class arifle_Mk20_F : mk20_base_F { - displayName = "F2000 (Camo)"; - }; - class arifle_Mk20_plain_F : arifle_Mk20_F { - displayName = "F2000"; - }; - class arifle_Mk20C_F : mk20_base_F { - displayName = "F2000 Tactical (Camo)"; - }; - class arifle_Mk20C_plain_F : arifle_Mk20C_F { - displayName = "F2000 Tactical"; - }; - class arifle_Mk20_GL_F : mk20_base_F { - displayName = "F2000 EGLM (Camo)"; - }; - class arifle_Mk20_GL_plain_F : arifle_Mk20_GL_F { - displayName = "F2000 EGLM"; - }; - - class SMG_01_Base : Rifle_Base_F { - displayName = "Vector SMG"; - }; - class SMG_01_F : SMG_01_Base { - displayName = "Vector SMG"; - }; - - class SMG_02_base_F; - class SMG_02_F : SMG_02_base_F { - displayName = "Scorpion Evo 3 A1"; - }; - - class pdw2000_base_F; - class hgun_pdw2000_F : pdw2000_base_F { - displayName = "CPW"; - }; - - class Pistol_Base_F; - class hgun_P07_F : Pistol_Base_F { - displayName = "P99"; - }; - - class hgun_Rook40_F : Pistol_Base_F { - displayName = "MP-443 Grach"; - }; - - class hgun_ACPC2_F : Pistol_Base_F { - displayName = "ACP-C2"; - }; - - class hgun_Pistol_heavy_01_F: Pistol_Base_F { - displayName = "FNX-45 Tactical"; - }; - - class hgun_Pistol_heavy_02_F: Pistol_Base_F { - displayName = "Chiappa Rhino 60DS"; - }; - - class hgun_Pistol_Signal_F: Pistol_Base_F { - displayName = "Taurus Judge"; - }; - - class Rifle_Long_Base_F; - class LMG_Mk200_F : Rifle_Long_Base_F { - displayName = "Stoner 99 LMG"; - }; - - class LMG_Zafir_F: Rifle_Long_Base_F { - displayName = "Negev NG7"; - }; - - class EBR_base_F; - class srifle_EBR_F : EBR_base_F { - displayName = "Mk14 Mod 1 EBR"; - }; - - class LRR_base_F; - class srifle_LRR_F : LRR_base_F { - displayName = "M200 Intervention"; - }; - class srifle_LRR_camo_F : srifle_LRR_F { - displayName = "M200 Intervention (Camo)"; - }; - - class GM6_base_F; - class srifle_GM6_F : GM6_base_F { - displayName = "GM6 Lynx"; - }; - class srifle_GM6_camo_F : srifle_GM6_F { - displayName = "GM6 Lynx (Camo)"; - }; - - class DMR_01_base_F; - class srifle_DMR_01_F : DMR_01_base_F { - displayName = "VS-121"; - }; - - //MANPADS - class Launcher_Base_F; - class launch_RPG32_F: Launcher_Base_F { - displayName = "RPG-32"; - }; - class launch_Titan_base: Launcher_Base_F { - displayName = "Mini-Spike (AA)"; - }; - class launch_Titan_short_base: launch_Titan_base { - displayName = "Mini-Spike (AT)"; - }; - class launch_NLAW_F: Launcher_Base_F { - displayName = "NLAW"; - }; - - // VEHICLE STUFF - class gatling_20mm: CannonCore { - class manual; - }; - class Twin_Cannon_20mm: gatling_20mm { + }; + class Twin_Cannon_20mm: gatling_20mm { + displayName = "Plamen PL-20"; + class manual: manual { displayName = "Plamen PL-20"; - class manual: manual { - displayName = "Plamen PL-20"; - }; }; - class gatling_30mm: CannonCore { // This is a fictional veresion of the GSh-6-30, with 3 barrels + }; + + class gatling_30mm: CannonCore { // This is a fictional veresion of the GSh-6-30, with 3 barrels + displayName = "GSh-3-30"; + class LowROF: Mode_FullAuto { displayName = "GSh-3-30"; - class LowROF: Mode_FullAuto { - displayName = "GSh-3-30"; - }; }; - class Gatling_30mm_Plane_CAS_01_F: CannonCore { + }; + + class Gatling_30mm_Plane_CAS_01_F: CannonCore { + displayName = "GAU-8"; + class LowROF: Mode_FullAuto { displayName = "GAU-8"; - class LowROF: Mode_FullAuto { - displayName = "GAU-8"; - }; }; - class Cannon_30mm_Plane_CAS_02_F: CannonCore { + }; + + class Cannon_30mm_Plane_CAS_02_F: CannonCore { + displayName = "GSh-301"; + class LowROF: Mode_FullAuto { displayName = "GSh-301"; - class LowROF: Mode_FullAuto { - displayName = "GSh-301"; - }; }; - class Missile_AA_04_Plane_CAS_01_F: RocketPods { - displayName = "AIM-9 Sidewinder"; - }; - class Missile_AA_03_Plane_CAS_02_F: Missile_AA_04_Plane_CAS_01_F { - displayName = "Wympel R-73"; - }; - class Missile_AGM_02_Plane_CAS_01_F: MissileLauncher { - displayName = "AGM-65 Maverick"; - }; - class Missile_AGM_01_Plane_CAS_02_F: Missile_AGM_02_Plane_CAS_01_F { - displayName = "Kh-25MTP"; - }; - class Rocket_04_HE_Plane_CAS_01_F: RocketPods { + }; + + // missiles + class RocketPods; + class Missile_AA_04_Plane_CAS_01_F: RocketPods { + displayName = "AIM-9 Sidewinder"; + }; + class Missile_AA_03_Plane_CAS_02_F: Missile_AA_04_Plane_CAS_01_F { + displayName = "Wympel R-73"; + }; + + class MissileLauncher; + class Missile_AGM_02_Plane_CAS_01_F: MissileLauncher { + displayName = "AGM-65 Maverick"; + }; + class Missile_AGM_01_Plane_CAS_02_F: Missile_AGM_02_Plane_CAS_01_F { + displayName = "Kh-25MTP"; + }; + + // rockets + class Rocket_04_HE_Plane_CAS_01_F: RocketPods { + displayName = "Hydra 70"; + class Burst: RocketPods { displayName = "Hydra 70"; - class Burst: RocketPods { - displayName = "Hydra 70"; - }; }; - class Rocket_04_AP_Plane_CAS_01_F: Rocket_04_HE_Plane_CAS_01_F { - displayName = "Hydra 70"; - class Burst: RocketPods { - displayName = "Hydra 70"; - }; - }; - class Rocket_03_HE_Plane_CAS_02_F: Rocket_04_HE_Plane_CAS_01_F { + }; + class Rocket_04_AP_Plane_CAS_01_F: Rocket_04_HE_Plane_CAS_01_F { + displayName = "Hydra 70"; + }; + + class Rocket_03_HE_Plane_CAS_02_F: Rocket_04_HE_Plane_CAS_01_F { + displayName = "S-8"; + class Burst: Burst { displayName = "S-8"; - class Burst: Burst { - displayName = "S-8"; - }; }; - class Rocket_03_AP_Plane_CAS_02_F: Rocket_04_AP_Plane_CAS_01_F { + }; + class Rocket_03_AP_Plane_CAS_02_F: Rocket_04_AP_Plane_CAS_01_F { + displayName = "S-8"; + class Burst: Burst { displayName = "S-8"; - class Burst: Burst { - displayName = "S-8"; - }; }; - class rockets_Skyfire: RocketPods { + }; + + class rockets_Skyfire: RocketPods { + displayName = "Skyfire-70"; + class Burst: RocketPods { displayName = "Skyfire-70"; - class Burst: RocketPods { - displayName = "Skyfire-70"; - }; }; - class missiles_DAR: RocketPods { + }; + + // more missiles + class missiles_DAR: RocketPods { + displayName = "Hydra 70"; + class Burst: RocketPods { displayName = "Hydra 70"; - class Burst: RocketPods { - displayName = "Hydra 70"; - }; }; - class missiles_DAGR: RocketPods { + }; + + class missiles_DAGR: RocketPods { + displayName = "DAGR"; + class Burst: RocketPods { displayName = "DAGR"; - class Burst: RocketPods { - displayName = "DAGR"; - }; - }; - class missiles_ASRAAM: MissileLauncher { - displayName = "AIM-132 ASRAAM"; - }; - class missiles_Zephyr: MissileLauncher { - displayName = "AIM-120A AMRAAM"; - }; - class missiles_SCALPEL: RocketPods { // according to zGuba, this is what it's based on - displayName = "9K121 Vikhr"; - }; - class Bomb_03_Plane_CAS_02_F: Bomb_04_Plane_CAS_01_F { - displayName = "FAB-250M-54"; }; + }; - class M134_minigun: MGunCore { - displayName = "2x M134 Minigun"; - }; - class LMG_Minigun: LMG_RCWS { + class missiles_ASRAAM: MissileLauncher { + displayName = "AIM-132 ASRAAM"; + }; + + class missiles_Zephyr: MissileLauncher { + displayName = "AIM-120A AMRAAM"; + }; + + class missiles_SCALPEL: RocketPods { // according to zGuba, this is what it's based on + displayName = "9K121 Vikhr"; + }; + + // bomb + class Bomb_04_Plane_CAS_01_F: RocketPods { + //displayName = ""; + }; + class Bomb_03_Plane_CAS_02_F: Bomb_04_Plane_CAS_01_F { + displayName = "FAB-250M-54"; + }; + + // machine guns + class MGunCore; + class M134_minigun: MGunCore { + displayName = "2x M134 Minigun"; + }; + + class LMG_RCWS; + class MGun; + + class LMG_Minigun: LMG_RCWS { + displayName = "M134 Minigun"; + class manual: MGun { displayName = "M134 Minigun"; - class manual: MGun { - displayName = "M134 Minigun"; - }; }; - class HMG_127: LMG_RCWS { - displayName = "M2"; - class manual: MGun { - displayName = "M2"; - }; - }; - class HMG_01: HMG_127 { - displayName = "XM312"; - }; - class HMG_M2: HMG_01 { + }; + + class HMG_127: LMG_RCWS { + displayName = "M2"; + class manual: MGun { displayName = "M2"; }; - class HMG_NSVT: HMG_127 { + }; + + class HMG_01: HMG_127 { + displayName = "XM312"; + }; + class HMG_M2: HMG_01 { + displayName = "M2"; + }; + + class HMG_NSVT: HMG_127 { + displayName = "NSVT"; + class manual: manual { displayName = "NSVT"; - class manual: manual { - displayName = "NSVT"; - }; }; - class GMG_20mm: GMG_F { + }; + + // grenade launchers + class GMG_F; + class GMG_20mm: GMG_F { + displayName = "XM307"; + class manual: GMG_F { displayName = "XM307"; - class manual: GMG_F { - displayName = "XM307"; - }; }; - class GMG_40mm: GMG_F { + }; + + class GMG_40mm: GMG_F { + displayName = "Mk 19"; + class manual: GMG_F { displayName = "Mk 19"; - class manual: GMG_F { - displayName = "Mk 19"; - }; + }; + }; + + // autocannons + class autocannon_35mm: CannonCore { + displayName = "GDF-001"; + class manual: CannonCore { + displayName = "GDF-001"; + }; + }; + + // aa missiles + class missiles_titan: MissileLauncher { + displayName = "Mini-Spike"; + }; + + // mortar + class mortar_155mm_AMOS: CannonCore { + displayName = "L/52"; + }; + + // artillery rockets + class rockets_230mm_GAT: RocketPods { + displayName = "M269"; + }; + + // tank guns + class cannon_120mm: CannonCore { + class player; + displayName = "MG251"; + }; + + class cannon_120mm_long: cannon_120mm { + displayName = "L/55"; + class player: player {}; + }; + + class cannon_105mm: cannon_120mm { + displayName = "M68"; + class player: player { + displayName = "M68"; + }; + }; + + class cannon_125mm: cannon_120mm { + displayName = "2A46"; + }; + + // coax machine guns + class LMG_coax: LMG_RCWS { + displayName = "PKT"; + }; + + class AGM_LMG_coax_MBT_01: LMG_coax { + displayName = "MAG 58"; + }; + + class AGM_LMG_coax_APC_Tracked_03: LMG_coax { + displayName = "L94A1"; + }; + + // more autocannons + class autocannon_Base_F; + class autocannon_40mm_CTWS: autocannon_Base_F { + displayName = "Mk44 Bushmaster II"; + class AP: autocannon_Base_F { + displayName = "Mk44 Bushmaster II"; }; - class autocannon_35mm: CannonCore { - displayName = "GDF-001"; - class manual: CannonCore { - displayName = "GDF-001"; - }; - }; - class missiles_titan: MissileLauncher { - displayName = "Mini-Spike"; - }; - class mortar_155mm_AMOS: CannonCore { - displayName = "L/52"; - }; - class rockets_230mm_GAT: RocketPods { - displayName = "M269"; - }; - class cannon_120mm: CannonCore { - class player; - displayName = "MG251"; - }; - class cannon_120mm_long: cannon_120mm { - displayName = "L/55"; - class player: player {}; - }; - class cannon_105mm: cannon_120mm { - displayName = "M68"; - class player: player { - displayName = "M68"; - }; - }; - class cannon_125mm: cannon_120mm { - displayName = "2A46"; - }; - class LMG_coax: LMG_RCWS { - displayName = "PKT"; - }; - class AGM_LMG_coax_MBT_01: LMG_coax { - displayName = "MAG 58"; - }; - class AGM_LMG_coax_APC_Tracked_03: LMG_coax { - displayName = "L94A1"; - }; - class autocannon_40mm_CTWS: autocannon_Base_F { + class HE: autocannon_Base_F { displayName = "Mk44 Bushmaster II"; - class AP: autocannon_Base_F { - displayName = "Mk44 Bushmaster II"; - }; - class HE: autocannon_Base_F { - displayName = "Mk44 Bushmaster II"; - }; }; - class autocannon_30mm_CTWS: autocannon_Base_F { + }; + + class autocannon_30mm_CTWS: autocannon_Base_F { + displayName = "Mk44 Bushmaster II"; + class AP: autocannon_Base_F { displayName = "Mk44 Bushmaster II"; - class AP: autocannon_Base_F { - displayName = "Mk44 Bushmaster II"; - }; - class HE: autocannon_Base_F { - displayName = "Mk44 Bushmaster II"; - }; }; - class autocannon_30mm: autocannon_30mm_CTWS { + + class HE: autocannon_Base_F { + displayName = "Mk44 Bushmaster II"; + }; + }; + + class autocannon_30mm: autocannon_30mm_CTWS { + displayName = "L21A1 RARDEN"; + class AP: AP { displayName = "L21A1 RARDEN"; - class AP: AP { - displayName = "L21A1 RARDEN"; - }; - class HE: HE { - displayName = "L21A1 RARDEN"; - }; }; + + class HE: HE { + displayName = "L21A1 RARDEN"; + }; + }; }; class CfgMagazines { class VehicleMagazine; - class 2000Rnd_65x39_Belt; - class 1000Rnd_Gatling_30mm_Plane_CAS_01_F: VehicleMagazine { displayNameShort = "30mm HEI"; }; + class 7Rnd_Rocket_04_HE_F: VehicleMagazine { displayNameShort = "70mm HE"; }; class 7Rnd_Rocket_04_AP_F: 7Rnd_Rocket_04_HE_F { displayNameShort = "70mm AP"; }; + class 24Rnd_PG_missiles: VehicleMagazine { displayNameShort = "70mm HE"; }; class 12Rnd_PG_missiles: 24Rnd_PG_missiles { displayNameShort = "70mm HE"; }; + + class 2000Rnd_65x39_Belt; class 5000Rnd_762x51_Belt: 2000Rnd_65x39_Belt { displayNameShort = "7.62mm"; }; class 5000Rnd_762x51_Yellow_Belt: 5000Rnd_762x51_Belt { displayNameShort = "7.62mm"; }; + class 500Rnd_127x99_mag: VehicleMagazine { displayNameShort = "12.7mm"; }; @@ -933,6 +1069,7 @@ class CfgMagazines { class 500Rnd_127x99_mag_Tracer_Yellow: 500Rnd_127x99_mag { displayNameShort = "12.7mm"; }; + class 200Rnd_127x99_mag: 500Rnd_127x99_mag { displayNameShort = "12.7mm"; }; @@ -945,6 +1082,7 @@ class CfgMagazines { class 200Rnd_127x99_mag_Tracer_Yellow: 200Rnd_127x99_mag { displayNameShort = "12.7mm"; }; + class 100Rnd_127x99_mag: 500Rnd_127x99_mag { displayNameShort = "12.7mm"; }; @@ -957,33 +1095,42 @@ class CfgMagazines { class 100Rnd_127x99_mag_Tracer_Yellow: 100Rnd_127x99_mag { displayNameShort = "12.7mm"; }; + class 200Rnd_40mm_G_belt: VehicleMagazine { displayNameShort = "40mm HE"; }; + class 24Rnd_missiles: VehicleMagazine { displayNameShort = "70mm HE"; }; + class 300Rnd_20mm_shells: VehicleMagazine { displayNameShort = "20mm HE"; }; + class 14Rnd_80mm_rockets: VehicleMagazine { displayNameShort = "70mm HE"; }; + class 250Rnd_30mm_HE_shells: VehicleMagazine { displayNameShort = "30mm HE"; }; class 250Rnd_30mm_APDS_shells: 250Rnd_30mm_HE_shells { displayNameShort = "30mm APDS"; }; + class 20Rnd_Rocket_03_HE_F: 7Rnd_Rocket_04_HE_F { displayNameShort = "80mm HE"; }; + class 20Rnd_Rocket_03_AP_F: 7Rnd_Rocket_04_AP_F { displayNameShort = "80mm AP"; }; + class 500Rnd_Cannon_30mm_Plane_CAS_02_F: 1000Rnd_Gatling_30mm_Plane_CAS_01_F { displayNameShort = "30mm HEI-T"; }; + class 680Rnd_35mm_AA_shells: VehicleMagazine { displayNameShort = "35mm HEI"; }; @@ -996,6 +1143,7 @@ class CfgMagazines { class 680Rnd_35mm_AA_shells_Tracer_Yellow: 680Rnd_35mm_AA_shells { displayNameShort = "35mm HEI-T"; }; + class 32Rnd_155mm_Mo_shells: VehicleMagazine { displayNameShort = "155mm HE"; }; @@ -1017,10 +1165,12 @@ class CfgMagazines { class 2Rnd_155mm_Mo_LG: 6Rnd_155mm_Mo_smoke { displayNameShort = "155mm Laser Guided"; }; + class 12Rnd_230mm_rockets: 14Rnd_80mm_rockets { displayName = "227mm HE Missile"; displayNameShort = "227mm HE"; }; + class 30Rnd_120mm_HE_shells: VehicleMagazine { displayNameShort = "120mm HE"; }; @@ -1033,6 +1183,7 @@ class CfgMagazines { class 30Rnd_120mm_HE_shells_Tracer_Yellow: 30Rnd_120mm_HE_shells { displayNameShort = "120mm HE-T"; }; + class 30Rnd_120mm_APFSDS_shells: 30Rnd_120mm_HE_shells { displayNameShort = "120mm AP"; }; @@ -1045,6 +1196,7 @@ class CfgMagazines { class 30Rnd_120mm_APFSDS_shells_Tracer_Yellow: 30Rnd_120mm_APFSDS_shells { displayNameShort = "120mm AP-T"; }; + class 200Rnd_762x51_Belt: VehicleMagazine { displayNameShort = "7.62mm"; }; @@ -1060,44 +1212,53 @@ class CfgMagazines { class 200Rnd_762x51_Belt_T_Yellow: 200Rnd_762x51_Belt_Yellow { displayNameShort = "7.62mm"; }; + class 2000Rnd_762x51_Belt_Red; class 2000Rnd_762x51_Belt_T_Red: 2000Rnd_762x51_Belt_Red { displayNameShort = "7.62mm"; }; + class 2000Rnd_762x51_Belt_Green; class 2000Rnd_762x51_Belt_T_Green: 2000Rnd_762x51_Belt_Green { displayNameShort = "7.62mm"; }; + class 2000Rnd_762x51_Belt_Yellow; class 2000Rnd_762x51_Belt_T_Yellow: 2000Rnd_762x51_Belt_Yellow { displayNameShort = "7.62mm"; }; + class 1000Rnd_762x51_Belt_Red; class 1000Rnd_762x51_Belt_T_Red: 1000Rnd_762x51_Belt_Red { displayNameShort = "7.62mm"; }; + class 1000Rnd_762x51_Belt_Green; class 1000Rnd_762x51_Belt_T_Green: 1000Rnd_762x51_Belt_Green { displayNameShort = "7.62mm"; }; + class 1000Rnd_762x51_Belt_Yellow; class 1000Rnd_762x51_Belt_T_Yellow: 1000Rnd_762x51_Belt_Yellow { displayNameShort = "7.62mm"; }; class 16Rnd_120mm_HE_shells; - class 16Rnd_120mm_HE_shells_Tracer_Red; - class 16Rnd_120mm_HE_shells_Tracer_Green; - class 16Rnd_120mm_HE_shells_Tracer_Yellow; class 12Rnd_125mm_HE: 16Rnd_120mm_HE_shells { displayNameShort = "125mm HE"; }; + + class 16Rnd_120mm_HE_shells_Tracer_Red; class 12Rnd_125mm_HE_T_Red: 16Rnd_120mm_HE_shells_Tracer_Red { displayNameShort = "125mm HE-T"; }; + + class 16Rnd_120mm_HE_shells_Tracer_Green; class 12Rnd_125mm_HE_T_Green: 16Rnd_120mm_HE_shells_Tracer_Green { displayNameShort = "125mm HE-T"; }; + + class 16Rnd_120mm_HE_shells_Tracer_Yellow; class 12Rnd_125mm_HE_T_Yellow: 16Rnd_120mm_HE_shells_Tracer_Yellow { displayNameShort = "125mm HE-T"; }; @@ -1116,18 +1277,21 @@ class CfgMagazines { }; class 32Rnd_120mm_APFSDS_shells; - class 32Rnd_120mm_APFSDS_shells_Tracer_Red; - class 32Rnd_120mm_APFSDS_shells_Tracer_Green; - class 32Rnd_120mm_APFSDS_shells_Tracer_Yellow; class 24Rnd_125mm_APFSDS: 32Rnd_120mm_APFSDS_shells { displayNameShort = "125mm AP"; }; + + class 32Rnd_120mm_APFSDS_shells_Tracer_Red; class 24Rnd_125mm_APFSDS_T_Red: 32Rnd_120mm_APFSDS_shells_Tracer_Red { displayNameShort = "125mm AP-T"; }; + + class 32Rnd_120mm_APFSDS_shells_Tracer_Green; class 24Rnd_125mm_APFSDS_T_Green: 32Rnd_120mm_APFSDS_shells_Tracer_Green { displayNameShort = "125mm AP-T"; }; + + class 32Rnd_120mm_APFSDS_shells_Tracer_Yellow; class 24Rnd_125mm_APFSDS_T_Yellow: 32Rnd_120mm_APFSDS_shells_Tracer_Yellow { displayNameShort = "125mm AP-T"; }; @@ -1144,6 +1308,7 @@ class CfgMagazines { class 20Rnd_105mm_HEAT_MP_T_Yellow: 20Rnd_105mm_HEAT_MP { displayNameShort = "105mm MP-T"; }; + class 40Rnd_105mm_APFSDS: 24Rnd_125mm_APFSDS { displayNameShort = "105mm AP"; }; @@ -1156,6 +1321,7 @@ class CfgMagazines { class 40Rnd_105mm_APFSDS_T_Yellow: 40Rnd_105mm_APFSDS { displayNameShort = "105mm AP-T"; }; + class 60Rnd_40mm_GPR_shells: VehicleMagazine { displayNameShort = "40mm GPR"; }; @@ -1168,6 +1334,7 @@ class CfgMagazines { class 60Rnd_40mm_GPR_Tracer_Yellow_shells: 60Rnd_40mm_GPR_shells { displayNameShort = "40mm GPR-T"; }; + class 40Rnd_40mm_APFSDS_shells: 60Rnd_40mm_GPR_shells { displayNameShort = "40mm AP"; }; @@ -1180,6 +1347,7 @@ class CfgMagazines { class 40Rnd_40mm_APFSDS_Tracer_Yellow_shells: 40Rnd_40mm_APFSDS_Tracer_Red_shells { displayNameShort = "40mm AP-T"; }; + class 450Rnd_127x108_Ball: VehicleMagazine { displayNameShort = "12.7mm"; }; @@ -1196,6 +1364,7 @@ class CfgMagazines { class 140Rnd_30mm_MP_shells_Tracer_Yellow: 140Rnd_30mm_MP_shells_Tracer_Red { displayNameShort = "30mm MP-T"; }; + class 60Rnd_30mm_APFSDS_shells: 250Rnd_30mm_HE_shells { displayNameShort = "30mm AP"; }; @@ -1216,8 +1385,7 @@ class CfgMagazines { displayNameShort = "20mm HE"; }; - - // EXPLOSIVES + // mines class CA_Magazine; // http://en.wikipedia.org/wiki/M15_mine class ATMine_Range_Mag: CA_Magazine { @@ -1239,15 +1407,21 @@ class CfgMagazines { class SLAMDirectionalMine_Wire_Mag: ATMine_Range_Mag { displayName = "$STR_AGM_RealisticNames_SLAM_Name"; }; + + // claymore class ClaymoreDirectionalMine_Remote_Mag: CA_Magazine { displayName = "$STR_AGM_RealisticNames_Claymore_Name"; }; + + // satchels class SatchelCharge_Remote_Mag: CA_Magazine { displayName = "$STR_AGM_RealisticNames_SatchelCharge_Name"; }; class DemoCharge_Remote_Mag: SatchelCharge_Remote_Mag { displayName = "$STR_AGM_RealisticNames_DemoCharge_Name"; }; + + // hand grenades class HandGrenade: CA_Magazine { displayName = "$STR_AGM_RealisticNames_HandGrenade_Name"; }; From 59685f53e7e220033545ccb9a4a91b45ead53e3b Mon Sep 17 00:00:00 2001 From: Nou Date: Sun, 11 Jan 2015 16:04:14 -0800 Subject: [PATCH 14/18] Changed PREP macro to use CBA function caching and our folder structure, removed PREPF macro to follow normal PREP CBA standard. Changed examples to match (also changed a few caps in paths, and the required addons to match ACE). --- addons/main/script_macros.hpp | 11 +++++++++-- extras/blank_module/XEH_preInit.sqf | 2 +- extras/blank_module/config.cpp | 2 +- extras/blank_module/script_component.hpp | 4 ++-- 4 files changed, 13 insertions(+), 6 deletions(-) diff --git a/addons/main/script_macros.hpp b/addons/main/script_macros.hpp index 525aa34a2c..3dd2b1ba92 100644 --- a/addons/main/script_macros.hpp +++ b/addons/main/script_macros.hpp @@ -170,8 +170,6 @@ #define ACE_TEXT_YELLOW(Text) ("" + ##Text + "") -#define PREPF(fncName) FUNC(fncName) = compile preprocessFileLineNumbers QUOTE(PATHTOF(functions\DOUBLES(fnc,fncName).sqf)) -#define PREP_MODULE(folder) [] call compile preprocessFileLineNumbers QUOTE(PATHTOF(folder\__PREP__.sqf)) #define EGVAR(module,var) TRIPLES(PREFIX,module,var) #define QEGVAR(module,var) QUOTE(EGVAR(module,var)) @@ -180,6 +178,15 @@ #define DVAR(varName) if(isNil "ACE_DEBUG_NAMESPACE") then { ACE_DEBUG_NAMESPACE = []; }; if(!(QUOTE(varName) in ACE_DEBUG_NAMESPACE)) then { PUSH(ACE_DEBUG_NAMESPACE, QUOTE(varName)); }; varName #define DFUNC(var1) TRIPLES(ADDON,fnc,var1) +#ifdef DISABLE_COMPILE_CACHE + #define PREP(fncName) DFUNC(fncName) = compile preprocessFileLineNumbers QUOTE(PATHTOF(functions\DOUBLES(fnc,fncName).sqf)) +#else + #define PREP(fncName) DFUNC(fncName) = QUOTE(PATHTOF(functions\DOUBLES(fnc,fncName).sqf)) call SLX_XEH_COMPILE +#endif + +#define PREP_MODULE(folder) [] call compile preprocessFileLineNumbers QUOTE(PATHTOF(folder\__PREP__.sqf)) + + #ifdef ENABLE_CALLSTACK #define CALLSTACK(function) {private ['_ret']; if(ACE_IS_ERRORED) then { ['AUTO','AUTO'] call ACE_DUMPSTACK_FNC; ACE_IS_ERRORED = false; }; ACE_IS_ERRORED = true; ACE_STACK_TRACE set [ACE_STACK_DEPTH, [diag_tickTime, __FILE__, __LINE__, ACE_CURRENT_FUNCTION, 'ANON', _this]]; ACE_STACK_DEPTH = ACE_STACK_DEPTH + 1; ACE_CURRENT_FUNCTION = 'ANON'; _ret = _this call ##function; ACE_STACK_DEPTH = ACE_STACK_DEPTH - 1; ACE_IS_ERRORED = false; _ret;} #define CALLSTACK_NAMED(function, functionName) {private ['_ret']; if(ACE_IS_ERRORED) then { ['AUTO','AUTO'] call ACE_DUMPSTACK_FNC; ACE_IS_ERRORED = false; }; ACE_IS_ERRORED = true; ACE_STACK_TRACE set [ACE_STACK_DEPTH, [diag_tickTime, __FILE__, __LINE__, ACE_CURRENT_FUNCTION, functionName, _this]]; ACE_STACK_DEPTH = ACE_STACK_DEPTH + 1; ACE_CURRENT_FUNCTION = functionName; _ret = _this call ##function; ACE_STACK_DEPTH = ACE_STACK_DEPTH - 1; ACE_IS_ERRORED = false; _ret;} diff --git a/extras/blank_module/XEH_preInit.sqf b/extras/blank_module/XEH_preInit.sqf index a8321ce3d5..a515eb4187 100644 --- a/extras/blank_module/XEH_preInit.sqf +++ b/extras/blank_module/XEH_preInit.sqf @@ -1,3 +1,3 @@ #include "script_component.hpp" -PREPF(empty); \ No newline at end of file +PREP(empty); \ No newline at end of file diff --git a/extras/blank_module/config.cpp b/extras/blank_module/config.cpp index 56fa6a3b32..628865c703 100644 --- a/extras/blank_module/config.cpp +++ b/extras/blank_module/config.cpp @@ -5,7 +5,7 @@ class CfgPatches { units[] = {}; weapons[] = {}; requiredVersion = 0.60; - requiredAddons[] = {"AGM_Core", "AGM_Interaction"}; + requiredAddons[] = {"ace_core"}; version = "0.95"; versionStr = "0.95"; versionAr[] = {0,95,0}; diff --git a/extras/blank_module/script_component.hpp b/extras/blank_module/script_component.hpp index 1b99905148..40058509c2 100644 --- a/extras/blank_module/script_component.hpp +++ b/extras/blank_module/script_component.hpp @@ -1,5 +1,5 @@ #define COMPONENT blank -#include "\z\ace\Addons\main\script_mod.hpp" +#include "\z\ace\addons\main\script_mod.hpp" #ifdef DEBUG_ENABLED_BLANK #define DEBUG_MODE_FULL @@ -9,4 +9,4 @@ #define DEBUG_SETTINGS DEBUG_SETTINGS_BLANK #endif -#include "\z\ace\Addons\main\script_macros.hpp" \ No newline at end of file +#include "\z\ace\addons\main\script_macros.hpp" \ No newline at end of file From 841f7e7d5a8299884f2ab22a569487c92e7df5c9 Mon Sep 17 00:00:00 2001 From: commy2 Date: Mon, 12 Jan 2015 01:39:47 +0100 Subject: [PATCH 15/18] more real names in stringtables instead of config --- addons/realisticnames/config.cpp | 170 ++++++++++++------------- addons/realisticnames/stringtable.xml | 176 ++++++++++++++++++++++++++ 2 files changed, 261 insertions(+), 85 deletions(-) diff --git a/addons/realisticnames/config.cpp b/addons/realisticnames/config.cpp index 07c2d8d2e7..f680ba1929 100644 --- a/addons/realisticnames/config.cpp +++ b/addons/realisticnames/config.cpp @@ -387,55 +387,55 @@ class CfgVehicles { // pistols class Pistol_Base_F; class Weapon_hgun_P07_F: Pistol_Base_F { - displayName = "P99"; + displayName = "$STR_AGM_RealisticNames_hgun_P07_Name"; }; class Weapon_hgun_Rook40_F: Pistol_Base_F { - displayName = "MP-443 Grach"; + displayName = "$STR_AGM_RealisticNames_hgun_Rook40_Name"; }; class Weapon_hgun_ACPC2_F: Pistol_Base_F { - displayName = "ACP-C2"; + displayName = "$STR_AGM_RealisticNames_hgun_ACPC2_Name"; }; class Weapon_hgun_Pistol_heavy_01_F: Pistol_Base_F { - displayName = "FNX-45 Tactical"; + displayName = "$STR_AGM_RealisticNames_hgun_Pistol_heavy_01_Name"; }; class Weapon_hgun_Pistol_heavy_02_F: Pistol_Base_F { - displayName = "Chiappa Rhino 60DS"; + displayName = "$STR_AGM_RealisticNames_hgun_Pistol_heavy_02_Name"; }; class Weapon_hgun_Pistol_Signal_F: Pistol_Base_F { - displayName = "Taurus Judge"; + displayName = "$STR_AGM_RealisticNames_hgun_Pistol_Signal_Name"; }; // rocket launchers class Launcher_Base_F; class Weapon_launch_NLAW_F: Launcher_Base_F { - displayName = "NLAW"; + displayName = "$STR_AGM_RealisticNames_launch_NLAW_Name"; }; class Weapon_launch_RPG32_F: Launcher_Base_F { - displayName = "RPG-32"; + displayName = "$STR_AGM_RealisticNames_launch_RPG32_Name"; }; class Weapon_launch_Titan_F: Launcher_Base_F { - displayName = "Mini-Spike (AA)"; + displayName = "$STR_AGM_RealisticNames_launch_Titan_Name"; }; class Weapon_launch_Titan_short_F: Launcher_Base_F { - displayName = "Mini-Spike (AT)"; + displayName = "$STR_AGM_RealisticNames_launch_Titan_short_Name"; }; class Weapon_launch_B_Titan_F: Launcher_Base_F { - displayName = "Mini-Spike (AA)"; + displayName = "$STR_AGM_RealisticNames_launch_Titan_Name"; }; //class Weapon_launch_I_Titan_F: Weapon_launch_B_Titan_F {}; //class Weapon_launch_O_Titan_F: Weapon_launch_B_Titan_F {}; class Weapon_launch_launch_B_Titan_short_F: Launcher_Base_F { - displayName = "Mini-Spike (AT)"; + displayName = "$STR_AGM_RealisticNames_launch_Titan_short_Name"; }; //class Weapon_launch_I_Titan_short_F: Weapon_launch_launch_B_Titan_short_F {}; //class Weapon_launch_O_Titan_short_F: Weapon_launch_launch_B_Titan_short_F {}; @@ -445,125 +445,125 @@ class CfgVehicles { // MX class Weapon_Base_F; class Weapon_arifle_MX_F: Weapon_Base_F { - displayName = "MX"; + displayName = "$STR_AGM_RealisticNames_arifle_MX_Name"; }; class Weapon_arifle_MXC_F: Weapon_Base_F { - displayName = "MXC"; + displayName = "$STR_AGM_RealisticNames_arifle_MXC_Name"; }; class Weapon_arifle_MX_GL_F: Weapon_Base_F { - displayName = "MX 3GL"; + displayName = "$STR_AGM_RealisticNames_arifle_MX_GL_Name"; }; class Weapon_arifle_MX_SW_F: Weapon_Base_F { - displayName = "MX LSW"; + displayName = "$STR_AGM_RealisticNames_arifle_MX_SW_Name"; }; class Weapon_arifle_MXM_F: Weapon_Base_F { - displayName = "MXM"; + displayName = "$STR_AGM_RealisticNames_arifle_MXM_Name"; }; // Katiba class Weapon_arifle_Katiba_F: Weapon_Base_F { - displayName = "KT2002 Katiba"; + displayName = "$STR_AGM_RealisticNames_arifle_Katiba_Name"; }; class Weapon_arifle_Katiba_C_F: Weapon_Base_F { - displayName = "KT2002C Katiba"; + displayName = "$STR_AGM_RealisticNames_arifle_Katiba_C_Name"; }; class Weapon_arifle_Katiba_GL_F: Weapon_Base_F { - displayName = "KT2002 Katiba KGL"; + displayName = "$STR_AGM_RealisticNames_arifle_Katiba_GL_Name"; }; // F2000 class Weapon_arifle_Mk20_F: Weapon_Base_F { - displayName = "F2000 (Camo)"; + displayName = "$STR_AGM_RealisticNames_arifle_Mk20_Name"; }; class Weapon_arifle_Mk20_plain_F: Weapon_Base_F { - displayName = "F2000"; + displayName = "$STR_AGM_RealisticNames_arifle_Mk20_plain_Name"; }; class Weapon_arifle_Mk20C_F: Weapon_Base_F { - displayName = "F2000 Tactical (Camo)"; + displayName = "$STR_AGM_RealisticNames_arifle_Mk20C_Name"; }; class Weapon_arifle_Mk20C_plain_F: Weapon_Base_F { - displayName = "F2000 Tactical"; + displayName = "$STR_AGM_RealisticNames_arifle_Mk20C_plain_Name"; }; class Weapon_arifle_Mk20_GL_F: Weapon_Base_F { - displayName = "F2000 EGLM (Camo)"; + displayName = "$STR_AGM_RealisticNames_arifle_Mk20_GL_Name"; }; class Weapon_arifle_Mk20_GL_plain_F: Weapon_Base_F { - displayName = "F2000 EGLM"; + displayName = "$STR_AGM_RealisticNames_arifle_Mk20_GL_plain_Name"; }; // TAR-21 class Weapon_arifle_TRG21_F: Weapon_Base_F { - displayName = "TAR-21"; + displayName = "$STR_AGM_RealisticNames_arifle_TRG21_Name"; }; class Weapon_arifle_TRG20_F: Weapon_Base_F { - displayName = "CTAR-21"; + displayName = "$STR_AGM_RealisticNames_arifle_TRG20_Name"; }; class Weapon_arifle_TRG21_GL_F: Weapon_Base_F { - displayName = "TAR-21 EGLM"; + displayName = "$STR_AGM_RealisticNames_arifle_TRG21_GL_Name"; }; // sub machine guns class Weapon_SMG_01_F: Weapon_Base_F { - displayName = "Vector SMG"; + displayName = "$STR_AGM_RealisticNames_SMG_01_Name"; }; class Weapon_SMG_02_F: Weapon_Base_F { - displayName = "Scorpion Evo 3 A1"; + displayName = "$STR_AGM_RealisticNames_SMG_02_Name"; }; class Weapon_hgun_PDW2000_F: Weapon_Base_F { - displayName = "CPW"; + displayName = "$STR_AGM_RealisticNames_hgun_PDW2000_Name"; }; class Weapon_arifle_SDAR_F: Weapon_Base_F { - displayName = "RFB SDAR"; + displayName = "$STR_AGM_RealisticNames_arifle_SDAR_Name"; }; // machine guns class Weapon_LMG_Mk200_F: Weapon_Base_F { - displayName = "Stoner 99 LMG"; + displayName = "$STR_AGM_RealisticNames_LMG_Mk200_Name"; }; class Weapon_LMG_Zafir_F: Weapon_Base_F { - displayName = "Negev NG7"; + displayName = "$STR_AGM_RealisticNames_LMG_Zafir_Name"; }; // sniper rifles class Weapon_srifle_EBR_F: Weapon_Base_F { - displayName = "Mk14 Mod 1 EBR"; + displayName = "$STR_AGM_RealisticNames_srifle_EBR_Name"; }; class Weapon_srifle_GM6_F: Weapon_Base_F { - displayName = "GM6 Lynx"; + displayName = "$STR_AGM_RealisticNames_srifle_GM6_Name"; }; class Weapon_srifle_GM6_camo_F: Weapon_Base_F { - displayName = "GM6 Lynx (Camo)"; + displayName = "$STR_AGM_RealisticNames_srifle_GM6_camo_Name"; }; class Weapon_srifle_LRR_F: Weapon_Base_F { - displayName = "M200 Intervention"; + displayName = "$STR_AGM_RealisticNames_srifle_LRR_Name"; }; class Weapon_srifle_LRR_camo_F: Weapon_Base_F { - displayName = "M200 Intervention (Camo)"; + displayName = "$STR_AGM_RealisticNames_srifle_LRR_camo_Name"; }; class Weapon_srifle_DMR_01_F: Weapon_Base_F { - displayName = "VS-121"; + displayName = "$STR_AGM_RealisticNames_srifle_DMR_01_Name"; }; }; @@ -576,189 +576,189 @@ class CfgWeapons { // MX class arifle_MX_Base_F; class arifle_MX_F: arifle_MX_Base_F { - displayName = "MX"; + displayName = "$STR_AGM_RealisticNames_arifle_MX_Name"; }; class arifle_MX_Black_F: arifle_MX_F { - displayName = "MX (Black)"; + displayName = "$STR_AGM_RealisticNames_arifle_MX_Black_Name"; }; class arifle_MXC_F: arifle_MX_Base_F { - displayName = "MXC"; + displayName = "$STR_AGM_RealisticNames_arifle_MXC_Name"; }; class arifle_MXC_Black_F: arifle_MXC_F { - displayName = "MXC (Black)"; + displayName = "$STR_AGM_RealisticNames_arifle_MXC_Black_Name"; }; class arifle_MX_GL_F: arifle_MX_Base_F { - displayName = "MX 3GL"; + displayName = "$STR_AGM_RealisticNames_arifle_MX_GL_Name"; }; class arifle_MX_GL_Black_F: arifle_MX_GL_F { - displayName = "MX 3GL (Black)"; + displayName = "$STR_AGM_RealisticNames_arifle_MX_GL_Black_Name"; }; class arifle_MX_SW_F: arifle_MX_Base_F { - displayName = "MX LSW"; + displayName = "$STR_AGM_RealisticNames_arifle_MX_SW_Name"; }; class arifle_MX_SW_Black_F: arifle_MX_SW_F { - displayName = "MX LSW (Black)"; + displayName = "$STR_AGM_RealisticNames_arifle_MX_SW_Black_Name"; }; class arifle_MXM_F: arifle_MX_Base_F { - displayName = "MXM"; + displayName = "$STR_AGM_RealisticNames_arifle_MXM_Name"; }; class arifle_MXM_Black_F: arifle_MXM_F { - displayName = "MXM (Black)"; + displayName = "$STR_AGM_RealisticNames_arifle_MXM_Black_Name"; }; // Katiba class arifle_katiba_Base_F; class arifle_Katiba_F: arifle_katiba_Base_F { - displayName = "KT2002 Katiba"; + displayName = "$STR_AGM_RealisticNames_arifle_Katiba_Name"; }; class arifle_Katiba_GL_F: arifle_katiba_Base_F { - displayName = "KT2002 Katiba KGL"; + displayName = "$STR_AGM_RealisticNames_arifle_Katiba_GL_Name"; }; class arifle_Katiba_C_F: arifle_katiba_Base_F { - displayName = "KT2002C Katiba"; + displayName = "$STR_AGM_RealisticNames_arifle_Katiba_C_Name"; }; // SDAR class SDAR_base_F; class arifle_SDAR_F: SDAR_base_F { - displayName = "RFB SDAR"; + displayName = "$STR_AGM_RealisticNames_arifle_SDAR_Name"; }; // TAR-21 class Tavor_base_F; class arifle_TRG21_F: Tavor_base_F { - displayName = "TAR-21"; + displayName = "$STR_AGM_RealisticNames_arifle_TRG21_Name"; }; class arifle_TRG21_GL_F: arifle_TRG21_F { - displayName = "TAR-21 EGLM"; + displayName = "$STR_AGM_RealisticNames_arifle_TRG21_GL_Name"; }; class arifle_TRG20_F: Tavor_base_F { - displayName = "CTAR-21"; + displayName = "$STR_AGM_RealisticNames_arifle_TRG20_Name"; }; // F2000 class mk20_base_F; class arifle_Mk20_F: mk20_base_F { - displayName = "F2000 (Camo)"; + displayName = "$STR_AGM_RealisticNames_arifle_Mk20_Name"; }; class arifle_Mk20_plain_F: arifle_Mk20_F { - displayName = "F2000"; + displayName = "$STR_AGM_RealisticNames_arifle_Mk20_plain_Name"; }; class arifle_Mk20C_F: mk20_base_F { - displayName = "F2000 Tactical (Camo)"; + displayName = "$STR_AGM_RealisticNames_arifle_Mk20C_Name"; }; class arifle_Mk20C_plain_F: arifle_Mk20C_F { - displayName = "F2000 Tactical"; + displayName = "$STR_AGM_RealisticNames_arifle_Mk20C_plain_Name"; }; class arifle_Mk20_GL_F: mk20_base_F { - displayName = "F2000 EGLM (Camo)"; + displayName = "$STR_AGM_RealisticNames_arifle_Mk20_GL_Name"; }; class arifle_Mk20_GL_plain_F: arifle_Mk20_GL_F { - displayName = "F2000 EGLM"; + displayName = "$STR_AGM_RealisticNames_arifle_Mk20_GL_plain_Name"; }; // Vector class SMG_01_Base; class SMG_01_F: SMG_01_Base { - displayName = "Vector SMG"; + displayName = "$STR_AGM_RealisticNames_SMG_01_Name"; }; // Scorpion class SMG_02_base_F; class SMG_02_F: SMG_02_base_F { - displayName = "Scorpion Evo 3 A1"; + displayName = "$STR_AGM_RealisticNames_SMG_02_Name"; }; // PDW 2000 class pdw2000_base_F; class hgun_pdw2000_F: pdw2000_base_F { - displayName = "CPW"; + displayName = "$STR_AGM_RealisticNames_hgun_PDW2000_Name"; }; // pistols class Pistol_Base_F; class hgun_P07_F: Pistol_Base_F { - displayName = "P99"; + displayName = "$STR_AGM_RealisticNames_hgun_P07_Name"; }; class hgun_Rook40_F: Pistol_Base_F { - displayName = "MP-443 Grach"; + displayName = "$STR_AGM_RealisticNames_hgun_Rook40_Name"; }; class hgun_ACPC2_F: Pistol_Base_F { - displayName = "ACP-C2"; + displayName = "$STR_AGM_RealisticNames_hgun_ACPC2_Name"; }; class hgun_Pistol_heavy_01_F: Pistol_Base_F { - displayName = "FNX-45 Tactical"; + displayName = "$STR_AGM_RealisticNames_hgun_Pistol_heavy_01_Name"; }; class hgun_Pistol_heavy_02_F: Pistol_Base_F { - displayName = "Chiappa Rhino 60DS"; + displayName = "$STR_AGM_RealisticNames_hgun_Pistol_heavy_02_Name"; }; class hgun_Pistol_Signal_F: Pistol_Base_F { - displayName = "Taurus Judge"; + displayName = "$STR_AGM_RealisticNames_hgun_Pistol_Signal_Name"; }; // machine guns class Rifle_Long_Base_F; class LMG_Mk200_F: Rifle_Long_Base_F { - displayName = "Stoner 99 LMG"; + displayName = "$STR_AGM_RealisticNames_LMG_Mk200_Name"; }; class LMG_Zafir_F: Rifle_Long_Base_F { - displayName = "Negev NG7"; + displayName = "$STR_AGM_RealisticNames_LMG_Zafir_Name"; }; // sniper rifles class EBR_base_F; class srifle_EBR_F: EBR_base_F { - displayName = "Mk14 Mod 1 EBR"; + displayName = "$STR_AGM_RealisticNames_srifle_EBR_Name"; }; class LRR_base_F; class srifle_LRR_F: LRR_base_F { - displayName = "M200 Intervention"; + displayName = "$STR_AGM_RealisticNames_srifle_LRR_Name"; }; class srifle_LRR_camo_F: srifle_LRR_F { - displayName = "M200 Intervention (Camo)"; + displayName = "$STR_AGM_RealisticNames_srifle_LRR_camo_Name"; }; class GM6_base_F; class srifle_GM6_F: GM6_base_F { - displayName = "GM6 Lynx"; + displayName = "$STR_AGM_RealisticNames_srifle_GM6_Name"; }; class srifle_GM6_camo_F: srifle_GM6_F { - displayName = "GM6 Lynx (Camo)"; + displayName = "$STR_AGM_RealisticNames_srifle_GM6_camo_Name"; }; class DMR_01_base_F; class srifle_DMR_01_F: DMR_01_base_F { - displayName = "VS-121"; + displayName = "$STR_AGM_RealisticNames_srifle_DMR_01_Name"; }; // launchers class Launcher_Base_F; class launch_RPG32_F: Launcher_Base_F { - displayName = "RPG-32"; + displayName = "$STR_AGM_RealisticNames_launch_RPG32_Name"; }; class launch_Titan_base: Launcher_Base_F { - displayName = "Mini-Spike (AA)"; + displayName = "$STR_AGM_RealisticNames_launch_Titan_Name"; }; class launch_Titan_short_base: launch_Titan_base { - displayName = "Mini-Spike (AT)"; + displayName = "$STR_AGM_RealisticNames_launch_Titan_short_Name"; }; class launch_NLAW_F: Launcher_Base_F { - displayName = "NLAW"; + displayName = "$STR_AGM_RealisticNames_launch_NLAW_Name"; }; // vehicle weapons diff --git a/addons/realisticnames/stringtable.xml b/addons/realisticnames/stringtable.xml index e72608f6b5..821a975b10 100644 --- a/addons/realisticnames/stringtable.xml +++ b/addons/realisticnames/stringtable.xml @@ -1038,5 +1038,181 @@ PMR-3 botlódrótos gyalogsági akna PMR-3 Mine antiuomo + + P99 + P99 + + + MP-443 Grach + MP-443 Grach + + + ACP-C2 + ACP-C2 + + + FNX-45 Tactical + FNX-45 Tactical + + + Chiappa Rhino 60DS + Chiappa Rhino 60DS + + + Taurus Judge + Taurus Judge + + + NLAW + NLAW + + + RPG-32 + RPG-32 + + + Mini-Spike (AA) + Mini-Spike (AA) + + + Mini-Spike (AT) + Mini-Spike (AT) + + + MX + MX + + + MX (Black) + MX (Black) + + + MXC + MXC + + + MXC (Black) + MXC (Black) + + + MX 3GL + MX 3GL + + + MX 3GL (Black) + MX 3GL (Black) + + + MX LSW + MX LSW + + + MX LSW (Black) + MX LSW (Black) + + + MXM + MXM + + + MXM (Black) + MXM (Black) + + + KT2002 Katiba + KT2002 Katiba + + + KT2002C Katiba + KT2002C Katiba + + + KT2002 Katiba KGL + KT2002 Katiba KGL + + + F2000 (Camo) + F2000 (Camo) + + + F2000 + F2000 + + + F2000 Tactical (Camo) + F2000 Tactical (Camo) + + + F2000 Tactical + F2000 Tactical + + + F2000 EGLM (Camo) + F2000 EGLM (Camo) + + + F2000 EGLM + F2000 EGLM + + + TAR-21 + TAR-21 + + + CTAR-21 + CTAR-21 + + + TAR-21 EGLM + TAR-21 EGLM + + + Vector SMG + Vector SMG + + + Scorpion Evo 3 A1 + Scorpion Evo 3 A1 + + + CPW + CPW + + + RFB SDAR + RFB SDAR + + + Stoner 99 LMG + Stoner 99 LMG + + + Negev NG7 + Negev NG7 + + + Mk14 Mod 1 EBR + Mk14 Mod 1 EBR + + + GM6 Lynx + GM6 Lynx + + + GM6 Lynx (Camo) + GM6 Lynx (Camo) + + + M200 Intervention + M200 Intervention + + + M200 Intervention (Camo) + M200 Intervention (Camo) + + + VS-121 + VS-121 + \ No newline at end of file From 33c94939f37be5f30fb319f78263294a593cf7e9 Mon Sep 17 00:00:00 2001 From: commy2 Date: Mon, 12 Jan 2015 01:43:29 +0100 Subject: [PATCH 16/18] change tag to ace --- addons/ragdolls/config.cpp | 2 +- addons/realisticnames/config.cpp | 380 +++++++++++++------------- addons/realisticnames/stringtable.xml | 264 +++++++++--------- addons/thermals/config.cpp | 2 +- 4 files changed, 324 insertions(+), 324 deletions(-) diff --git a/addons/ragdolls/config.cpp b/addons/ragdolls/config.cpp index 35390a407b..dba3b10a7c 100644 --- a/addons/ragdolls/config.cpp +++ b/addons/ragdolls/config.cpp @@ -5,7 +5,7 @@ class CfgPatches { units[] = {}; weapons[] = {}; requiredVersion = 0.60; - requiredAddons[] = {AGM_Core}; + requiredAddons[] = {ace_core}; version = "0.95"; versionStr = "0.95"; versionAr[] = {0,95,0}; diff --git a/addons/realisticnames/config.cpp b/addons/realisticnames/config.cpp index f680ba1929..51afc36eb2 100644 --- a/addons/realisticnames/config.cpp +++ b/addons/realisticnames/config.cpp @@ -5,11 +5,11 @@ class CfgPatches { units[] = {}; weapons[] = {}; requiredVersion = 0.60; - requiredAddons[] = {AGM_Core}; + requiredAddons[] = {ace_core}; version = "0.95"; versionStr = "0.95"; versionAr[] = {0,95,0}; - author[] = {"KoffeinFlummi", "TaoSensai"}; + author[] = {"KoffeinFlummi", "TaoSensai", "commy2"}; authorUrl = "https://github.com/KoffeinFlummi/"; }; }; @@ -19,94 +19,94 @@ class CfgVehicles { // static weapons class StaticMGWeapon; class HMG_01_base_F: StaticMGWeapon { - displayName = "$STR_AGM_RealisticNames_HMG_01_Name"; + displayName = "$STR_ACE_RealisticNames_HMG_01_Name"; }; class HMG_01_A_base_F: HMG_01_base_F { - displayName = "$STR_AGM_RealisticNames_HMG_01_A_Name"; + displayName = "$STR_ACE_RealisticNames_HMG_01_A_Name"; }; class HMG_01_high_base_F: HMG_01_base_F { - displayName = "$STR_AGM_RealisticNames_HMG_01_high_Name"; + displayName = "$STR_ACE_RealisticNames_HMG_01_high_Name"; }; class AT_01_base_F; class B_static_AT_F: AT_01_base_F { - displayName = "$STR_AGM_RealisticNames_static_AT_Name"; + displayName = "$STR_ACE_RealisticNames_static_AT_Name"; }; class O_static_AT_F: AT_01_base_F { - displayName = "$STR_AGM_RealisticNames_static_AT_Name"; + displayName = "$STR_ACE_RealisticNames_static_AT_Name"; }; class I_static_AT_F: AT_01_base_F { - displayName = "$STR_AGM_RealisticNames_static_AT_Name"; + displayName = "$STR_ACE_RealisticNames_static_AT_Name"; }; class AA_01_base_F; class B_static_AA_F: AA_01_base_F { - displayName = "$STR_AGM_RealisticNames_static_AA_Name"; + displayName = "$STR_ACE_RealisticNames_static_AA_Name"; }; class O_static_AA_F: AA_01_base_F { - displayName = "$STR_AGM_RealisticNames_static_AA_Name"; + displayName = "$STR_ACE_RealisticNames_static_AA_Name"; }; class I_static_AA_F: AA_01_base_F { - displayName = "$STR_AGM_RealisticNames_static_AA_Name"; + displayName = "$STR_ACE_RealisticNames_static_AA_Name"; }; class GMG_TriPod; class GMG_01_base_F: GMG_TriPod { - displayName = "$STR_AGM_RealisticNames_GMG_01_Name"; + displayName = "$STR_ACE_RealisticNames_GMG_01_Name"; }; class GMG_01_A_base_F: GMG_01_base_F { - displayName = "$STR_AGM_RealisticNames_GMG_01_A_Name"; + displayName = "$STR_ACE_RealisticNames_GMG_01_A_Name"; }; class GMG_01_high_base_F: GMG_01_base_F { - displayName = "$STR_AGM_RealisticNames_GMG_01_high_Name"; + displayName = "$STR_ACE_RealisticNames_GMG_01_high_Name"; }; // M-ATV class MRAP_01_base_F; class B_MRAP_01_F: MRAP_01_base_F { - displayName = "$STR_AGM_RealisticNames_MRAP_01_Name"; + displayName = "$STR_ACE_RealisticNames_MRAP_01_Name"; }; class MRAP_01_gmg_base_F: MRAP_01_base_F {}; class B_MRAP_01_gmg_F: MRAP_01_gmg_base_F { - displayName = "$STR_AGM_RealisticNames_MRAP_01_gmg_Name"; + displayName = "$STR_ACE_RealisticNames_MRAP_01_gmg_Name"; }; class MRAP_01_hmg_base_F: MRAP_01_gmg_base_F {}; class B_MRAP_01_hmg_F: MRAP_01_hmg_base_F { - displayName = "$STR_AGM_RealisticNames_MRAP_01_hmg_Name"; + displayName = "$STR_ACE_RealisticNames_MRAP_01_hmg_Name"; }; // punisher class MRAP_02_base_F; class O_MRAP_02_F: MRAP_02_base_F { - displayName = "$STR_AGM_RealisticNames_MRAP_02_Name"; + displayName = "$STR_ACE_RealisticNames_MRAP_02_Name"; }; class MRAP_02_hmg_base_F: MRAP_02_base_F {}; class O_MRAP_02_hmg_F: MRAP_02_hmg_base_F { - displayName = "$STR_AGM_RealisticNames_MRAP_02_hmg_Name"; + displayName = "$STR_ACE_RealisticNames_MRAP_02_hmg_Name"; }; class MRAP_02_gmg_base_F: MRAP_02_hmg_base_F {}; class O_MRAP_02_gmg_F: MRAP_02_gmg_base_F { - displayName = "$STR_AGM_RealisticNames_MRAP_02_gmg_Name"; + displayName = "$STR_ACE_RealisticNames_MRAP_02_gmg_Name"; }; // strider class MRAP_03_base_F; class I_MRAP_03_F: MRAP_03_base_F { - displayName = "$STR_AGM_RealisticNames_MRAP_03_Name"; + displayName = "$STR_ACE_RealisticNames_MRAP_03_Name"; }; class MRAP_03_hmg_base_F: MRAP_03_base_F {}; class I_MRAP_03_hmg_F: MRAP_03_hmg_base_F { - displayName = "$STR_AGM_RealisticNames_MRAP_03_hmg_Name"; + displayName = "$STR_ACE_RealisticNames_MRAP_03_hmg_Name"; }; class MRAP_03_gmg_base_F: MRAP_03_hmg_base_F {}; class I_MRAP_03_gmg_F: MRAP_03_gmg_base_F { - displayName = "$STR_AGM_RealisticNames_MRAP_03_gmg_Name"; + displayName = "$STR_ACE_RealisticNames_MRAP_03_gmg_Name"; }; // merkava derivates @@ -114,24 +114,24 @@ class CfgVehicles { class B_MBT_01_base_F: MBT_01_base_F {}; class B_MBT_01_cannon_F: B_MBT_01_base_F { - displayName = "$STR_AGM_RealisticNames_MBT_01_cannon_Name"; + displayName = "$STR_ACE_RealisticNames_MBT_01_cannon_Name"; }; class B_MBT_01_TUSK_F: B_MBT_01_cannon_F { - displayName = "$STR_AGM_RealisticNames_MBT_01_TUSK_Name"; + displayName = "$STR_ACE_RealisticNames_MBT_01_TUSK_Name"; }; class MBT_01_arty_base_F: MBT_01_base_F {}; class B_MBT_01_arty_base_F: MBT_01_arty_base_F {}; class B_MBT_01_arty_F: B_MBT_01_arty_base_F { - displayName = "$STR_AGM_RealisticNames_MBT_01_arty_Name"; + displayName = "$STR_ACE_RealisticNames_MBT_01_arty_Name"; }; class MBT_01_mlrs_base_F: MBT_01_base_F {}; class B_MBT_01_mlrs_base_F: MBT_01_mlrs_base_F {}; class B_MBT_01_mlrs_F: B_MBT_01_mlrs_base_F { - displayName = "$STR_AGM_RealisticNames_MBT_01_mlrs_Name"; // Fictional name, (probably wrong) hebrew translation of storm. + displayName = "$STR_ACE_RealisticNames_MBT_01_mlrs_Name"; // Fictional name, (probably wrong) hebrew translation of storm. }; // T100 derivates @@ -139,303 +139,303 @@ class CfgVehicles { class O_MBT_02_base_F: MBT_02_base_F {}; class O_MBT_02_cannon_F: O_MBT_02_base_F { - displayName = "$STR_AGM_RealisticNames_MBT_02_cannon_Name"; + displayName = "$STR_ACE_RealisticNames_MBT_02_cannon_Name"; }; class MBT_02_arty_base_F: MBT_02_base_F {}; class O_MBT_02_arty_base_F: MBT_02_arty_base_F {}; class O_MBT_02_arty_F: O_MBT_02_arty_base_F { - displayName = "$STR_AGM_RealisticNames_MBT_02_arty_Name"; + displayName = "$STR_ACE_RealisticNames_MBT_02_arty_Name"; }; // leopard sg class I_MBT_03_base_F; class I_MBT_03_cannon_F: I_MBT_03_base_F { - displayName = "$STR_AGM_RealisticNames_MBT_03_cannon_Name"; + displayName = "$STR_ACE_RealisticNames_MBT_03_cannon_Name"; }; // tracked apcs class B_APC_Tracked_01_base_F; class B_APC_Tracked_01_rcws_F: B_APC_Tracked_01_base_F { - displayName = "$STR_AGM_RealisticNames_APC_Tracked_01_rcws_Name"; + displayName = "$STR_ACE_RealisticNames_APC_Tracked_01_rcws_Name"; }; class B_APC_Tracked_01_AA_F: B_APC_Tracked_01_base_F { - displayName = "$STR_AGM_RealisticNames_APC_Tracked_01_AA_Name"; // Fictional name, (probably wrong) hebrew translation of cheetah. + displayName = "$STR_ACE_RealisticNames_APC_Tracked_01_AA_Name"; // Fictional name, (probably wrong) hebrew translation of cheetah. }; class B_APC_Tracked_01_CRV_F: B_APC_Tracked_01_base_F { - displayName = "$STR_AGM_RealisticNames_APC_Tracked_01_CRV_Name"; + displayName = "$STR_ACE_RealisticNames_APC_Tracked_01_CRV_Name"; }; class O_APC_Tracked_02_base_F; class O_APC_Tracked_02_cannon_F: O_APC_Tracked_02_base_F { - displayName = "$STR_AGM_RealisticNames_APC_Tracked_02_cannon_Name"; + displayName = "$STR_ACE_RealisticNames_APC_Tracked_02_cannon_Name"; }; class O_APC_Tracked_02_AA_F: O_APC_Tracked_02_base_F { - displayName = "$STR_AGM_RealisticNames_APC_Tracked_02_AA_Name"; + displayName = "$STR_ACE_RealisticNames_APC_Tracked_02_AA_Name"; }; class I_APC_tracked_03_base_F; class I_APC_tracked_03_cannon_F: I_APC_tracked_03_base_F { - displayName = "$STR_AGM_RealisticNames_APC_tracked_03_cannon_Name"; + displayName = "$STR_ACE_RealisticNames_APC_tracked_03_cannon_Name"; }; // wheeled apcs class B_APC_Wheeled_01_base_F; class B_APC_Wheeled_01_cannon_F: B_APC_Wheeled_01_base_F { - displayName = "$STR_AGM_RealisticNames_APC_Wheeled_cannon_Name"; + displayName = "$STR_ACE_RealisticNames_APC_Wheeled_cannon_Name"; }; class O_APC_Wheeled_02_base_F; class O_APC_Wheeled_02_rcws_F: O_APC_Wheeled_02_base_F { - displayName = "$STR_AGM_RealisticNames_APC_Wheeled_02_rcws_Name"; + displayName = "$STR_ACE_RealisticNames_APC_Wheeled_02_rcws_Name"; }; class I_APC_Wheeled_03_base_F; class I_APC_Wheeled_03_cannon_F: I_APC_Wheeled_03_base_F { - displayName = "$STR_AGM_RealisticNames_APC_Wheeled_03_cannon_Name"; + displayName = "$STR_ACE_RealisticNames_APC_Wheeled_03_cannon_Name"; }; // trucks class Truck_01_base_F; class B_Truck_01_transport_F: Truck_01_base_F { - displayName = "$STR_AGM_RealisticNames_Truck_01_transport_Name"; + displayName = "$STR_ACE_RealisticNames_Truck_01_transport_Name"; }; class B_Truck_01_covered_F: B_Truck_01_transport_F { - displayName = "$STR_AGM_RealisticNames_Truck_01_covered_Name"; + displayName = "$STR_ACE_RealisticNames_Truck_01_covered_Name"; }; class B_Truck_01_mover_F: B_Truck_01_transport_F { - displayName = "$STR_AGM_RealisticNames_Truck_01_mover_Name"; + displayName = "$STR_ACE_RealisticNames_Truck_01_mover_Name"; }; class B_Truck_01_box_F: B_Truck_01_mover_F { - displayName = "$STR_AGM_RealisticNames_Truck_01_box_Name"; + displayName = "$STR_ACE_RealisticNames_Truck_01_box_Name"; }; class B_Truck_01_medical_F: B_Truck_01_transport_F { - displayName = "$STR_AGM_RealisticNames_Truck_01_medical_Name"; + displayName = "$STR_ACE_RealisticNames_Truck_01_medical_Name"; }; class B_Truck_01_ammo_F: B_Truck_01_mover_F { - displayName = "$STR_AGM_RealisticNames_Truck_01_ammo_Name"; + displayName = "$STR_ACE_RealisticNames_Truck_01_ammo_Name"; }; class B_Truck_01_fuel_F: B_Truck_01_mover_F { - displayName = "$STR_AGM_RealisticNames_Truck_01_fuel_Name"; + displayName = "$STR_ACE_RealisticNames_Truck_01_fuel_Name"; }; class B_Truck_01_Repair_F: B_Truck_01_mover_F { - displayName = "$STR_AGM_RealisticNames_Truck_01_Repair_Name"; + displayName = "$STR_ACE_RealisticNames_Truck_01_Repair_Name"; }; class Truck_02_base_F; class O_Truck_02_transport_F: Truck_02_base_F { - displayName = "$STR_AGM_RealisticNames_Truck_02_transport_Name"; + displayName = "$STR_ACE_RealisticNames_Truck_02_transport_Name"; }; class O_Truck_02_covered_F: Truck_02_base_F { - displayName = "$STR_AGM_RealisticNames_Truck_02_covered_Name"; + displayName = "$STR_ACE_RealisticNames_Truck_02_covered_Name"; }; class O_Truck_02_ammo_F: Truck_02_base_F { - displayName = "$STR_AGM_RealisticNames_Truck_02_ammo_Name"; + displayName = "$STR_ACE_RealisticNames_Truck_02_ammo_Name"; }; class O_Truck_02_fuel_F: Truck_02_base_F { - displayName = "$STR_AGM_RealisticNames_Truck_02_fuel_Name"; + displayName = "$STR_ACE_RealisticNames_Truck_02_fuel_Name"; }; class O_Truck_02_box_F: Truck_02_base_F { - displayName = "$STR_AGM_RealisticNames_Truck_02_box_Name"; + displayName = "$STR_ACE_RealisticNames_Truck_02_box_Name"; }; class O_Truck_02_medical_F: O_Truck_02_box_F { - displayName = "$STR_AGM_RealisticNames_Truck_02_medical_Name"; + displayName = "$STR_ACE_RealisticNames_Truck_02_medical_Name"; }; class I_Truck_02_transport_F: Truck_02_base_F { - displayName = "$STR_AGM_RealisticNames_Truck_02_transport_Name"; + displayName = "$STR_ACE_RealisticNames_Truck_02_transport_Name"; }; class I_Truck_02_covered_F: Truck_02_base_F { - displayName = "$STR_AGM_RealisticNames_Truck_02_covered_Name"; + displayName = "$STR_ACE_RealisticNames_Truck_02_covered_Name"; }; class I_Truck_02_ammo_F: Truck_02_base_F { - displayName = "$STR_AGM_RealisticNames_Truck_02_ammo_Name"; + displayName = "$STR_ACE_RealisticNames_Truck_02_ammo_Name"; }; class I_Truck_02_fuel_F: Truck_02_base_F { - displayName = "$STR_AGM_RealisticNames_Truck_02_fuel_Name"; + displayName = "$STR_ACE_RealisticNames_Truck_02_fuel_Name"; }; class I_Truck_02_box_F: Truck_02_base_F { - displayName = "$STR_AGM_RealisticNames_Truck_02_box_Name"; + displayName = "$STR_ACE_RealisticNames_Truck_02_box_Name"; }; class I_Truck_02_medical_F: I_Truck_02_box_F { - displayName = "$STR_AGM_RealisticNames_Truck_02_medical_Name"; + displayName = "$STR_ACE_RealisticNames_Truck_02_medical_Name"; }; class Truck_03_base_F; class O_Truck_03_transport_F: Truck_03_base_F { - displayName = "$STR_AGM_RealisticNames_Truck_03_transport_Name"; + displayName = "$STR_ACE_RealisticNames_Truck_03_transport_Name"; }; class O_Truck_03_covered_F: Truck_03_base_F { - displayName = "$STR_AGM_RealisticNames_Truck_03_covered_Name"; + displayName = "$STR_ACE_RealisticNames_Truck_03_covered_Name"; }; class O_Truck_03_device_F: Truck_03_base_F { - displayName = "$STR_AGM_RealisticNames_Truck_03_device_Name"; + displayName = "$STR_ACE_RealisticNames_Truck_03_device_Name"; }; class O_Truck_03_ammo_F: Truck_03_base_F { - displayName = "$STR_AGM_RealisticNames_Truck_03_ammo_Name"; + displayName = "$STR_ACE_RealisticNames_Truck_03_ammo_Name"; }; class O_Truck_03_fuel_F: Truck_03_base_F { - displayName = "$STR_AGM_RealisticNames_Truck_03_fuel_Name"; + displayName = "$STR_ACE_RealisticNames_Truck_03_fuel_Name"; }; class O_Truck_03_repair_F: Truck_03_base_F { - displayName = "$STR_AGM_RealisticNames_Truck_03_repair_Name"; + displayName = "$STR_ACE_RealisticNames_Truck_03_repair_Name"; }; class O_Truck_03_medical_F: Truck_03_base_F { - displayName = "$STR_AGM_RealisticNames_Truck_03_medical_Name"; + displayName = "$STR_ACE_RealisticNames_Truck_03_medical_Name"; }; // helicopters class Heli_Attack_01_base_F; class B_Heli_Attack_01_F: Heli_Attack_01_base_F { - displayName = "$STR_AGM_RealisticNames_Heli_Attack_01_Name"; + displayName = "$STR_ACE_RealisticNames_Heli_Attack_01_Name"; }; class Heli_Light_01_base_F; class B_Heli_Light_01_F: Heli_Light_01_base_F { - displayName = "$STR_AGM_RealisticNames_Heli_Light_01_Name"; + displayName = "$STR_ACE_RealisticNames_Heli_Light_01_Name"; }; class Heli_Light_01_armed_base_F; class B_Heli_Light_01_armed_F: Heli_Light_01_armed_base_F { - displayName = "$STR_AGM_RealisticNames_Heli_Light_01_armed_Name"; + displayName = "$STR_ACE_RealisticNames_Heli_Light_01_armed_Name"; }; class Heli_Light_01_civil_base_F: Heli_Light_01_base_F { - displayName = "$STR_AGM_RealisticNames_Heli_Light_01_civil_Name"; + displayName = "$STR_ACE_RealisticNames_Heli_Light_01_civil_Name"; }; class B_Heli_Transport_03_base_F; class B_Heli_Transport_03_F: B_Heli_Transport_03_base_F { - displayName = "$STR_AGM_RealisticNames_Heli_Transport_03_Name"; + displayName = "$STR_ACE_RealisticNames_Heli_Transport_03_Name"; }; class B_Heli_Transport_03_unarmed_base_F: B_Heli_Transport_03_base_F {}; class B_Heli_Transport_03_unarmed_F: B_Heli_Transport_03_unarmed_base_F { - displayName = "$STR_AGM_RealisticNames_Heli_Transport_03_unarmed_Name"; + displayName = "$STR_ACE_RealisticNames_Heli_Transport_03_unarmed_Name"; }; class Heli_Light_02_base_F; class O_Heli_Light_02_F: Heli_Light_02_base_F { - displayName = "$STR_AGM_RealisticNames_Heli_Light_02_Name"; + displayName = "$STR_ACE_RealisticNames_Heli_Light_02_Name"; }; class O_Heli_Light_02_unarmed_F: Heli_Light_02_base_F { - displayName = "$STR_AGM_RealisticNames_Heli_Light_02_unarmed_Name"; + displayName = "$STR_ACE_RealisticNames_Heli_Light_02_unarmed_Name"; }; class I_Heli_light_03_base_F; class I_Heli_light_03_F: I_Heli_light_03_base_F { - displayName = "$STR_AGM_RealisticNames_Heli_light_03_Name"; + displayName = "$STR_ACE_RealisticNames_Heli_light_03_Name"; }; class I_Heli_light_03_unarmed_base_F; class I_Heli_light_03_unarmed_F: I_Heli_light_03_unarmed_base_F { - displayName = "$STR_AGM_RealisticNames_Heli_light_03_unarmed_Name"; + displayName = "$STR_ACE_RealisticNames_Heli_light_03_unarmed_Name"; }; class Heli_Transport_02_base_F; class I_Heli_Transport_02_F: Heli_Transport_02_base_F { - displayName = "$STR_AGM_RealisticNames_Heli_Transport_02_Name"; + displayName = "$STR_ACE_RealisticNames_Heli_Transport_02_Name"; }; // planes class Plane_CAS_01_base_F; class B_Plane_CAS_01_F: Plane_CAS_01_base_F { - displayName = "$STR_AGM_RealisticNames_Plane_CAS_01_Name"; + displayName = "$STR_ACE_RealisticNames_Plane_CAS_01_Name"; }; class Plane_CAS_02_base_F; class O_Plane_CAS_02_F: Plane_CAS_02_base_F { - displayName = "$STR_AGM_RealisticNames_Plane_CAS_02_Name"; + displayName = "$STR_ACE_RealisticNames_Plane_CAS_02_Name"; }; class Plane_Fighter_03_base_F; class I_Plane_Fighter_03_CAS_F: Plane_Fighter_03_base_F { - displayName = "$STR_AGM_RealisticNames_Plane_Fighter_03_CAS_Name"; + displayName = "$STR_ACE_RealisticNames_Plane_Fighter_03_CAS_Name"; }; class I_Plane_Fighter_03_AA_F: I_Plane_Fighter_03_CAS_F { - displayName = "$STR_AGM_RealisticNames_Plane_Fighter_03_AA_Name"; + displayName = "$STR_ACE_RealisticNames_Plane_Fighter_03_AA_Name"; }; // uavs class UAV_02_base_F; class B_UAV_02_F: UAV_02_base_F { - displayName = "$STR_AGM_RealisticNames_UAV_02_Name"; + displayName = "$STR_ACE_RealisticNames_UAV_02_Name"; }; class O_UAV_02_F: UAV_02_base_F { - displayName = "$STR_AGM_RealisticNames_UAV_02_Name"; + displayName = "$STR_ACE_RealisticNames_UAV_02_Name"; }; class I_UAV_02_F: UAV_02_base_F { - displayName = "$STR_AGM_RealisticNames_UAV_02_Name"; + displayName = "$STR_ACE_RealisticNames_UAV_02_Name"; }; class UAV_02_CAS_base_F: UAV_02_base_F {}; class B_UAV_02_CAS_F: UAV_02_CAS_base_F { - displayName = "$STR_AGM_RealisticNames_UAV_02_CAS_Name"; + displayName = "$STR_ACE_RealisticNames_UAV_02_CAS_Name"; }; class O_UAV_02_CAS_F: UAV_02_CAS_base_F { - displayName = "$STR_AGM_RealisticNames_UAV_02_CAS_Name"; + displayName = "$STR_ACE_RealisticNames_UAV_02_CAS_Name"; }; class I_UAV_02_CAS_F: UAV_02_CAS_base_F { - displayName = "$STR_AGM_RealisticNames_UAV_02_CAS_Name"; + displayName = "$STR_ACE_RealisticNames_UAV_02_CAS_Name"; }; // pistols class Pistol_Base_F; class Weapon_hgun_P07_F: Pistol_Base_F { - displayName = "$STR_AGM_RealisticNames_hgun_P07_Name"; + displayName = "$STR_ACE_RealisticNames_hgun_P07_Name"; }; class Weapon_hgun_Rook40_F: Pistol_Base_F { - displayName = "$STR_AGM_RealisticNames_hgun_Rook40_Name"; + displayName = "$STR_ACE_RealisticNames_hgun_Rook40_Name"; }; class Weapon_hgun_ACPC2_F: Pistol_Base_F { - displayName = "$STR_AGM_RealisticNames_hgun_ACPC2_Name"; + displayName = "$STR_ACE_RealisticNames_hgun_ACPC2_Name"; }; class Weapon_hgun_Pistol_heavy_01_F: Pistol_Base_F { - displayName = "$STR_AGM_RealisticNames_hgun_Pistol_heavy_01_Name"; + displayName = "$STR_ACE_RealisticNames_hgun_Pistol_heavy_01_Name"; }; class Weapon_hgun_Pistol_heavy_02_F: Pistol_Base_F { - displayName = "$STR_AGM_RealisticNames_hgun_Pistol_heavy_02_Name"; + displayName = "$STR_ACE_RealisticNames_hgun_Pistol_heavy_02_Name"; }; class Weapon_hgun_Pistol_Signal_F: Pistol_Base_F { - displayName = "$STR_AGM_RealisticNames_hgun_Pistol_Signal_Name"; + displayName = "$STR_ACE_RealisticNames_hgun_Pistol_Signal_Name"; }; // rocket launchers class Launcher_Base_F; class Weapon_launch_NLAW_F: Launcher_Base_F { - displayName = "$STR_AGM_RealisticNames_launch_NLAW_Name"; + displayName = "$STR_ACE_RealisticNames_launch_NLAW_Name"; }; class Weapon_launch_RPG32_F: Launcher_Base_F { - displayName = "$STR_AGM_RealisticNames_launch_RPG32_Name"; + displayName = "$STR_ACE_RealisticNames_launch_RPG32_Name"; }; class Weapon_launch_Titan_F: Launcher_Base_F { - displayName = "$STR_AGM_RealisticNames_launch_Titan_Name"; + displayName = "$STR_ACE_RealisticNames_launch_Titan_Name"; }; class Weapon_launch_Titan_short_F: Launcher_Base_F { - displayName = "$STR_AGM_RealisticNames_launch_Titan_short_Name"; + displayName = "$STR_ACE_RealisticNames_launch_Titan_short_Name"; }; class Weapon_launch_B_Titan_F: Launcher_Base_F { - displayName = "$STR_AGM_RealisticNames_launch_Titan_Name"; + displayName = "$STR_ACE_RealisticNames_launch_Titan_Name"; }; //class Weapon_launch_I_Titan_F: Weapon_launch_B_Titan_F {}; //class Weapon_launch_O_Titan_F: Weapon_launch_B_Titan_F {}; class Weapon_launch_launch_B_Titan_short_F: Launcher_Base_F { - displayName = "$STR_AGM_RealisticNames_launch_Titan_short_Name"; + displayName = "$STR_ACE_RealisticNames_launch_Titan_short_Name"; }; //class Weapon_launch_I_Titan_short_F: Weapon_launch_launch_B_Titan_short_F {}; //class Weapon_launch_O_Titan_short_F: Weapon_launch_launch_B_Titan_short_F {}; @@ -445,125 +445,125 @@ class CfgVehicles { // MX class Weapon_Base_F; class Weapon_arifle_MX_F: Weapon_Base_F { - displayName = "$STR_AGM_RealisticNames_arifle_MX_Name"; + displayName = "$STR_ACE_RealisticNames_arifle_MX_Name"; }; class Weapon_arifle_MXC_F: Weapon_Base_F { - displayName = "$STR_AGM_RealisticNames_arifle_MXC_Name"; + displayName = "$STR_ACE_RealisticNames_arifle_MXC_Name"; }; class Weapon_arifle_MX_GL_F: Weapon_Base_F { - displayName = "$STR_AGM_RealisticNames_arifle_MX_GL_Name"; + displayName = "$STR_ACE_RealisticNames_arifle_MX_GL_Name"; }; class Weapon_arifle_MX_SW_F: Weapon_Base_F { - displayName = "$STR_AGM_RealisticNames_arifle_MX_SW_Name"; + displayName = "$STR_ACE_RealisticNames_arifle_MX_SW_Name"; }; class Weapon_arifle_MXM_F: Weapon_Base_F { - displayName = "$STR_AGM_RealisticNames_arifle_MXM_Name"; + displayName = "$STR_ACE_RealisticNames_arifle_MXM_Name"; }; // Katiba class Weapon_arifle_Katiba_F: Weapon_Base_F { - displayName = "$STR_AGM_RealisticNames_arifle_Katiba_Name"; + displayName = "$STR_ACE_RealisticNames_arifle_Katiba_Name"; }; class Weapon_arifle_Katiba_C_F: Weapon_Base_F { - displayName = "$STR_AGM_RealisticNames_arifle_Katiba_C_Name"; + displayName = "$STR_ACE_RealisticNames_arifle_Katiba_C_Name"; }; class Weapon_arifle_Katiba_GL_F: Weapon_Base_F { - displayName = "$STR_AGM_RealisticNames_arifle_Katiba_GL_Name"; + displayName = "$STR_ACE_RealisticNames_arifle_Katiba_GL_Name"; }; // F2000 class Weapon_arifle_Mk20_F: Weapon_Base_F { - displayName = "$STR_AGM_RealisticNames_arifle_Mk20_Name"; + displayName = "$STR_ACE_RealisticNames_arifle_Mk20_Name"; }; class Weapon_arifle_Mk20_plain_F: Weapon_Base_F { - displayName = "$STR_AGM_RealisticNames_arifle_Mk20_plain_Name"; + displayName = "$STR_ACE_RealisticNames_arifle_Mk20_plain_Name"; }; class Weapon_arifle_Mk20C_F: Weapon_Base_F { - displayName = "$STR_AGM_RealisticNames_arifle_Mk20C_Name"; + displayName = "$STR_ACE_RealisticNames_arifle_Mk20C_Name"; }; class Weapon_arifle_Mk20C_plain_F: Weapon_Base_F { - displayName = "$STR_AGM_RealisticNames_arifle_Mk20C_plain_Name"; + displayName = "$STR_ACE_RealisticNames_arifle_Mk20C_plain_Name"; }; class Weapon_arifle_Mk20_GL_F: Weapon_Base_F { - displayName = "$STR_AGM_RealisticNames_arifle_Mk20_GL_Name"; + displayName = "$STR_ACE_RealisticNames_arifle_Mk20_GL_Name"; }; class Weapon_arifle_Mk20_GL_plain_F: Weapon_Base_F { - displayName = "$STR_AGM_RealisticNames_arifle_Mk20_GL_plain_Name"; + displayName = "$STR_ACE_RealisticNames_arifle_Mk20_GL_plain_Name"; }; // TAR-21 class Weapon_arifle_TRG21_F: Weapon_Base_F { - displayName = "$STR_AGM_RealisticNames_arifle_TRG21_Name"; + displayName = "$STR_ACE_RealisticNames_arifle_TRG21_Name"; }; class Weapon_arifle_TRG20_F: Weapon_Base_F { - displayName = "$STR_AGM_RealisticNames_arifle_TRG20_Name"; + displayName = "$STR_ACE_RealisticNames_arifle_TRG20_Name"; }; class Weapon_arifle_TRG21_GL_F: Weapon_Base_F { - displayName = "$STR_AGM_RealisticNames_arifle_TRG21_GL_Name"; + displayName = "$STR_ACE_RealisticNames_arifle_TRG21_GL_Name"; }; // sub machine guns class Weapon_SMG_01_F: Weapon_Base_F { - displayName = "$STR_AGM_RealisticNames_SMG_01_Name"; + displayName = "$STR_ACE_RealisticNames_SMG_01_Name"; }; class Weapon_SMG_02_F: Weapon_Base_F { - displayName = "$STR_AGM_RealisticNames_SMG_02_Name"; + displayName = "$STR_ACE_RealisticNames_SMG_02_Name"; }; class Weapon_hgun_PDW2000_F: Weapon_Base_F { - displayName = "$STR_AGM_RealisticNames_hgun_PDW2000_Name"; + displayName = "$STR_ACE_RealisticNames_hgun_PDW2000_Name"; }; class Weapon_arifle_SDAR_F: Weapon_Base_F { - displayName = "$STR_AGM_RealisticNames_arifle_SDAR_Name"; + displayName = "$STR_ACE_RealisticNames_arifle_SDAR_Name"; }; // machine guns class Weapon_LMG_Mk200_F: Weapon_Base_F { - displayName = "$STR_AGM_RealisticNames_LMG_Mk200_Name"; + displayName = "$STR_ACE_RealisticNames_LMG_Mk200_Name"; }; class Weapon_LMG_Zafir_F: Weapon_Base_F { - displayName = "$STR_AGM_RealisticNames_LMG_Zafir_Name"; + displayName = "$STR_ACE_RealisticNames_LMG_Zafir_Name"; }; // sniper rifles class Weapon_srifle_EBR_F: Weapon_Base_F { - displayName = "$STR_AGM_RealisticNames_srifle_EBR_Name"; + displayName = "$STR_ACE_RealisticNames_srifle_EBR_Name"; }; class Weapon_srifle_GM6_F: Weapon_Base_F { - displayName = "$STR_AGM_RealisticNames_srifle_GM6_Name"; + displayName = "$STR_ACE_RealisticNames_srifle_GM6_Name"; }; class Weapon_srifle_GM6_camo_F: Weapon_Base_F { - displayName = "$STR_AGM_RealisticNames_srifle_GM6_camo_Name"; + displayName = "$STR_ACE_RealisticNames_srifle_GM6_camo_Name"; }; class Weapon_srifle_LRR_F: Weapon_Base_F { - displayName = "$STR_AGM_RealisticNames_srifle_LRR_Name"; + displayName = "$STR_ACE_RealisticNames_srifle_LRR_Name"; }; class Weapon_srifle_LRR_camo_F: Weapon_Base_F { - displayName = "$STR_AGM_RealisticNames_srifle_LRR_camo_Name"; + displayName = "$STR_ACE_RealisticNames_srifle_LRR_camo_Name"; }; class Weapon_srifle_DMR_01_F: Weapon_Base_F { - displayName = "$STR_AGM_RealisticNames_srifle_DMR_01_Name"; + displayName = "$STR_ACE_RealisticNames_srifle_DMR_01_Name"; }; }; @@ -576,189 +576,189 @@ class CfgWeapons { // MX class arifle_MX_Base_F; class arifle_MX_F: arifle_MX_Base_F { - displayName = "$STR_AGM_RealisticNames_arifle_MX_Name"; + displayName = "$STR_ACE_RealisticNames_arifle_MX_Name"; }; class arifle_MX_Black_F: arifle_MX_F { - displayName = "$STR_AGM_RealisticNames_arifle_MX_Black_Name"; + displayName = "$STR_ACE_RealisticNames_arifle_MX_Black_Name"; }; class arifle_MXC_F: arifle_MX_Base_F { - displayName = "$STR_AGM_RealisticNames_arifle_MXC_Name"; + displayName = "$STR_ACE_RealisticNames_arifle_MXC_Name"; }; class arifle_MXC_Black_F: arifle_MXC_F { - displayName = "$STR_AGM_RealisticNames_arifle_MXC_Black_Name"; + displayName = "$STR_ACE_RealisticNames_arifle_MXC_Black_Name"; }; class arifle_MX_GL_F: arifle_MX_Base_F { - displayName = "$STR_AGM_RealisticNames_arifle_MX_GL_Name"; + displayName = "$STR_ACE_RealisticNames_arifle_MX_GL_Name"; }; class arifle_MX_GL_Black_F: arifle_MX_GL_F { - displayName = "$STR_AGM_RealisticNames_arifle_MX_GL_Black_Name"; + displayName = "$STR_ACE_RealisticNames_arifle_MX_GL_Black_Name"; }; class arifle_MX_SW_F: arifle_MX_Base_F { - displayName = "$STR_AGM_RealisticNames_arifle_MX_SW_Name"; + displayName = "$STR_ACE_RealisticNames_arifle_MX_SW_Name"; }; class arifle_MX_SW_Black_F: arifle_MX_SW_F { - displayName = "$STR_AGM_RealisticNames_arifle_MX_SW_Black_Name"; + displayName = "$STR_ACE_RealisticNames_arifle_MX_SW_Black_Name"; }; class arifle_MXM_F: arifle_MX_Base_F { - displayName = "$STR_AGM_RealisticNames_arifle_MXM_Name"; + displayName = "$STR_ACE_RealisticNames_arifle_MXM_Name"; }; class arifle_MXM_Black_F: arifle_MXM_F { - displayName = "$STR_AGM_RealisticNames_arifle_MXM_Black_Name"; + displayName = "$STR_ACE_RealisticNames_arifle_MXM_Black_Name"; }; // Katiba class arifle_katiba_Base_F; class arifle_Katiba_F: arifle_katiba_Base_F { - displayName = "$STR_AGM_RealisticNames_arifle_Katiba_Name"; + displayName = "$STR_ACE_RealisticNames_arifle_Katiba_Name"; }; class arifle_Katiba_GL_F: arifle_katiba_Base_F { - displayName = "$STR_AGM_RealisticNames_arifle_Katiba_GL_Name"; + displayName = "$STR_ACE_RealisticNames_arifle_Katiba_GL_Name"; }; class arifle_Katiba_C_F: arifle_katiba_Base_F { - displayName = "$STR_AGM_RealisticNames_arifle_Katiba_C_Name"; + displayName = "$STR_ACE_RealisticNames_arifle_Katiba_C_Name"; }; // SDAR class SDAR_base_F; class arifle_SDAR_F: SDAR_base_F { - displayName = "$STR_AGM_RealisticNames_arifle_SDAR_Name"; + displayName = "$STR_ACE_RealisticNames_arifle_SDAR_Name"; }; // TAR-21 class Tavor_base_F; class arifle_TRG21_F: Tavor_base_F { - displayName = "$STR_AGM_RealisticNames_arifle_TRG21_Name"; + displayName = "$STR_ACE_RealisticNames_arifle_TRG21_Name"; }; class arifle_TRG21_GL_F: arifle_TRG21_F { - displayName = "$STR_AGM_RealisticNames_arifle_TRG21_GL_Name"; + displayName = "$STR_ACE_RealisticNames_arifle_TRG21_GL_Name"; }; class arifle_TRG20_F: Tavor_base_F { - displayName = "$STR_AGM_RealisticNames_arifle_TRG20_Name"; + displayName = "$STR_ACE_RealisticNames_arifle_TRG20_Name"; }; // F2000 class mk20_base_F; class arifle_Mk20_F: mk20_base_F { - displayName = "$STR_AGM_RealisticNames_arifle_Mk20_Name"; + displayName = "$STR_ACE_RealisticNames_arifle_Mk20_Name"; }; class arifle_Mk20_plain_F: arifle_Mk20_F { - displayName = "$STR_AGM_RealisticNames_arifle_Mk20_plain_Name"; + displayName = "$STR_ACE_RealisticNames_arifle_Mk20_plain_Name"; }; class arifle_Mk20C_F: mk20_base_F { - displayName = "$STR_AGM_RealisticNames_arifle_Mk20C_Name"; + displayName = "$STR_ACE_RealisticNames_arifle_Mk20C_Name"; }; class arifle_Mk20C_plain_F: arifle_Mk20C_F { - displayName = "$STR_AGM_RealisticNames_arifle_Mk20C_plain_Name"; + displayName = "$STR_ACE_RealisticNames_arifle_Mk20C_plain_Name"; }; class arifle_Mk20_GL_F: mk20_base_F { - displayName = "$STR_AGM_RealisticNames_arifle_Mk20_GL_Name"; + displayName = "$STR_ACE_RealisticNames_arifle_Mk20_GL_Name"; }; class arifle_Mk20_GL_plain_F: arifle_Mk20_GL_F { - displayName = "$STR_AGM_RealisticNames_arifle_Mk20_GL_plain_Name"; + displayName = "$STR_ACE_RealisticNames_arifle_Mk20_GL_plain_Name"; }; // Vector class SMG_01_Base; class SMG_01_F: SMG_01_Base { - displayName = "$STR_AGM_RealisticNames_SMG_01_Name"; + displayName = "$STR_ACE_RealisticNames_SMG_01_Name"; }; // Scorpion class SMG_02_base_F; class SMG_02_F: SMG_02_base_F { - displayName = "$STR_AGM_RealisticNames_SMG_02_Name"; + displayName = "$STR_ACE_RealisticNames_SMG_02_Name"; }; // PDW 2000 class pdw2000_base_F; class hgun_pdw2000_F: pdw2000_base_F { - displayName = "$STR_AGM_RealisticNames_hgun_PDW2000_Name"; + displayName = "$STR_ACE_RealisticNames_hgun_PDW2000_Name"; }; // pistols class Pistol_Base_F; class hgun_P07_F: Pistol_Base_F { - displayName = "$STR_AGM_RealisticNames_hgun_P07_Name"; + displayName = "$STR_ACE_RealisticNames_hgun_P07_Name"; }; class hgun_Rook40_F: Pistol_Base_F { - displayName = "$STR_AGM_RealisticNames_hgun_Rook40_Name"; + displayName = "$STR_ACE_RealisticNames_hgun_Rook40_Name"; }; class hgun_ACPC2_F: Pistol_Base_F { - displayName = "$STR_AGM_RealisticNames_hgun_ACPC2_Name"; + displayName = "$STR_ACE_RealisticNames_hgun_ACPC2_Name"; }; class hgun_Pistol_heavy_01_F: Pistol_Base_F { - displayName = "$STR_AGM_RealisticNames_hgun_Pistol_heavy_01_Name"; + displayName = "$STR_ACE_RealisticNames_hgun_Pistol_heavy_01_Name"; }; class hgun_Pistol_heavy_02_F: Pistol_Base_F { - displayName = "$STR_AGM_RealisticNames_hgun_Pistol_heavy_02_Name"; + displayName = "$STR_ACE_RealisticNames_hgun_Pistol_heavy_02_Name"; }; class hgun_Pistol_Signal_F: Pistol_Base_F { - displayName = "$STR_AGM_RealisticNames_hgun_Pistol_Signal_Name"; + displayName = "$STR_ACE_RealisticNames_hgun_Pistol_Signal_Name"; }; // machine guns class Rifle_Long_Base_F; class LMG_Mk200_F: Rifle_Long_Base_F { - displayName = "$STR_AGM_RealisticNames_LMG_Mk200_Name"; + displayName = "$STR_ACE_RealisticNames_LMG_Mk200_Name"; }; class LMG_Zafir_F: Rifle_Long_Base_F { - displayName = "$STR_AGM_RealisticNames_LMG_Zafir_Name"; + displayName = "$STR_ACE_RealisticNames_LMG_Zafir_Name"; }; // sniper rifles class EBR_base_F; class srifle_EBR_F: EBR_base_F { - displayName = "$STR_AGM_RealisticNames_srifle_EBR_Name"; + displayName = "$STR_ACE_RealisticNames_srifle_EBR_Name"; }; class LRR_base_F; class srifle_LRR_F: LRR_base_F { - displayName = "$STR_AGM_RealisticNames_srifle_LRR_Name"; + displayName = "$STR_ACE_RealisticNames_srifle_LRR_Name"; }; class srifle_LRR_camo_F: srifle_LRR_F { - displayName = "$STR_AGM_RealisticNames_srifle_LRR_camo_Name"; + displayName = "$STR_ACE_RealisticNames_srifle_LRR_camo_Name"; }; class GM6_base_F; class srifle_GM6_F: GM6_base_F { - displayName = "$STR_AGM_RealisticNames_srifle_GM6_Name"; + displayName = "$STR_ACE_RealisticNames_srifle_GM6_Name"; }; class srifle_GM6_camo_F: srifle_GM6_F { - displayName = "$STR_AGM_RealisticNames_srifle_GM6_camo_Name"; + displayName = "$STR_ACE_RealisticNames_srifle_GM6_camo_Name"; }; class DMR_01_base_F; class srifle_DMR_01_F: DMR_01_base_F { - displayName = "$STR_AGM_RealisticNames_srifle_DMR_01_Name"; + displayName = "$STR_ACE_RealisticNames_srifle_DMR_01_Name"; }; // launchers class Launcher_Base_F; class launch_RPG32_F: Launcher_Base_F { - displayName = "$STR_AGM_RealisticNames_launch_RPG32_Name"; + displayName = "$STR_ACE_RealisticNames_launch_RPG32_Name"; }; class launch_Titan_base: Launcher_Base_F { - displayName = "$STR_AGM_RealisticNames_launch_Titan_Name"; + displayName = "$STR_ACE_RealisticNames_launch_Titan_Name"; }; class launch_Titan_short_base: launch_Titan_base { - displayName = "$STR_AGM_RealisticNames_launch_Titan_short_Name"; + displayName = "$STR_ACE_RealisticNames_launch_Titan_short_Name"; }; class launch_NLAW_F: Launcher_Base_F { - displayName = "$STR_AGM_RealisticNames_launch_NLAW_Name"; + displayName = "$STR_ACE_RealisticNames_launch_NLAW_Name"; }; // vehicle weapons @@ -985,11 +985,11 @@ class CfgWeapons { displayName = "PKT"; }; - class AGM_LMG_coax_MBT_01: LMG_coax { + class ACE_LMG_coax_MBT_01: LMG_coax { displayName = "MAG 58"; }; - class AGM_LMG_coax_APC_Tracked_03: LMG_coax { + class ACE_LMG_coax_APC_Tracked_03: LMG_coax { displayName = "L94A1"; }; @@ -1389,61 +1389,61 @@ class CfgMagazines { class CA_Magazine; // http://en.wikipedia.org/wiki/M15_mine class ATMine_Range_Mag: CA_Magazine { - displayName = "$STR_AGM_RealisticNames_ATMine_Name"; + displayName = "$STR_ACE_RealisticNames_ATMine_Name"; }; // http://en.wikipedia.org/wiki/VS-50_mine class APERSMine_Range_Mag: ATMine_Range_Mag { - displayName = "$STR_AGM_RealisticNames_APERSMine_Name"; + displayName = "$STR_ACE_RealisticNames_APERSMine_Name"; }; // https://www.buymilsurp.com/us-m26-antipersonnel-bounding-mine-p-5419.html class APERSBoundingMine_Range_Mag: ATMine_Range_Mag { - displayName = "$STR_AGM_RealisticNames_APERSBoundingMine_Name"; + displayName = "$STR_ACE_RealisticNames_APERSBoundingMine_Name"; }; // http://en.wikipedia.org/wiki/PMR-3_mine class APERSTripMine_Wire_Mag: ATMine_Range_Mag { - displayName = "$STR_AGM_RealisticNames_APERSTripwireMine_Name"; + displayName = "$STR_ACE_RealisticNames_APERSTripwireMine_Name"; }; // the following ones can be found here: http://www.dtic.mil/dtic/tr/fulltext/u2/a567897.pdf class SLAMDirectionalMine_Wire_Mag: ATMine_Range_Mag { - displayName = "$STR_AGM_RealisticNames_SLAM_Name"; + displayName = "$STR_ACE_RealisticNames_SLAM_Name"; }; // claymore class ClaymoreDirectionalMine_Remote_Mag: CA_Magazine { - displayName = "$STR_AGM_RealisticNames_Claymore_Name"; + displayName = "$STR_ACE_RealisticNames_Claymore_Name"; }; // satchels class SatchelCharge_Remote_Mag: CA_Magazine { - displayName = "$STR_AGM_RealisticNames_SatchelCharge_Name"; + displayName = "$STR_ACE_RealisticNames_SatchelCharge_Name"; }; class DemoCharge_Remote_Mag: SatchelCharge_Remote_Mag { - displayName = "$STR_AGM_RealisticNames_DemoCharge_Name"; + displayName = "$STR_ACE_RealisticNames_DemoCharge_Name"; }; // hand grenades class HandGrenade: CA_Magazine { - displayName = "$STR_AGM_RealisticNames_HandGrenade_Name"; + displayName = "$STR_ACE_RealisticNames_HandGrenade_Name"; }; class SmokeShell: HandGrenade { - displayName = "$STR_AGM_RealisticNames_SmokeShell_Name"; + displayName = "$STR_ACE_RealisticNames_SmokeShell_Name"; }; class SmokeShellBlue: SmokeShell { - displayName = "$STR_AGM_RealisticNames_SmokeShellBlue_Name"; + displayName = "$STR_ACE_RealisticNames_SmokeShellBlue_Name"; }; class SmokeShellGreen: SmokeShell { - displayName = "$STR_AGM_RealisticNames_SmokeShellGreen_Name"; + displayName = "$STR_ACE_RealisticNames_SmokeShellGreen_Name"; }; class SmokeShellOrange: SmokeShell { - displayName = "$STR_AGM_RealisticNames_SmokeShellOrange_Name"; + displayName = "$STR_ACE_RealisticNames_SmokeShellOrange_Name"; }; class SmokeShellPurple: SmokeShell { - displayName = "$STR_AGM_RealisticNames_SmokeShellPurple_Name"; + displayName = "$STR_ACE_RealisticNames_SmokeShellPurple_Name"; }; class SmokeShellRed: SmokeShell { - displayName = "$STR_AGM_RealisticNames_SmokeShellRed_Name"; + displayName = "$STR_ACE_RealisticNames_SmokeShellRed_Name"; }; class SmokeShellYellow: SmokeShell { - displayName = "$STR_AGM_RealisticNames_SmokeShellYellow_Name"; + displayName = "$STR_ACE_RealisticNames_SmokeShellYellow_Name"; }; }; diff --git a/addons/realisticnames/stringtable.xml b/addons/realisticnames/stringtable.xml index 821a975b10..ed70a3a00d 100644 --- a/addons/realisticnames/stringtable.xml +++ b/addons/realisticnames/stringtable.xml @@ -1,8 +1,8 @@  - + - + XM312 XM312 XM312 @@ -14,7 +14,7 @@ XM312 XM312A - + XM312A XM312A XM312 @@ -26,7 +26,7 @@ XM312A XM312A - + XM312 (High) XM312 (Hoch) XM312 (Alto) @@ -38,7 +38,7 @@ XM312 (Magasított) XM312 (Alta) - + XM307 XM307 XM307 @@ -50,7 +50,7 @@ XM307 XM307 - + XM307A XM307A XM307A @@ -62,7 +62,7 @@ XM307A XM307A - + XM307 (High) XM307 (Hoch) XM307 (Alto) @@ -74,7 +74,7 @@ XM307 (Magasított) XM307 (Alta) - + Mini-Spike Launcher (AT) Mini-Spike Lenkflugkörper (AT) Lanzador Mini-Spike (AT) @@ -86,7 +86,7 @@ Mini-Spike rakétarendszer (páncéltörő) Lanciatore Mini-Spike (AC) - + Mini-Spike Launcher (AA) Mini-Spike Lenkflugkörper (AA) Lanzador Mini-Spike (AA) @@ -98,7 +98,7 @@ Mini-Spike rakétarendszer (légvédelmi) Lanciatore Mini-Spike (AA) - + YABHON-R3 YABHON-R3 YABHON-R3 @@ -110,7 +110,7 @@ YABHON-R3 YABHON-R3 - + YABHON-R3 (CAS) YABHON-R3 (Luftnahunterstützung) YABHON-R3 (CAS) @@ -118,7 +118,7 @@ YABHON-R3 (CAS) YABHON-R3 (штурмовик) - + M-ATV M-ATV M-ATV @@ -130,7 +130,7 @@ M-ATV M-ATV - + M-ATV (HMG) M-ATV (SMG) M-ATV (HMG) @@ -142,7 +142,7 @@ M-ATV (HMG) M-ATV (HMG) - + M-ATV (GMG) M-ATV (GMW) M-ATV (GMG) @@ -154,7 +154,7 @@ M-ATV (GMG) M-ATV (GMG) - + Merkava Mk IV M Merkava Mk IV M Merkava Mk IV M @@ -166,7 +166,7 @@ Merkava Mk IV M Merkava Mk IV M - + Merkava Mk IV LIC Merkava Mk IV LIC Merkava Mk IV LIC @@ -178,7 +178,7 @@ Merkava Mk IV LIC Merkava Mk IV LIC - + Sholef Sholef Sholef @@ -190,7 +190,7 @@ Sholef Sholef - + Seara Seara Seara @@ -202,7 +202,7 @@ Seara Seara - + Namer Namer Namer @@ -214,7 +214,7 @@ Namer Namer - + Bardelas Bardelas Bardelas @@ -226,7 +226,7 @@ Bardelas Bardelas - + Patria AMV Patria AMV Patria AMV @@ -238,7 +238,7 @@ Patria AMV Patria AMV - + Nemmera Nemmera Nemmera @@ -250,7 +250,7 @@ Nemmera Nemmera - + HEMTT Transport HEMTT Transport HEMTT de transporte @@ -262,7 +262,7 @@ HEMTT szállítójármű HEMTT da trasporto - + HEMTT Transport (covered) HEMTT Transport (bedeckt) HEMTT de transporte (cubierto) @@ -274,7 +274,7 @@ HEMTT szállítójármű (ponyvás) HEMTT da trasporto (coperto) - + HEMTT HEMTT HEMTT @@ -286,7 +286,7 @@ HEMTT HEMTT - + HEMTT Container HEMTT Container HEMTT de contenedor @@ -298,7 +298,7 @@ HEMTT Konténer HEMTT portacontainer - + HEMTT Medical HEMTT Sanitäter HEMTT médico @@ -310,7 +310,7 @@ HEMTT (egészségügyi) HEMTT Medico - + HEMTT Ammo HEMTT Munition HEMTT de munición @@ -322,7 +322,7 @@ HEMTT (lőszerszállító) HEMTT di rifornimento munizioni - + HEMTT Fuel HEMTT Treibstoff HEMTT de combustible @@ -334,7 +334,7 @@ HEMTT (üzemanyag-szállító) HEMTT di rifornimento carburante - + HEMTT Repair HEMTT Instandsetzung HEMTT de reparación @@ -346,7 +346,7 @@ HEMTT (szerelő-jármű) HEMTT Riparatore - + Fennek Fennek Fennek @@ -358,7 +358,7 @@ Fennek Fennek - + Fennek (HMG) Fennek (SMG) Fennek (HMG) @@ -370,7 +370,7 @@ Fennek (HMG) Fennek (HMG) - + Fennek (GMG) Fennek (GMW) Fennek (GMG) @@ -382,7 +382,7 @@ Fennek (GMG) Fennek (GMG) - + Leopard 2SG Leopard 2SG Leopard 2SG @@ -394,7 +394,7 @@ Leopard 2SG Leopard 2SG - + FV510 Warrior FV510 Warrior FV510 Warrior @@ -406,7 +406,7 @@ FV510 Warrior FV510 Warrior - + Pandur II Pandur II Pandur II @@ -418,7 +418,7 @@ Pandur II Pandur II - + KamAZ Transport KamAZ Transport KamAZ de transporte @@ -430,7 +430,7 @@ KamAZ szállítójármű KamAZ da trasporto - + KamAZ Transport (covered) KamAZ Transport (bedeckt) KamAZ de transporte (cubierto) @@ -442,7 +442,7 @@ KamAZ szállítójármű (ponyvás) KamAZ da trasporto (coperto) - + KamAZ Ammo KamAZ Munition KamAZ de munición @@ -454,7 +454,7 @@ KamAZ (lőszerszállító) KamAZ di rifornimento munizioni - + KamAZ Fuel KamAZ Treibstoff KamAZ de combustible @@ -466,7 +466,7 @@ KamAZ (üzemanyag-szállító) KamAZ di rifornimento carburante - + KamAZ Repair KamAZ Instandsetzung KamAZ de reparación @@ -478,7 +478,7 @@ KamAZ (szerelő-jármű) KamAZ riparatore - + KamAZ Medical KamAZ Sanitäter KamAZ médico @@ -490,7 +490,7 @@ KamAZ (egészségügyi) KamAZ Medico - + Punisher Punisher Punisher @@ -502,7 +502,7 @@ Punisher Punisher - + Punisher (HMG) Punisher (SMG) Punisher (HMG) @@ -514,7 +514,7 @@ Punisher (HMG) Punisher (HMG) - + Punisher (GMG) Punisher (GMW) Punisher (GMG) @@ -526,7 +526,7 @@ Punisher (GMG) Punisher (GMG) - + T100 Black Eagle T100 Black Eagle T100 Black Eagle @@ -538,7 +538,7 @@ T100 Black Eagle T100 Black Eagle - + 2S9 Sochor 2S9 Sochor 2S9 Sochor @@ -550,7 +550,7 @@ 2S9 Sochor 2S9 Sochor - + BM-2T Stalker BM-2T Stalker BM-2T Stalker @@ -562,7 +562,7 @@ BM-2T Stalker BM-2T Stalker - + ZSU-35 Tigris ZSU-35 Tigris ZSU-35 Tigris @@ -574,7 +574,7 @@ ZSU-35 Tigris ZSU-35 Tigris - + Otokar ARMA Otokar ARMA Otokar ARMA @@ -586,7 +586,7 @@ Otokar ARMA Otokar ARMA - + Typhoon Transport Typhoon Transport Typhoon de transporte @@ -598,7 +598,7 @@ Typhoon szállítójármű Typhoon da trasporto - + Typhoon Transport (covered) Typhoon Transport (bedeckt) Typhoon de transporte (cubierto) @@ -610,7 +610,7 @@ Typhoon szállítójármű (ponyvás) Typhoon da trasporto (coperto) - + Typhoon Device Typhoon Gerät Typhoon de dispositivo @@ -622,7 +622,7 @@ Typhoon (szerkezet) Typhoon per dispositivo - + Typhoon Ammo Typhoon Munition Typhoon de munición @@ -634,7 +634,7 @@ Typhoon (lőszerszállító) Typhoon di rifornimento munizioni - + Typhoon Fuel Typhoon Treibstoff Typhoon de combustible @@ -646,7 +646,7 @@ Typhoon (üzemanyag-szállító) Typhoon di rifornimento carburante - + Typhoon Repair Typhoon Instandsetzung Typhoon de reparación @@ -658,7 +658,7 @@ Typhoon (szerelő-jármű) Typhoon riparatore - + Typhoon Medical Typhoon Sanitäter Typhoon médico @@ -670,7 +670,7 @@ Typhoon (egészségügyi) Typhoon medico - + RAH-66 Comanche RAH-66 Comanche RAH-66 Comanche @@ -682,7 +682,7 @@ RAH-66 Comanche RAH-66 Comanche - + MH-6 Little Bird MH-6 Little Bird MH-6 Litte Bird @@ -694,7 +694,7 @@ MH-6 Little Bird MH-6 Little Bird - + AH-6 Little Bird AH-6 Little Bird AH-6 Little Bird @@ -706,7 +706,7 @@ AH-6 Little Bird AH-6 Little Bird - + CH-47I Chinook CH-47I Chinook CH-47I Chinook @@ -718,7 +718,7 @@ CH-47I Chinook CH-47I Chinook - + CH-47I Chinook (unarmed) CH-47I Chinook (unbewaffnet) CH-47I Chinnok (Desarmado) @@ -726,7 +726,7 @@ CH-47I Chinook (невооруженный) CH-47I Chinook (Neozbrojený) - + A-10D Thunderbolt II A-10D Thunderbolt II A-10D Thunderbolt II @@ -738,7 +738,7 @@ A-10D Thunderbolt II A-10D Thunderbolt II - + AW159 Wildcat AW159 Wildcat AW159 Wildcat @@ -750,7 +750,7 @@ AW159 Wildcat AW159 Wildcat - + AW159 Wildcat (unarmed) AW159 Wildcat (unbewaffnet) AW159 Wildcat (desarmado) @@ -762,7 +762,7 @@ AW159 Wildcat (fegyvertelen) AW159 Wildcat (disarmato) - + AW101 Merlin AW101 Merlin AW101 Merlin @@ -774,7 +774,7 @@ AW101 Merlin AW101 Merlin - + L-159 ALCA (CAS) L-159 ALCA (CAS) L-159 ALCA (CAS) @@ -786,7 +786,7 @@ L-159 ALCA (CAS) L-159 ALCA (CAS) - + L-159 ALCA (AA) L-159 ALCA (AA) L-159 ALCA (AA) @@ -798,7 +798,7 @@ L-159 ALCA (AA) L-159 ALCA (AA) - + Ka-60 Kasatka Ka-60 Kasatka Ka-60 Kasatka @@ -810,7 +810,7 @@ Ka-60 Kasatka Ka-60 Kasatka - + Ka-60 Kasatka (unarmed) Ka-60 Kasatka (unbewaffnet) Ka-60 Kasatka (desarmado) @@ -822,7 +822,7 @@ Ka-60 Kasatka (fegyvertelen) Ka-60 Kasatka (disarmato) - + Yak-130 Yak-130 Yak-130 @@ -834,7 +834,7 @@ Jak-130 Yak-130 - + MD 500 MD 500 MD 500 @@ -846,7 +846,7 @@ MD 500 MD 500 - + M4A1 SLAM M4A1 SLAM M4A1 SLAM @@ -858,7 +858,7 @@ M4A1 SLAM M4A1 SLAM - + M18A1 Claymore M18A1 Claymore M18A1 Claymore @@ -870,7 +870,7 @@ M18A1 Claymore akna M18A1 Claymore Mina antiuomo - + M183 Demolition Charge Assembly M183 Geballte Sprengladung Conjunto de carga de demolición M183 @@ -882,7 +882,7 @@ M183 romboló töltet M183 Demolition Charge Assembly - + M112 Demolition Block M112 Sprengladung Bloque de demolición M112 @@ -894,7 +894,7 @@ M112 romboló töltet M112 Demolition Block - + M67 Fragmentation Grenade M67 Splittergranate Granada de fragmentación M67 @@ -906,7 +906,7 @@ M67 repeszgránát M67 Granata a frammentazione - + M83 Smoke Grenade (White) M83 Rauchgranate (Weiss) Granada de humo M83 (Blanco) @@ -918,7 +918,7 @@ M83 füstgránát (Fehér) M83 Granata fumogena (Bianco) - + M18 Smoke Grenade (Blue) M18 Rauchgranate (Blau) Granada de humo M18 (Azul) @@ -930,7 +930,7 @@ M18 füstgránát (Kék) M18 Granata fumogena (Blu) - + M18 Smoke Grenade (Green) M18 Rauchgranate (Grün) Granada de humo M18 (Verde) @@ -942,7 +942,7 @@ M18 füstgránát (Zöld) M18 Granata fumogena (Verde) - + M18 Smoke Grenade (Orange) M18 Rauchgranate (Orange) Granada de humo M18 (Naranja) @@ -954,7 +954,7 @@ M18 füstgránát (Narancssárga) M18 Granata fumogena (Arancione) - + M18 Smoke Grenade (Purple) M18 Rauchgranate (Violett) Granada de humo M18 (Púrpura) @@ -966,7 +966,7 @@ M18 füstgránát (Lila) M18 Granata fumogena (Viola) - + M18 Smoke Grenade (Red) M18 Rauchgranate (Rot) Granada de humo M18 (Rojo) @@ -978,7 +978,7 @@ M18 füstgránát (Piros) M18 Granata fumogena (Rosso) - + M18 Smoke Grenade (Yellow) M18 Rauchgranate (Gelb) Granada de humo M18 (Amarillo) @@ -990,7 +990,7 @@ M18 füstgránát (Sárga) M18 Granata fumogena (Giallo) - + M15 Anti-Tank Mine M15 Panzerabwehrmine Mina antitanque M15 @@ -1002,7 +1002,7 @@ M15 harckocsiakna M15 Mine anticarro - + VS-50 Anti-Personnel Mine VS-50 Antipersonenmine Mina antipersona VS-50 @@ -1014,7 +1014,7 @@ VS-50 gyalogsági taposóakna VS-50 Mine antiuomo - + M26 Anti-Personnel Bounding Mine M26 Antipersonensprungmine Mina antipersona M26 @@ -1026,7 +1026,7 @@ M26 gyalogsági ugróakna M26 Mine saltanti antiuomo - + PMR-3 Anti-Personnel Tripwire Mine PMR-3 Antipersonenstolperdrahtmine Mina antipersona de alambre PMR-3 @@ -1038,179 +1038,179 @@ PMR-3 botlódrótos gyalogsági akna PMR-3 Mine antiuomo - + P99 P99 - + MP-443 Grach MP-443 Grach - + ACP-C2 ACP-C2 - + FNX-45 Tactical FNX-45 Tactical - + Chiappa Rhino 60DS Chiappa Rhino 60DS - + Taurus Judge Taurus Judge - + NLAW NLAW - + RPG-32 RPG-32 - + Mini-Spike (AA) Mini-Spike (AA) - + Mini-Spike (AT) Mini-Spike (AT) - + MX MX - + MX (Black) MX (Black) - + MXC MXC - + MXC (Black) MXC (Black) - + MX 3GL MX 3GL - + MX 3GL (Black) MX 3GL (Black) - + MX LSW MX LSW - + MX LSW (Black) MX LSW (Black) - + MXM MXM - + MXM (Black) MXM (Black) - + KT2002 Katiba KT2002 Katiba - + KT2002C Katiba KT2002C Katiba - + KT2002 Katiba KGL KT2002 Katiba KGL - + F2000 (Camo) F2000 (Camo) - + F2000 F2000 - + F2000 Tactical (Camo) F2000 Tactical (Camo) - + F2000 Tactical F2000 Tactical - + F2000 EGLM (Camo) F2000 EGLM (Camo) - + F2000 EGLM F2000 EGLM - + TAR-21 TAR-21 - + CTAR-21 CTAR-21 - + TAR-21 EGLM TAR-21 EGLM - + Vector SMG Vector SMG - + Scorpion Evo 3 A1 Scorpion Evo 3 A1 - + CPW CPW - + RFB SDAR RFB SDAR - + Stoner 99 LMG Stoner 99 LMG - + Negev NG7 Negev NG7 - + Mk14 Mod 1 EBR Mk14 Mod 1 EBR - + GM6 Lynx GM6 Lynx - + GM6 Lynx (Camo) GM6 Lynx (Camo) - + M200 Intervention M200 Intervention - + M200 Intervention (Camo) M200 Intervention (Camo) - + VS-121 VS-121 diff --git a/addons/thermals/config.cpp b/addons/thermals/config.cpp index 2b41d3d3a9..fdb00bb0f9 100644 --- a/addons/thermals/config.cpp +++ b/addons/thermals/config.cpp @@ -5,7 +5,7 @@ class CfgPatches { units[] = {}; weapons[] = {}; requiredVersion = 0.60; - requiredAddons[] = {AGM_Core}; + requiredAddons[] = {ace_core}; version = "0.95"; versionStr = "0.95"; versionAr[] = {0,95,0}; From e4bec34857e101bef783560c21f9df8b0f2b2d0e Mon Sep 17 00:00:00 2001 From: Nou Date: Sun, 11 Jan 2015 17:28:27 -0800 Subject: [PATCH 17/18] Removing ignore for $PBOPREFIX$ until we get a build script to dynamically generate them. --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index fa6a8122af..a067f29817 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,2 @@ *.pbo -$PBOPREFIX$ + From b3e3a7b926fa5234505ca393ad1490bb4618f13d Mon Sep 17 00:00:00 2001 From: Nou Date: Sun, 11 Jan 2015 17:28:39 -0800 Subject: [PATCH 18/18] PBOPREFIX fixes. --- addons/ai/$PBOPREFIX$ | 1 + addons/interaction/$PBOPREFIX$ | 1 + addons/laser/$PBOPREFIX$ | 2 +- addons/missileguidance/$PBOPREFIX$ | 2 +- addons/ragdolls/$PBOPREFIX$ | 1 + addons/realisticnames/$PBOPREFIX$ | 1 + addons/thermals/$PBOPREFIX$ | 1 + addons/wep_dragon/$PBOPREFIX$ | 2 +- addons/wep_javelin/$PBOPREFIX$ | 2 +- 9 files changed, 9 insertions(+), 4 deletions(-) create mode 100644 addons/ai/$PBOPREFIX$ create mode 100644 addons/interaction/$PBOPREFIX$ create mode 100644 addons/ragdolls/$PBOPREFIX$ create mode 100644 addons/realisticnames/$PBOPREFIX$ create mode 100644 addons/thermals/$PBOPREFIX$ diff --git a/addons/ai/$PBOPREFIX$ b/addons/ai/$PBOPREFIX$ new file mode 100644 index 0000000000..366bfa83de --- /dev/null +++ b/addons/ai/$PBOPREFIX$ @@ -0,0 +1 @@ +z\ace\addons\ai \ No newline at end of file diff --git a/addons/interaction/$PBOPREFIX$ b/addons/interaction/$PBOPREFIX$ new file mode 100644 index 0000000000..07f38b5a37 --- /dev/null +++ b/addons/interaction/$PBOPREFIX$ @@ -0,0 +1 @@ +z\ace\addons\interaction \ No newline at end of file diff --git a/addons/laser/$PBOPREFIX$ b/addons/laser/$PBOPREFIX$ index 1e4e48a4ca..43676b45dc 100644 --- a/addons/laser/$PBOPREFIX$ +++ b/addons/laser/$PBOPREFIX$ @@ -1 +1 @@ -z\ace\Addons\laser \ No newline at end of file +z\ace\addons\laser \ No newline at end of file diff --git a/addons/missileguidance/$PBOPREFIX$ b/addons/missileguidance/$PBOPREFIX$ index a2a17e3615..4e5e9ccc79 100644 --- a/addons/missileguidance/$PBOPREFIX$ +++ b/addons/missileguidance/$PBOPREFIX$ @@ -1 +1 @@ -z\ace\Addons\missileguidance \ No newline at end of file +z\ace\addons\missileguidance \ No newline at end of file diff --git a/addons/ragdolls/$PBOPREFIX$ b/addons/ragdolls/$PBOPREFIX$ new file mode 100644 index 0000000000..4c2fcd3ef9 --- /dev/null +++ b/addons/ragdolls/$PBOPREFIX$ @@ -0,0 +1 @@ +z\ace\addons\ragdolls \ No newline at end of file diff --git a/addons/realisticnames/$PBOPREFIX$ b/addons/realisticnames/$PBOPREFIX$ new file mode 100644 index 0000000000..751ffff344 --- /dev/null +++ b/addons/realisticnames/$PBOPREFIX$ @@ -0,0 +1 @@ +z\ace\addons\realisticnames \ No newline at end of file diff --git a/addons/thermals/$PBOPREFIX$ b/addons/thermals/$PBOPREFIX$ new file mode 100644 index 0000000000..948bb1dd49 --- /dev/null +++ b/addons/thermals/$PBOPREFIX$ @@ -0,0 +1 @@ +z\ace\addons\thermals \ No newline at end of file diff --git a/addons/wep_dragon/$PBOPREFIX$ b/addons/wep_dragon/$PBOPREFIX$ index 11c855b566..4275fbd056 100644 --- a/addons/wep_dragon/$PBOPREFIX$ +++ b/addons/wep_dragon/$PBOPREFIX$ @@ -1 +1 @@ -z\ace\Addons\wep_dragon \ No newline at end of file +z\ace\addons\wep_dragon \ No newline at end of file diff --git a/addons/wep_javelin/$PBOPREFIX$ b/addons/wep_javelin/$PBOPREFIX$ index 9c5e79f2a1..311c0dad43 100644 --- a/addons/wep_javelin/$PBOPREFIX$ +++ b/addons/wep_javelin/$PBOPREFIX$ @@ -1 +1 @@ -z\ace\Addons\wep_javelin \ No newline at end of file +z\ace\addons\wep_javelin \ No newline at end of file