From cd34f75f03ec01fd2d1b4abe05e8e280d124cd5f Mon Sep 17 00:00:00 2001 From: Vantha Date: Wed, 25 Dec 2024 10:47:38 +0100 Subject: [PATCH] Fix phase names not updating on the structure tree Reload all cached phase data when switching civ. Add missing query for the generic phase technologies to the phase idents. (cherry picked from commit 33111dc8160009e986be4361327ce97524f16347) Signed-off-by: Itms --- .../data/mods/public/gui/reference/common/TemplateParser.js | 3 +++ .../gui/reference/structree/Sections/Tree/PhaseIdent.js | 5 ++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/binaries/data/mods/public/gui/reference/common/TemplateParser.js b/binaries/data/mods/public/gui/reference/common/TemplateParser.js index 20af37f320..e442104185 100644 --- a/binaries/data/mods/public/gui/reference/common/TemplateParser.js +++ b/binaries/data/mods/public/gui/reference/common/TemplateParser.js @@ -371,6 +371,9 @@ class TemplateParser derivePhaseList(technologyList, civCode) { + // Wipe all cached phase data. It contains the previous civ's SpecificNames which wouldn't be reloaded otherwise. + this.phases = {}; + // Load all of a civ's specific phase technologies for (let techcode of technologyList) if (this.TemplateLoader.isPhaseTech(techcode)) diff --git a/binaries/data/mods/public/gui/reference/structree/Sections/Tree/PhaseIdent.js b/binaries/data/mods/public/gui/reference/structree/Sections/Tree/PhaseIdent.js index 36e4bdc617..ca93c077fc 100644 --- a/binaries/data/mods/public/gui/reference/structree/Sections/Tree/PhaseIdent.js +++ b/binaries/data/mods/public/gui/reference/structree/Sections/Tree/PhaseIdent.js @@ -47,7 +47,10 @@ class PhaseIdent drawPhaseIcon(phaseIcon, phaseIndex, civCode) { let phaseName = this.page.TemplateParser.phaseList[phaseIndex]; - let prodPhaseTemplate = this.page.TemplateParser.getTechnology(phaseName + "_" + civCode, civCode) || this.page.TemplateParser.getTechnology(phaseName, civCode); + let prodPhaseTemplate = + this.page.TemplateParser.getTechnology(phaseName + "_" + civCode, civCode) || + this.page.TemplateParser.getTechnology(phaseName + "_generic", civCode) || + this.page.TemplateParser.getTechnology(phaseName, civCode); phaseIcon.sprite = "stretched:" + this.page.IconPath + prodPhaseTemplate.icon; phaseIcon.tooltip = getEntityNamesFormatted(prodPhaseTemplate);