Index: binaries/data/config/default.cfg
===================================================================
--- binaries/data/config/default.cfg
+++ binaries/data/config/default.cfg
@@ -372,6 +372,7 @@
rankabovestatusbar = true ; Show rank icons above status bars
experiencestatusbar = true ; Show an experience status bar above each selected unit
respoptooltipsort = 0 ; Sorting players in the resources and population tooltip by value (0 - no sort, -1 - ascending, 1 - descending)
+specificNamesPrimary = true ; Whether the specific names are show as default, as opposed to the generic names.
[gui.session.minimap]
blinkduration = 1.7 ; The blink duration while pinging
Index: binaries/data/mods/public/gui/common/tooltips.js
===================================================================
--- binaries/data/mods/public/gui/common/tooltips.js
+++ binaries/data/mods/public/gui/common/tooltips.js
@@ -3,11 +3,13 @@
"header": { "font": "sans-bold-13" },
"body": { "font": "sans-13" },
"comma": { "font": "sans-12" },
- "nameSpecificBig": { "font": "sans-bold-16" },
- "nameSpecificSmall": { "font": "sans-bold-12" },
- "nameGeneric": { "font": "sans-bold-16" }
+ "namePrimaryBig": { "font": "sans-bold-16" },
+ "namePrimarySmall": { "font": "sans-bold-12" },
+ "nameSecondary": { "font": "sans-bold-16" }
};
+var g_SpecificNamesPrimary = Engine.ConfigDB_GetValue("user", "gui.session.specificNamesPrimary") != "false";
+
var g_AttackTypes = {
"Melee": translate("Melee Attack:"),
"Ranged": translate("Ranged Attack:"),
@@ -750,25 +752,36 @@
if (template.name.specific == template.name.generic)
return template.name.specific;
- return sprintf(translate("%(specificName)s (%(genericName)s)"), {
- "specificName": template.name.specific,
- "genericName": template.name.generic
+ let primaryName = g_SpecificNamesPrimary ? template.name.specific : template.name.generic;
+ let secondaryName = g_SpecificNamesPrimary ? template.name.generic : template.name.specific;
+
+ return sprintf(translate("%(primaryName)s (%(secondaryName)s)"), {
+ "primaryName": primaryName,
+ "secondaryName": secondaryName
});
}
function getEntityNamesFormatted(template)
{
if (!template.name.specific)
- return setStringTags(template.name.generic, g_TooltipTextFormats.nameSpecificBig);
+ return setStringTags(template.name.generic, g_TooltipTextFormats.namePrimaryBig);
+
+ let primaryName = g_SpecificNamesPrimary ? template.name.specific : template.name.generic;
+ let secondaryName = g_SpecificNamesPrimary ? template.name.generic : template.name.specific;
+
+ if (primaryName == secondaryName)
+ return sprintf(translate("%(primaryName)s"), {
+ "primaryName":
+ setStringTags(primaryName[0], g_TooltipTextFormats.namePrimaryBig) +
+ setStringTags(primaryName.slice(1).toUpperCase(), g_TooltipTextFormats.namePrimarySmall)
+ });
// Translation: Example: "Epibátēs Athēnaîos [font="sans-bold-16"](Athenian Marine)[/font]"
- return sprintf(translate("%(specificName)s %(fontStart)s(%(genericName)s)%(fontEnd)s"), {
- "specificName":
- setStringTags(template.name.specific[0], g_TooltipTextFormats.nameSpecificBig) +
- setStringTags(template.name.specific.slice(1).toUpperCase(), g_TooltipTextFormats.nameSpecificSmall),
- "genericName": template.name.generic,
- "fontStart": '[font="' + g_TooltipTextFormats.nameGeneric.font + '"]',
- "fontEnd": '[/font]'
+ return sprintf(translate("%(primaryName)s (%(secondaryName)s)"), {
+ "primaryName":
+ setStringTags(primaryName[0], g_TooltipTextFormats.namePrimaryBig) +
+ setStringTags(primaryName.slice(1).toUpperCase(), g_TooltipTextFormats.namePrimarySmall),
+ "secondaryName": setStringTags(secondaryName, g_TooltipTextFormats.nameSecondary)
});
}
Index: binaries/data/mods/public/gui/options/options.json
===================================================================
--- binaries/data/mods/public/gui/options/options.json
+++ binaries/data/mods/public/gui/options/options.json
@@ -540,6 +540,13 @@
"tooltip": "Color of enemies when diplomacy colors are enabled.",
"config": "gui.session.diplomacycolors.enemy",
"callback": "updateDisplayedPlayerColors"
+ },
+ {
+ "type": "boolean",
+ "label": "Specific names primary",
+ "tooltip": "Whether specific names are shown as primary names.",
+ "config": "gui.session.specificNamesPrimary",
+ "callback": "updateDisplayedNames"
}
]
}
Index: binaries/data/mods/public/gui/reference/structree/draw.js
===================================================================
--- binaries/data/mods/public/gui/reference/structree/draw.js
+++ binaries/data/mods/public/gui/reference/structree/draw.js
@@ -57,7 +57,7 @@
compileTooltip(stru);
Engine.GetGUIObjectByName("phase["+i+"]_struct["+s+"]_name").caption =
- translate(stru.name.specific);
+ translate(g_SpecificNamesPrimary ? stru.name.specific : stru.name.generic);
setViewerOnPress("phase["+i+"]_struct["+s+"]_icon", stru.name.internal);
thisEle.hidden = false;
@@ -166,7 +166,7 @@
trainer = g_ParsedData.units[trainer];
Engine.GetGUIObjectByName("trainer["+t+"]_icon").sprite = "stretched:session/portraits/"+trainer.icon;
Engine.GetGUIObjectByName("trainer["+t+"]_icon").tooltip = compileTooltip(trainer);
- Engine.GetGUIObjectByName("trainer["+t+"]_name").caption = translate(trainer.name.specific);
+ Engine.GetGUIObjectByName("trainer["+t+"]_name").caption = translate(g_SpecificNamesPrimary ? trainer.name.specific : trainer.name.generic);
setViewerOnPress("trainer["+t+"]_icon", trainer.name.internal);
thisEle.hidden = false;
Index: binaries/data/mods/public/gui/reference/viewer/viewer.js
===================================================================
--- binaries/data/mods/public/gui/reference/viewer/viewer.js
+++ binaries/data/mods/public/gui/reference/viewer/viewer.js
@@ -30,11 +30,11 @@
];
/**
- * Override style so we can get a bigger specific name.
+ * Override style so we can get a bigger primary name.
*/
-g_TooltipTextFormats.nameSpecificBig.font = "sans-bold-20";
-g_TooltipTextFormats.nameSpecificSmall.font = "sans-bold-16";
-g_TooltipTextFormats.nameGeneric.font = "sans-bold-16";
+g_TooltipTextFormats.namePrimaryBig.font = "sans-bold-20";
+g_TooltipTextFormats.namePrimarySmall.font = "sans-bold-16";
+g_TooltipTextFormats.nameSecondary.font = "sans-bold-16";
/**
* Path to unit rank icons.
Index: binaries/data/mods/public/gui/session/selection_details.js
===================================================================
--- binaries/data/mods/public/gui/session/selection_details.js
+++ binaries/data/mods/public/gui/session/selection_details.js
@@ -63,9 +63,13 @@
let template = GetTemplateData(entState.template);
let specificName = template.name.specific;
let genericName = template.name.generic;
+
+ let primaryName = g_SpecificNamesPrimary ? specificName : genericName;
+ let secondaryName = g_SpecificNamesPrimary ? genericName : specificName;
+
// If packed, add that to the generic name (reduces template clutter)
- if (genericName && template.pack && template.pack.state == "packed")
- genericName = sprintf(translate("%(genericName)s — Packed"), { "genericName": genericName });
+ if (secondaryName && template.pack && template.pack.state == "packed")
+ secondaryName = sprintf(translate("%(secondaryName)s — Packed"), { "secondaryName": secondaryName });
let playerState = g_Players[entState.player];
let civName = g_CivData[playerState.civ].Name;
@@ -263,13 +267,13 @@
resourceCarryingIcon.hidden = true;
resourceCarryingText.hidden = true;
}
-
- Engine.GetGUIObjectByName("specific").caption = specificName;
Engine.GetGUIObjectByName("player").caption = playerName;
Engine.GetGUIObjectByName("playerColorBackground").sprite = "color:" + playerColor;
- Engine.GetGUIObjectByName("generic").caption = genericName == specificName ? "" :
- sprintf(translate("(%(genericName)s)"), {
- "genericName": genericName
+
+ Engine.GetGUIObjectByName("primary").caption = primaryName;
+ Engine.GetGUIObjectByName("secondary").caption = primaryName == secondaryName ? "" :
+ sprintf(translate("(%(secondaryName)s)"), {
+ "secondaryName": secondaryName
});
let isGaia = playerState.civ == "gaia";
@@ -298,8 +302,7 @@
let iconTooltips = [];
- if (genericName)
- iconTooltips.push("[font=\"sans-bold-16\"]" + genericName + "[/font]");
+ iconTooltips.push(setStringTags(primaryName, g_TooltipTextFormats.namePrimaryBig));
iconTooltips = iconTooltips.concat([
getVisibleEntityClassesFormatted,
Index: binaries/data/mods/public/gui/session/selection_panels.js
===================================================================
--- binaries/data/mods/public/gui/session/selection_panels.js
+++ binaries/data/mods/public/gui/session/selection_panels.js
@@ -1059,15 +1059,20 @@
let tooltip;
if (!progress)
{
+ let primaryName = g_SpecificNamesPrimary ? template.name.specific : template.name.generic;
+ let secondaryName = g_SpecificNamesPrimary ? template.name.generic : template.name.specific;
+
let tooltips = [];
if (data.item.tooltip)
- tooltips.push(sprintf(translate("Upgrade into a %(name)s. %(tooltip)s"), {
- "name": template.name.generic,
+ tooltips.push(sprintf(translate("Upgrade into a %(primaryName)s (%(secondaryName)s). %(tooltip)s"), {
+ "primaryName": primaryName,
+ "secondaryName": secondaryName,
"tooltip": translate(data.item.tooltip)
}));
else
- tooltips.push(sprintf(translate("Upgrade into a %(name)s."), {
- "name": template.name.generic
+ tooltips.push(sprintf(translate("Upgrade into a %(primaryName)s (%(secondaryName)s)."), {
+ "primaryName": primaryName,
+ "secondaryName": secondaryName
}));
tooltips.push(
Index: binaries/data/mods/public/gui/session/selection_panels_middle/single_details_area.xml
===================================================================
--- binaries/data/mods/public/gui/session/selection_panels_middle/single_details_area.xml
+++ binaries/data/mods/public/gui/session/selection_panels_middle/single_details_area.xml
@@ -93,11 +93,11 @@
Index: binaries/data/mods/public/gui/session/session.js
===================================================================
--- binaries/data/mods/public/gui/session/session.js
+++ binaries/data/mods/public/gui/session/session.js
@@ -368,6 +368,14 @@
}
/**
+ * Updates the primary/secondary names in the simulation and GUI.
+ */
+function updateDisplayedNames()
+{
+ g_SpecificNamesPrimary = Engine.ConfigDB_GetValue("user", "gui.session.specificNamesPrimary") != "false";
+}
+
+/**
* Updates the displayed colors of players in the simulation and GUI.
*/
function updateDisplayedPlayerColors()
@@ -1052,7 +1060,10 @@
function createPanelEntityTooltip(panelEntState, template)
{
- let getPanelEntNameTooltip = panelEntState => "[font=\"sans-bold-16\"]" + template.name.specific + "[/font]";
+ let primaryName = g_SpecificNamesPrimary ? template.name.specific : template.name.generic;
+ let secondaryName = g_SpecificNamesPrimary ? template.name.generic : template.name.specific;
+
+ let getPanelEntNameTooltip = panelEntState => setStringTags(primaryName || secondaryName, g_TooltipTextFormats.nameSecondary);
return [
getPanelEntNameTooltip,
Index: binaries/data/mods/public/gui/session/styles.xml
===================================================================
--- binaries/data/mods/public/gui/session/styles.xml
+++ binaries/data/mods/public/gui/session/styles.xml
@@ -156,7 +156,7 @@
ghost="true"
/>
-
-