diff --git a/addons/nametags/CfgFactionClasses.hpp b/addons/nametags/CfgFactionClasses.hpp new file mode 100644 index 00000000000..0e41b5823fe --- /dev/null +++ b/addons/nametags/CfgFactionClasses.hpp @@ -0,0 +1,79 @@ +class CfgFactionClasses { + class OPF_F { + GVAR(rankIcons)[] = { + QPATHTOF(UI\icons_russia\private_gs.paa), + QPATHTOF(UI\icons_russia\corporal_gs.paa), + QPATHTOF(UI\icons_russia\sergeant_gs.paa), + QPATHTOF(UI\icons_russia\lieutenant_gs.paa), + QPATHTOF(UI\icons_russia\captain_gs.paa), + QPATHTOF(UI\icons_russia\major_gs.paa), + QPATHTOF(UI\icons_russia\colonel_gs.paa) + }; + }; + class OPF_G_F { + GVAR(rankIcons)[] = { + QPATHTOF(UI\icons_spain\private_gs.paa), + QPATHTOF(UI\icons_spain\corporal_gs.paa), + QPATHTOF(UI\icons_spain\sergeant_gs.paa), + QPATHTOF(UI\icons_spain\lieutenant_gs.paa), + QPATHTOF(UI\icons_spain\captain_gs.paa), + QPATHTOF(UI\icons_spain\major_gs.paa), + QPATHTOF(UI\icons_spain\colonel_gs.paa) + }; + }; + class OPF_T_F { + GVAR(rankIcons)[] = { + QPATHTOF(UI\icons_russia\private_gs.paa), + QPATHTOF(UI\icons_russia\corporal_gs.paa), + QPATHTOF(UI\icons_russia\sergeant_gs.paa), + QPATHTOF(UI\icons_russia\lieutenant_gs.paa), + QPATHTOF(UI\icons_russia\captain_gs.paa), + QPATHTOF(UI\icons_russia\major_gs.paa), + QPATHTOF(UI\icons_russia\colonel_gs.paa) + }; + }; + class OPF_V_F { + GVAR(rankIcons)[] = { + QPATHTOF(UI\icons_russia\private_gs.paa), + QPATHTOF(UI\icons_russia\corporal_gs.paa), + QPATHTOF(UI\icons_russia\sergeant_gs.paa), + QPATHTOF(UI\icons_russia\lieutenant_gs.paa), + QPATHTOF(UI\icons_russia\captain_gs.paa), + QPATHTOF(UI\icons_russia\major_gs.paa), + QPATHTOF(UI\icons_russia\colonel_gs.paa) + }; + }; + class IND_C_F { + GVAR(rankIcons)[] = { + QPATHTOF(UI\icons_russia\private_gs.paa), + QPATHTOF(UI\icons_russia\corporal_gs.paa), + QPATHTOF(UI\icons_russia\sergeant_gs.paa), + QPATHTOF(UI\icons_russia\lieutenant_gs.paa), + QPATHTOF(UI\icons_russia\captain_gs.paa), + QPATHTOF(UI\icons_russia\major_gs.paa), + QPATHTOF(UI\icons_russia\colonel_gs.paa) + }; + }; + class IND_F { + GVAR(rankIcons)[] = { + QPATHTOF(UI\icons_germany\private_gs.paa), + QPATHTOF(UI\icons_germany\corporal_gs.paa), + QPATHTOF(UI\icons_germany\sergeant_gs.paa), + QPATHTOF(UI\icons_germany\lieutenant_gs.paa), + QPATHTOF(UI\icons_germany\captain_gs.paa), + QPATHTOF(UI\icons_germany\major_gs.paa), + QPATHTOF(UI\icons_germany\colonel_gs.paa) + }; + }; + class IND_G_F { + GVAR(rankIcons)[] = { + QPATHTOF(UI\icons_spain\private_gs.paa), + QPATHTOF(UI\icons_spain\corporal_gs.paa), + QPATHTOF(UI\icons_spain\sergeant_gs.paa), + QPATHTOF(UI\icons_spain\lieutenant_gs.paa), + QPATHTOF(UI\icons_spain\captain_gs.paa), + QPATHTOF(UI\icons_spain\major_gs.paa), + QPATHTOF(UI\icons_spain\colonel_gs.paa) + }; + }; +}; diff --git a/addons/nametags/UI/icons_france/captain_gs.paa b/addons/nametags/UI/icons_france/captain_gs.paa new file mode 100644 index 00000000000..b9cceddc05e Binary files /dev/null and b/addons/nametags/UI/icons_france/captain_gs.paa differ diff --git a/addons/nametags/UI/icons_france/colonel_gs.paa b/addons/nametags/UI/icons_france/colonel_gs.paa new file mode 100644 index 00000000000..b0119b21d5c Binary files /dev/null and b/addons/nametags/UI/icons_france/colonel_gs.paa differ diff --git a/addons/nametags/UI/icons_france/corporal_gs.paa b/addons/nametags/UI/icons_france/corporal_gs.paa new file mode 100644 index 00000000000..b6f5b6a2ca0 Binary files /dev/null and b/addons/nametags/UI/icons_france/corporal_gs.paa differ diff --git a/addons/nametags/UI/icons_france/lieutenant_gs.paa b/addons/nametags/UI/icons_france/lieutenant_gs.paa new file mode 100644 index 00000000000..7792c8e87a8 Binary files /dev/null and b/addons/nametags/UI/icons_france/lieutenant_gs.paa differ diff --git a/addons/nametags/UI/icons_france/major_gs.paa b/addons/nametags/UI/icons_france/major_gs.paa new file mode 100644 index 00000000000..b7b31a10f4c Binary files /dev/null and b/addons/nametags/UI/icons_france/major_gs.paa differ diff --git a/addons/nametags/UI/icons_france/private_gs.paa b/addons/nametags/UI/icons_france/private_gs.paa new file mode 100644 index 00000000000..abb2251112d Binary files /dev/null and b/addons/nametags/UI/icons_france/private_gs.paa differ diff --git a/addons/nametags/UI/icons_france/sergeant_gs.paa b/addons/nametags/UI/icons_france/sergeant_gs.paa new file mode 100644 index 00000000000..afa48f04c87 Binary files /dev/null and b/addons/nametags/UI/icons_france/sergeant_gs.paa differ diff --git a/addons/nametags/UI/icons_germany/captain_gs.paa b/addons/nametags/UI/icons_germany/captain_gs.paa new file mode 100644 index 00000000000..cf99a2cb402 Binary files /dev/null and b/addons/nametags/UI/icons_germany/captain_gs.paa differ diff --git a/addons/nametags/UI/icons_germany/colonel_gs.paa b/addons/nametags/UI/icons_germany/colonel_gs.paa new file mode 100644 index 00000000000..d46b75527c4 Binary files /dev/null and b/addons/nametags/UI/icons_germany/colonel_gs.paa differ diff --git a/addons/nametags/UI/icons_germany/corporal_gs.paa b/addons/nametags/UI/icons_germany/corporal_gs.paa new file mode 100644 index 00000000000..a02673671d4 Binary files /dev/null and b/addons/nametags/UI/icons_germany/corporal_gs.paa differ diff --git a/addons/nametags/UI/icons_germany/lieutenant_gs.paa b/addons/nametags/UI/icons_germany/lieutenant_gs.paa new file mode 100644 index 00000000000..9423487ede2 Binary files /dev/null and b/addons/nametags/UI/icons_germany/lieutenant_gs.paa differ diff --git a/addons/nametags/UI/icons_germany/major_gs.paa b/addons/nametags/UI/icons_germany/major_gs.paa new file mode 100644 index 00000000000..f6ef27fad27 Binary files /dev/null and b/addons/nametags/UI/icons_germany/major_gs.paa differ diff --git a/addons/nametags/UI/icons_germany/private_gs.paa b/addons/nametags/UI/icons_germany/private_gs.paa new file mode 100644 index 00000000000..abb2251112d Binary files /dev/null and b/addons/nametags/UI/icons_germany/private_gs.paa differ diff --git a/addons/nametags/UI/icons_germany/sergeant_gs.paa b/addons/nametags/UI/icons_germany/sergeant_gs.paa new file mode 100644 index 00000000000..b3b855ef56c Binary files /dev/null and b/addons/nametags/UI/icons_germany/sergeant_gs.paa differ diff --git a/addons/nametags/UI/icons_spain/captain_gs.paa b/addons/nametags/UI/icons_spain/captain_gs.paa new file mode 100644 index 00000000000..1d271583be5 Binary files /dev/null and b/addons/nametags/UI/icons_spain/captain_gs.paa differ diff --git a/addons/nametags/UI/icons_spain/colonel_gs.paa b/addons/nametags/UI/icons_spain/colonel_gs.paa new file mode 100644 index 00000000000..8f1e308d9de Binary files /dev/null and b/addons/nametags/UI/icons_spain/colonel_gs.paa differ diff --git a/addons/nametags/UI/icons_spain/corporal_gs.paa b/addons/nametags/UI/icons_spain/corporal_gs.paa new file mode 100644 index 00000000000..af3a9a7cbc2 Binary files /dev/null and b/addons/nametags/UI/icons_spain/corporal_gs.paa differ diff --git a/addons/nametags/UI/icons_spain/lieutenant_gs.paa b/addons/nametags/UI/icons_spain/lieutenant_gs.paa new file mode 100644 index 00000000000..5ce43d74376 Binary files /dev/null and b/addons/nametags/UI/icons_spain/lieutenant_gs.paa differ diff --git a/addons/nametags/UI/icons_spain/major_gs.paa b/addons/nametags/UI/icons_spain/major_gs.paa new file mode 100644 index 00000000000..a3844c8ce27 Binary files /dev/null and b/addons/nametags/UI/icons_spain/major_gs.paa differ diff --git a/addons/nametags/UI/icons_spain/private_gs.paa b/addons/nametags/UI/icons_spain/private_gs.paa new file mode 100644 index 00000000000..b486dd488c8 Binary files /dev/null and b/addons/nametags/UI/icons_spain/private_gs.paa differ diff --git a/addons/nametags/UI/icons_spain/sergeant_gs.paa b/addons/nametags/UI/icons_spain/sergeant_gs.paa new file mode 100644 index 00000000000..aa76186ddb2 Binary files /dev/null and b/addons/nametags/UI/icons_spain/sergeant_gs.paa differ diff --git a/addons/nametags/UI/icons_uk/captain_gs.paa b/addons/nametags/UI/icons_uk/captain_gs.paa new file mode 100644 index 00000000000..aeb89e3043f Binary files /dev/null and b/addons/nametags/UI/icons_uk/captain_gs.paa differ diff --git a/addons/nametags/UI/icons_uk/colonel_gs.paa b/addons/nametags/UI/icons_uk/colonel_gs.paa new file mode 100644 index 00000000000..b0a6e4851f5 Binary files /dev/null and b/addons/nametags/UI/icons_uk/colonel_gs.paa differ diff --git a/addons/nametags/UI/icons_uk/corporal_gs.paa b/addons/nametags/UI/icons_uk/corporal_gs.paa new file mode 100644 index 00000000000..2f664f8b3ac Binary files /dev/null and b/addons/nametags/UI/icons_uk/corporal_gs.paa differ diff --git a/addons/nametags/UI/icons_uk/lieutenant_gs.paa b/addons/nametags/UI/icons_uk/lieutenant_gs.paa new file mode 100644 index 00000000000..8b8f707f6ef Binary files /dev/null and b/addons/nametags/UI/icons_uk/lieutenant_gs.paa differ diff --git a/addons/nametags/UI/icons_uk/major_gs.paa b/addons/nametags/UI/icons_uk/major_gs.paa new file mode 100644 index 00000000000..562ce1599c8 Binary files /dev/null and b/addons/nametags/UI/icons_uk/major_gs.paa differ diff --git a/addons/nametags/UI/icons_uk/private_gs.paa b/addons/nametags/UI/icons_uk/private_gs.paa new file mode 100644 index 00000000000..abb2251112d Binary files /dev/null and b/addons/nametags/UI/icons_uk/private_gs.paa differ diff --git a/addons/nametags/UI/icons_uk/sergeant_gs.paa b/addons/nametags/UI/icons_uk/sergeant_gs.paa new file mode 100644 index 00000000000..e1041d08a93 Binary files /dev/null and b/addons/nametags/UI/icons_uk/sergeant_gs.paa differ diff --git a/addons/nametags/XEH_postInit.sqf b/addons/nametags/XEH_postInit.sqf index 2df7565cd6d..e73794600d5 100644 --- a/addons/nametags/XEH_postInit.sqf +++ b/addons/nametags/XEH_postInit.sqf @@ -45,3 +45,15 @@ GVAR(showNamesTime) = -10; // civilians don't use military ranks ["CIV_F", ["","","","","","",""]] call FUNC(setFactionRankIcons); + +// Change ranks based on faction for all factions that have an entry in CfgFactionClasses +if (missionNamespace getVariable [QGVAR(useFactionIcons), true]) then { + { + if (isArray (_x >> QGVAR(rankIcons))) then { + private _faction = configName _x; + if (!isNil {GVAR(factionRanks) getVariable _faction}) exitWith {}; // don't overwrite if already set + private _icons = getArray (_x >> QGVAR(rankIcons)); + [_faction, _icons] call FUNC(setFactionRankIcons); + }; + } forEach ("true" configClasses (configFile >> "CfgFactionClasses")); +}; diff --git a/addons/nametags/config.cpp b/addons/nametags/config.cpp index 0f491efce1c..2db10c7eeb2 100644 --- a/addons/nametags/config.cpp +++ b/addons/nametags/config.cpp @@ -16,6 +16,7 @@ class CfgPatches { #include "CfgEventHandlers.hpp" #include "ACE_Settings.hpp" +#include "CfgFactionClasses.hpp" #include "CfgVehicles.hpp" #include diff --git a/addons/nametags/functions/fnc_setFactionRankIcons.sqf b/addons/nametags/functions/fnc_setFactionRankIcons.sqf index fa7975d5e56..e60c295c7d3 100644 --- a/addons/nametags/functions/fnc_setFactionRankIcons.sqf +++ b/addons/nametags/functions/fnc_setFactionRankIcons.sqf @@ -29,6 +29,7 @@ if (isNil QGVAR(factionRanks)) then { }; params [["_faction", "", [""]], ["_icons", [], [[]], [7]]]; +TRACE_2("setFactionRankIcons",_faction,_icons); if !(_faction != "" && {_icons isEqualTypeAll ""}) exitWith {false};