diff --git a/src/lang/extra/czech.txt b/src/lang/extra/czech.txt index ef4a6e0848..57e6bd37a8 100644 --- a/src/lang/extra/czech.txt +++ b/src/lang/extra/czech.txt @@ -30,21 +30,6 @@ STR_ORDER_CONDITIONAL_DISPATCH_SLOT :Výpravní slot STR_ORDER_STOP_LOCATION_THROUGH :[postupná nakládka] -STR_VIEWPORT_TOWN_POP_VERY_POOR_RATING :{WHITE}{TOWN} {RED}({COMMA}) -STR_VIEWPORT_TOWN_POP_MEDIOCRE_RATING :{WHITE}{TOWN} {ORANGE}({COMMA}) -STR_VIEWPORT_TOWN_POP_GOOD_RATING :{WHITE}{TOWN} {YELLOW}({COMMA}) -STR_VIEWPORT_TOWN_POP_EXCELLENT_RATING :{WHITE}{TOWN} {GREEN}({COMMA}) - -STR_VIEWPORT_TOWN_VERY_POOR_RATING :{RED}{TOWN} -STR_VIEWPORT_TOWN_MEDIOCRE_RATING :{ORANGE}{TOWN} -STR_VIEWPORT_TOWN_GOOD_RATING :{YELLOW}{TOWN} -STR_VIEWPORT_TOWN_EXCELLENT_RATING :{GREEN}{TOWN} - -STR_VIEWPORT_TOWN_TINY_VERY_POOR_RATING :{TINY_FONT}{RED}{TOWN} -STR_VIEWPORT_TOWN_TINY_MEDIOCRE_RATING :{TINY_FONT}{ORANGE}{TOWN} -STR_VIEWPORT_TOWN_TINY_GOOD_RATING :{TINY_FONT}{YELLOW}{TOWN} -STR_VIEWPORT_TOWN_TINY_EXCELLENT_RATING :{TINY_FONT}{GREEN}{TOWN} - STR_CONFIG_SETTING_TOWN_GROWTH_EXTREME_SLOW :extrémně pomalá STR_CONFIG_SETTING_TOWN_GROWTH_VERY_SLOW :velmi pomalá @@ -2127,3 +2112,6 @@ STR_CONFIG_SETTING_STATION_RATING_TOOLTIP_MODE_HELPTEXT :Nastaví, zda a STR_CONFIG_SETTING_STATION_RATING_TOOLTIP_MODE_OFF :vypnutá STR_CONFIG_SETTING_STATION_RATING_TOOLTIP_MODE_SIMPLE :stručná STR_CONFIG_SETTING_STATION_RATING_TOOLTIP_MODE_DETAILED :podrobná + +STR_VIEWPORT_TOWN_COLOUR :{1:SET_COLOUR}{0:TOWN} +STR_VIEWPORT_TOWN_COLOUR_POP :{WHITE}{TOWN} {SET_COLOUR}({COMMA}) diff --git a/src/lang/extra/english.txt b/src/lang/extra/english.txt index 19c46743d1..e98acd2cd3 100644 --- a/src/lang/extra/english.txt +++ b/src/lang/extra/english.txt @@ -20,6 +20,9 @@ STR_JUST_TT_TICKS :{TT_TICKS} STR_JUST_TT_TICKS_LONG :{TT_TICKS_LONG} STR_RED_INT :{RED}{NUM} + +STR_VIEWPORT_TOWN_LABEL :{VP_TOWN_LABEL1} +STR_VIEWPORT_TOWN_LABEL_TINY :{TINY_FONT}{VP_TOWN_LABEL2} ##no-translate off ##after STR_CONFIG_SETTING_TREE_PLACER_IMPROVED @@ -62,27 +65,6 @@ STR_ORDER_CONDITIONAL_DISPATCH_SLOT :Dispatch slot ##after STR_ORDER_STOP_LOCATION_FAR_END STR_ORDER_STOP_LOCATION_THROUGH :[through load] -##before STR_VIEWPORT_TOWN_POP -STR_VIEWPORT_TOWN_POP_VERY_POOR_RATING :{WHITE}{TOWN} {RED}({COMMA}) -STR_VIEWPORT_TOWN_POP_MEDIOCRE_RATING :{WHITE}{TOWN} {ORANGE}({COMMA}) -STR_VIEWPORT_TOWN_POP_GOOD_RATING :{WHITE}{TOWN} {YELLOW}({COMMA}) -##after STR_VIEWPORT_TOWN_POP -STR_VIEWPORT_TOWN_POP_EXCELLENT_RATING :{WHITE}{TOWN} {GREEN}({COMMA}) - -##before STR_VIEWPORT_TOWN -STR_VIEWPORT_TOWN_VERY_POOR_RATING :{RED}{TOWN} -STR_VIEWPORT_TOWN_MEDIOCRE_RATING :{ORANGE}{TOWN} -STR_VIEWPORT_TOWN_GOOD_RATING :{YELLOW}{TOWN} -##after STR_VIEWPORT_TOWN -STR_VIEWPORT_TOWN_EXCELLENT_RATING :{GREEN}{TOWN} - -##before STR_VIEWPORT_TOWN_TINY_WHITE -STR_VIEWPORT_TOWN_TINY_VERY_POOR_RATING :{TINY_FONT}{RED}{TOWN} -STR_VIEWPORT_TOWN_TINY_MEDIOCRE_RATING :{TINY_FONT}{ORANGE}{TOWN} -STR_VIEWPORT_TOWN_TINY_GOOD_RATING :{TINY_FONT}{YELLOW}{TOWN} -##after STR_VIEWPORT_TOWN_TINY_WHITE -STR_VIEWPORT_TOWN_TINY_EXCELLENT_RATING :{TINY_FONT}{GREEN}{TOWN} - ##before STR_CONFIG_SETTING_TOWN_GROWTH_NONE STR_CONFIG_SETTING_TOWN_GROWTH_EXTREME_SLOW :Extremely slow STR_CONFIG_SETTING_TOWN_GROWTH_VERY_SLOW :Very slow @@ -2184,3 +2166,6 @@ STR_CONFIG_SETTING_STATION_RATING_TOOLTIP_MODE_HELPTEXT :Set whether sta STR_CONFIG_SETTING_STATION_RATING_TOOLTIP_MODE_OFF :Off STR_CONFIG_SETTING_STATION_RATING_TOOLTIP_MODE_SIMPLE :Simple STR_CONFIG_SETTING_STATION_RATING_TOOLTIP_MODE_DETAILED :Detailed + +STR_VIEWPORT_TOWN_COLOUR :{1:SET_COLOUR}{0:TOWN} +STR_VIEWPORT_TOWN_COLOUR_POP :{WHITE}{TOWN} {SET_COLOUR}({COMMA}) diff --git a/src/lang/extra/galician.txt b/src/lang/extra/galician.txt index 6504426574..c716791247 100644 --- a/src/lang/extra/galician.txt +++ b/src/lang/extra/galician.txt @@ -30,21 +30,6 @@ STR_ORDER_CONDITIONAL_DISPATCH_SLOT :Slot de despach STR_ORDER_STOP_LOCATION_THROUGH :[a través da carga] -STR_VIEWPORT_TOWN_POP_VERY_POOR_RATING :{WHITE}{TOWN} {RED}({COMMA}) -STR_VIEWPORT_TOWN_POP_MEDIOCRE_RATING :{WHITE}{TOWN} {ORANGE}({COMMA}) -STR_VIEWPORT_TOWN_POP_GOOD_RATING :{WHITE}{TOWN} {YELLOW}({COMMA}) -STR_VIEWPORT_TOWN_POP_EXCELLENT_RATING :{WHITE}{TOWN} {GREEN}({COMMA}) - -STR_VIEWPORT_TOWN_VERY_POOR_RATING :{RED}{TOWN} -STR_VIEWPORT_TOWN_MEDIOCRE_RATING :{ORANGE}{TOWN} -STR_VIEWPORT_TOWN_GOOD_RATING :{YELLOW}{TOWN} -STR_VIEWPORT_TOWN_EXCELLENT_RATING :{GREEN}{TOWN} - -STR_VIEWPORT_TOWN_TINY_VERY_POOR_RATING :{TINY_FONT}{RED}{TOWN} -STR_VIEWPORT_TOWN_TINY_MEDIOCRE_RATING :{TINY_FONT}{ORANGE}{TOWN} -STR_VIEWPORT_TOWN_TINY_GOOD_RATING :{TINY_FONT}{YELLOW}{TOWN} -STR_VIEWPORT_TOWN_TINY_EXCELLENT_RATING :{TINY_FONT}{GREEN}{TOWN} - STR_CONFIG_SETTING_TOWN_GROWTH_EXTREME_SLOW :Extremadamente lento STR_CONFIG_SETTING_TOWN_GROWTH_VERY_SLOW :Moi lento @@ -2132,3 +2117,6 @@ STR_CONFIG_SETTING_STATION_RATING_TOOLTIP_MODE_HELPTEXT :Escolle se se a STR_CONFIG_SETTING_STATION_RATING_TOOLTIP_MODE_OFF :Desactivado STR_CONFIG_SETTING_STATION_RATING_TOOLTIP_MODE_SIMPLE :Simple STR_CONFIG_SETTING_STATION_RATING_TOOLTIP_MODE_DETAILED :Detallado + +STR_VIEWPORT_TOWN_COLOUR :{1:SET_COLOUR}{0:TOWN} +STR_VIEWPORT_TOWN_COLOUR_POP :{WHITE}{TOWN} {SET_COLOUR}({COMMA}) diff --git a/src/lang/extra/german.txt b/src/lang/extra/german.txt index c39ad6af0a..fe61e3f3d1 100644 --- a/src/lang/extra/german.txt +++ b/src/lang/extra/german.txt @@ -28,21 +28,6 @@ STR_ORDER_CONDITIONAL_DISPATCH_SLOT :Abfahrztszeitfe STR_ORDER_STOP_LOCATION_THROUGH :[durchgehendes Laden] -STR_VIEWPORT_TOWN_POP_VERY_POOR_RATING :{WHITE}{TOWN} {RED}({COMMA}) -STR_VIEWPORT_TOWN_POP_MEDIOCRE_RATING :{WHITE}{TOWN} {ORANGE}({COMMA}) -STR_VIEWPORT_TOWN_POP_GOOD_RATING :{WHITE}{TOWN} {YELLOW}({COMMA}) -STR_VIEWPORT_TOWN_POP_EXCELLENT_RATING :{WHITE}{TOWN} {GREEN}({COMMA}) - -STR_VIEWPORT_TOWN_VERY_POOR_RATING :{RED}{TOWN} -STR_VIEWPORT_TOWN_MEDIOCRE_RATING :{ORANGE}{TOWN} -STR_VIEWPORT_TOWN_GOOD_RATING :{YELLOW}{TOWN} -STR_VIEWPORT_TOWN_EXCELLENT_RATING :{GREEN}{TOWN} - -STR_VIEWPORT_TOWN_TINY_VERY_POOR_RATING :{TINY_FONT}{RED}{TOWN} -STR_VIEWPORT_TOWN_TINY_MEDIOCRE_RATING :{TINY_FONT}{ORANGE}{TOWN} -STR_VIEWPORT_TOWN_TINY_GOOD_RATING :{TINY_FONT}{YELLOW}{TOWN} -STR_VIEWPORT_TOWN_TINY_EXCELLENT_RATING :{TINY_FONT}{GREEN}{TOWN} - STR_CONFIG_SETTING_TOWN_GROWTH_EXTREME_SLOW :Extrem langsam STR_CONFIG_SETTING_TOWN_GROWTH_VERY_SLOW :Sehr langsam @@ -1807,3 +1792,6 @@ STR_CONFIG_SETTING_STATION_RATING_TOOLTIP_MODE_HELPTEXT :Legt die Anzeig STR_CONFIG_SETTING_STATION_RATING_TOOLTIP_MODE_OFF :Aus STR_CONFIG_SETTING_STATION_RATING_TOOLTIP_MODE_SIMPLE :Einfach STR_CONFIG_SETTING_STATION_RATING_TOOLTIP_MODE_DETAILED :Detailliert + +STR_VIEWPORT_TOWN_COLOUR :{1:SET_COLOUR}{0:TOWN} +STR_VIEWPORT_TOWN_COLOUR_POP :{WHITE}{TOWN} {SET_COLOUR}({COMMA}) diff --git a/src/lang/extra/korean.txt b/src/lang/extra/korean.txt index 30769ac086..4dde400953 100644 --- a/src/lang/extra/korean.txt +++ b/src/lang/extra/korean.txt @@ -30,21 +30,6 @@ STR_ORDER_CONDITIONAL_DISPATCH_SLOT :{G=m}배차일 STR_ORDER_STOP_LOCATION_THROUGH :[차례로 나눠 싣기] -STR_VIEWPORT_TOWN_POP_VERY_POOR_RATING :{WHITE}{TOWN} {RED}({COMMA}) -STR_VIEWPORT_TOWN_POP_MEDIOCRE_RATING :{WHITE}{TOWN} {ORANGE}({COMMA}) -STR_VIEWPORT_TOWN_POP_GOOD_RATING :{WHITE}{TOWN} {YELLOW}({COMMA}) -STR_VIEWPORT_TOWN_POP_EXCELLENT_RATING :{WHITE}{TOWN} {GREEN}({COMMA}) - -STR_VIEWPORT_TOWN_VERY_POOR_RATING :{RED}{TOWN} -STR_VIEWPORT_TOWN_MEDIOCRE_RATING :{ORANGE}{TOWN} -STR_VIEWPORT_TOWN_GOOD_RATING :{YELLOW}{TOWN} -STR_VIEWPORT_TOWN_EXCELLENT_RATING :{GREEN}{TOWN} - -STR_VIEWPORT_TOWN_TINY_VERY_POOR_RATING :{TINY_FONT}{RED}{TOWN} -STR_VIEWPORT_TOWN_TINY_MEDIOCRE_RATING :{TINY_FONT}{ORANGE}{TOWN} -STR_VIEWPORT_TOWN_TINY_GOOD_RATING :{TINY_FONT}{YELLOW}{TOWN} -STR_VIEWPORT_TOWN_TINY_EXCELLENT_RATING :{TINY_FONT}{GREEN}{TOWN} - STR_CONFIG_SETTING_TOWN_GROWTH_EXTREME_SLOW :매우 느림 STR_CONFIG_SETTING_TOWN_GROWTH_VERY_SLOW :더 느림 @@ -2134,3 +2119,6 @@ STR_CONFIG_SETTING_STATION_RATING_TOOLTIP_MODE_HELPTEXT :역 등급 도 STR_CONFIG_SETTING_STATION_RATING_TOOLTIP_MODE_OFF :끄기 STR_CONFIG_SETTING_STATION_RATING_TOOLTIP_MODE_SIMPLE :간단히 STR_CONFIG_SETTING_STATION_RATING_TOOLTIP_MODE_DETAILED :자세히 + +STR_VIEWPORT_TOWN_COLOUR :{1:SET_COLOUR}{0:TOWN} +STR_VIEWPORT_TOWN_COLOUR_POP :{WHITE}{TOWN} {SET_COLOUR}({COMMA}) diff --git a/src/lang/extra/simplified_chinese.txt b/src/lang/extra/simplified_chinese.txt index 74480d8459..53ae46d267 100644 --- a/src/lang/extra/simplified_chinese.txt +++ b/src/lang/extra/simplified_chinese.txt @@ -28,21 +28,6 @@ STR_ORDER_CONDITIONAL_DISPATCH_SLOT :调度条目 STR_ORDER_STOP_LOCATION_THROUGH :[通过式装载] -STR_VIEWPORT_TOWN_POP_VERY_POOR_RATING :{WHITE}{TOWN} {RED}({COMMA}) -STR_VIEWPORT_TOWN_POP_MEDIOCRE_RATING :{WHITE}{TOWN} {ORANGE}({COMMA}) -STR_VIEWPORT_TOWN_POP_GOOD_RATING :{WHITE}{TOWN} {YELLOW}({COMMA}) -STR_VIEWPORT_TOWN_POP_EXCELLENT_RATING :{WHITE}{TOWN} {GREEN}({COMMA}) - -STR_VIEWPORT_TOWN_VERY_POOR_RATING :{RED}{TOWN} -STR_VIEWPORT_TOWN_MEDIOCRE_RATING :{ORANGE}{TOWN} -STR_VIEWPORT_TOWN_GOOD_RATING :{YELLOW}{TOWN} -STR_VIEWPORT_TOWN_EXCELLENT_RATING :{GREEN}{TOWN} - -STR_VIEWPORT_TOWN_TINY_VERY_POOR_RATING :{TINY_FONT}{RED}{TOWN} -STR_VIEWPORT_TOWN_TINY_MEDIOCRE_RATING :{TINY_FONT}{ORANGE}{TOWN} -STR_VIEWPORT_TOWN_TINY_GOOD_RATING :{TINY_FONT}{YELLOW}{TOWN} -STR_VIEWPORT_TOWN_TINY_EXCELLENT_RATING :{TINY_FONT}{GREEN}{TOWN} - STR_CONFIG_SETTING_TOWN_GROWTH_EXTREME_SLOW :极其慢 STR_CONFIG_SETTING_TOWN_GROWTH_VERY_SLOW :非常慢 @@ -1942,3 +1927,6 @@ STR_CONFIG_SETTING_STATION_RATING_TOOLTIP_MODE_HELPTEXT :设定车站等 STR_CONFIG_SETTING_STATION_RATING_TOOLTIP_MODE_OFF :关闭 STR_CONFIG_SETTING_STATION_RATING_TOOLTIP_MODE_SIMPLE :简单 STR_CONFIG_SETTING_STATION_RATING_TOOLTIP_MODE_DETAILED :详细 + +STR_VIEWPORT_TOWN_COLOUR :{1:SET_COLOUR}{0:TOWN} +STR_VIEWPORT_TOWN_COLOUR_POP :{WHITE}{TOWN} {SET_COLOUR}({COMMA}) diff --git a/src/strings.cpp b/src/strings.cpp index 6cc1037982..6d4c3c43f0 100644 --- a/src/strings.cpp +++ b/src/strings.cpp @@ -1931,6 +1931,22 @@ static char *FormatString(char *buff, const char *str_arg, StringParameters *arg break; } + case SCC_VIEWPORT_TOWN_LABEL1: + case SCC_VIEWPORT_TOWN_LABEL2: { // {VIEWPORT_TOWN_LABEL1..2} + int32 t = args->GetInt32(b); + uint64 data = (uint64)args->GetInt64(b); + + bool tiny = (b == SCC_VIEWPORT_TOWN_LABEL2); + StringID string_id = STR_VIEWPORT_TOWN_COLOUR; + if (!tiny && HasBit(data, 40)) { + string_id = STR_VIEWPORT_TOWN_COLOUR_POP; + } + int64 args_array[] = {t, GB(data, 32, 8), GB(data, 0, 32)}; + StringParameters tmp_params(args_array); + buff = GetStringWithArgs(buff, string_id, &tmp_params, last); + break; + } + case SCC_WAYPOINT_NAME: { // {WAYPOINT} Waypoint *wp = Waypoint::GetIfValid(args->GetInt32(SCC_WAYPOINT_NAME)); if (wp == nullptr) break; diff --git a/src/table/control_codes.h b/src/table/control_codes.h index df27252f5d..b0120a2973 100644 --- a/src/table/control_codes.h +++ b/src/table/control_codes.h @@ -50,6 +50,9 @@ enum StringControlCode { SCC_TR_SLOT_NAME, SCC_TR_COUNTER_NAME, + SCC_VIEWPORT_TOWN_LABEL1, + SCC_VIEWPORT_TOWN_LABEL2, + SCC_CURRENCY_SHORT, SCC_CURRENCY_LONG, diff --git a/src/table/strgen_tables.h b/src/table/strgen_tables.h index 271f61c9ff..a296cb5608 100644 --- a/src/table/strgen_tables.h +++ b/src/table/strgen_tables.h @@ -137,6 +137,9 @@ static const CmdStruct _cmd_structs[] = { {"TRSLOT", EmitSingleChar, SCC_TR_SLOT_NAME, 1, -1, C_NONE | C_GENDER}, {"TRCOUNTER", EmitSingleChar, SCC_TR_COUNTER_NAME, 1, -1, C_NONE | C_GENDER}, + {"VP_TOWN_LABEL1", EmitSingleChar, SCC_VIEWPORT_TOWN_LABEL1, 2, -1, C_NONE}, + {"VP_TOWN_LABEL2", EmitSingleChar, SCC_VIEWPORT_TOWN_LABEL2, 2, -1, C_NONE}, + {"", EmitSingleChar, '\n', 0, -1, C_DONTCOUNT}, {"{", EmitSingleChar, '{', 0, -1, C_DONTCOUNT}, {"UP_ARROW", EmitSingleChar, SCC_UP_ARROW, 0, -1, C_DONTCOUNT}, diff --git a/src/town.h b/src/town.h index ae38e6e126..734215d503 100644 --- a/src/town.h +++ b/src/town.h @@ -102,7 +102,7 @@ struct Town : TownPool::PoolItem<&_town_pool> { CompanyID exclusivity; ///< which company has exclusivity uint8 exclusive_counter; ///< months till the exclusivity expires int16 ratings[MAX_COMPANIES]; ///< ratings of each company for this town - StringID town_label; ///< Label dependent on _local_company rating. + uint8 town_label_rating; ///< Label dependent on _local_company rating. TransportedCargoStat supplied[NUM_CARGO]; ///< Cargo statistics about supplied cargo. TransportedCargoStat received[NUM_TE]; ///< Cargo statistics about received cargotypes. @@ -141,28 +141,7 @@ struct Town : TownPool::PoolItem<&_town_pool> { void InitializeLayout(TownLayout layout); void UpdateLabel(); - - /** - * Returns the correct town label, based on rating. - */ - inline StringID Label() const{ - if (!(_game_mode == GM_EDITOR) && (_local_company < MAX_COMPANIES)) { - return (_settings_client.gui.population_in_label ? STR_VIEWPORT_TOWN_POP_VERY_POOR_RATING : STR_VIEWPORT_TOWN_VERY_POOR_RATING) + this->town_label; - } else { - return _settings_client.gui.population_in_label ? STR_VIEWPORT_TOWN_POP : STR_VIEWPORT_TOWN; - } - } - - /** - * Returns the correct town small label, based on rating. - */ - inline StringID SmallLabel() const{ - if (!(_game_mode == GM_EDITOR) && (_local_company < MAX_COMPANIES)) { - return STR_VIEWPORT_TOWN_TINY_VERY_POOR_RATING + this->town_label; - } else { - return STR_VIEWPORT_TOWN_TINY_WHITE; - } - } + uint64 LabelParam2() const; /** * Calculate the max town noise. diff --git a/src/town_cmd.cpp b/src/town_cmd.cpp index 07c8b86fa1..960568189b 100644 --- a/src/town_cmd.cpp +++ b/src/town_cmd.cpp @@ -221,14 +221,32 @@ void Town::UpdateLabel() { if (!(_game_mode == GM_EDITOR) && (_local_company < MAX_COMPANIES)) { int r = this->ratings[_local_company]; - this->town_label = 0; // Appalling and Very Poor - if (r > RATING_VERYPOOR) this->town_label++; // Poor and Mediocre - if (r > RATING_MEDIOCRE) this->town_label++; // Good - if (r > RATING_GOOD) this->town_label++; // Very Good - if (r > RATING_VERYGOOD) this->town_label++; // Excellent and Outstanding + int town_rating = 0; // Appalling and Very Poor + if (r > RATING_VERYPOOR) town_rating++; // Poor and Mediocre + if (r > RATING_MEDIOCRE) town_rating++; // Good + if (r > RATING_GOOD) town_rating++; // Very Good + if (r > RATING_VERYGOOD) town_rating++; // Excellent and Outstanding + + static const uint8 tcs[] = { TC_RED, TC_ORANGE, TC_YELLOW, TC_WHITE, TC_GREEN }; + this->town_label_rating = tcs[town_rating]; } } +/** + * Get the second dparam value for town viewport labels + */ +uint64 Town::LabelParam2() const +{ + uint64 value = this->cache.population; + if (!(_game_mode == GM_EDITOR) && (_local_company < MAX_COMPANIES)) { + SB(value, 32, 8, this->town_label_rating); + } else { + SB(value, 32, 8, TC_WHITE); + } + if (_settings_client.gui.population_in_label) SetBit(value, 40); + return value; +} + void Town::FillCachedName() const { char buf[MAX_LENGTH_TOWN_NAME_CHARS * MAX_CHAR_LENGTH]; @@ -520,8 +538,8 @@ void Town::UpdateVirtCoord() if (_viewport_sign_kdtree_valid && this->cache.sign.kdtree_valid) _viewport_sign_kdtree.Remove(ViewportSignKdtreeItem::MakeTown(this->index)); SetDParam(0, this->index); - SetDParam(1, this->cache.population); - this->cache.sign.UpdatePosition(HasBit(_display_opt, DO_SHOW_TOWN_NAMES) ? ZOOM_LVL_OUT_128X : ZOOM_LVL_END, pt.x, pt.y - 24 * ZOOM_LVL_BASE, this->Label(), STR_VIEWPORT_TOWN_TINY_WHITE); + SetDParam(1, this->LabelParam2()); + this->cache.sign.UpdatePosition(HasBit(_display_opt, DO_SHOW_TOWN_NAMES) ? ZOOM_LVL_OUT_128X : ZOOM_LVL_END, pt.x, pt.y - 24 * ZOOM_LVL_BASE, STR_VIEWPORT_TOWN_LABEL, STR_VIEWPORT_TOWN_TINY_WHITE); if (_viewport_sign_kdtree_valid) _viewport_sign_kdtree.Insert(ViewportSignKdtreeItem::MakeTown(this->index)); diff --git a/src/viewport.cpp b/src/viewport.cpp index 9e31c21c06..7b24b877d8 100644 --- a/src/viewport.cpp +++ b/src/viewport.cpp @@ -1909,8 +1909,8 @@ static void ViewportAddKdtreeSigns(ViewportDrawerDynamic *vdd, DrawPixelInfo *dp for (const auto *t : towns) { ViewportAddString(vdd, dpi, ZOOM_LVL_OUT_16X, &t->cache.sign, - t->Label(), t->SmallLabel(), STR_VIEWPORT_TOWN_TINY_BLACK, - t->index, t->cache.population); + STR_VIEWPORT_TOWN_LABEL, STR_VIEWPORT_TOWN_LABEL_TINY, STR_VIEWPORT_TOWN_TINY_BLACK, + t->index, t->LabelParam2()); } for (const auto *si : signs) {