mirror of https://github.com/OpenTTD/OpenTTD
Compare commits
3 Commits
1679e4c46e
...
9be68b713a
Author | SHA1 | Date |
---|---|---|
|
9be68b713a | |
|
1d21edde8d | |
|
67bb5fc5c5 |
|
@ -635,7 +635,6 @@ STR_GRAPH_CARGO_TOOLTIP_DISABLE_ALL :{BLACK}Não mos
|
|||
STR_GRAPH_CARGO_PAYMENT_TOGGLE_CARGO :{BLACK}Mostrar/Ocultar gráfico para este tipo de carga
|
||||
STR_GRAPH_CARGO_PAYMENT_CARGO :{TINY_FONT}{BLACK}{STRING}
|
||||
|
||||
STR_GRAPH_INDUSTRY_PRODUCTION_CAPTION :{WHITE}{INDUSTRY} - Histórico da Produção
|
||||
STR_GRAPH_INDUSTRY_RANGE_PRODUCED :Produzido
|
||||
STR_GRAPH_INDUSTRY_RANGE_TRANSPORTED :Transportado
|
||||
|
||||
|
@ -4025,8 +4024,6 @@ STR_INDUSTRY_VIEW_PRODUCTION_LAST_MONTH_TITLE :{BLACK}Produç
|
|||
STR_INDUSTRY_VIEW_PRODUCTION_LAST_MINUTE_TITLE :{BLACK}Produção no último minuto:
|
||||
STR_INDUSTRY_VIEW_TRANSPORTED :{YELLOW}{CARGO_LONG}{STRING}{BLACK} ({COMMA}% transportado)
|
||||
STR_INDUSTRY_VIEW_LOCATION_TOOLTIP :{BLACK}Centralizar visualização principal na localização da indústria. Ctrl+Clique para abrir uma nova visualização na localização da indústria
|
||||
STR_INDUSTRY_VIEW_PRODUCTION_GRAPH :{BLACK}Gráfico de Produção
|
||||
STR_INDUSTRY_VIEW_PRODUCTION_GRAPH_TOOLTIP :{BLACK}Mostrar gráfico do histórico de produção da indústria
|
||||
STR_INDUSTRY_VIEW_PRODUCTION_LEVEL :{BLACK}Nível de produção: {YELLOW}{COMMA}%
|
||||
STR_INDUSTRY_VIEW_INDUSTRY_ANNOUNCED_CLOSURE :{YELLOW}A indústria anunciou fechamento iminente!
|
||||
|
||||
|
|
|
@ -628,7 +628,6 @@ STR_GRAPH_CARGO_TOOLTIP_DISABLE_ALL :{BLACK}Скри
|
|||
STR_GRAPH_CARGO_PAYMENT_TOGGLE_CARGO :{BLACK}Активирай/деактивирай графиката за видовете товар
|
||||
STR_GRAPH_CARGO_PAYMENT_CARGO :{TINY_FONT}{BLACK}{STRING}
|
||||
|
||||
STR_GRAPH_INDUSTRY_PRODUCTION_CAPTION :{WHITE}{INDUSTRY} - История на производството
|
||||
|
||||
STR_GRAPH_PERFORMANCE_DETAIL_TOOLTIP :{BLACK}Покажи подробен рейтинг на представянето
|
||||
|
||||
|
@ -3967,8 +3966,6 @@ STR_INDUSTRY_VIEW_PRODUCTION_LAST_MONTH_TITLE :{BLACK}Прои
|
|||
STR_INDUSTRY_VIEW_PRODUCTION_LAST_MINUTE_TITLE :{BLACK}Произведено последната минута:
|
||||
STR_INDUSTRY_VIEW_TRANSPORTED :{YELLOW}{CARGO_LONG}{STRING}{BLACK} ({COMMA}% превозено)
|
||||
STR_INDUSTRY_VIEW_LOCATION_TOOLTIP :{BLACK}Центриране камерата върху индустрията. Ctrl+Click отваря прозорец с нов изглед към индустрията
|
||||
STR_INDUSTRY_VIEW_PRODUCTION_GRAPH :{BLACK}Производствена графика
|
||||
STR_INDUSTRY_VIEW_PRODUCTION_GRAPH_TOOLTIP :{BLACK}Показва графиката на производствената история на индустрията
|
||||
STR_INDUSTRY_VIEW_PRODUCTION_LEVEL :{BLACK}Ниво на производство: {YELLOW}{COMMA}%
|
||||
STR_INDUSTRY_VIEW_INDUSTRY_ANNOUNCED_CLOSURE :{YELLOW}Индустрията обяви незабавна ликвидация!
|
||||
|
||||
|
|
|
@ -635,7 +635,6 @@ STR_GRAPH_CARGO_TOOLTIP_DISABLE_ALL :{BLACK}No mostr
|
|||
STR_GRAPH_CARGO_PAYMENT_TOGGLE_CARGO :{BLACK}Mostra/amaga el tipus de càrrega al gràfic
|
||||
STR_GRAPH_CARGO_PAYMENT_CARGO :{TINY_FONT}{BLACK}{STRING}
|
||||
|
||||
STR_GRAPH_INDUSTRY_PRODUCTION_CAPTION :{WHITE}{INDUSTRY} - Historial de producció
|
||||
STR_GRAPH_INDUSTRY_RANGE_PRODUCED :Produït
|
||||
STR_GRAPH_INDUSTRY_RANGE_TRANSPORTED :Transportat
|
||||
|
||||
|
@ -4025,8 +4024,6 @@ STR_INDUSTRY_VIEW_PRODUCTION_LAST_MONTH_TITLE :{BLACK}Producci
|
|||
STR_INDUSTRY_VIEW_PRODUCTION_LAST_MINUTE_TITLE :{BLACK}Producció durant l'últim minut:
|
||||
STR_INDUSTRY_VIEW_TRANSPORTED :{YELLOW}{CARGO_LONG}{STRING}{BLACK} ({COMMA}{NBSP}% transportat)
|
||||
STR_INDUSTRY_VIEW_LOCATION_TOOLTIP :{BLACK}Centra la vista principal al lloc de la indústria. Amb Ctrl+clic, s'obre una vista nova centrada al lloc on és la indústria.
|
||||
STR_INDUSTRY_VIEW_PRODUCTION_GRAPH :{BLACK}Gràfic de producció
|
||||
STR_INDUSTRY_VIEW_PRODUCTION_GRAPH_TOOLTIP :{BLACK}Mostra el gràfic de l'evolució de la producció de la indústria.
|
||||
STR_INDUSTRY_VIEW_PRODUCTION_LEVEL :{BLACK}Nivell de producció: {YELLOW}{COMMA}{NBSP}%
|
||||
STR_INDUSTRY_VIEW_INDUSTRY_ANNOUNCED_CLOSURE :{YELLOW}La indústria ha anunciat la seva clausura imminent!
|
||||
|
||||
|
|
|
@ -720,7 +720,6 @@ STR_GRAPH_CARGO_TOOLTIP_DISABLE_ALL :{BLACK}Skryje v
|
|||
STR_GRAPH_CARGO_PAYMENT_TOGGLE_CARGO :{BLACK}Zobrazit nebo skrýt graf pro určitý druh nákladu
|
||||
STR_GRAPH_CARGO_PAYMENT_CARGO :{TINY_FONT}{BLACK}{STRING}
|
||||
|
||||
STR_GRAPH_INDUSTRY_PRODUCTION_CAPTION :{WHITE}{INDUSTRY} - Historie produkce
|
||||
STR_GRAPH_INDUSTRY_RANGE_PRODUCED :Vyprodukováno
|
||||
STR_GRAPH_INDUSTRY_RANGE_TRANSPORTED :Přepraveno
|
||||
|
||||
|
@ -4069,8 +4068,6 @@ STR_INDUSTRY_VIEW_PRODUCTION_LAST_MONTH_TITLE :{BLACK}Produkce
|
|||
STR_INDUSTRY_VIEW_PRODUCTION_LAST_MINUTE_TITLE :{BLACK}Produkce v minulé minutě:
|
||||
STR_INDUSTRY_VIEW_TRANSPORTED :{YELLOW}{CARGO_LONG}{STRING}{BLACK} ({COMMA}% přepraveno)
|
||||
STR_INDUSTRY_VIEW_LOCATION_TOOLTIP :{BLACK}Vystředit pohled na průmysl. Ctrl+Klik otevře nový pohled na umístění průmyslu
|
||||
STR_INDUSTRY_VIEW_PRODUCTION_GRAPH :{BLACK}Graf výroby
|
||||
STR_INDUSTRY_VIEW_PRODUCTION_GRAPH_TOOLTIP :{BLACK}Zobrazí graf historie produkce průmyslu
|
||||
STR_INDUSTRY_VIEW_PRODUCTION_LEVEL :{BLACK}Produkce: {YELLOW}{COMMA}%
|
||||
STR_INDUSTRY_VIEW_INDUSTRY_ANNOUNCED_CLOSURE :{YELLOW}Průmysl oznámila blížící se uzavření!
|
||||
|
||||
|
|
|
@ -633,7 +633,6 @@ STR_GRAPH_CARGO_TOOLTIP_DISABLE_ALL :{BLACK}Vis inte
|
|||
STR_GRAPH_CARGO_PAYMENT_TOGGLE_CARGO :{BLACK}Skift grafen for denne lasttype til/fra
|
||||
STR_GRAPH_CARGO_PAYMENT_CARGO :{TINY_FONT}{BLACK}{STRING}
|
||||
|
||||
STR_GRAPH_INDUSTRY_PRODUCTION_CAPTION :{WHITE}{INDUSTRY} - Produktionshistorie
|
||||
STR_GRAPH_INDUSTRY_RANGE_PRODUCED :Produceret
|
||||
STR_GRAPH_INDUSTRY_RANGE_TRANSPORTED :Transporteret
|
||||
|
||||
|
@ -4013,8 +4012,6 @@ STR_INDUSTRY_VIEW_PRODUCTION_LAST_MONTH_TITLE :{BLACK}Produkti
|
|||
STR_INDUSTRY_VIEW_PRODUCTION_LAST_MINUTE_TITLE :{BLACK}Produktion sidste minut:
|
||||
STR_INDUSTRY_VIEW_TRANSPORTED :{YELLOW}{CARGO_LONG}{STRING}{BLACK} ({COMMA}% transporteret)
|
||||
STR_INDUSTRY_VIEW_LOCATION_TOOLTIP :{BLACK}Centrer skærmen over industriens lokalitet. Ctrl+Klik åbner et nyt vindue ved industriens lokalitet.
|
||||
STR_INDUSTRY_VIEW_PRODUCTION_GRAPH :{BLACK}Produktionsgraf
|
||||
STR_INDUSTRY_VIEW_PRODUCTION_GRAPH_TOOLTIP :{BLACK}Viser grafen over industriens produktionshistorie
|
||||
STR_INDUSTRY_VIEW_PRODUCTION_LEVEL :{BLACK}Produktions niveauet: {YELLOW}{COMMA}%
|
||||
STR_INDUSTRY_VIEW_INDUSTRY_ANNOUNCED_CLOSURE :{YELLOW}Industrien har rapporteret øjeblikkelig nedlukning!
|
||||
|
||||
|
|
|
@ -634,7 +634,6 @@ STR_GRAPH_CARGO_TOOLTIP_DISABLE_ALL :{BLACK}Geen vra
|
|||
STR_GRAPH_CARGO_PAYMENT_TOGGLE_CARGO :{BLACK}Grafiek voor dit vrachttype weergeven-verbergen
|
||||
STR_GRAPH_CARGO_PAYMENT_CARGO :{TINY_FONT}{BLACK}{STRING}
|
||||
|
||||
STR_GRAPH_INDUSTRY_PRODUCTION_CAPTION :{WHITE}{INDUSTRY} - Productiegeschiedenis
|
||||
STR_GRAPH_INDUSTRY_RANGE_PRODUCED :Geproduceerd
|
||||
STR_GRAPH_INDUSTRY_RANGE_TRANSPORTED :Vervoerd
|
||||
|
||||
|
@ -4024,8 +4023,6 @@ STR_INDUSTRY_VIEW_PRODUCTION_LAST_MONTH_TITLE :{BLACK}Producti
|
|||
STR_INDUSTRY_VIEW_PRODUCTION_LAST_MINUTE_TITLE :{BLACK}Productie vorige minuut:
|
||||
STR_INDUSTRY_VIEW_TRANSPORTED :{YELLOW}{CARGO_LONG}{STRING}{BLACK} ({COMMA}% vervoerd)
|
||||
STR_INDUSTRY_VIEW_LOCATION_TOOLTIP :{BLACK}Centreer het hoofdscherm op de locatie van de industrie. Ctrl+klik opent een nieuws venster op de locatie van de industrie
|
||||
STR_INDUSTRY_VIEW_PRODUCTION_GRAPH :{BLACK}Productiegrafiek
|
||||
STR_INDUSTRY_VIEW_PRODUCTION_GRAPH_TOOLTIP :{BLACK}Geeft de grafiek weer van de productiegeschiedenis van de industrie
|
||||
STR_INDUSTRY_VIEW_PRODUCTION_LEVEL :{BLACK}Productieniveau: {YELLOW}{COMMA}%
|
||||
STR_INDUSTRY_VIEW_INDUSTRY_ANNOUNCED_CLOSURE :{YELLOW}De industrie heeft een dreigende sluiting aangekondigd!
|
||||
|
||||
|
|
|
@ -3691,10 +3691,15 @@ STR_TOWN_VIEW_TOWN_GROWS_EVERY_FUNDED :{BLACK}Town gro
|
|||
STR_TOWN_VIEW_TOWN_GROW_STOPPED :{BLACK}Town is {RED}not{BLACK} growing
|
||||
STR_TOWN_VIEW_NOISE_IN_TOWN :{BLACK}Noise limit in town: {ORANGE}{COMMA}{BLACK} max: {ORANGE}{COMMA}
|
||||
STR_TOWN_VIEW_CENTER_TOOLTIP :{BLACK}Centre the main view on town location. Ctrl+Click to open a new viewport on town location
|
||||
STR_TOWN_VIEW_LOCAL_AUTHORITY_BUTTON :{BLACK}Local Authority
|
||||
STR_TOWN_VIEW_LOCAL_AUTHORITY_TOOLTIP :{BLACK}Show information on local authority
|
||||
STR_TOWN_VIEW_RENAME_TOOLTIP :{BLACK}Change town name
|
||||
|
||||
STR_TOWN_VIEW_INFO :Information
|
||||
STR_TOWN_VIEW_INFO_TOOLTIP :Switch to town information tab
|
||||
STR_TOWN_VIEW_RATINGS :Ratings
|
||||
STR_TOWN_VIEW_RATINGS_TOOLTIP :Switch to local authority ratings tab
|
||||
STR_TOWN_VIEW_ACTIONS :Actions
|
||||
STR_TOWN_VIEW_ACTIONS_TOOLTIP :Switch to local authority actions tab
|
||||
|
||||
STR_TOWN_VIEW_EXPAND_BUTTON :{BLACK}Expand
|
||||
STR_TOWN_VIEW_EXPAND_TOOLTIP :{BLACK}Increase size of town
|
||||
STR_TOWN_VIEW_EXPAND_BUILDINGS_BUTTON :{BLACK}Expand buildings
|
||||
|
@ -3706,8 +3711,6 @@ STR_TOWN_VIEW_DELETE_TOOLTIP :{BLACK}Delete t
|
|||
|
||||
STR_TOWN_VIEW_RENAME_TOWN_BUTTON :Rename Town
|
||||
|
||||
# Town local authority window
|
||||
STR_LOCAL_AUTHORITY_CAPTION :{WHITE}{TOWN} local authority
|
||||
STR_LOCAL_AUTHORITY_ZONE :{BLACK}Zone
|
||||
STR_LOCAL_AUTHORITY_ZONE_TOOLTIP :{BLACK}Show zone within local authority boundaries
|
||||
STR_LOCAL_AUTHORITY_COMPANY_RATINGS :{BLACK}Transport company ratings:
|
||||
|
|
|
@ -634,7 +634,6 @@ STR_GRAPH_CARGO_TOOLTIP_DISABLE_ALL :{BLACK}Display
|
|||
STR_GRAPH_CARGO_PAYMENT_TOGGLE_CARGO :{BLACK}Toggle graph of this cargo type
|
||||
STR_GRAPH_CARGO_PAYMENT_CARGO :{TINY_FONT}{BLACK}{STRING}
|
||||
|
||||
STR_GRAPH_INDUSTRY_PRODUCTION_CAPTION :{WHITE}{INDUSTRY} - Production History
|
||||
STR_GRAPH_INDUSTRY_RANGE_PRODUCED :Produced
|
||||
STR_GRAPH_INDUSTRY_RANGE_TRANSPORTED :Transported
|
||||
|
||||
|
@ -4024,8 +4023,6 @@ STR_INDUSTRY_VIEW_PRODUCTION_LAST_MONTH_TITLE :{BLACK}Producti
|
|||
STR_INDUSTRY_VIEW_PRODUCTION_LAST_MINUTE_TITLE :{BLACK}Production last minute:
|
||||
STR_INDUSTRY_VIEW_TRANSPORTED :{YELLOW}{CARGO_LONG}{STRING}{BLACK} ({COMMA}% transported)
|
||||
STR_INDUSTRY_VIEW_LOCATION_TOOLTIP :{BLACK}Centre the main view on industry location. Ctrl+Click to open a new viewport on industry location
|
||||
STR_INDUSTRY_VIEW_PRODUCTION_GRAPH :{BLACK}Production Graph
|
||||
STR_INDUSTRY_VIEW_PRODUCTION_GRAPH_TOOLTIP :{BLACK}Shows the graph of industry production history
|
||||
STR_INDUSTRY_VIEW_PRODUCTION_LEVEL :{BLACK}Production level: {YELLOW}{COMMA}%
|
||||
STR_INDUSTRY_VIEW_INDUSTRY_ANNOUNCED_CLOSURE :{YELLOW}The industry has announced imminent closure!
|
||||
|
||||
|
|
|
@ -634,7 +634,6 @@ STR_GRAPH_CARGO_TOOLTIP_DISABLE_ALL :{BLACK}Display
|
|||
STR_GRAPH_CARGO_PAYMENT_TOGGLE_CARGO :{BLACK}Toggle graph of this cargo type
|
||||
STR_GRAPH_CARGO_PAYMENT_CARGO :{TINY_FONT}{BLACK}{STRING}
|
||||
|
||||
STR_GRAPH_INDUSTRY_PRODUCTION_CAPTION :{WHITE}{INDUSTRY} - Production History
|
||||
STR_GRAPH_INDUSTRY_RANGE_PRODUCED :Produced
|
||||
STR_GRAPH_INDUSTRY_RANGE_TRANSPORTED :Transported
|
||||
|
||||
|
@ -4024,8 +4023,6 @@ STR_INDUSTRY_VIEW_PRODUCTION_LAST_MONTH_TITLE :{BLACK}Producti
|
|||
STR_INDUSTRY_VIEW_PRODUCTION_LAST_MINUTE_TITLE :{BLACK}Production last minute:
|
||||
STR_INDUSTRY_VIEW_TRANSPORTED :{YELLOW}{CARGO_LONG}{STRING}{BLACK} ({COMMA}% transported)
|
||||
STR_INDUSTRY_VIEW_LOCATION_TOOLTIP :{BLACK}Center the main view on industry location. Ctrl+Click to open a new viewport on industry location
|
||||
STR_INDUSTRY_VIEW_PRODUCTION_GRAPH :{BLACK}Production Graph
|
||||
STR_INDUSTRY_VIEW_PRODUCTION_GRAPH_TOOLTIP :{BLACK}Shows the graph of industry production history
|
||||
STR_INDUSTRY_VIEW_PRODUCTION_LEVEL :{BLACK}Production level: {YELLOW}{COMMA}%
|
||||
STR_INDUSTRY_VIEW_INDUSTRY_ANNOUNCED_CLOSURE :{YELLOW}The industry has announced imminent closure!
|
||||
|
||||
|
@ -5001,6 +4998,7 @@ STR_ERROR_FLAT_LAND_REQUIRED :{WHITE}Flat lan
|
|||
STR_ERROR_LAND_SLOPED_IN_WRONG_DIRECTION :{WHITE}Land sloped in wrong direction
|
||||
STR_ERROR_CAN_T_DO_THIS :{WHITE}Can't do this...
|
||||
STR_ERROR_BUILDING_MUST_BE_DEMOLISHED :{WHITE}Building must be demolished first
|
||||
STR_ERROR_BUILDING_IS_PROTECTED :{WHITE}... building is protected
|
||||
STR_ERROR_CAN_T_CLEAR_THIS_AREA :{WHITE}Can't clear this area...
|
||||
STR_ERROR_SITE_UNSUITABLE :{WHITE}... site unsuitable
|
||||
STR_ERROR_ALREADY_BUILT :{WHITE}... already built
|
||||
|
|
|
@ -634,7 +634,6 @@ STR_GRAPH_CARGO_TOOLTIP_DISABLE_ALL :{BLACK}Älä n
|
|||
STR_GRAPH_CARGO_PAYMENT_TOGGLE_CARGO :{BLACK}Valitse, näytetäänkö tämän rahdin kuvaaja
|
||||
STR_GRAPH_CARGO_PAYMENT_CARGO :{TINY_FONT}{BLACK}{STRING}
|
||||
|
||||
STR_GRAPH_INDUSTRY_PRODUCTION_CAPTION :{WHITE}{INDUSTRY} – Tuotantohistoria
|
||||
STR_GRAPH_INDUSTRY_RANGE_PRODUCED :Tuotettu
|
||||
STR_GRAPH_INDUSTRY_RANGE_TRANSPORTED :Kuljetettu
|
||||
|
||||
|
@ -4024,8 +4023,6 @@ STR_INDUSTRY_VIEW_PRODUCTION_LAST_MONTH_TITLE :{BLACK}Tuotanto
|
|||
STR_INDUSTRY_VIEW_PRODUCTION_LAST_MINUTE_TITLE :{BLACK}Tuotanto viime minuutissa:
|
||||
STR_INDUSTRY_VIEW_TRANSPORTED :{YELLOW}{CARGO_LONG}{STRING}{BLACK} ({COMMA}{NBSP}% kuljetettu)
|
||||
STR_INDUSTRY_VIEW_LOCATION_TOOLTIP :{BLACK}Keskitä päänäkymä tuotantolaitoksen sijaintiin. Ctrl+napsautus avataksesi uuden näkymäikkunan laitoksen sijaintiin
|
||||
STR_INDUSTRY_VIEW_PRODUCTION_GRAPH :{BLACK}Tuotannon kuvaaja
|
||||
STR_INDUSTRY_VIEW_PRODUCTION_GRAPH_TOOLTIP :{BLACK}Näyttää tuotantohistorian kuvaajana
|
||||
STR_INDUSTRY_VIEW_PRODUCTION_LEVEL :{BLACK}Tuotantotaso: {YELLOW}{COMMA}{NBSP}%
|
||||
STR_INDUSTRY_VIEW_INDUSTRY_ANNOUNCED_CLOSURE :{YELLOW}Teollisuuslaitos ilmoittaa välittömästä lakkautuksesta!
|
||||
|
||||
|
|
|
@ -634,7 +634,6 @@ STR_GRAPH_CARGO_TOOLTIP_DISABLE_ALL :{BLACK}N'affich
|
|||
STR_GRAPH_CARGO_PAYMENT_TOGGLE_CARGO :{BLACK}Afficher/Cacher le type de marchandise
|
||||
STR_GRAPH_CARGO_PAYMENT_CARGO :{TINY_FONT}{BLACK}{STRING}
|
||||
|
||||
STR_GRAPH_INDUSTRY_PRODUCTION_CAPTION :{WHITE}{INDUSTRY} - Historique de production
|
||||
STR_GRAPH_INDUSTRY_RANGE_PRODUCED :Produit
|
||||
STR_GRAPH_INDUSTRY_RANGE_TRANSPORTED :Transporté
|
||||
|
||||
|
@ -4002,8 +4001,6 @@ STR_INDUSTRY_VIEW_PRODUCTION_LAST_MONTH_TITLE :{BLACK}Producti
|
|||
STR_INDUSTRY_VIEW_PRODUCTION_LAST_MINUTE_TITLE :{BLACK}Production la minute précédente{NBSP}:
|
||||
STR_INDUSTRY_VIEW_TRANSPORTED :{YELLOW}{CARGO_LONG}{STRING}{BLACK} ({COMMA}{NBSP}% transporté{P "" s})
|
||||
STR_INDUSTRY_VIEW_LOCATION_TOOLTIP :{BLACK}Centrer la vue sur l'industrie. Ctrl-clic pour ouvrir une nouvelle vue sur l'industrie.
|
||||
STR_INDUSTRY_VIEW_PRODUCTION_GRAPH :{BLACK}Graphe de production
|
||||
STR_INDUSTRY_VIEW_PRODUCTION_GRAPH_TOOLTIP :{BLACK}Affiche le graphe de l'historique de la production des industries
|
||||
STR_INDUSTRY_VIEW_PRODUCTION_LEVEL :{BLACK}Niveau de production{NBSP}: {YELLOW}{COMMA}{NBSP}%
|
||||
STR_INDUSTRY_VIEW_INDUSTRY_ANNOUNCED_CLOSURE :{YELLOW}L'industrie a annoncé sa fermeture imminente{NBSP}!
|
||||
|
||||
|
|
|
@ -635,7 +635,6 @@ STR_GRAPH_CARGO_TOOLTIP_DISABLE_ALL :{BLACK}Non amos
|
|||
STR_GRAPH_CARGO_PAYMENT_TOGGLE_CARGO :{BLACK}Amosar/ocultar gráfica para o tipo de carga
|
||||
STR_GRAPH_CARGO_PAYMENT_CARGO :{TINY_FONT}{BLACK}{STRING}
|
||||
|
||||
STR_GRAPH_INDUSTRY_PRODUCTION_CAPTION :{WHITE}{INDUSTRY} - Historial de produción
|
||||
STR_GRAPH_INDUSTRY_RANGE_PRODUCED :Producido
|
||||
STR_GRAPH_INDUSTRY_RANGE_TRANSPORTED :Transportado
|
||||
|
||||
|
@ -4025,8 +4024,6 @@ STR_INDUSTRY_VIEW_PRODUCTION_LAST_MONTH_TITLE :{BLACK}Produci
|
|||
STR_INDUSTRY_VIEW_PRODUCTION_LAST_MINUTE_TITLE :{BLACK}Producción no último minuto:
|
||||
STR_INDUSTRY_VIEW_TRANSPORTED :{YELLOW}{CARGO_LONG}{STRING}{BLACK} ({COMMA}% transportado)
|
||||
STR_INDUSTRY_VIEW_LOCATION_TOOLTIP :{BLACK}Centrar a vista principal na localización da industria. Ctrl+Clic abre unha nova fiestra na localización da industria
|
||||
STR_INDUSTRY_VIEW_PRODUCTION_GRAPH :{BLACK}Gráfico de produción
|
||||
STR_INDUSTRY_VIEW_PRODUCTION_GRAPH_TOOLTIP :{BLACK}Amosa o gráfico co histórico de produción industrial
|
||||
STR_INDUSTRY_VIEW_PRODUCTION_LEVEL :{BLACK}Nivel de produción: {YELLOW}{COMMA}%
|
||||
STR_INDUSTRY_VIEW_INDUSTRY_ANNOUNCED_CLOSURE :{YELLOW}A industria anunció un peche inminente
|
||||
|
||||
|
|
|
@ -627,7 +627,6 @@ STR_GRAPH_CARGO_TOOLTIP_DISABLE_ALL :{BLACK}Zeige ke
|
|||
STR_GRAPH_CARGO_PAYMENT_TOGGLE_CARGO :{BLACK}Diagramm für diesen Frachttyp ein/aus
|
||||
STR_GRAPH_CARGO_PAYMENT_CARGO :{TINY_FONT}{BLACK}{STRING}
|
||||
|
||||
STR_GRAPH_INDUSTRY_PRODUCTION_CAPTION :{WHITE}{INDUSTRY} - Produktionshistorie
|
||||
|
||||
STR_GRAPH_PERFORMANCE_DETAIL_TOOLTIP :{BLACK}Zeige detailierte Leistungsaufschlüsselung
|
||||
|
||||
|
@ -3958,8 +3957,6 @@ STR_INDUSTRY_VIEW_PRODUCTION_LAST_MONTH_TITLE :{BLACK}Produkti
|
|||
STR_INDUSTRY_VIEW_PRODUCTION_LAST_MINUTE_TITLE :{BLACK}Produktion in der letzten Minute:
|
||||
STR_INDUSTRY_VIEW_TRANSPORTED :{YELLOW}{CARGO_LONG}{STRING}{BLACK} ({COMMA}% befördert)
|
||||
STR_INDUSTRY_VIEW_LOCATION_TOOLTIP :{BLACK}Hauptansicht auf den Industriestandort zentrieren. Mit Strg+Klick wird eine neue Zusatzansicht auf den Industriestandort geöffnet
|
||||
STR_INDUSTRY_VIEW_PRODUCTION_GRAPH :{BLACK}Produktionsgraph
|
||||
STR_INDUSTRY_VIEW_PRODUCTION_GRAPH_TOOLTIP :{BLACK}Zeigt den Graphen der Produktionshistorie der Industrie an
|
||||
STR_INDUSTRY_VIEW_PRODUCTION_LEVEL :{BLACK}Produktionsrate: {YELLOW}{COMMA}%
|
||||
STR_INDUSTRY_VIEW_INDUSTRY_ANNOUNCED_CLOSURE :{YELLOW}Diese Industrie wird in Kürze schließen!
|
||||
|
||||
|
|
|
@ -727,7 +727,6 @@ STR_GRAPH_CARGO_TOOLTIP_DISABLE_ALL :{BLACK}Εμφά
|
|||
STR_GRAPH_CARGO_PAYMENT_TOGGLE_CARGO :{BLACK}Εναλλαγή γραφήματος αυτού του τύπου φορτίου
|
||||
STR_GRAPH_CARGO_PAYMENT_CARGO :{TINY_FONT}{BLACK}{STRING}
|
||||
|
||||
STR_GRAPH_INDUSTRY_PRODUCTION_CAPTION :{WHITE}{INDUSTRY} - Ιστορικό Παραγωγής
|
||||
STR_GRAPH_INDUSTRY_RANGE_PRODUCED :Παράχθηκε/αν
|
||||
STR_GRAPH_INDUSTRY_RANGE_TRANSPORTED :Μεταφέρθηκε/αν
|
||||
|
||||
|
@ -4118,8 +4117,6 @@ STR_INDUSTRY_VIEW_PRODUCTION_LAST_MONTH_TITLE :{BLACK}Παρα
|
|||
STR_INDUSTRY_VIEW_PRODUCTION_LAST_MINUTE_TITLE :{BLACK}Παραγωγή τελευταίου λεπτού:
|
||||
STR_INDUSTRY_VIEW_TRANSPORTED :{YELLOW}{CARGO_LONG}{STRING}{BLACK} ({COMMA}% μεταφέρθηκαν)
|
||||
STR_INDUSTRY_VIEW_LOCATION_TOOLTIP :{BLACK}Κεντράρισμα εικόνας στην περιοχή της βιομηχανίας. Ctrl+Κλικ για άνοιγμα νέου παραθύρου προβολής στην περιοχή της βιομηχανίας
|
||||
STR_INDUSTRY_VIEW_PRODUCTION_GRAPH :{BLACK}Γράφημα Παραγωγής
|
||||
STR_INDUSTRY_VIEW_PRODUCTION_GRAPH_TOOLTIP :{BLACK}Εμφανίζει το γράφημα ιστορικού παραγωγής της βιομηχανίας
|
||||
STR_INDUSTRY_VIEW_PRODUCTION_LEVEL :{BLACK}Επίπεδο παραγωγής: {YELLOW}{COMMA}%
|
||||
STR_INDUSTRY_VIEW_INDUSTRY_ANNOUNCED_CLOSURE :{YELLOW}Η βιομηχανία έχει ανακοινώσει άμεσο κλείσιμο!
|
||||
|
||||
|
|
|
@ -697,7 +697,6 @@ STR_GRAPH_CARGO_TOOLTIP_DISABLE_ALL :{BLACK}Ne mutas
|
|||
STR_GRAPH_CARGO_PAYMENT_TOGGLE_CARGO :{BLACK}Adott rakomány grafikonjának mutatása be/ki
|
||||
STR_GRAPH_CARGO_PAYMENT_CARGO :{TINY_FONT}{BLACK}{STRING}
|
||||
|
||||
STR_GRAPH_INDUSTRY_PRODUCTION_CAPTION :{WHITE}{INDUSTRY} - Termelési előzmények
|
||||
STR_GRAPH_INDUSTRY_RANGE_PRODUCED :Előállított
|
||||
STR_GRAPH_INDUSTRY_RANGE_TRANSPORTED :Szállítva
|
||||
|
||||
|
@ -4088,8 +4087,6 @@ STR_INDUSTRY_VIEW_PRODUCTION_LAST_MONTH_TITLE :{BLACK}Múlt ha
|
|||
STR_INDUSTRY_VIEW_PRODUCTION_LAST_MINUTE_TITLE :{BLACK}Termelés az elmúlt percben:
|
||||
STR_INDUSTRY_VIEW_TRANSPORTED :{YELLOW}{CARGO_LONG}{STRING}{BLACK} ({COMMA}% elszállítva)
|
||||
STR_INDUSTRY_VIEW_LOCATION_TOOLTIP :{BLACK}A fő nézetet a gazdasági épületre állítja. Ctrl+kattintással új nézet nyílik a gazdasági épület helyzeténél
|
||||
STR_INDUSTRY_VIEW_PRODUCTION_GRAPH :{BLACK}Termelési grafikon
|
||||
STR_INDUSTRY_VIEW_PRODUCTION_GRAPH_TOOLTIP :{BLACK}Megjeleníti az ipar termelési történetének grafikonját
|
||||
STR_INDUSTRY_VIEW_PRODUCTION_LEVEL :{BLACK}Termelési szint: {YELLOW}{COMMA}%
|
||||
STR_INDUSTRY_VIEW_INDUSTRY_ANNOUNCED_CLOSURE :{YELLOW}A gyár bejelentette a közelgő bezárását!
|
||||
|
||||
|
|
|
@ -635,7 +635,6 @@ STR_GRAPH_CARGO_TOOLTIP_DISABLE_ALL :{BLACK}화물
|
|||
STR_GRAPH_CARGO_PAYMENT_TOGGLE_CARGO :{BLACK}이 화물의 그래프를 표시하거나 숨깁니다
|
||||
STR_GRAPH_CARGO_PAYMENT_CARGO :{TINY_FONT}{BLACK}{STRING}
|
||||
|
||||
STR_GRAPH_INDUSTRY_PRODUCTION_CAPTION :{WHITE}{INDUSTRY} - 생산량 이력
|
||||
STR_GRAPH_INDUSTRY_RANGE_PRODUCED :생산량
|
||||
STR_GRAPH_INDUSTRY_RANGE_TRANSPORTED :수송량
|
||||
|
||||
|
@ -4025,8 +4024,6 @@ STR_INDUSTRY_VIEW_PRODUCTION_LAST_MONTH_TITLE :{BLACK}지난
|
|||
STR_INDUSTRY_VIEW_PRODUCTION_LAST_MINUTE_TITLE :{BLACK}지난 1분간 생산량:
|
||||
STR_INDUSTRY_VIEW_TRANSPORTED :{YELLOW}{CARGO_LONG}{STRING}{BLACK} ({COMMA}% 수송됨)
|
||||
STR_INDUSTRY_VIEW_LOCATION_TOOLTIP :{BLACK}이 산업시설로 이동합니다. CTRL+클릭하면 이 산업시설을 기준으로 새로운 외부 화면을 엽니다
|
||||
STR_INDUSTRY_VIEW_PRODUCTION_GRAPH :{BLACK}생산량 그래프
|
||||
STR_INDUSTRY_VIEW_PRODUCTION_GRAPH_TOOLTIP :{BLACK}산업시설 생산량 이력 그래프를 보여줍니다
|
||||
STR_INDUSTRY_VIEW_PRODUCTION_LEVEL :{BLACK}생산 수준: {YELLOW}{COMMA}%
|
||||
STR_INDUSTRY_VIEW_INDUSTRY_ANNOUNCED_CLOSURE :{YELLOW}산업시설이 곧 폐쇄됩니다!
|
||||
|
||||
|
|
|
@ -635,7 +635,6 @@ STR_GRAPH_CARGO_TOOLTIP_DISABLE_ALL :{BLACK}Nerādī
|
|||
STR_GRAPH_CARGO_PAYMENT_TOGGLE_CARGO :{BLACK}Paslēgt kravas veida diagrammu
|
||||
STR_GRAPH_CARGO_PAYMENT_CARGO :{TINY_FONT}{BLACK}{STRING}
|
||||
|
||||
STR_GRAPH_INDUSTRY_PRODUCTION_CAPTION :{WHITE}{INDUSTRY} - Ražošanas Vēsture
|
||||
STR_GRAPH_INDUSTRY_RANGE_PRODUCED :Saražots
|
||||
STR_GRAPH_INDUSTRY_RANGE_TRANSPORTED :Pārvadāts
|
||||
|
||||
|
@ -4021,8 +4020,6 @@ STR_INDUSTRY_VIEW_PRODUCTION_LAST_MONTH_TITLE :{BLACK}Iepriek
|
|||
STR_INDUSTRY_VIEW_PRODUCTION_LAST_MINUTE_TITLE :{BLACK}Ražošanas pēdējā minūtē:
|
||||
STR_INDUSTRY_VIEW_TRANSPORTED :{YELLOW}{CARGO_LONG}{STRING}{BLACK} (pārvadāti {COMMA}%)
|
||||
STR_INDUSTRY_VIEW_LOCATION_TOOLTIP :{BLACK}Centrēt galveno skatu uz ražotni. Ctrl+klikšķis atvērs skatu uz ražotni jaunā skatlaukā
|
||||
STR_INDUSTRY_VIEW_PRODUCTION_GRAPH :{BLACK}Ražošanas Grafiks
|
||||
STR_INDUSTRY_VIEW_PRODUCTION_GRAPH_TOOLTIP :{BLACK}Parāda nozares ražošanas vēstures grafiku
|
||||
STR_INDUSTRY_VIEW_PRODUCTION_LEVEL :{BLACK}Ražošanas līmenis: {YELLOW}{COMMA}%
|
||||
STR_INDUSTRY_VIEW_INDUSTRY_ANNOUNCED_CLOSURE :{YELLOW}Nozare ir paziņojusi par nenovēršamu slēgšanu!
|
||||
|
||||
|
|
|
@ -633,7 +633,6 @@ STR_GRAPH_CARGO_TOOLTIP_DISABLE_ALL :{BLACK}Keng Wue
|
|||
STR_GRAPH_CARGO_PAYMENT_TOGGLE_CARGO :{BLACK}Schalt d'Grafik fir de Wuerentyp em
|
||||
STR_GRAPH_CARGO_PAYMENT_CARGO :{TINY_FONT}{BLACK}{STRING}
|
||||
|
||||
STR_GRAPH_INDUSTRY_PRODUCTION_CAPTION :{WHITE}{INDUSTRY} - Produktiounshistorie
|
||||
STR_GRAPH_INDUSTRY_RANGE_PRODUCED :Produzéiert
|
||||
STR_GRAPH_INDUSTRY_RANGE_TRANSPORTED :Transportéiert
|
||||
|
||||
|
@ -3994,8 +3993,6 @@ STR_INDUSTRY_VIEW_PRODUCTION_LAST_MONTH_TITLE :{BLACK}Produkti
|
|||
STR_INDUSTRY_VIEW_PRODUCTION_LAST_MINUTE_TITLE :{BLACK}Produktioun déi läscht Minutt:
|
||||
STR_INDUSTRY_VIEW_TRANSPORTED :{YELLOW}{CARGO_LONG}{STRING}{BLACK} ({COMMA}% transportéiert)
|
||||
STR_INDUSTRY_VIEW_LOCATION_TOOLTIP :{BLACK}Zentréiert d'Siicht op d'Industrie. Ctrl+Klick erstellt eng nei Usiicht op d'Industrie
|
||||
STR_INDUSTRY_VIEW_PRODUCTION_GRAPH :{BLACK}Produktiounsgrafik
|
||||
STR_INDUSTRY_VIEW_PRODUCTION_GRAPH_TOOLTIP :{BLACK}Weist d'Grafik vun der Industrieproduktiounshistorie un
|
||||
STR_INDUSTRY_VIEW_PRODUCTION_LEVEL :{BLACK}Produktiounslevel: {YELLOW}{COMMA}%
|
||||
STR_INDUSTRY_VIEW_INDUSTRY_ANNOUNCED_CLOSURE :{YELLOW}D'Industrie annoncéiert dass se zougemaach gëtt
|
||||
|
||||
|
|
|
@ -635,7 +635,6 @@ STR_GRAPH_CARGO_TOOLTIP_DISABLE_ALL :{BLACK}Skjul al
|
|||
STR_GRAPH_CARGO_PAYMENT_TOGGLE_CARGO :{BLACK}Vis/skjul graf for en bestemt varetype
|
||||
STR_GRAPH_CARGO_PAYMENT_CARGO :{TINY_FONT}{BLACK}{STRING}
|
||||
|
||||
STR_GRAPH_INDUSTRY_PRODUCTION_CAPTION :{WHITE}{INDUSTRY} - Produksjonshistorikk
|
||||
STR_GRAPH_INDUSTRY_RANGE_PRODUCED :Produsert
|
||||
STR_GRAPH_INDUSTRY_RANGE_TRANSPORTED :Transportert
|
||||
|
||||
|
@ -4025,8 +4024,6 @@ STR_INDUSTRY_VIEW_PRODUCTION_LAST_MONTH_TITLE :{BLACK}Produksj
|
|||
STR_INDUSTRY_VIEW_PRODUCTION_LAST_MINUTE_TITLE :{BLACK}Produksjon forrige minutt:
|
||||
STR_INDUSTRY_VIEW_TRANSPORTED :{YELLOW}{CARGO_LONG}{STRING}{BLACK} ({COMMA}{NBSP}% transportert)
|
||||
STR_INDUSTRY_VIEW_LOCATION_TOOLTIP :{BLACK}Sentrer hovedvisningen på industrilokasjon. Ctrl+klikk for å åpne et nytt tilleggsvindu på industrilokasjon
|
||||
STR_INDUSTRY_VIEW_PRODUCTION_GRAPH :{BLACK}Graf over produksjon
|
||||
STR_INDUSTRY_VIEW_PRODUCTION_GRAPH_TOOLTIP :{BLACK}Viser grafen for industriell produksjonshistorikk
|
||||
STR_INDUSTRY_VIEW_PRODUCTION_LEVEL :{BLACK}Produksjonsnivå: {YELLOW}{COMMA}%
|
||||
STR_INDUSTRY_VIEW_INDUSTRY_ANNOUNCED_CLOSURE :{YELLOW}Næringen har annonsert snarlig nedleggelse!
|
||||
|
||||
|
|
|
@ -1013,7 +1013,6 @@ STR_GRAPH_CARGO_TOOLTIP_DISABLE_ALL :{BLACK}Ukryj ws
|
|||
STR_GRAPH_CARGO_PAYMENT_TOGGLE_CARGO :{BLACK}Przełącz ukrywanie/wyświetlanie wykresu danego typu ładunku
|
||||
STR_GRAPH_CARGO_PAYMENT_CARGO :{TINY_FONT}{BLACK}{STRING}
|
||||
|
||||
STR_GRAPH_INDUSTRY_PRODUCTION_CAPTION :{WHITE}{INDUSTRY} - Historia Produkcji
|
||||
STR_GRAPH_INDUSTRY_RANGE_PRODUCED :Wyprodukowano
|
||||
STR_GRAPH_INDUSTRY_RANGE_TRANSPORTED :Przetransportowano
|
||||
|
||||
|
@ -4404,8 +4403,6 @@ STR_INDUSTRY_VIEW_PRODUCTION_LAST_MONTH_TITLE :{BLACK}Wyproduk
|
|||
STR_INDUSTRY_VIEW_PRODUCTION_LAST_MINUTE_TITLE :{BLACK}Wyprodukowano w poprzedniej minucie:
|
||||
STR_INDUSTRY_VIEW_TRANSPORTED :{YELLOW}{CARGO_LONG}{STRING}{BLACK} ({COMMA}% przetransportowano)
|
||||
STR_INDUSTRY_VIEW_LOCATION_TOOLTIP :{BLACK}Wyśrodkuj widok główny na lokalizacji przedsiębiorstwa. Użyj Ctrl, aby otworzyć nowy podgląd na jego lokalizację
|
||||
STR_INDUSTRY_VIEW_PRODUCTION_GRAPH :{BLACK}Wykres Produkcji
|
||||
STR_INDUSTRY_VIEW_PRODUCTION_GRAPH_TOOLTIP :{BLACK}Wyświetl wykres historii produkcji tego przedsiębiorstwa
|
||||
STR_INDUSTRY_VIEW_PRODUCTION_LEVEL :{BLACK}Poziom produkcji: {YELLOW}{COMMA}%
|
||||
STR_INDUSTRY_VIEW_INDUSTRY_ANNOUNCED_CLOSURE :{YELLOW}Przedsiębiorstwo ogłosiło likwidację!
|
||||
|
||||
|
|
|
@ -635,7 +635,6 @@ STR_GRAPH_CARGO_TOOLTIP_DISABLE_ALL :{BLACK}Não mos
|
|||
STR_GRAPH_CARGO_PAYMENT_TOGGLE_CARGO :{BLACK}Alternar o gráfico para este tipo de carga
|
||||
STR_GRAPH_CARGO_PAYMENT_CARGO :{TINY_FONT}{BLACK}{STRING}
|
||||
|
||||
STR_GRAPH_INDUSTRY_PRODUCTION_CAPTION :{WHITE}{INDUSTRY} - Histórico da Produção
|
||||
STR_GRAPH_INDUSTRY_RANGE_PRODUCED :Produzido
|
||||
STR_GRAPH_INDUSTRY_RANGE_TRANSPORTED :Transportado
|
||||
|
||||
|
@ -4025,8 +4024,6 @@ STR_INDUSTRY_VIEW_PRODUCTION_LAST_MONTH_TITLE :{BLACK}Produç
|
|||
STR_INDUSTRY_VIEW_PRODUCTION_LAST_MINUTE_TITLE :{BLACK}Produção no último minuto:
|
||||
STR_INDUSTRY_VIEW_TRANSPORTED :{YELLOW}{CARGO_LONG}{STRING}{BLACK} ({COMMA}% transportado)
|
||||
STR_INDUSTRY_VIEW_LOCATION_TOOLTIP :{BLACK}Centrar visualização na localização da indústria. Ctrl+Clique para abrir um novo visualizador na localização da indústria
|
||||
STR_INDUSTRY_VIEW_PRODUCTION_GRAPH :{BLACK}Gráfico de Produção
|
||||
STR_INDUSTRY_VIEW_PRODUCTION_GRAPH_TOOLTIP :{BLACK}Mostrar gráfico do histórico de produção da indústria
|
||||
STR_INDUSTRY_VIEW_PRODUCTION_LEVEL :{BLACK}Nível de produção: {YELLOW}{COMMA}%
|
||||
STR_INDUSTRY_VIEW_INDUSTRY_ANNOUNCED_CLOSURE :{YELLOW}A indústria anunciou encerramento iminente!
|
||||
|
||||
|
|
|
@ -3976,8 +3976,6 @@ STR_INDUSTRY_VIEW_PRODUCTION_LAST_MONTH_TITLE :{BLACK}Producț
|
|||
STR_INDUSTRY_VIEW_PRODUCTION_LAST_MINUTE_TITLE :{BLACK}Producție în ultimul minut:
|
||||
STR_INDUSTRY_VIEW_TRANSPORTED :{YELLOW}{CARGO_LONG}{STRING}{BLACK} ({COMMA}% transportat)
|
||||
STR_INDUSTRY_VIEW_LOCATION_TOOLTIP :{BLACK}Centrează imaginea pe locația industriei. Ctrl+Click pentru a deshide o fereastra cu locația industriei
|
||||
STR_INDUSTRY_VIEW_PRODUCTION_GRAPH :{BLACK}Grafic de producție
|
||||
STR_INDUSTRY_VIEW_PRODUCTION_GRAPH_TOOLTIP :{BLACK}Arată graficul de producție istoric al industriei
|
||||
STR_INDUSTRY_VIEW_PRODUCTION_LEVEL :{BLACK}Nivelul producției: {YELLOW}{COMMA}%
|
||||
STR_INDUSTRY_VIEW_INDUSTRY_ANNOUNCED_CLOSURE :{YELLOW}Industria a anunțat închiderea iminentă!
|
||||
|
||||
|
|
|
@ -772,7 +772,6 @@ STR_GRAPH_CARGO_TOOLTIP_DISABLE_ALL :{BLACK}Скры
|
|||
STR_GRAPH_CARGO_PAYMENT_TOGGLE_CARGO :{BLACK}Включить/отключить отображение груза на графике
|
||||
STR_GRAPH_CARGO_PAYMENT_CARGO :{TINY_FONT}{BLACK}{STRING}
|
||||
|
||||
STR_GRAPH_INDUSTRY_PRODUCTION_CAPTION :{WHITE}График производительности: {INDUSTRY}
|
||||
STR_GRAPH_INDUSTRY_RANGE_PRODUCED :Произведено
|
||||
STR_GRAPH_INDUSTRY_RANGE_TRANSPORTED :Перевезено
|
||||
|
||||
|
@ -4199,8 +4198,6 @@ STR_INDUSTRY_VIEW_PRODUCTION_LAST_MONTH_TITLE :{BLACK}Прои
|
|||
STR_INDUSTRY_VIEW_PRODUCTION_LAST_MINUTE_TITLE :{BLACK}Произведено за минуту:
|
||||
STR_INDUSTRY_VIEW_TRANSPORTED :{YELLOW}{CARGO_LONG}{STRING}{BLACK} ({COMMA}% перевезено)
|
||||
STR_INDUSTRY_VIEW_LOCATION_TOOLTIP :{BLACK}Показать предприятие в основном окне. Ctrl+щелчок{NBSP}- показать в дополнительном окне.
|
||||
STR_INDUSTRY_VIEW_PRODUCTION_GRAPH :{BLACK}График производительности
|
||||
STR_INDUSTRY_VIEW_PRODUCTION_GRAPH_TOOLTIP :{BLACK}Показать график производительности этого предприятия
|
||||
STR_INDUSTRY_VIEW_PRODUCTION_LEVEL :{BLACK}Производительность: {YELLOW}{COMMA}%
|
||||
STR_INDUSTRY_VIEW_INDUSTRY_ANNOUNCED_CLOSURE :{YELLOW}Предприятие скоро закрывается!
|
||||
|
||||
|
|
|
@ -634,7 +634,6 @@ STR_GRAPH_CARGO_TOOLTIP_DISABLE_ALL :{BLACK}在货
|
|||
STR_GRAPH_CARGO_PAYMENT_TOGGLE_CARGO :{BLACK}切换显示货物
|
||||
STR_GRAPH_CARGO_PAYMENT_CARGO :{TINY_FONT}{BLACK}{STRING}
|
||||
|
||||
STR_GRAPH_INDUSTRY_PRODUCTION_CAPTION :{WHITE}{INDUSTRY} - 产量历史
|
||||
STR_GRAPH_INDUSTRY_RANGE_PRODUCED :已生产
|
||||
STR_GRAPH_INDUSTRY_RANGE_TRANSPORTED :已运输
|
||||
|
||||
|
@ -4024,8 +4023,6 @@ STR_INDUSTRY_VIEW_PRODUCTION_LAST_MONTH_TITLE :{BLACK}上月
|
|||
STR_INDUSTRY_VIEW_PRODUCTION_LAST_MINUTE_TITLE :{BLACK}上分钟产量:
|
||||
STR_INDUSTRY_VIEW_TRANSPORTED :{YELLOW}{CARGO_LONG}{STRING}{BLACK}(已运输 {COMMA}%)
|
||||
STR_INDUSTRY_VIEW_LOCATION_TOOLTIP :{BLACK}将屏幕中心移动到当前工业的位置。按住 <Ctrl> 键点选会在新视点中显示工业位置
|
||||
STR_INDUSTRY_VIEW_PRODUCTION_GRAPH :{BLACK}产量图表
|
||||
STR_INDUSTRY_VIEW_PRODUCTION_GRAPH_TOOLTIP :{BLACK}显示工业产量历史图表
|
||||
STR_INDUSTRY_VIEW_PRODUCTION_LEVEL :{BLACK}生产等级:{YELLOW}{COMMA}%
|
||||
STR_INDUSTRY_VIEW_INDUSTRY_ANNOUNCED_CLOSURE :{YELLOW}此工业已经宣布即刻停业倒闭!
|
||||
|
||||
|
|
|
@ -634,7 +634,6 @@ STR_GRAPH_CARGO_TOOLTIP_DISABLE_ALL :{BLACK}Oculta t
|
|||
STR_GRAPH_CARGO_PAYMENT_TOGGLE_CARGO :{BLACK}Alterna entre mostrar/ocultar la gráfica para este tipo de carga
|
||||
STR_GRAPH_CARGO_PAYMENT_CARGO :{TINY_FONT}{BLACK}{STRING}
|
||||
|
||||
STR_GRAPH_INDUSTRY_PRODUCTION_CAPTION :{WHITE}{INDUSTRY} - Historial de Producción
|
||||
STR_GRAPH_INDUSTRY_RANGE_PRODUCED :Producido
|
||||
STR_GRAPH_INDUSTRY_RANGE_TRANSPORTED :Transportado
|
||||
|
||||
|
@ -4011,8 +4010,6 @@ STR_INDUSTRY_VIEW_PRODUCTION_LAST_MONTH_TITLE :{BLACK}Producci
|
|||
STR_INDUSTRY_VIEW_PRODUCTION_LAST_MINUTE_TITLE :{BLACK}Producción el minuto anterior:
|
||||
STR_INDUSTRY_VIEW_TRANSPORTED :{YELLOW}{CARGO_LONG}{STRING}{BLACK} ({COMMA}% transportado)
|
||||
STR_INDUSTRY_VIEW_LOCATION_TOOLTIP :{BLACK}Centra la vista principal sobre la industria. Ctrl+clic abre un punto de vista en dicha posición
|
||||
STR_INDUSTRY_VIEW_PRODUCTION_GRAPH :{BLACK}Gráfico de Producción
|
||||
STR_INDUSTRY_VIEW_PRODUCTION_GRAPH_TOOLTIP :{BLACK}Muestra el gráfico del historial de producción de la industria
|
||||
STR_INDUSTRY_VIEW_PRODUCTION_LEVEL :{BLACK}Nivel de producción: {YELLOW}{COMMA}%
|
||||
STR_INDUSTRY_VIEW_INDUSTRY_ANNOUNCED_CLOSURE :{YELLOW}La industria ha anunciado su cierre inminente!
|
||||
|
||||
|
|
|
@ -635,7 +635,6 @@ STR_GRAPH_CARGO_TOOLTIP_DISABLE_ALL :{BLACK}Ocultar
|
|||
STR_GRAPH_CARGO_PAYMENT_TOGGLE_CARGO :{BLACK}Mostrar u ocultar gráfica de este tipo de carga
|
||||
STR_GRAPH_CARGO_PAYMENT_CARGO :{TINY_FONT}{BLACK}{STRING}
|
||||
|
||||
STR_GRAPH_INDUSTRY_PRODUCTION_CAPTION :{WHITE}{INDUSTRY} - Historial de producción
|
||||
STR_GRAPH_INDUSTRY_RANGE_PRODUCED :Producido
|
||||
STR_GRAPH_INDUSTRY_RANGE_TRANSPORTED :Transportado
|
||||
|
||||
|
@ -4025,8 +4024,6 @@ STR_INDUSTRY_VIEW_PRODUCTION_LAST_MONTH_TITLE :{BLACK}Producci
|
|||
STR_INDUSTRY_VIEW_PRODUCTION_LAST_MINUTE_TITLE :{BLACK}Producción último minuto:
|
||||
STR_INDUSTRY_VIEW_TRANSPORTED :{YELLOW}{CARGO_LONG}{STRING}{BLACK} ({COMMA}% transportad{G 0 o a o a}{P 0 "" s})
|
||||
STR_INDUSTRY_VIEW_LOCATION_TOOLTIP :{BLACK}Centrar vista en la industria. Ctrl+Clic abre una vista aparte en su ubicación
|
||||
STR_INDUSTRY_VIEW_PRODUCTION_GRAPH :{BLACK}Gráfica de producción
|
||||
STR_INDUSTRY_VIEW_PRODUCTION_GRAPH_TOOLTIP :{BLACK}Mostrar la gráfica histórica de producción de la industria
|
||||
STR_INDUSTRY_VIEW_PRODUCTION_LEVEL :{BLACK}Nivel de producción: {YELLOW}{COMMA}%
|
||||
STR_INDUSTRY_VIEW_INDUSTRY_ANNOUNCED_CLOSURE :{YELLOW}¡La industria ha anunciado su cierre inminente!
|
||||
|
||||
|
|
|
@ -633,7 +633,6 @@ STR_GRAPH_CARGO_TOOLTIP_DISABLE_ALL :{BLACK}Visa ing
|
|||
STR_GRAPH_CARGO_PAYMENT_TOGGLE_CARGO :{BLACK}Slå på/av denna godstyps graf
|
||||
STR_GRAPH_CARGO_PAYMENT_CARGO :{TINY_FONT}{BLACK}{STRING}
|
||||
|
||||
STR_GRAPH_INDUSTRY_PRODUCTION_CAPTION :{WHITE}{INDUSTRY} - Produktionshistorik
|
||||
STR_GRAPH_INDUSTRY_RANGE_PRODUCED :Producerat
|
||||
STR_GRAPH_INDUSTRY_RANGE_TRANSPORTED :Transporterat
|
||||
|
||||
|
@ -4001,8 +4000,6 @@ STR_INDUSTRY_VIEW_PRODUCTION_LAST_MONTH_TITLE :{BLACK}Produkti
|
|||
STR_INDUSTRY_VIEW_PRODUCTION_LAST_MINUTE_TITLE :{BLACK}Produktion förra minuten:
|
||||
STR_INDUSTRY_VIEW_TRANSPORTED :{YELLOW}{CARGO_LONG}{STRING}{BLACK} ({COMMA}% transporterat)
|
||||
STR_INDUSTRY_VIEW_LOCATION_TOOLTIP :{BLACK}Centrera huvudvyn ovanför industrin. Ctrl+Klick för att öppna en ny fönstervy industrins läge
|
||||
STR_INDUSTRY_VIEW_PRODUCTION_GRAPH :{BLACK}Produktionsgraf
|
||||
STR_INDUSTRY_VIEW_PRODUCTION_GRAPH_TOOLTIP :{BLACK}Visar en graf över den historiska industriproduktionen
|
||||
STR_INDUSTRY_VIEW_PRODUCTION_LEVEL :{BLACK}Produktionsnivå: {YELLOW}{COMMA}%
|
||||
STR_INDUSTRY_VIEW_INDUSTRY_ANNOUNCED_CLOSURE :{YELLOW}Industrin har annonserat att den snart kommer att stänga!
|
||||
|
||||
|
|
|
@ -634,7 +634,6 @@ STR_GRAPH_CARGO_TOOLTIP_DISABLE_ALL :{BLACK}於貨
|
|||
STR_GRAPH_CARGO_PAYMENT_TOGGLE_CARGO :{BLACK}切換該貨物類型圖示
|
||||
STR_GRAPH_CARGO_PAYMENT_CARGO :{TINY_FONT}{BLACK}{STRING}
|
||||
|
||||
STR_GRAPH_INDUSTRY_PRODUCTION_CAPTION :{WHITE}{INDUSTRY} - 產量歷史
|
||||
STR_GRAPH_INDUSTRY_RANGE_PRODUCED :已產出
|
||||
STR_GRAPH_INDUSTRY_RANGE_TRANSPORTED :已運送
|
||||
|
||||
|
@ -4024,8 +4023,6 @@ STR_INDUSTRY_VIEW_PRODUCTION_LAST_MONTH_TITLE :{BLACK}上月
|
|||
STR_INDUSTRY_VIEW_PRODUCTION_LAST_MINUTE_TITLE :{BLACK}上分鐘產量︰
|
||||
STR_INDUSTRY_VIEW_TRANSPORTED :{YELLOW}{CARGO_LONG}{STRING}{BLACK} (運送了 {COMMA}%)
|
||||
STR_INDUSTRY_VIEW_LOCATION_TOOLTIP :{BLACK}將工業置於畫面正中央。按住 <Ctrl> 點選可於工業位置開啟新檢視視窗
|
||||
STR_INDUSTRY_VIEW_PRODUCTION_GRAPH :{BLACK}產量圖表
|
||||
STR_INDUSTRY_VIEW_PRODUCTION_GRAPH_TOOLTIP :{BLACK}顯示工業產量歷史圖表
|
||||
STR_INDUSTRY_VIEW_PRODUCTION_LEVEL :{BLACK}產出等級:{YELLOW}{COMMA}%
|
||||
STR_INDUSTRY_VIEW_INDUSTRY_ANNOUNCED_CLOSURE :{YELLOW}該工業已宣佈關閉!
|
||||
|
||||
|
|
|
@ -770,7 +770,6 @@ STR_GRAPH_CARGO_TOOLTIP_DISABLE_ALL :{BLACK}Не п
|
|||
STR_GRAPH_CARGO_PAYMENT_TOGGLE_CARGO :{BLACK}Ввімк/вимик графік типів вантажу
|
||||
STR_GRAPH_CARGO_PAYMENT_CARGO :{TINY_FONT}{BLACK}{STRING}
|
||||
|
||||
STR_GRAPH_INDUSTRY_PRODUCTION_CAPTION :{WHITE}{INDUSTRY} - Історія виробництва
|
||||
STR_GRAPH_INDUSTRY_RANGE_PRODUCED :Вироблено
|
||||
STR_GRAPH_INDUSTRY_RANGE_TRANSPORTED :Перевезено
|
||||
|
||||
|
@ -4150,8 +4149,6 @@ STR_INDUSTRY_VIEW_PRODUCTION_LAST_MONTH_TITLE :{BLACK}Виро
|
|||
STR_INDUSTRY_VIEW_PRODUCTION_LAST_MINUTE_TITLE :{BLACK}Вироблено за минулу хвилину:
|
||||
STR_INDUSTRY_VIEW_TRANSPORTED :{YELLOW}{CARGO_LONG}{STRING}{BLACK} ({COMMA}% перевезено)
|
||||
STR_INDUSTRY_VIEW_LOCATION_TOOLTIP :{BLACK}Показати підприємство у центрі екрану. Ctrl+клац мишею відкриє нове вікно з видом на підприємство
|
||||
STR_INDUSTRY_VIEW_PRODUCTION_GRAPH :{BLACK}Графік продуктивності
|
||||
STR_INDUSTRY_VIEW_PRODUCTION_GRAPH_TOOLTIP :{BLACK}Відобразити графік продуктивності підприємства
|
||||
STR_INDUSTRY_VIEW_PRODUCTION_LEVEL :{BLACK}Обсяг виробництва: {YELLOW}{COMMA}%
|
||||
STR_INDUSTRY_VIEW_INDUSTRY_ANNOUNCED_CLOSURE :{YELLOW}Підприємство оголосило про близьке закриття!
|
||||
|
||||
|
|
|
@ -627,7 +627,6 @@ STR_GRAPH_CARGO_TOOLTIP_DISABLE_ALL :{BLACK}Không h
|
|||
STR_GRAPH_CARGO_PAYMENT_TOGGLE_CARGO :{BLACK}Bật/tắt đồ thị cho hàng hóa này
|
||||
STR_GRAPH_CARGO_PAYMENT_CARGO :{TINY_FONT}{BLACK}{STRING}
|
||||
|
||||
STR_GRAPH_INDUSTRY_PRODUCTION_CAPTION :{WHITE}{INDUSTRY} - Lịch Sử Sản Xuất
|
||||
STR_GRAPH_INDUSTRY_RANGE_PRODUCED :Đã cung cấp
|
||||
STR_GRAPH_INDUSTRY_RANGE_TRANSPORTED :Đã vận chuyển
|
||||
|
||||
|
@ -3976,8 +3975,6 @@ STR_INDUSTRY_VIEW_PRODUCTION_LAST_MONTH_TITLE :{BLACK}Sản l
|
|||
STR_INDUSTRY_VIEW_PRODUCTION_LAST_MINUTE_TITLE :{BLACK}Sản lượng phút trước:
|
||||
STR_INDUSTRY_VIEW_TRANSPORTED :{YELLOW}{CARGO_LONG}{STRING}{BLACK} ({COMMA}% đã vận chuyển)
|
||||
STR_INDUSTRY_VIEW_LOCATION_TOOLTIP :{BLACK}Xem vị trí trung tâm của nhà máy. Ctrl+Click mở cửa sổ mới để xem
|
||||
STR_INDUSTRY_VIEW_PRODUCTION_GRAPH :{BLACK}Biểu Đồ Sản Xuất
|
||||
STR_INDUSTRY_VIEW_PRODUCTION_GRAPH_TOOLTIP :{BLACK}Hiển thị biểu đồ lịch sử sản xuất của nhà máy
|
||||
STR_INDUSTRY_VIEW_PRODUCTION_LEVEL :{BLACK}Mức sản lượng: {YELLOW}{COMMA}%
|
||||
STR_INDUSTRY_VIEW_INDUSTRY_ANNOUNCED_CLOSURE :{YELLOW}Nhà máy này đã thông báo sắp đóng cửa!
|
||||
|
||||
|
|
|
@ -633,7 +633,6 @@ STR_GRAPH_CARGO_TOOLTIP_DISABLE_ALL :{BLACK}Peidio a
|
|||
STR_GRAPH_CARGO_PAYMENT_TOGGLE_CARGO :{BLACK}Toglu'r graff ar gyfer y math llwyth yma
|
||||
STR_GRAPH_CARGO_PAYMENT_CARGO :{TINY_FONT}{BLACK}{STRING}
|
||||
|
||||
STR_GRAPH_INDUSTRY_PRODUCTION_CAPTION :{WHITE}{INDUSTRY} - Hanes Cynhyrchu
|
||||
STR_GRAPH_INDUSTRY_RANGE_PRODUCED :Cynhyrchwyd
|
||||
STR_GRAPH_INDUSTRY_RANGE_TRANSPORTED :Cludwyd
|
||||
|
||||
|
@ -3994,8 +3993,6 @@ STR_INDUSTRY_VIEW_PRODUCTION_LAST_MONTH_TITLE :{BLACK}Cynnyrch
|
|||
STR_INDUSTRY_VIEW_PRODUCTION_LAST_MINUTE_TITLE :{BLACK}Cynnyrch y munud olaf:
|
||||
STR_INDUSTRY_VIEW_TRANSPORTED :{YELLOW}{CARGO_LONG}{STRING}{BLACK} ({COMMA}% wedi'i gludo)
|
||||
STR_INDUSTRY_VIEW_LOCATION_TOOLTIP :{BLACK}Canoli'r brif olygfa ar y diwydiant. Ctrl+Clic i agor ffenest golwg newydd ar leoliad y diwydiant
|
||||
STR_INDUSTRY_VIEW_PRODUCTION_GRAPH :{BLACK}Graff Cynhyrchiant
|
||||
STR_INDUSTRY_VIEW_PRODUCTION_GRAPH_TOOLTIP :{BLACK}Dangos graff o hanes cynhyrchu diwydiant
|
||||
STR_INDUSTRY_VIEW_PRODUCTION_LEVEL :{BLACK}Lefel cynhyrchu: {YELLOW}{COMMA}%
|
||||
STR_INDUSTRY_VIEW_INDUSTRY_ANNOUNCED_CLOSURE :{YELLOW}Mae'r diwydiant wedi datgan ei fod ar fin cau!
|
||||
|
||||
|
|
|
@ -605,7 +605,7 @@ static CommandCost ClearTile_Object(TileIndex tile, DoCommandFlags flags)
|
|||
if (flags.Test(DoCommandFlag::Execute)) {
|
||||
Town *town = o->town;
|
||||
town->statues.Reset(GetTileOwner(tile));
|
||||
SetWindowDirty(WC_TOWN_AUTHORITY, town->index);
|
||||
SetWindowDirty(WC_TOWN_VIEW, town->index);
|
||||
}
|
||||
break;
|
||||
|
||||
|
@ -888,7 +888,7 @@ static void ChangeTileOwner_Object(TileIndex tile, Owner old_owner, Owner new_ow
|
|||
do_clear = true;
|
||||
}
|
||||
|
||||
SetWindowDirty(WC_TOWN_AUTHORITY, t->index);
|
||||
SetWindowDirty(WC_TOWN_VIEW, t->index);
|
||||
} else {
|
||||
do_clear = true;
|
||||
}
|
||||
|
|
|
@ -147,7 +147,7 @@ def = true
|
|||
str = STR_CONFIG_SETTING_BRIBE
|
||||
strhelp = STR_CONFIG_SETTING_BRIBE_HELPTEXT
|
||||
help_cb = SettingHelpWallclock
|
||||
post_cb = [](auto) { InvalidateWindowClassesData(WC_TOWN_AUTHORITY); }
|
||||
post_cb = [](auto) { InvalidateWindowClassesData(WC_TOWN_VIEW); }
|
||||
cat = SC_BASIC
|
||||
|
||||
[SDT_BOOL]
|
||||
|
@ -157,7 +157,7 @@ def = true
|
|||
str = STR_CONFIG_SETTING_ALLOW_EXCLUSIVE
|
||||
strhelp = STR_CONFIG_SETTING_ALLOW_EXCLUSIVE_HELPTEXT
|
||||
help_cb = SettingHelpWallclock
|
||||
post_cb = [](auto) { InvalidateWindowClassesData(WC_TOWN_AUTHORITY); }
|
||||
post_cb = [](auto) { InvalidateWindowClassesData(WC_TOWN_VIEW); }
|
||||
cat = SC_BASIC
|
||||
|
||||
[SDT_BOOL]
|
||||
|
@ -166,7 +166,7 @@ from = SLV_165
|
|||
def = true
|
||||
str = STR_CONFIG_SETTING_ALLOW_FUND_BUILDINGS
|
||||
strhelp = STR_CONFIG_SETTING_ALLOW_FUND_BUILDINGS_HELPTEXT
|
||||
post_cb = [](auto) { InvalidateWindowClassesData(WC_TOWN_AUTHORITY); }
|
||||
post_cb = [](auto) { InvalidateWindowClassesData(WC_TOWN_VIEW); }
|
||||
cat = SC_BASIC
|
||||
|
||||
[SDT_BOOL]
|
||||
|
@ -175,7 +175,7 @@ from = SLV_160
|
|||
def = true
|
||||
str = STR_CONFIG_SETTING_ALLOW_FUND_ROAD
|
||||
strhelp = STR_CONFIG_SETTING_ALLOW_FUND_ROAD_HELPTEXT
|
||||
post_cb = [](auto) { InvalidateWindowClassesData(WC_TOWN_AUTHORITY); }
|
||||
post_cb = [](auto) { InvalidateWindowClassesData(WC_TOWN_VIEW); }
|
||||
cat = SC_BASIC
|
||||
|
||||
[SDT_BOOL]
|
||||
|
|
|
@ -3195,7 +3195,7 @@ CommandCost CmdTownRating(DoCommandFlags flags, TownID town_id, CompanyID compan
|
|||
int16_t new_rating = Clamp(rating, RATING_MINIMUM, RATING_MAXIMUM);
|
||||
if (flags.Test(DoCommandFlag::Execute)) {
|
||||
t->ratings[company_id] = new_rating;
|
||||
InvalidateWindowData(WC_TOWN_AUTHORITY, town_id);
|
||||
InvalidateWindowData(WC_TOWN_VIEW, town_id);
|
||||
}
|
||||
|
||||
return CommandCost();
|
||||
|
@ -3591,7 +3591,7 @@ static CommandCost TownActionBribe(Town *t, DoCommandFlags flags)
|
|||
*/
|
||||
if (t->ratings[_current_company] > RATING_BRIBE_DOWN_TO) {
|
||||
t->ratings[_current_company] = RATING_BRIBE_DOWN_TO;
|
||||
SetWindowDirty(WC_TOWN_AUTHORITY, t->index);
|
||||
SetWindowDirty(WC_TOWN_VIEW, t->index);
|
||||
}
|
||||
} else {
|
||||
ChangeTownRating(t, RATING_BRIBE_UP_STEP, RATING_BRIBE_MAXIMUM, DoCommandFlag::Execute);
|
||||
|
@ -3692,7 +3692,7 @@ CommandCost CmdDoTownAction(DoCommandFlags flags, TownID town_id, TownAction act
|
|||
if (ret.Failed()) return ret;
|
||||
|
||||
if (flags.Test(DoCommandFlag::Execute)) {
|
||||
SetWindowDirty(WC_TOWN_AUTHORITY, town_id);
|
||||
SetWindowDirty(WC_TOWN_VIEW, town_id);
|
||||
}
|
||||
|
||||
return cost;
|
||||
|
@ -3745,7 +3745,7 @@ static void UpdateTownRating(Town *t)
|
|||
t->ratings[i] = Clamp(t->ratings[i], RATING_MINIMUM, RATING_MAXIMUM);
|
||||
}
|
||||
|
||||
SetWindowDirty(WC_TOWN_AUTHORITY, t->index);
|
||||
SetWindowDirty(WC_TOWN_VIEW, t->index);
|
||||
}
|
||||
|
||||
|
||||
|
@ -4017,7 +4017,7 @@ void ChangeTownRating(Town *t, int add, int max, DoCommandFlags flags)
|
|||
} else {
|
||||
t->have_ratings.Set(_current_company);
|
||||
t->ratings[_current_company] = rating;
|
||||
SetWindowDirty(WC_TOWN_AUTHORITY, t->index);
|
||||
InvalidateWindowData(WC_TOWN_VIEW, t->index);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
547
src/town_gui.cpp
547
src/town_gui.cpp
|
@ -57,36 +57,21 @@ TownKdtree _town_local_authority_kdtree{};
|
|||
|
||||
typedef GUIList<const Town*, const bool &> GUITownList;
|
||||
|
||||
static constexpr NWidgetPart _nested_town_authority_widgets[] = {
|
||||
NWidget(NWID_HORIZONTAL),
|
||||
NWidget(WWT_CLOSEBOX, COLOUR_BROWN),
|
||||
NWidget(WWT_CAPTION, COLOUR_BROWN, WID_TA_CAPTION),
|
||||
NWidget(WWT_TEXTBTN, COLOUR_BROWN, WID_TA_ZONE_BUTTON), SetMinimalSize(50, 0), SetStringTip(STR_LOCAL_AUTHORITY_ZONE, STR_LOCAL_AUTHORITY_ZONE_TOOLTIP),
|
||||
NWidget(WWT_SHADEBOX, COLOUR_BROWN),
|
||||
NWidget(WWT_DEFSIZEBOX, COLOUR_BROWN),
|
||||
NWidget(WWT_STICKYBOX, COLOUR_BROWN),
|
||||
EndContainer(),
|
||||
NWidget(WWT_PANEL, COLOUR_BROWN, WID_TA_RATING_INFO), SetMinimalSize(317, 92), SetResize(1, 1), EndContainer(),
|
||||
NWidget(WWT_PANEL, COLOUR_BROWN, WID_TA_COMMAND_LIST), SetMinimalSize(317, 52), SetResize(1, 0), SetToolTip(STR_LOCAL_AUTHORITY_ACTIONS_TOOLTIP), EndContainer(),
|
||||
NWidget(WWT_PANEL, COLOUR_BROWN, WID_TA_ACTION_INFO), SetMinimalSize(317, 52), SetResize(1, 0), EndContainer(),
|
||||
NWidget(NWID_HORIZONTAL),
|
||||
NWidget(WWT_PUSHTXTBTN, COLOUR_BROWN, WID_TA_EXECUTE), SetMinimalSize(317, 12), SetResize(1, 0), SetFill(1, 0), SetStringTip(STR_LOCAL_AUTHORITY_DO_IT_BUTTON, STR_LOCAL_AUTHORITY_DO_IT_TOOLTIP),
|
||||
NWidget(WWT_RESIZEBOX, COLOUR_BROWN),
|
||||
EndContainer()
|
||||
};
|
||||
|
||||
/** Town authority window. */
|
||||
struct TownAuthorityWindow : Window {
|
||||
/* Town view window. */
|
||||
struct TownViewWindow : Window {
|
||||
private:
|
||||
Town *town = nullptr; ///< Town being displayed.
|
||||
Town *town = nullptr; ///< Town displayed by the window.
|
||||
TownAction sel_action = TownAction::End; ///< Currently selected town action, TownAction::End means no action selected.
|
||||
TownActions displayed_actions_on_previous_painting{}; ///< Actions that were available on the previous call to OnPaint()
|
||||
TownActions enabled_actions{}; ///< Actions that are enabled in settings.
|
||||
TownActions available_actions{}; ///< Actions that are available to execute for the current company.
|
||||
std::array<StringID, to_underlying(TownAction::End)> action_tooltips{};
|
||||
|
||||
Dimension icon_size{}; ///< Dimensions of company icon
|
||||
Dimension exclusive_size{}; ///< Dimensions of exclusive icon
|
||||
uint rating_line_height = 0;
|
||||
|
||||
static inline uint initial_visible_pane = 0;
|
||||
uint visible_pane = 0;
|
||||
|
||||
/**
|
||||
* Gets all town authority actions enabled in settings.
|
||||
|
@ -107,10 +92,17 @@ private:
|
|||
}
|
||||
|
||||
public:
|
||||
TownAuthorityWindow(WindowDesc &desc, WindowNumber window_number) : Window(desc)
|
||||
static const int WID_TV_HEIGHT_NORMAL = 150;
|
||||
|
||||
TownViewWindow(WindowDesc &desc, WindowNumber window_number) : Window(desc)
|
||||
{
|
||||
this->visible_pane = TownViewWindow::initial_visible_pane;
|
||||
|
||||
this->CreateNestedTree();
|
||||
|
||||
this->town = Town::Get(window_number);
|
||||
this->enabled_actions = GetEnabledActions();
|
||||
this->available_actions = GetMaskOfTownActions(_local_company, this->town);
|
||||
|
||||
auto realtime = TimerGameEconomy::UsingWallclockUnits();
|
||||
this->action_tooltips[0] = STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_SMALL_ADVERTISING;
|
||||
|
@ -122,238 +114,7 @@ public:
|
|||
this->action_tooltips[6] = realtime ? STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT_MINUTES : STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT_MONTHS;
|
||||
this->action_tooltips[7] = STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE;
|
||||
|
||||
this->InitNested(window_number);
|
||||
}
|
||||
|
||||
void OnInit() override
|
||||
{
|
||||
this->icon_size = GetSpriteSize(SPR_COMPANY_ICON);
|
||||
this->exclusive_size = GetSpriteSize(SPR_EXCLUSIVE_TRANSPORT);
|
||||
}
|
||||
|
||||
void OnPaint() override
|
||||
{
|
||||
this->available_actions = GetMaskOfTownActions(_local_company, this->town);
|
||||
if (this->available_actions != displayed_actions_on_previous_painting) this->SetDirty();
|
||||
displayed_actions_on_previous_painting = this->available_actions;
|
||||
|
||||
this->SetWidgetLoweredState(WID_TA_ZONE_BUTTON, this->town->show_zone);
|
||||
this->SetWidgetDisabledState(WID_TA_EXECUTE, (this->sel_action == TownAction::End) || !this->available_actions.Test(this->sel_action));
|
||||
|
||||
this->DrawWidgets();
|
||||
if (!this->IsShaded())
|
||||
{
|
||||
this->DrawRatings();
|
||||
this->DrawActions();
|
||||
}
|
||||
}
|
||||
|
||||
StringID GetRatingString(int rating) const
|
||||
{
|
||||
if (rating > RATING_EXCELLENT) return STR_CARGO_RATING_OUTSTANDING;
|
||||
if (rating > RATING_VERYGOOD) return STR_CARGO_RATING_EXCELLENT;
|
||||
if (rating > RATING_GOOD) return STR_CARGO_RATING_VERY_GOOD;
|
||||
if (rating > RATING_MEDIOCRE) return STR_CARGO_RATING_GOOD;
|
||||
if (rating > RATING_POOR) return STR_CARGO_RATING_MEDIOCRE;
|
||||
if (rating > RATING_VERYPOOR) return STR_CARGO_RATING_POOR;
|
||||
if (rating > RATING_APPALLING) return STR_CARGO_RATING_VERY_POOR;
|
||||
return STR_CARGO_RATING_APPALLING;
|
||||
}
|
||||
|
||||
/** Draw the contents of the ratings panel. May request a resize of the window if the contents does not fit. */
|
||||
void DrawRatings()
|
||||
{
|
||||
Rect r = this->GetWidget<NWidgetBase>(WID_TA_RATING_INFO)->GetCurrentRect().Shrink(WidgetDimensions::scaled.framerect);
|
||||
|
||||
int text_y_offset = (this->resize.step_height - GetCharacterHeight(FS_NORMAL)) / 2;
|
||||
int icon_y_offset = (this->resize.step_height - this->icon_size.height) / 2;
|
||||
int exclusive_y_offset = (this->resize.step_height - this->exclusive_size.height) / 2;
|
||||
|
||||
DrawString(r.left, r.right, r.top + text_y_offset, STR_LOCAL_AUTHORITY_COMPANY_RATINGS);
|
||||
r.top += this->resize.step_height;
|
||||
|
||||
bool rtl = _current_text_dir == TD_RTL;
|
||||
Rect icon = r.WithWidth(this->icon_size.width, rtl);
|
||||
Rect exclusive = r.Indent(this->icon_size.width + WidgetDimensions::scaled.hsep_normal, rtl).WithWidth(this->exclusive_size.width, rtl);
|
||||
Rect text = r.Indent(this->icon_size.width + WidgetDimensions::scaled.hsep_normal + this->exclusive_size.width + WidgetDimensions::scaled.hsep_normal, rtl);
|
||||
|
||||
/* Draw list of companies */
|
||||
for (const Company *c : Company::Iterate()) {
|
||||
if ((this->town->have_ratings.Test(c->index) || this->town->exclusivity == c->index)) {
|
||||
DrawCompanyIcon(c->index, icon.left, text.top + icon_y_offset);
|
||||
|
||||
if (this->town->exclusivity == c->index) {
|
||||
DrawSprite(SPR_EXCLUSIVE_TRANSPORT, GetCompanyPalette(c->index), exclusive.left, text.top + exclusive_y_offset);
|
||||
}
|
||||
|
||||
int rating = this->town->ratings[c->index];
|
||||
DrawString(text.left, text.right, text.top + text_y_offset, GetString(STR_LOCAL_AUTHORITY_COMPANY_RATING, c->index, c->index, GetRatingString(rating)));
|
||||
text.top += this->resize.step_height;
|
||||
}
|
||||
}
|
||||
|
||||
text.bottom = text.top - 1;
|
||||
if (text.bottom > r.bottom) {
|
||||
/* If the company list is too big to fit, mark ourself dirty and draw again. */
|
||||
ResizeWindow(this, 0, text.bottom - r.bottom, false);
|
||||
}
|
||||
}
|
||||
|
||||
/** Draws the contents of the actions panel. May re-initialise window to resize panel, if the list does not fit. */
|
||||
void DrawActions()
|
||||
{
|
||||
Rect r = this->GetWidget<NWidgetBase>(WID_TA_COMMAND_LIST)->GetCurrentRect().Shrink(WidgetDimensions::scaled.framerect);
|
||||
|
||||
DrawString(r, STR_LOCAL_AUTHORITY_ACTIONS_TITLE);
|
||||
r.top += GetCharacterHeight(FS_NORMAL);
|
||||
|
||||
/* Draw list of actions */
|
||||
for (TownAction i = {}; i != TownAction::End; ++i) {
|
||||
/* Don't show actions if disabled in settings. */
|
||||
if (!this->enabled_actions.Test(i)) continue;
|
||||
|
||||
/* Set colour of action based on ability to execute and if selected. */
|
||||
TextColour action_colour = TC_GREY | TC_NO_SHADE;
|
||||
if (this->available_actions.Test(i)) action_colour = TC_ORANGE;
|
||||
if (this->sel_action == i) action_colour = TC_WHITE;
|
||||
|
||||
DrawString(r, STR_LOCAL_AUTHORITY_ACTION_SMALL_ADVERTISING_CAMPAIGN + to_underlying(i), action_colour);
|
||||
r.top += GetCharacterHeight(FS_NORMAL);
|
||||
}
|
||||
}
|
||||
|
||||
std::string GetWidgetString(WidgetID widget, StringID stringid) const override
|
||||
{
|
||||
if (widget == WID_TA_CAPTION) return GetString(STR_LOCAL_AUTHORITY_CAPTION, this->window_number);
|
||||
|
||||
return this->Window::GetWidgetString(widget, stringid);
|
||||
}
|
||||
|
||||
void DrawWidget(const Rect &r, WidgetID widget) const override
|
||||
{
|
||||
switch (widget) {
|
||||
case WID_TA_ACTION_INFO:
|
||||
if (this->sel_action != TownAction::End) {
|
||||
Money action_cost = _price[PR_TOWN_ACTION] * GetTownActionCost(this->sel_action) >> 8;
|
||||
bool affordable = Company::IsValidID(_local_company) && action_cost < GetAvailableMoney(_local_company);
|
||||
|
||||
DrawStringMultiLine(r.Shrink(WidgetDimensions::scaled.framerect),
|
||||
GetString(this->action_tooltips[to_underlying(this->sel_action)], action_cost),
|
||||
affordable ? TC_YELLOW : TC_RED);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void UpdateWidgetSize(WidgetID widget, Dimension &size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension &fill, [[maybe_unused]] Dimension &resize) override
|
||||
{
|
||||
switch (widget) {
|
||||
case WID_TA_ACTION_INFO: {
|
||||
assert(size.width > padding.width && size.height > padding.height);
|
||||
Dimension d = {0, 0};
|
||||
for (TownAction i = {}; i != TownAction::End; ++i) {
|
||||
Money price = _price[PR_TOWN_ACTION] * GetTownActionCost(i) >> 8;
|
||||
d = maxdim(d, GetStringMultiLineBoundingBox(GetString(this->action_tooltips[to_underlying(i)], price), size));
|
||||
}
|
||||
d.width += padding.width;
|
||||
d.height += padding.height;
|
||||
size = maxdim(size, d);
|
||||
break;
|
||||
}
|
||||
|
||||
case WID_TA_COMMAND_LIST:
|
||||
size.height = (to_underlying(TownAction::End) + 1) * GetCharacterHeight(FS_NORMAL) + padding.height;
|
||||
size.width = GetStringBoundingBox(STR_LOCAL_AUTHORITY_ACTIONS_TITLE).width;
|
||||
for (TownAction i = {}; i != TownAction::End; ++i) {
|
||||
size.width = std::max(size.width, GetStringBoundingBox(STR_LOCAL_AUTHORITY_ACTION_SMALL_ADVERTISING_CAMPAIGN + to_underlying(i)).width + padding.width);
|
||||
}
|
||||
size.width += padding.width;
|
||||
break;
|
||||
|
||||
case WID_TA_RATING_INFO:
|
||||
fill.height = resize.height = std::max({this->icon_size.height + WidgetDimensions::scaled.vsep_normal, this->exclusive_size.height + WidgetDimensions::scaled.vsep_normal, (uint)GetCharacterHeight(FS_NORMAL)});
|
||||
size.height = 9 * resize.height + padding.height;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void OnClick([[maybe_unused]] Point pt, WidgetID widget, [[maybe_unused]] int click_count) override
|
||||
{
|
||||
switch (widget) {
|
||||
case WID_TA_ZONE_BUTTON: {
|
||||
bool new_show_state = !this->town->show_zone;
|
||||
TownID index = this->town->index;
|
||||
|
||||
new_show_state ? _town_local_authority_kdtree.Insert(index) : _town_local_authority_kdtree.Remove(index);
|
||||
|
||||
this->town->show_zone = new_show_state;
|
||||
this->SetWidgetLoweredState(widget, new_show_state);
|
||||
MarkWholeScreenDirty();
|
||||
break;
|
||||
}
|
||||
|
||||
case WID_TA_COMMAND_LIST: {
|
||||
int y = this->GetRowFromWidget(pt.y, WID_TA_COMMAND_LIST, 1, GetCharacterHeight(FS_NORMAL)) - 1;
|
||||
|
||||
auto action = this->enabled_actions.GetNthSetBit(y);
|
||||
if (!action.has_value()) break;
|
||||
|
||||
this->sel_action = *action;
|
||||
this->SetDirty();
|
||||
|
||||
/* When double-clicking, continue */
|
||||
if (click_count == 1 || !this->available_actions.Test(this->sel_action)) break;
|
||||
[[fallthrough]];
|
||||
}
|
||||
|
||||
case WID_TA_EXECUTE:
|
||||
Command<CMD_DO_TOWN_ACTION>::Post(STR_ERROR_CAN_T_DO_THIS, this->town->xy, static_cast<TownID>(this->window_number), this->sel_action);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/** Redraw the whole window on a regular interval. */
|
||||
const IntervalTimer<TimerWindow> redraw_interval = {std::chrono::seconds(3), [this](auto) {
|
||||
this->SetDirty();
|
||||
}};
|
||||
|
||||
void OnInvalidateData([[maybe_unused]] int data = 0, [[maybe_unused]] bool gui_scope = true) override
|
||||
{
|
||||
if (!gui_scope) return;
|
||||
|
||||
this->enabled_actions = this->GetEnabledActions();
|
||||
if (!this->enabled_actions.Test(this->sel_action)) {
|
||||
this->sel_action = TownAction::End;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
static WindowDesc _town_authority_desc(
|
||||
WDP_AUTO, "view_town_authority", 317, 222,
|
||||
WC_TOWN_AUTHORITY, WC_NONE,
|
||||
{},
|
||||
_nested_town_authority_widgets
|
||||
);
|
||||
|
||||
static void ShowTownAuthorityWindow(uint town)
|
||||
{
|
||||
AllocateWindowDescFront<TownAuthorityWindow>(_town_authority_desc, town);
|
||||
}
|
||||
|
||||
|
||||
/* Town view window. */
|
||||
struct TownViewWindow : Window {
|
||||
private:
|
||||
Town *town = nullptr; ///< Town displayed by the window.
|
||||
|
||||
public:
|
||||
static const int WID_TV_HEIGHT_NORMAL = 150;
|
||||
|
||||
TownViewWindow(WindowDesc &desc, WindowNumber window_number) : Window(desc)
|
||||
{
|
||||
this->CreateNestedTree();
|
||||
|
||||
this->town = Town::Get(window_number);
|
||||
this->SetPaneState();
|
||||
|
||||
this->FinishInitNested(window_number);
|
||||
|
||||
|
@ -365,6 +126,23 @@ public:
|
|||
this->SetWidgetDisabledState(WID_TV_CHANGE_NAME, _networking && !_network_server);
|
||||
}
|
||||
|
||||
void SetPaneState()
|
||||
{
|
||||
if (auto *nwid = this->GetWidget<NWidgetStacked>(WID_TV_PANE_SEL); nwid != nullptr) {
|
||||
nwid->SetDisplayedPlane(this->visible_pane);
|
||||
this->SetWidgetLoweredState(WID_TV_PANE_INFO, this->visible_pane == 0);
|
||||
this->SetWidgetLoweredState(WID_TV_PANE_RATINGS, this->visible_pane == 1);
|
||||
this->SetWidgetLoweredState(WID_TV_PANE_ACTIONS, this->visible_pane == 2);
|
||||
}
|
||||
}
|
||||
|
||||
void OnInit() override
|
||||
{
|
||||
this->icon_size = GetScaledSpriteSize(SPR_COMPANY_ICON);
|
||||
this->exclusive_size = GetScaledSpriteSize(SPR_EXCLUSIVE_TRANSPORT);
|
||||
this->rating_line_height = std::max({this->icon_size.height, this->exclusive_size.height, (uint)GetCharacterHeight(FS_NORMAL)});
|
||||
}
|
||||
|
||||
void Close([[maybe_unused]] int data = 0) override
|
||||
{
|
||||
SetViewportCatchmentTown(Town::Get(this->window_number), false);
|
||||
|
@ -382,14 +160,24 @@ public:
|
|||
{
|
||||
extern const Town *_viewport_highlight_town;
|
||||
this->SetWidgetLoweredState(WID_TV_CATCHMENT, _viewport_highlight_town == this->town);
|
||||
|
||||
this->SetWidgetLoweredState(WID_TV_ZONE, this->town->show_zone);
|
||||
this->SetWidgetDisabledState(WID_TV_EXECUTE, this->visible_pane != 2 || this->sel_action == TownAction::End || !this->available_actions.Test(this->sel_action));
|
||||
this->DrawWidgets();
|
||||
}
|
||||
|
||||
void DrawWidget(const Rect &r, WidgetID widget) const override
|
||||
{
|
||||
if (widget != WID_TV_INFO) return;
|
||||
switch (widget) {
|
||||
case WID_TV_INFO: this->DrawInfo(r); break;
|
||||
case WID_TV_RATING_INFO: this->DrawRatings(r); break;
|
||||
case WID_TV_COMMAND_LIST: this->DrawActions(r); break;
|
||||
case WID_TV_ACTION_INFO: this->DrawActionInfo(r); break;
|
||||
default: break;
|
||||
}
|
||||
}
|
||||
|
||||
void DrawInfo(const Rect &r) const
|
||||
{
|
||||
Rect tr = r.Shrink(WidgetDimensions::scaled.framerect);
|
||||
|
||||
DrawString(tr, GetString(STR_TOWN_VIEW_POPULATION_HOUSES, this->town->cache.population, this->town->cache.num_houses));
|
||||
|
@ -465,6 +253,86 @@ public:
|
|||
}
|
||||
}
|
||||
|
||||
static StringID GetRatingString(int rating)
|
||||
{
|
||||
if (rating > RATING_EXCELLENT) return STR_CARGO_RATING_OUTSTANDING;
|
||||
if (rating > RATING_VERYGOOD) return STR_CARGO_RATING_EXCELLENT;
|
||||
if (rating > RATING_GOOD) return STR_CARGO_RATING_VERY_GOOD;
|
||||
if (rating > RATING_MEDIOCRE) return STR_CARGO_RATING_GOOD;
|
||||
if (rating > RATING_POOR) return STR_CARGO_RATING_MEDIOCRE;
|
||||
if (rating > RATING_VERYPOOR) return STR_CARGO_RATING_POOR;
|
||||
if (rating > RATING_APPALLING) return STR_CARGO_RATING_VERY_POOR;
|
||||
return STR_CARGO_RATING_APPALLING;
|
||||
}
|
||||
|
||||
/** Draw the contents of the ratings panel. May request a resize of the window if the contents does not fit. */
|
||||
void DrawRatings(const Rect &r) const
|
||||
{
|
||||
Rect tr = r.Shrink(WidgetDimensions::scaled.framerect);
|
||||
|
||||
int text_y_offset = (this->rating_line_height - GetCharacterHeight(FS_NORMAL)) / 2;
|
||||
int icon_y_offset = (this->rating_line_height - this->icon_size.height) / 2;
|
||||
int exclusive_y_offset = (this->rating_line_height - this->exclusive_size.height) / 2;
|
||||
|
||||
DrawString(tr.left, tr.right, tr.top + text_y_offset, STR_LOCAL_AUTHORITY_COMPANY_RATINGS);
|
||||
tr.top += this->rating_line_height;
|
||||
|
||||
bool rtl = _current_text_dir == TD_RTL;
|
||||
Rect icon = tr.WithWidth(this->icon_size.width, rtl);
|
||||
Rect exclusive = tr.Indent(this->icon_size.width + WidgetDimensions::scaled.hsep_normal, rtl).WithWidth(this->exclusive_size.width, rtl);
|
||||
Rect text = tr.Indent(this->icon_size.width + WidgetDimensions::scaled.hsep_normal + this->exclusive_size.width + WidgetDimensions::scaled.hsep_normal, rtl);
|
||||
|
||||
/* Draw list of companies */
|
||||
for (const Company *c : Company::Iterate()) {
|
||||
if ((this->town->have_ratings.Test(c->index) || this->town->exclusivity == c->index)) {
|
||||
DrawCompanyIcon(c->index, icon.left, text.top + icon_y_offset);
|
||||
|
||||
if (this->town->exclusivity == c->index) {
|
||||
DrawSprite(SPR_EXCLUSIVE_TRANSPORT, GetCompanyPalette(c->index), exclusive.left, text.top + exclusive_y_offset);
|
||||
}
|
||||
|
||||
int rating = this->town->ratings[c->index];
|
||||
DrawString(text.left, text.right, text.top + text_y_offset, GetString(STR_LOCAL_AUTHORITY_COMPANY_RATING, c->index, c->index, GetRatingString(rating)));
|
||||
text.top += this->rating_line_height;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/** Draws the contents of the actions panel. May re-initialise window to resize panel, if the list does not fit. */
|
||||
void DrawActions(const Rect &r) const
|
||||
{
|
||||
Rect tr = r.Shrink(WidgetDimensions::scaled.framerect);
|
||||
|
||||
DrawString(tr, STR_LOCAL_AUTHORITY_ACTIONS_TITLE);
|
||||
tr.top += GetCharacterHeight(FS_NORMAL);
|
||||
|
||||
/* Draw list of actions */
|
||||
for (TownAction i = {}; i != TownAction::End; ++i) {
|
||||
/* Don't show actions if disabled in settings. */
|
||||
if (!this->enabled_actions.Test(i)) continue;
|
||||
|
||||
/* Set colour of action based on ability to execute and if selected. */
|
||||
TextColour action_colour = TC_GREY | TC_NO_SHADE;
|
||||
if (this->available_actions.Test(i)) action_colour = TC_ORANGE;
|
||||
if (this->sel_action == i) action_colour = TC_WHITE;
|
||||
|
||||
DrawString(tr, STR_LOCAL_AUTHORITY_ACTION_SMALL_ADVERTISING_CAMPAIGN + to_underlying(i), action_colour);
|
||||
tr.top += GetCharacterHeight(FS_NORMAL);
|
||||
}
|
||||
}
|
||||
|
||||
void DrawActionInfo(const Rect &r) const
|
||||
{
|
||||
if (this->sel_action == TownAction::End) return;
|
||||
|
||||
Money action_cost = _price[PR_TOWN_ACTION] * GetTownActionCost(this->sel_action) >> 8;
|
||||
bool affordable = Company::IsValidID(_local_company) && action_cost < GetAvailableMoney(_local_company);
|
||||
|
||||
DrawStringMultiLine(r.Shrink(WidgetDimensions::scaled.framerect),
|
||||
GetString(this->action_tooltips[to_underlying(this->sel_action)], action_cost),
|
||||
affordable ? TC_YELLOW : TC_RED);
|
||||
}
|
||||
|
||||
void OnClick([[maybe_unused]] Point pt, WidgetID widget, [[maybe_unused]] int click_count) override
|
||||
{
|
||||
switch (widget) {
|
||||
|
@ -476,10 +344,6 @@ public:
|
|||
}
|
||||
break;
|
||||
|
||||
case WID_TV_SHOW_AUTHORITY: // town authority
|
||||
ShowTownAuthorityWindow(this->window_number);
|
||||
break;
|
||||
|
||||
case WID_TV_CHANGE_NAME: // rename
|
||||
ShowQueryString(GetString(STR_TOWN_NAME, this->window_number), STR_TOWN_VIEW_RENAME_TOWN_BUTTON, MAX_LENGTH_TOWN_NAME_CHARS, this, CS_ALPHANUMERAL, {QueryStringFlag::EnableDefault, QueryStringFlag::LengthIsInChars});
|
||||
break;
|
||||
|
@ -503,14 +367,68 @@ public:
|
|||
case WID_TV_DELETE: // delete town - only available on Scenario editor
|
||||
Command<CMD_DELETE_TOWN>::Post(STR_ERROR_TOWN_CAN_T_DELETE, static_cast<TownID>(this->window_number));
|
||||
break;
|
||||
|
||||
case WID_TV_ZONE: {
|
||||
bool new_show_state = !this->town->show_zone;
|
||||
TownID index = this->town->index;
|
||||
|
||||
new_show_state ? _town_local_authority_kdtree.Insert(index) : _town_local_authority_kdtree.Remove(index);
|
||||
|
||||
this->town->show_zone = new_show_state;
|
||||
this->SetWidgetLoweredState(widget, new_show_state);
|
||||
MarkWholeScreenDirty();
|
||||
break;
|
||||
}
|
||||
|
||||
case WID_TV_COMMAND_LIST: {
|
||||
int y = this->GetRowFromWidget(pt.y, widget, WidgetDimensions::scaled.framerect.top, GetCharacterHeight(FS_NORMAL)) - 1;
|
||||
|
||||
auto action = this->enabled_actions.GetNthSetBit(y);
|
||||
if (!action.has_value()) break;
|
||||
|
||||
this->sel_action = *action;
|
||||
this->SetDirty();
|
||||
|
||||
/* When double-clicking, continue */
|
||||
if (click_count == 1 || !this->available_actions.Test(this->sel_action)) break;
|
||||
[[fallthrough]];
|
||||
}
|
||||
|
||||
case WID_TV_EXECUTE:
|
||||
Command<CMD_DO_TOWN_ACTION>::Post(STR_ERROR_CAN_T_DO_THIS, this->town->xy, static_cast<TownID>(this->window_number), this->sel_action);
|
||||
break;
|
||||
|
||||
case WID_TV_PANE_INFO:
|
||||
TownViewWindow::initial_visible_pane = this->visible_pane = 0;
|
||||
this->ResizePanes();
|
||||
break;
|
||||
|
||||
case WID_TV_PANE_RATINGS:
|
||||
TownViewWindow::initial_visible_pane = this->visible_pane = 1;
|
||||
this->ResizePanes();
|
||||
break;
|
||||
|
||||
case WID_TV_PANE_ACTIONS:
|
||||
TownViewWindow::initial_visible_pane = this->visible_pane = 2;
|
||||
this->ResizePanes();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void UpdateWidgetSize(WidgetID widget, Dimension &size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension &fill, [[maybe_unused]] Dimension &resize) override
|
||||
{
|
||||
switch (widget) {
|
||||
case WID_TV_INFO:
|
||||
size.height = GetDesiredInfoHeight(size.width) + padding.height;
|
||||
case WID_TV_COMMAND_LIST:
|
||||
if (this->visible_pane != 2) {
|
||||
size.height = 0;
|
||||
} else {
|
||||
size.height = (to_underlying(TownAction::End) + 1) * GetCharacterHeight(FS_NORMAL) + padding.height;
|
||||
size.width = GetStringBoundingBox(STR_LOCAL_AUTHORITY_ACTIONS_TITLE).width;
|
||||
for (TownAction i = {}; i != TownAction::End; ++i) {
|
||||
size.width = std::max(size.width, GetStringBoundingBox(STR_LOCAL_AUTHORITY_ACTION_SMALL_ADVERTISING_CAMPAIGN + to_underlying(i)).width + padding.width);
|
||||
}
|
||||
size.width += padding.width;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -521,6 +439,7 @@ public:
|
|||
*/
|
||||
uint GetDesiredInfoHeight(int width) const
|
||||
{
|
||||
width -= WidgetDimensions::scaled.framerect.Horizontal();
|
||||
uint aimed_height = static_cast<uint>(1 + CargoSpec::town_production_cargoes[TPE_PASSENGERS].size() + CargoSpec::town_production_cargoes[TPE_MAIL].size()) * GetCharacterHeight(FS_NORMAL);
|
||||
|
||||
bool first = true;
|
||||
|
@ -540,23 +459,76 @@ public:
|
|||
if (_settings_game.economy.station_noise_level) aimed_height += GetCharacterHeight(FS_NORMAL);
|
||||
|
||||
if (!this->town->text.empty()) {
|
||||
aimed_height += GetStringHeight(this->town->text.GetDecodedString(), width - WidgetDimensions::scaled.framerect.Horizontal());
|
||||
aimed_height += GetStringHeight(this->town->text.GetDecodedString(), width);
|
||||
}
|
||||
|
||||
return aimed_height;
|
||||
return aimed_height + WidgetDimensions::scaled.framerect.Vertical();
|
||||
}
|
||||
|
||||
void ResizeWindowAsNeeded()
|
||||
uint GetDesiredRatingHeight(int) const
|
||||
{
|
||||
const NWidgetBase *nwid_info = this->GetWidget<NWidgetBase>(WID_TV_INFO);
|
||||
uint aimed_height = GetDesiredInfoHeight(nwid_info->current_x);
|
||||
if (aimed_height > nwid_info->current_y || (aimed_height < nwid_info->current_y && nwid_info->current_y > nwid_info->smallest_y)) {
|
||||
this->ReInit();
|
||||
int lines = 1;
|
||||
for (const Company *c : Company::Iterate()) {
|
||||
if ((this->town->have_ratings.Test(c->index) || this->town->exclusivity == c->index)) {
|
||||
++lines;
|
||||
}
|
||||
}
|
||||
return this->rating_line_height * std::max(3, lines) + WidgetDimensions::scaled.framerect.Vertical();
|
||||
}
|
||||
|
||||
uint GetDesiredActionInfoHeight(int width) const
|
||||
{
|
||||
width -= WidgetDimensions::scaled.framerect.Horizontal();
|
||||
int height = 0;
|
||||
for (TownAction i = {}; i != TownAction::End; ++i) {
|
||||
Money price = _price[PR_TOWN_ACTION] * GetTownActionCost(i) >> 8;
|
||||
height = std::max(height, GetStringHeight(GetString(this->action_tooltips[to_underlying(i)], price), width));
|
||||
}
|
||||
return height + WidgetDimensions::scaled.framerect.Vertical();
|
||||
}
|
||||
|
||||
bool UpdatePaneSizes()
|
||||
{
|
||||
bool changed = false;
|
||||
|
||||
auto *sel = this->GetWidget<NWidgetStacked>(WID_TV_PANE_SEL);
|
||||
if (sel != nullptr) {
|
||||
if (auto *nwid = this->GetWidget<NWidgetCore>(WID_TV_INFO); nwid != nullptr) {
|
||||
uint y = this->visible_pane == 0 ? GetDesiredInfoHeight(nwid->current_x) : 0;
|
||||
changed |= nwid->UpdateVerticalSize(y);
|
||||
}
|
||||
|
||||
if (auto *nwid = this->GetWidget<NWidgetCore>(WID_TV_RATING_INFO); nwid != nullptr) {
|
||||
uint y = this->visible_pane == 1 ? GetDesiredRatingHeight(nwid->current_x) : 0;
|
||||
changed |= nwid->UpdateVerticalSize(y);
|
||||
}
|
||||
|
||||
if (auto *nwid = this->GetWidget<NWidgetCore>(WID_TV_ACTION_INFO); nwid != nullptr) {
|
||||
uint y = this->visible_pane == 2 ? GetDesiredActionInfoHeight(nwid->current_x) : 0;
|
||||
changed |= nwid->UpdateVerticalSize(y);
|
||||
}
|
||||
}
|
||||
|
||||
return changed;
|
||||
}
|
||||
|
||||
void ResizePanes()
|
||||
{
|
||||
this->SetPaneState();
|
||||
|
||||
/* We want to resize the window while maintaining the size of the viewport. */
|
||||
auto *nwid = this->GetWidget<NWidgetViewport>(WID_TV_VIEWPORT);
|
||||
int old_y = static_cast<int>(nwid->current_y);
|
||||
this->OnResize();
|
||||
int new_y = static_cast<int>(nwid->current_y);
|
||||
|
||||
if (old_y != new_y) ResizeWindow(this, 0, old_y - new_y, false, false);
|
||||
}
|
||||
|
||||
void OnResize() override
|
||||
{
|
||||
if (this->UpdatePaneSizes()) this->ReInit(0, 0);
|
||||
|
||||
if (this->viewport != nullptr) {
|
||||
NWidgetViewport *nvp = this->GetWidget<NWidgetViewport>(WID_TV_VIEWPORT);
|
||||
nvp->UpdateViewportCoordinates(this);
|
||||
|
@ -573,6 +545,11 @@ public:
|
|||
}
|
||||
}
|
||||
|
||||
/** Redraw the whole window on a regular interval. */
|
||||
const IntervalTimer<TimerWindow> redraw_interval = {std::chrono::seconds(3), [this](auto) {
|
||||
this->SetDirty();
|
||||
}};
|
||||
|
||||
/**
|
||||
* Some data on this window has become invalid.
|
||||
* @param data Information about the changed data.
|
||||
|
@ -581,9 +558,16 @@ public:
|
|||
void OnInvalidateData([[maybe_unused]] int data = 0, [[maybe_unused]] bool gui_scope = true) override
|
||||
{
|
||||
if (!gui_scope) return;
|
||||
|
||||
/* Called when setting station noise or required cargoes have changed, in order to resize the window */
|
||||
this->enabled_actions = GetEnabledActions();
|
||||
this->available_actions = GetMaskOfTownActions(_local_company, this->town);
|
||||
if (!this->enabled_actions.Test(this->sel_action)) {
|
||||
this->sel_action = TownAction::End;
|
||||
}
|
||||
|
||||
this->SetDirty(); // refresh display for current size. This will allow to avoid glitches when downgrading
|
||||
this->ResizeWindowAsNeeded();
|
||||
this->ResizePanes();
|
||||
}
|
||||
|
||||
void OnQueryTextFinished(std::optional<std::string> str) override
|
||||
|
@ -614,10 +598,23 @@ static constexpr NWidgetPart _nested_town_game_view_widgets[] = {
|
|||
NWidget(NWID_VIEWPORT, INVALID_COLOUR, WID_TV_VIEWPORT), SetMinimalSize(254, 86), SetFill(1, 0), SetResize(1, 1),
|
||||
EndContainer(),
|
||||
EndContainer(),
|
||||
NWidget(WWT_PANEL, COLOUR_BROWN, WID_TV_INFO), SetMinimalSize(260, 32), SetResize(1, 0), SetFill(1, 0), EndContainer(),
|
||||
NWidget(NWID_HORIZONTAL, NWidContainerFlag::EqualSize),
|
||||
NWidget(WWT_PUSHTXTBTN, COLOUR_BROWN, WID_TV_SHOW_AUTHORITY), SetMinimalSize(80, 12), SetFill(1, 1), SetResize(1, 0), SetStringTip(STR_TOWN_VIEW_LOCAL_AUTHORITY_BUTTON, STR_TOWN_VIEW_LOCAL_AUTHORITY_TOOLTIP),
|
||||
NWidget(WWT_TEXTBTN, COLOUR_BROWN, WID_TV_CATCHMENT), SetMinimalSize(40, 12), SetFill(1, 1), SetResize(1, 0), SetStringTip(STR_BUTTON_CATCHMENT, STR_TOOLTIP_CATCHMENT),
|
||||
NWidget(NWID_HORIZONTAL),
|
||||
NWidget(WWT_TEXTBTN, COLOUR_BROWN, WID_TV_PANE_INFO), SetFill(1, 0), SetResize(1, 0), SetStringTip(STR_TOWN_VIEW_INFO, STR_TOWN_VIEW_INFO_TOOLTIP),
|
||||
NWidget(WWT_TEXTBTN, COLOUR_BROWN, WID_TV_PANE_RATINGS), SetFill(1, 0), SetResize(1, 0), SetStringTip(STR_TOWN_VIEW_RATINGS, STR_TOWN_VIEW_RATINGS_TOOLTIP),
|
||||
NWidget(WWT_TEXTBTN, COLOUR_BROWN, WID_TV_PANE_ACTIONS), SetFill(1, 0), SetResize(1, 0), SetStringTip(STR_TOWN_VIEW_ACTIONS, STR_TOWN_VIEW_ACTIONS_TOOLTIP),
|
||||
EndContainer(),
|
||||
NWidget(NWID_SELECTION, INVALID_COLOUR, WID_TV_PANE_SEL),
|
||||
NWidget(WWT_PANEL, COLOUR_BROWN, WID_TV_INFO), SetResize(1, 0), SetFill(1, 1), EndContainer(),
|
||||
NWidget(WWT_PANEL, COLOUR_BROWN, WID_TV_RATING_INFO), SetResize(1, 0), SetFill(1, 1), EndContainer(),
|
||||
NWidget(NWID_VERTICAL),
|
||||
NWidget(WWT_PANEL, COLOUR_BROWN, WID_TV_COMMAND_LIST), SetResize(1, 0), SetFill(1, 1), SetToolTip(STR_LOCAL_AUTHORITY_ACTIONS_TOOLTIP), EndContainer(),
|
||||
NWidget(WWT_PANEL, COLOUR_BROWN, WID_TV_ACTION_INFO), SetResize(1, 0), SetFill(1, 0), EndContainer(),
|
||||
EndContainer(),
|
||||
EndContainer(),
|
||||
NWidget(NWID_HORIZONTAL),
|
||||
NWidget(WWT_PUSHTXTBTN, COLOUR_BROWN, WID_TV_EXECUTE), SetResize(1, 0), SetFill(1, 0), SetStringTip(STR_LOCAL_AUTHORITY_DO_IT_BUTTON, STR_LOCAL_AUTHORITY_DO_IT_TOOLTIP),
|
||||
NWidget(WWT_TEXTBTN, COLOUR_BROWN, WID_TV_ZONE), SetFill(1, 0), SetResize(1, 0), SetStringTip(STR_LOCAL_AUTHORITY_ZONE, STR_LOCAL_AUTHORITY_ZONE_TOOLTIP),
|
||||
NWidget(WWT_TEXTBTN, COLOUR_BROWN, WID_TV_CATCHMENT), SetFill(1, 0), SetResize(1, 0), SetStringTip(STR_BUTTON_CATCHMENT, STR_TOOLTIP_CATCHMENT),
|
||||
NWidget(WWT_RESIZEBOX, COLOUR_BROWN),
|
||||
EndContainer(),
|
||||
};
|
||||
|
|
|
@ -21,30 +21,27 @@ enum TownDirectoryWidgets : WidgetID {
|
|||
WID_TD_WORLD_POPULATION, ///< The world's population.
|
||||
};
|
||||
|
||||
/** Widgets of the #TownAuthorityWindow class. */
|
||||
enum TownAuthorityWidgets : WidgetID {
|
||||
WID_TA_CAPTION, ///< Caption of window.
|
||||
WID_TA_ZONE_BUTTON, ///< Turn on/off showing local authority zone.
|
||||
WID_TA_RATING_INFO, ///< Overview with ratings for each company.
|
||||
WID_TA_COMMAND_LIST, ///< List of commands for the player.
|
||||
WID_TA_SCROLLBAR, ///< Scrollbar of the list of commands.
|
||||
WID_TA_ACTION_INFO, ///< Additional information about the action.
|
||||
WID_TA_EXECUTE, ///< Do-it button.
|
||||
};
|
||||
|
||||
/** Widgets of the #TownViewWindow class. */
|
||||
enum TownViewWidgets : WidgetID {
|
||||
WID_TV_CAPTION, ///< Caption of window.
|
||||
WID_TV_VIEWPORT, ///< View of the center of the town.
|
||||
WID_TV_INFO, ///< General information about the town.
|
||||
WID_TV_CENTER_VIEW, ///< Center the main view on this town.
|
||||
WID_TV_SHOW_AUTHORITY, ///< Show the town authority window.
|
||||
WID_TV_CHANGE_NAME, ///< Change the name of this town.
|
||||
WID_TV_CATCHMENT, ///< Toggle catchment area highlight.
|
||||
WID_TV_EXPAND, ///< Expand this town (scenario editor only).
|
||||
WID_TV_EXPAND_BUILDINGS, ///< Expand number of buildings this town (scenario editor only).
|
||||
WID_TV_EXPAND_ROADS, ///< Expand roads of this town (scenario editor only).
|
||||
WID_TV_DELETE, ///< Delete this town (scenario editor only).
|
||||
WID_TV_PANE_SEL,
|
||||
WID_TV_PANE_INFO,
|
||||
WID_TV_PANE_RATINGS,
|
||||
WID_TV_PANE_ACTIONS,
|
||||
WID_TV_RATING_INFO, ///< Overview with ratings for each company.
|
||||
WID_TV_COMMAND_LIST, ///< List of commands for the player.
|
||||
WID_TV_ACTION_INFO, ///< Additional information about the action.
|
||||
WID_TV_EXECUTE, ///< Do-it button.
|
||||
WID_TV_ZONE, ///< Turn on/off showing local authority zone.
|
||||
};
|
||||
|
||||
/** Widgets of the #FoundTownWindow class. */
|
||||
|
|
|
@ -189,12 +189,6 @@ enum WindowClass : uint16_t {
|
|||
WC_TEXTFILE,
|
||||
|
||||
|
||||
/**
|
||||
* Town authority; %Window numbers:
|
||||
* - #TownID = #TownAuthorityWidgets
|
||||
*/
|
||||
WC_TOWN_AUTHORITY,
|
||||
|
||||
/**
|
||||
* Vehicle details; %Window numbers:
|
||||
* - #VehicleID = #VehicleDetailsWidgets
|
||||
|
|
Loading…
Reference in New Issue