From 85af200788aa5eba79cc056814eb8731affaa401 Mon Sep 17 00:00:00 2001 From: Su Date: Fri, 15 Aug 2025 21:49:25 +0100 Subject: [PATCH] Add: Identify cities on the main viewport by appending an icon to their names (#14504) Co-authored-by: Peter Nelson --- media/baseset/openttd.grf | Bin 631495 -> 631667 bytes media/baseset/openttd.grf.hash | 2 +- media/baseset/openttd/chars.nfo | 6 ++++++ media/baseset/openttd/chars.png | Bin 17033 -> 17102 bytes src/lang/english.txt | 2 ++ src/newgrf_text.cpp | 2 ++ src/table/control_codes.h | 2 ++ src/table/strgen_tables.h | 2 ++ src/town_cmd.cpp | 13 ++++++++++--- src/viewport.cpp | 13 +++++++++++-- 10 files changed, 36 insertions(+), 6 deletions(-) diff --git a/media/baseset/openttd.grf b/media/baseset/openttd.grf index 137e845300e1a1a69db27cb66a6ac33a946e4e37..620cc8ab981eb34ffd83886fd9e17befd31631eb 100644 GIT binary patch delta 5511 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 GDE=RK@nMnx delta 5392 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 diff --git a/media/baseset/openttd.grf.hash b/media/baseset/openttd.grf.hash index 90176c9546..5b07da7ff6 100644 --- a/media/baseset/openttd.grf.hash +++ b/media/baseset/openttd.grf.hash @@ -1 +1 @@ -a4a727b03a7cd07ee0499231f7f233f4 +eb8390a0569e66ec417c64ad254f9d05 diff --git a/media/baseset/openttd/chars.nfo b/media/baseset/openttd/chars.nfo index 6d514c8228..43544a841b 100644 --- a/media/baseset/openttd/chars.nfo +++ b/media/baseset/openttd/chars.nfo @@ -844,3 +844,9 @@ // U+E29D: Small left arrow -1 * 6 12 01 01 01 9D E2 -1 sprites/chars.png 8bpp 10 430 5 5 0 1 normal + +// U+E29B: Town +// U+E29C: City + -1 * 6 12 01 00 02 9B E2 + -1 sprites/chars.png 8bpp 20 430 10 10 0 0 normal + -1 sprites/chars.png 8bpp 40 430 10 10 0 0 normal diff --git a/media/baseset/openttd/chars.png b/media/baseset/openttd/chars.png index 18933228b360fc7d617f3f941cbe8e3ff9f3407c..426e7a8348e437e23e13ccc5906a89db9703c817 100644 GIT binary patch delta 16382 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 o>~3VIA{(=7;mtpWfJ(`0Lt__k^lez delta 16313 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 KEs}Ze|Gxm}l<4RH diff --git a/src/lang/english.txt b/src/lang/english.txt index 02370fd286..f0291e1a5e 100644 --- a/src/lang/english.txt +++ b/src/lang/english.txt @@ -5875,6 +5875,8 @@ STR_SAVEGAME_NAME_SPECTATOR :Spectator, {1:S # Viewport strings STR_VIEWPORT_TOWN_POP :{TOWN} ({COMMA}) +STR_VIEWPORT_TOWN_CITY :{TOWN} {CITY_ICON} +STR_VIEWPORT_TOWN_CITY_POP :{TOWN} ({COMMA}) {CITY_ICON} STR_VIEWPORT_STATION :{STATION} {STATION_FEATURES} # Simple strings to get specific types of data diff --git a/src/newgrf_text.cpp b/src/newgrf_text.cpp index b0bf3b58b6..6ac6909d62 100644 --- a/src/newgrf_text.cpp +++ b/src/newgrf_text.cpp @@ -437,6 +437,8 @@ std::string TranslateTTDPatchCodes(uint32_t grfid, uint8_t language_id, bool all break; } + case 0x9B: builder.PutUtf8(SCC_TOWN); break; + case 0x9C: builder.PutUtf8(SCC_CITY); break; case 0x9E: builder.PutUtf8(0x20AC); break; // Euro case 0x9F: builder.PutUtf8(0x0178); break; // Y with diaeresis case 0xA0: builder.PutUtf8(SCC_UP_ARROW); break; diff --git a/src/table/control_codes.h b/src/table/control_codes.h index fded339a25..b215eab2c6 100644 --- a/src/table/control_codes.h +++ b/src/table/control_codes.h @@ -171,6 +171,8 @@ enum StringControlCode : uint16_t { * These are mapped to the original glyphs */ SCC_LESS_THAN = SCC_SPRITE_START + 0x3C, SCC_GREATER_THAN = SCC_SPRITE_START + 0x3E, + SCC_TOWN = SCC_SPRITE_START + 0x9B, + SCC_CITY = SCC_SPRITE_START + 0x9C, SCC_LEFT_ARROW = SCC_SPRITE_START + 0x9D, SCC_UP_ARROW = SCC_SPRITE_START + 0xA0, SCC_DOWN_ARROW = SCC_SPRITE_START + 0xAA, diff --git a/src/table/strgen_tables.h b/src/table/strgen_tables.h index 6373b85159..1732343e51 100644 --- a/src/table/strgen_tables.h +++ b/src/table/strgen_tables.h @@ -146,6 +146,8 @@ static const CmdStruct _cmd_structs[] = { {"RIGHT_ARROW", EmitSingleChar, SCC_RIGHT_ARROW, 0, std::nullopt, {CmdFlag::DontCount}}, {"SMALL_LEFT_ARROW", EmitSingleChar, SCC_LESS_THAN, 0, std::nullopt, {CmdFlag::DontCount}}, {"SMALL_RIGHT_ARROW", EmitSingleChar, SCC_GREATER_THAN, 0, std::nullopt, {CmdFlag::DontCount}}, + {"TOWN_ICON", EmitSingleChar, SCC_TOWN, 0, std::nullopt, {CmdFlag::DontCount}}, + {"CITY_ICON", EmitSingleChar, SCC_CITY, 0, std::nullopt, {CmdFlag::DontCount}}, /* The following are directional formatting codes used to get the RTL strings right: * http://www.unicode.org/unicode/reports/tr9/#Directional_Formatting_Codes */ diff --git a/src/town_cmd.cpp b/src/town_cmd.cpp index e754bc2fbf..9f4f1a7125 100644 --- a/src/town_cmd.cpp +++ b/src/town_cmd.cpp @@ -398,10 +398,17 @@ void Town::UpdateVirtCoord() if (this->cache.sign.kdtree_valid) _viewport_sign_kdtree.Remove(ViewportSignKdtreeItem::MakeTown(this->index)); - std::string town_string = GetString(STR_TOWN_NAME, this->index); + std::string town_string; + if (this->larger_town) { + town_string = GetString(_settings_client.gui.population_in_label ? STR_VIEWPORT_TOWN_CITY_POP : STR_VIEWPORT_TOWN_CITY, this->index, this->cache.population); + } else { + town_string = GetString(_settings_client.gui.population_in_label ? STR_VIEWPORT_TOWN_POP : STR_TOWN_NAME, this->index, this->cache.population); + } + this->cache.sign.UpdatePosition(pt.x, pt.y - 24 * ZOOM_BASE, - _settings_client.gui.population_in_label ? GetString(STR_VIEWPORT_TOWN_POP, this->index, this->cache.population) : town_string, - town_string); + town_string, + GetString(STR_TOWN_NAME, this->index, this->cache.population) +); _viewport_sign_kdtree.Insert(ViewportSignKdtreeItem::MakeTown(this->index)); diff --git a/src/viewport.cpp b/src/viewport.cpp index b03468f179..bed619d1c3 100644 --- a/src/viewport.cpp +++ b/src/viewport.cpp @@ -1359,12 +1359,21 @@ static void ViewportAddTownStrings(DrawPixelInfo *dpi, const std::vectorcache.sign, flags, INVALID_COLOUR); if (str == nullptr) continue; - *str = GetString(stringid, t->index, t->cache.population); + if (t->larger_town) { + *str = GetString(stringid_town_city, t->index, t->cache.population); + } else { + *str = GetString(stringid_town, t->index, t->cache.population); + } } }