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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

?v3J4oy`}Bv>93qUBAOXqg{4yM}OjXcS4a)2w zJ272yGqN09OifS`uF1?5*r(5u?DR?F`68VOpLR) z$7yqzGqKI#Vqnl_n!ZtiLwx%tT@EoO*122^3@#9pAL(-#F|p3$VqkbO{e3Qn)O2Gb zjH6R2PY%r!tEDLIkqygfqG`%Ow$uJIYhTFH0Q8jVg+^4vZg1d zb4YFfVaXB9#JFs`j}3)hkevR&f#Wmd%I#MiIW99Y zuG+rBnM0S6bu||Q!%mR^l4b-cwfja+l3P&ar zADbpI*i>pYg(U^Ky>)j2EY0FXx!dcxife z1;-@DtK0uoaJ*z47Gk;@j<8IPNep-r6qH&e6im zczgT8E{<#_#yi`2dpU}j81HUx=;!#u%y@5m?PLy57S{V*3=DSD1!r@JPfwV~!Lj|- zbPgqE#s}MZXLFb{vp(cvVAwF7aS@07)Ca6w)61ke8>gq;;Sk!+I-lb^6XT=pe;0Cm zW@dc6{o_&&7iP96Tnr51EYkyKaB5C}z|G0Cy8zTs$LWPQfP zz~Bq9aqnA>=(?7a%N^M_v92AD{!KMlJaLu-5R zRStP(#?R9~F6EHk-gkpTlbQ7k7X!mt)X?0Xc85caneprP-uoN@ER5f_-+Rmv&dm0m zi-BQ1NfA^U~k(u$&c7g94 z8O*GIVM)e*`<`DMUQDe2xEL6gfWl3FyVhTh4kp(BTnr2vppcQ=e&Iid5Hl+SHv_{` zkU-paS7uHxW+q1N?GxEJ`H|97^Co+J2Xt zQXoo5+`;P$J^oI%WNT-*!{R}rD3yuDJLvzvvL zo11}QPm{^6m85m+f zp`*Gz$cfX6nNehWuPbK~6Qk(%5AK`=OpIdN6TLX^Gc$^Bcl6^FV_}ux28Ay?mrY;a z$tk&gN)YE~CRRyqP*N3~%^|yeWhmz#CRQnK28KC^0J$8&S;ovN%?(XDdfRJaI2SQ9 z%50ZU;B;YTljUY$Fan2#>-KfYobQ<#<+jgD=iI``D$mWpUA{$^xVbPCN~3v57?LBWHY@#nNxl{b2BF=Go#ja-ZsuU zW=8GpJ)NAVnOJqW85p)t7x>5_zP-4Ib1@UEE;j>%5Lhp$RNC&+&-sRlQE$89Bu)or zCVj9krMCA@<=o4}Xt3RT2Io3vR?t9R4=8OYZC9AXnajv%w7qXG=XNGmV{k$h_{gEP Ky<`DrFcScH@nMnx delta 5392 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�DU=d>yn;>h!Cfb7#zQTC zPOd$dvE=)2g{40%TN)XZ6cqPW_fHoRc(M9ty^Nf}{Pm`X6%MU(lyUHqSFonDf3lQ_BQygVnav z6&yOe)n}P_e-=_?WSZ}HFO2a&EJu0# z#t&I`)+djAuI6{xu&w^a{;NxFpE{B8bE&`9bOx3uG5Z9NMx7y<6m^QHPE;Y|F3Zw| z)y44>-4cG=`Rv{yo8ij2bfvd)*}qBZ6R-a{pwN4LTf%AmccwR_4;vk`oL{*r`>KDo zxz4KPdxRCHbDLa@zNEKazM8Qiv)-k>e(RYdXRFNlMdkXms(!VYOt*UH`Q_of9n5tR z?|#IZ%3bl7KCI3+AtCipX8t9Uk5=riOm|HCFCCe)^S3w?M?BMn4_k_u6pT6cFe&)_ zHDSBebbr009{ZiEP4Yh6*%QvQcw9L0sA876o#wc`8K-8wkmg(woaah zC;?;nCfIKGyZ(93^Xd7QvrnXWlsyd&JYJ_C$28$9R||uK z)?*fh*E@BqS$+vMbo|=6?JbLk?c=B>#Tjh}H*|fiY>TrPlV@Ho`xO87@to zqh8OjWG(nmer~S)sITf9R6Z-j>b6 zbH8e&&YR`;T1Me_9n-8b(PqgNGdo+icFETohWkd<-}K%5=;Sf09e1DnJh#d5*UP=R z&E=d|_5~l~`12y=*FUQhVTS}1Y!xO+*G4@FkRuvwF?hIjSETxwwtiD zRmG_>c^p4t#USuxi9XkUW7|u14J?WVm065V(;1ie-diirK6lSjFbvXL-SlXqfnah23lz0SW zl|vRdI_wH)X5e_k($Tx-l+msFoNbvC%;vsf?D*JovQk=BfzeK5MH0))vo*<=JCFJ{ zonn^!@Rz|sf|2Fr<#~Ozd=4}AGCs4>*dB6okKIZg6$hV^g#By}{D@{068fVt zVV}H0nQ2${hkNhD6Mk7V@SIjy_+@MTR%wMJY7yy7?_?D$?G|2sHF=@K{u%kx+3J5v zGfbSu5qY?^!SJ)D+BClNiyexiJ1qDGm}W6rzO;E5?5NK7Q%wKqZ)t{)!5AgeyNUEs#& zD@-lT3=j1jRzzM_XAHV-9&;+t?%Tw#{*Qmx`!>AkNiuD@5t=7{^wp7{ZUQ&HUSR;K zW^{O=)UZKkiS)C%pKf}t+yFbRQ+4hNd?$hrdO1~$~Ji2XeP5ZZ`w|-|X^DugfbJz51D1vvBV!#(jt7opPfe zSbjTrC1JJa@~P%84WoFAJ~gjYmcAAL_u!SCZ{MYSD|*#?F`ixEX-N&U!z@cv)*$!h zEotW&oNOB!*5|g}4|h9yS;H{Zq)yV|PkTV!^mmC3CH20G)IY3T*!SdnTtiM+`P^PN zhL3fvKP6_h-*4VvzL!1zZY-m~CWeLUSvw-Pe%bX$#Nm;=)7+<<@AsemT)mqu@%4oA z`(Nvho_#g_Az%D{_x1m;{(0JPoq<8#1GJW4?!AMB5zTM@-}`{8C0Gv|Vg)TE0JQ|g zL@ydGw&eWj=soEnvt--p7yGh*?#O$$y0mhMg&mj8Zu1u2Q6l=Z(~EKL z?bopZdXGNe-g%Mlecs;>FYY%jzMuJi!Ta(nS(2g3zGtpXJ`#Cbjlob|roUyw7y+pyzY#gwo)4~&H}oUS)F{fTMY z5EJm>QjzwBqu*23*HwJU|9tU#ZHC>Y(prCps<|;@4K@MGtP?$%a*KnlWF8qh$nE~) zolvI#zx^0T<;KOO@@xzfY*Sx2$!Q+#Uh|l_bm#Jk=ld6A*dIG5di8p}!Zzb+mt-8g zUUK)WwY{5nS!`j^%IigQpH2St_3&c*_4kv%Y1W;3^K6sPywq9V)+b)otF04W@xX4w zQ9-#!oDMg*^k;-E5Ob(0nZMkpXbaC0#}}G4d3n10EXl&%lG`|D8OSMYdnmhafoF-~ z{l#Zj)VZIIt-83)cW(Kc`L|BWKfP4%b$HT?vwJn}izx6n>KUi@Y+-m(eIQ=l{d7cn z(W2#_1us;2c+3ub7S-Y-k&sl`Q1YXoPUI2u;?P5CVu3sL>^UZ^m5kVbM^xICVN=@X z1}TqV#|QI2pJjBC(c;TwJn!BbQ?#ciRc-n5&xs8p`V)EYEpR>hT!`6Y4nL=ffn5WC zz0l*uO(uss|0p=L@H5S4%6+K5ahYQr--Luh8NpAkm-bk+&USfsSN%gN1C#HXt84X- z&T>&z`l0?)L*YV;&s+)l4NiVf%LN^(6esYrbJ$8NyiQ!T)MjqKz@)Ha-aQG=bl-uT6oNywPXHDh6ew9@j`DiiO=@z0tVvK{FyjhO`Q$)H{JSu zmcaDMm(>i8_1x+jys;;mFI9P)9W=_DzAR8DcTYu2c7IW$W&5Q?x?R(x&%b~5tM^lN zuHMBhoDLFS^u4&bEq`t=pHf)ueQU#g4u58Sku}ek?iKS`e^zyt88gR>phPLx%YSY^ zG+K8}q0ra(h545+S+d{uO$*l1JFdUE>O$K+=>ulnAf zc+9y$X1!*xj&4lwF0;2u3caq?e@voQhcmPA|9@zrG=G=!{&L2Y?QAqzw|nlFB}-sM(aWL+m;A|Uh4Fu;$ zdA|O8rSBfznUniiJ8##1A%)weO#Un<%6^>_QE=SX*00XsBAZ$-rm(5LSpDZwmi^Dl zc^%50v%B6-DH2gg`q9q7`5~5Tf|cf8S%oE1cJrny*SIq%{eHyM&~a|=>m%xCeuQT) zS(kB{l|gXt*O-Pa-?!gc)byUGS=au!h3?~q&Zj?DT{L~TdI4iYa$$=MyN{0kk6#id z6K^vrT-`U9dy8f5+T+XB@=aB@zOHY7VV{uJg%l4Zr6< zB^X+g7&<}YFM*AHpG}W(e@br5GRu9YYUJ13LQQhwpkB3YnCh$c=ILd@>Sc05cxEvAIpDiaL}Jqe6YR7>Pmr;{ew31 z*<74;TXk+)yu2GT;X(e{3ESMJ=rajqF$EZAH7R(UFr2^T>1+$$(;p6BVA&<`dXcx^fSx3@?F7Ockcgx#dRawPKC1#Ijs`$ z911EdQNN^jS?D}D(Q@(SWurX{!pzTEpY?yrEVk+!-!$`$=MNm)x6iiyJjWLEz;7S6 zu9jbS>OE7#hW&ky?lP=wUbs4ek*Q^l6@w!CggVLjtOAQ2cQF(O)~m~|3ur2plo!c( z=RWsYjjls!V4eR(g=FE^tPGKFPf9v4IlN+C5`AnrV~Z8T%EedaessRL(zqsW!R+D+ z>r?91FKX)SGm|ZCb!TWTkC8iC%59FRK_Wtxcvmt;-p@dDrgoWb- zKi8MbKQ1^eWbQE97{@E1xKd@>)sp6W$G_iZSSaD}g2y3)Ltw+F-b35ZKRO)k`>myN zK97J|V;N&Y>Z?87`3kpe>ZDjWPG8JA&0Vx4^6lCgpIyzgr50?h;PQSR7X3xG-cD94 z_R{jyGvEAv>Z?C_H|8;-7TuR|_ zjMeUv+X}tqpQZL?Z{IEdU~_f++px*+wjG$eyHfx0?T-hqY`uN=`={8gy>tJ3tF+sy zd$0b8z%P%y^X$Q&V|QJzGhp5K*C;rPjUOFn@R1!LD1ce>jvGH>`L(%VDmi(u%c3xl(T#k90}@TGO1c-@(o) znVrGu>HmmXJl&G_wjMm1EpYz(|4?liyO(+^_$7PJr>3HD;&LkY+hMf(YoRnkA2Mr85g!NWX5ac z@g8EROo`z5GWE6n8p~3iP%7;yEYqGP5Xd$hdduv*Q~R?}oW2sySlipE%jEOvp{rj*Av4 z`gzv$#G>yfeP#BY6HvJQr*}CcXWa|sgORsq-alnwt`=t9`%Lfr(chC#%=z?hzHw!} zdvi`Y({x3LUx7N8jahDp7qZRelDVh-)4*ZRubcHcI_dSzkrx{UB9`wx;3TiWw^^?% zbkDMHYGIo9>?PbcX05AjP$* zWeB?a)#^>O$m)iDyL?TwP2N6Y;B2q-|Fkn8Ir04Qr?(8&S5IWPw%}E{rvF1{?$)E< z#29xg#vI%0|Mv;Y;U97e(PeWdhBduE^zz=B9zBt)^1at?{!Xla@|XA1EYaCz{QHC$ zPs|g&DO~eBZ2fNSmy5p!Z29%7xz zIb9%FGK2ev>by@6?GoKbG|I!@>;J;Yu)|FV>+Z{2mzdQTB; znOd2pvYkm6uLkN^-C-|L>Y9o&w)Zq4<>U92Ke6ok<5v4t@2R{g&gJW!2_gp0A(Zk#4;(qx$^edrtMQ zPr7YbUvqoc-yFLWTN!TlNzLQ_*S6R&{_ycshL!DK-m!4JJ}vxf?yC0@5>Le+uDMvLE7Re8d_W5i8s{ zZNkitruB=RHP-H0A;}b!zG82gBv<qD=;F#E$V z-V%M=y?JE3SA+aiMRl)Kp_jQi8XGQrnk3eG=BJIrj5daqSzDT>msIbaypPfISG|M+ zZ^CZV4&%4?PN;`+MAj~FaK6V`wzswZ>ZZwCvu1gS|Ek)j>2PE1WdV(5wbUB{<~wHd zx!+s0gV|BZ;H5%CPwj+Ek?h=_c^uI@Wg9;5D7<-5&6pJ0F~@jrRigaCjfrvWCJNbC zQ@1D;>c-0`=&Gc!#4js-mGm*$>M2-tGv2F=(_sUDP`s0nB{K*2|N1MdQd7$|GI6k)dW1T}uXWs}w;F3$W%Th6~r?bDcw3JFzvgr~ zl~Q`SWNLE#=6^6)&U}2eW^Sp#&M$XaJIs!xTx41ccB_;;3l!dQ)U9;?7! z_q#QBKB_eQ;9qYS-+aNdVZjY~t?T-E`9RA$UH+;z?ffKI8a;`Oj6^}pY4hv1>qpe>|Izzq`AhRXw(kS<)+w$y$0PJr&fv=Al-)u5UQhC8 zbeX#`(2`QI*dH0Vsh+NCq* z=qlR=b+LO$GNi0*)a-SPdfCSx$ocG%bW#1)t2=+R)vt-)De}LtFXMP}cy%L#nd=-T zkJG+yi}b`konCLmeq!;~UHqmFr^4QaGo=X1*|7*jooCa|GSka&Q#C!t9k0l(Qud6i z+yC=MKIRL|1v(MD+hR_cOcz}f)b>~^<)!+znWyU3F>x~Zgfkt<7GRvUbei|ASv`!G zOq?^-&s8*BSyR88`NL0!gNM`haXT}tT)ghmnT&PDJ+EY@XjYzC!w~6sXLhCN7dg*X zpQ!DEw|nyC7R9`>du(*EDxi7F*4f+#4w!KsY`^|nVXHt+QfNev@0wfhUrT2#yTXt; z>shra$J8d5<$anJG4p*H4xKm_Z{jgCYr?g!4rLSW?d8EW3<0|j^Vv9v zHJ@WnF<#=eQ=uzV%5iRl&i$wLforU4W_PNxHfGK2?XNPv(w;rxY|x^6PtH^RrIMcz0k6)lP=_~xF+)8?%jPmHw9|SUaWWf zs2&oPUQ<=5KcU>4kHxS3O)Syp z$#^jB`;?YL8`LZJZhDr<;B=HT`leDx#WP*j7J2S+uh)zznyQn!Q(H>eI=3=i(5SlY zq*!!)V&~Q$s(LAbriU-t7?%I>nejb3?9#@1q1Vr1^ddd=_wSq37v|EpW{J5hfB2>C z2Kk;1HuT)zQ9_P&OH&XVkx14jDVDoDUx_n0V%n#omvs zm#tEHUO&Giv7~p}imIJ1uP&`FUcNr##^kxj-G8Ot*jE2hf9DPJHwz>7FNlw4nefzk zyWZoXjTz51^TTiWvT`@Hbvo8aQS#cnD_px2KC!dbZ z{GsV#&n&>!bYOwWwDK=~42SBjT;*+C%fC-R;qZF}b%w~iqeafVMUMBGl=k`Y<}r6{ z5?8mM(Hy4JWUaJ;50$;R;VQTs0SQ(vM@vTmEIg}vrv z5h$$Hyr6o2sUzFhd6@$FVskDkd{}+7v+c2fgPK&!#ShL4cJF(YVOxLb?GF?Amh(Rp zY$h$de^KE`Gk@##Zr9%oj`HrZ-yAzuK7Rg2F!x2X4};KW#|y{(Zv0_JG$Nlkoe(%FIY2$k4`{8|2CA05@zk4-_!LvcdK}g}-%WVo@ zEg3SmtIc8Th}rAWAj5h>=$_nKmRcQ$BNrDfSiW=Kt=PyTmva6-FZ)yVR-#s5_JIK2 zuG=#2&wQF-vF*K6rNP$x{3{{X7#hoa19BHi{+rdA?S8kx;Xy$d6Ys>>`kY_UJ%`G= zJL3!^cYk+k*wEY>@pIkcn{})VNo^0)8G`bs1qu}UKTWQbn!jU~L$(0BK&R5w;@L~L z=Par5$T_%h+Sc%`t7cAIC3^Vsxt&*^q!kAWGns}hlV&q*R_-mmxysbMaLe)+0ipIz z+?(1N50!{IY%?rBynta-*t~tu*ktQj1de_v;DS>EE#`WaAGXJAId)~urZB(Pn!QU(I~Y$yUAT4rok>|q{;9$S0~U^# z_bM1tveWq$ZqLYm@n6KDr=wE-$isGCha>a%u?cQ^crcXRZ_44Q-vVqME8~m{vi5N) z)N9G-CTVU>C{E-rxs{oedH59564k5cY8LS?TDI;Q`!4f$8#4AAI9xMZKQ%1G76+fe2O?R)OrtoQuz73(Vfg&~fHC_v}^kPaXXc zbD+9oMuab~^mA|KmOrB0`V1X+47bkW+@iRISwO75Tr#Ycmr<#2Jsk$66ZFDVT% zB1cypUa5O)Df`jgI*f!KSW`!~++~2{MWXf^+hu3RA(VJ4W z+rRN9##PT;5VL>5u5}y2n_oyY^u5|(P&s9;9)psv*f$14<>k}r!^0+ubFti+@lK{& z)8Up%zbVJH8B5X{iWwS(r&o6UTo-8@rtLLg;wUxkh)Dla)o?;%T87-;W&BG2=jRuQ zHuW}3mtLx7I(+P9K;exr`+CbvcE&?b#JNiCzTGQe5iny&?4Hob-}I|1r`${ZulDv? zR}8}$cim_0xczLw<5jf{FI*RASvR&iIdQiZS)RZBSwP{Kr+V@IiR>Kh3{2u&*>ku4 zKj5rBcj06|wKs~ffAjBji$-bunP{+n&dof71kVWW6?X;io~>5P-+Oh5 z*oG6nN*F9hNjDs!O_k`ZJtqz9_x{gXHq+R{o%WzOzNlqb4Sm0K->7A@kSGim3 zgk_uW?s0CIz*Eg||+I~SkV5!rQjRH(aI+!-()dPxR~a;ecHto z`Kyw9SDR~e)!dUhx{F8Q@!78Xd&OV>D622u!ujLo?Ym$5Hr{zxcj*Wh(~~D<-}iG( zD6cUPW%sBv5M}hJ;|G;SUwqg6NqDuLAt|3=9mOu6{1-oD!M<%Je#t delta 16313 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 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); + } } }