Merge branch 'master' into jgrpp
# Conflicts: # src/lang/russian.txt # src/linkgraph/linkgraph_gui.cpp # src/news_gui.cpp # src/town_cmd.cpp # src/town_gui.cpp
This commit is contained in:
@@ -860,7 +860,7 @@ public:
|
|||||||
|
|
||||||
this->InitNested(window_number);
|
this->InitNested(window_number);
|
||||||
NWidgetViewport *nvp = this->GetWidget<NWidgetViewport>(WID_IV_VIEWPORT);
|
NWidgetViewport *nvp = this->GetWidget<NWidgetViewport>(WID_IV_VIEWPORT);
|
||||||
nvp->InitializeViewport(this, Industry::Get(window_number)->location.GetCenterTile(), ZOOM_LVL_INDUSTRY);
|
nvp->InitializeViewport(this, Industry::Get(window_number)->location.GetCenterTile(), ScaleZoomGUI(ZOOM_LVL_INDUSTRY));
|
||||||
|
|
||||||
this->InvalidateData();
|
this->InvalidateData();
|
||||||
}
|
}
|
||||||
|
@@ -384,7 +384,7 @@ STR_SCENEDIT_TOOLBAR_ROAD_CONSTRUCTION :{BLACK}Wegenbou
|
|||||||
STR_SCENEDIT_TOOLBAR_TRAM_CONSTRUCTION :{BLACK}Tramsporen bouwen
|
STR_SCENEDIT_TOOLBAR_TRAM_CONSTRUCTION :{BLACK}Tramsporen bouwen
|
||||||
STR_SCENEDIT_TOOLBAR_PLANT_TREES :{BLACK}Bomen planten. Shift schakelt tussen planten/inschatting van de kosten
|
STR_SCENEDIT_TOOLBAR_PLANT_TREES :{BLACK}Bomen planten. Shift schakelt tussen planten/inschatting van de kosten
|
||||||
STR_SCENEDIT_TOOLBAR_PLACE_SIGN :{BLACK}Bord plaatsen
|
STR_SCENEDIT_TOOLBAR_PLACE_SIGN :{BLACK}Bord plaatsen
|
||||||
STR_SCENEDIT_TOOLBAR_PLACE_OBJECT :{BLACK}Object plaatsen. Shift schakelt tussen bouwen/inschatting van de kosten
|
STR_SCENEDIT_TOOLBAR_PLACE_OBJECT :{BLACK}Object plaatsen. Ctrl selecteert een diagonaal gebied. Shift+klik wisselt tussen bouwen/verwachte kosten weergeven.
|
||||||
|
|
||||||
# Scenario editor file menu
|
# Scenario editor file menu
|
||||||
###length 7
|
###length 7
|
||||||
@@ -2824,11 +2824,11 @@ STR_LANDSCAPING_TOOLBAR :{WHITE}Terreina
|
|||||||
STR_LANDSCAPING_TOOLTIP_LOWER_A_CORNER_OF_LAND :{BLACK}Verlaag een hoek van het land. Slepen verlaagt de eerste geselecteerde hoek en brengt het geselecteerde gebied naar de hoogte van die hoek. Ctrl selecteert het gebied diagonaal. Shift maakt een inschatting van de kosten
|
STR_LANDSCAPING_TOOLTIP_LOWER_A_CORNER_OF_LAND :{BLACK}Verlaag een hoek van het land. Slepen verlaagt de eerste geselecteerde hoek en brengt het geselecteerde gebied naar de hoogte van die hoek. Ctrl selecteert het gebied diagonaal. Shift maakt een inschatting van de kosten
|
||||||
STR_LANDSCAPING_TOOLTIP_RAISE_A_CORNER_OF_LAND :{BLACK}Verhoog een hoek van het land. Slepen verhoogt de eerste geselecteerde hoek en brengt het geselecteerde gebied naar de hoogte van die hoek. Ctrl selecteert het gebied diagonaal. Shift maakt een inschatting van de kosten
|
STR_LANDSCAPING_TOOLTIP_RAISE_A_CORNER_OF_LAND :{BLACK}Verhoog een hoek van het land. Slepen verhoogt de eerste geselecteerde hoek en brengt het geselecteerde gebied naar de hoogte van die hoek. Ctrl selecteert het gebied diagonaal. Shift maakt een inschatting van de kosten
|
||||||
STR_LANDSCAPING_LEVEL_LAND_TOOLTIP :{BLACK}Land egaliseren op hoogte van eerst geselecteerde hoek. Ctrl selecteert een diagonaal gebied. Shift+klik wisselt tussen bouwen/verwachte kosten weergeven.
|
STR_LANDSCAPING_LEVEL_LAND_TOOLTIP :{BLACK}Land egaliseren op hoogte van eerst geselecteerde hoek. Ctrl selecteert een diagonaal gebied. Shift+klik wisselt tussen bouwen/verwachte kosten weergeven.
|
||||||
STR_LANDSCAPING_TOOLTIP_PURCHASE_LAND :{BLACK}Land kopen voor toekomstig gebruik. Shift+klik wisselt tussen bouwen/verwachte kosten weergeven.
|
STR_LANDSCAPING_TOOLTIP_PURCHASE_LAND :{BLACK}Land kopen voor toekomstig gebruik. Ctrl selecteert een diagonaal gebied. Shift+klik wisselt tussen bouwen/verwachte kosten weergeven.
|
||||||
|
|
||||||
# Object construction window
|
# Object construction window
|
||||||
STR_OBJECT_BUILD_CAPTION :{WHITE}Keuze van object
|
STR_OBJECT_BUILD_CAPTION :{WHITE}Keuze van object
|
||||||
STR_OBJECT_BUILD_TOOLTIP :{BLACK}Object selecteren voor bouwen. Shift+Klik wisselt tussen bouwen/verwachte kosten weergeven.
|
STR_OBJECT_BUILD_TOOLTIP :{BLACK}Selecteer object om te bouwen. Ctrl selecteert een diagonaal gebied. Shift+klik wisselt tussen bouwen/verwachte kosten weergeven.
|
||||||
STR_OBJECT_BUILD_CLASS_TOOLTIP :{BLACK}Hiermee selecteer je de klasse van het te bouwen object
|
STR_OBJECT_BUILD_CLASS_TOOLTIP :{BLACK}Hiermee selecteer je de klasse van het te bouwen object
|
||||||
STR_OBJECT_BUILD_PREVIEW_TOOLTIP :{BLACK}Bekijk het object
|
STR_OBJECT_BUILD_PREVIEW_TOOLTIP :{BLACK}Bekijk het object
|
||||||
STR_OBJECT_BUILD_SIZE :{BLACK}Grootte: {GOLD}{NUM} x {NUM} tegels
|
STR_OBJECT_BUILD_SIZE :{BLACK}Grootte: {GOLD}{NUM} x {NUM} tegels
|
||||||
@@ -4942,6 +4942,7 @@ STR_ERROR_OBJECT_IN_THE_WAY :{WHITE}Object i
|
|||||||
STR_ERROR_COMPANY_HEADQUARTERS_IN :{WHITE}... hoofdkantoor in de weg
|
STR_ERROR_COMPANY_HEADQUARTERS_IN :{WHITE}... hoofdkantoor in de weg
|
||||||
STR_ERROR_CAN_T_PURCHASE_THIS_LAND :{WHITE}Kan dit stuk land niet kopen...
|
STR_ERROR_CAN_T_PURCHASE_THIS_LAND :{WHITE}Kan dit stuk land niet kopen...
|
||||||
STR_ERROR_YOU_ALREADY_OWN_IT :{WHITE}... het is al van jou!
|
STR_ERROR_YOU_ALREADY_OWN_IT :{WHITE}... het is al van jou!
|
||||||
|
STR_ERROR_BUILD_OBJECT_LIMIT_REACHED :{WHITE}... bouwlimiet voor objecten bereikt
|
||||||
|
|
||||||
# Group related errors
|
# Group related errors
|
||||||
STR_ERROR_GROUP_CAN_T_CREATE :{WHITE}Kan groep niet creëren...
|
STR_ERROR_GROUP_CAN_T_CREATE :{WHITE}Kan groep niet creëren...
|
||||||
|
@@ -3145,6 +3145,11 @@ STR_LINKGRAPH_LEGEND_UNUSED :{TINY_FONT}{BLA
|
|||||||
STR_LINKGRAPH_LEGEND_SATURATED :{TINY_FONT}{BLACK}saturated
|
STR_LINKGRAPH_LEGEND_SATURATED :{TINY_FONT}{BLACK}saturated
|
||||||
STR_LINKGRAPH_LEGEND_OVERLOADED :{TINY_FONT}{BLACK}overloaded
|
STR_LINKGRAPH_LEGEND_OVERLOADED :{TINY_FONT}{BLACK}overloaded
|
||||||
|
|
||||||
|
# Linkgraph tooltip
|
||||||
|
STR_LINKGRAPH_STATS_TOOLTIP :{BLACK}{CARGO_LONG} to be transported per month from {STATION} to {STATION} ({COMMA}% of capacity){RAW_STRING}
|
||||||
|
STR_LINKGRAPH_STATS_TOOLTIP_RETURN_EXTENSION :{}{CARGO_LONG} to be transported back ({COMMA}% of capacity)
|
||||||
|
STR_LINKGRAPH_STATS_TOOLTIP_TIME_EXTENSION :{}Average travel time: {NUM}{NBSP}day{P "" s}
|
||||||
|
|
||||||
# Base for station construction window(s)
|
# Base for station construction window(s)
|
||||||
STR_STATION_BUILD_COVERAGE_AREA_TITLE :{BLACK}Coverage area highlight
|
STR_STATION_BUILD_COVERAGE_AREA_TITLE :{BLACK}Coverage area highlight
|
||||||
STR_STATION_BUILD_COVERAGE_OFF :{BLACK}Off
|
STR_STATION_BUILD_COVERAGE_OFF :{BLACK}Off
|
||||||
|
@@ -2849,7 +2849,7 @@ STR_LANDSCAPING_TOOLBAR :{WHITE}Landscap
|
|||||||
STR_LANDSCAPING_TOOLTIP_LOWER_A_CORNER_OF_LAND :{BLACK}Lower a corner of land. Dragging lowers the first selected corner and levels the selected area to the new corner height. Ctrl selects the area diagonally. Shift toggles building/showing cost estimate
|
STR_LANDSCAPING_TOOLTIP_LOWER_A_CORNER_OF_LAND :{BLACK}Lower a corner of land. Dragging lowers the first selected corner and levels the selected area to the new corner height. Ctrl selects the area diagonally. Shift toggles building/showing cost estimate
|
||||||
STR_LANDSCAPING_TOOLTIP_RAISE_A_CORNER_OF_LAND :{BLACK}Raise a corner of land. Dragging raises the first selected corner and levels the selected area to the new corner height. Ctrl selects the area diagonally. Shift toggles building/showing cost estimate
|
STR_LANDSCAPING_TOOLTIP_RAISE_A_CORNER_OF_LAND :{BLACK}Raise a corner of land. Dragging raises the first selected corner and levels the selected area to the new corner height. Ctrl selects the area diagonally. Shift toggles building/showing cost estimate
|
||||||
STR_LANDSCAPING_LEVEL_LAND_TOOLTIP :{BLACK}Level an area of land to the height of the first selected corner. Ctrl selects the area diagonally. Shift toggles building/showing cost estimate
|
STR_LANDSCAPING_LEVEL_LAND_TOOLTIP :{BLACK}Level an area of land to the height of the first selected corner. Ctrl selects the area diagonally. Shift toggles building/showing cost estimate
|
||||||
STR_LANDSCAPING_TOOLTIP_PURCHASE_LAND :{BLACK}Purchase land for future use. Shift toggles building/showing cost estimate
|
STR_LANDSCAPING_TOOLTIP_PURCHASE_LAND :{BLACK}Purchase land for future use. Ctrl selects the area diagonally. Shift toggles building/showing cost estimate
|
||||||
|
|
||||||
# Object construction window
|
# Object construction window
|
||||||
STR_OBJECT_BUILD_CAPTION :{WHITE}Object Selection
|
STR_OBJECT_BUILD_CAPTION :{WHITE}Object Selection
|
||||||
|
@@ -1183,6 +1183,7 @@ STR_CONFIG_SETTING_SUBSIDY_MULTIPLIER :Subsydzjeferman
|
|||||||
STR_CONFIG_SETTING_SUBSIDY_MULTIPLIER_HELPTEXT :Stel yn hoefolle der betelle wurdt foar subsidiearre ferbinings
|
STR_CONFIG_SETTING_SUBSIDY_MULTIPLIER_HELPTEXT :Stel yn hoefolle der betelle wurdt foar subsidiearre ferbinings
|
||||||
|
|
||||||
|
|
||||||
|
STR_CONFIG_SETTING_SUBSIDY_DURATION_VALUE :{NUM} jier
|
||||||
###setting-zero-is-special
|
###setting-zero-is-special
|
||||||
|
|
||||||
STR_CONFIG_SETTING_CONSTRUCTION_COSTS :Boukosten: {STRING}
|
STR_CONFIG_SETTING_CONSTRUCTION_COSTS :Boukosten: {STRING}
|
||||||
@@ -2076,6 +2077,7 @@ STR_NETWORK_START_SERVER_NEW_GAME_NAME_OSKTITLE :{BLACK}Fier in
|
|||||||
# Network connecting window
|
# Network connecting window
|
||||||
STR_NETWORK_CONNECTING_CAPTION :{WHITE}Ferbyning meitsje...
|
STR_NETWORK_CONNECTING_CAPTION :{WHITE}Ferbyning meitsje...
|
||||||
|
|
||||||
|
STR_NETWORK_CONNECTING_WAITING :{BLACK}{NUM} klïïnt{P "" en} foar dy
|
||||||
STR_NETWORK_CONNECTING_DOWNLOADING_1 :{BLACK}{BYTES} Delhelle oant
|
STR_NETWORK_CONNECTING_DOWNLOADING_1 :{BLACK}{BYTES} Delhelle oant
|
||||||
STR_NETWORK_CONNECTING_DOWNLOADING_2 :{BLACK}{BYTES} / {BYTES} delhelle
|
STR_NETWORK_CONNECTING_DOWNLOADING_2 :{BLACK}{BYTES} / {BYTES} delhelle
|
||||||
|
|
||||||
@@ -2157,6 +2159,7 @@ STR_NETWORK_ERROR_CLIENT_NOT_EXPECTED :ûnjildich of
|
|||||||
STR_NETWORK_ERROR_CLIENT_WRONG_REVISION :ferkearde revyzje
|
STR_NETWORK_ERROR_CLIENT_WRONG_REVISION :ferkearde revyzje
|
||||||
STR_NETWORK_ERROR_CLIENT_NAME_IN_USE :namme is al beset
|
STR_NETWORK_ERROR_CLIENT_NAME_IN_USE :namme is al beset
|
||||||
STR_NETWORK_ERROR_CLIENT_WRONG_PASSWORD :ferkeard wachtwurd
|
STR_NETWORK_ERROR_CLIENT_WRONG_PASSWORD :ferkeard wachtwurd
|
||||||
|
STR_NETWORK_ERROR_CLIENT_CHEATER :besocht falsk te spieljen
|
||||||
STR_NETWORK_ERROR_CLIENT_TOO_MANY_COMMANDS :joech tevolle opdrachten
|
STR_NETWORK_ERROR_CLIENT_TOO_MANY_COMMANDS :joech tevolle opdrachten
|
||||||
STR_NETWORK_ERROR_CLIENT_TIMEOUT_MAP :kaart delheljen duorret te lang
|
STR_NETWORK_ERROR_CLIENT_TIMEOUT_MAP :kaart delheljen duorret te lang
|
||||||
STR_NETWORK_ERROR_CLIENT_TIMEOUT_JOIN :kaart ferwurkje duorret te lang
|
STR_NETWORK_ERROR_CLIENT_TIMEOUT_JOIN :kaart ferwurkje duorret te lang
|
||||||
@@ -2174,6 +2177,7 @@ STR_NETWORK_SERVER_MESSAGE_GAME_REASON_GAME_SCRIPT :spulskript
|
|||||||
STR_NETWORK_MESSAGE_CLIENT_LEAVING :Ferlit
|
STR_NETWORK_MESSAGE_CLIENT_LEAVING :Ferlit
|
||||||
STR_NETWORK_MESSAGE_CLIENT_JOINED_ID :*** {STRING} der is ien bykommen(Client #{2:NUM})
|
STR_NETWORK_MESSAGE_CLIENT_JOINED_ID :*** {STRING} der is ien bykommen(Client #{2:NUM})
|
||||||
STR_NETWORK_MESSAGE_CLIENT_COMPANY_SPECTATE :*** {STRING} is in neie taskôger
|
STR_NETWORK_MESSAGE_CLIENT_COMPANY_SPECTATE :*** {STRING} is in neie taskôger
|
||||||
|
STR_NETWORK_MESSAGE_CLIENT_LEFT :*** {STRING} hat it spul ferlitten ({2:STRING})
|
||||||
STR_NETWORK_MESSAGE_NAME_CHANGE :*** {STRING} hat syn/har namme oanpast nei {STRING}
|
STR_NETWORK_MESSAGE_NAME_CHANGE :*** {STRING} hat syn/har namme oanpast nei {STRING}
|
||||||
STR_NETWORK_MESSAGE_SERVER_SHUTDOWN :{WHITE}Tsjinner hat de ferbining sluten
|
STR_NETWORK_MESSAGE_SERVER_SHUTDOWN :{WHITE}Tsjinner hat de ferbining sluten
|
||||||
|
|
||||||
@@ -2188,6 +2192,7 @@ STR_CONTENT_OPEN_URL :{BLACK}Webside
|
|||||||
STR_CONTENT_OPEN_URL_TOOLTIP :{BLACK}Webside foar dizze ynhâld besykje
|
STR_CONTENT_OPEN_URL_TOOLTIP :{BLACK}Webside foar dizze ynhâld besykje
|
||||||
STR_CONTENT_DOWNLOAD_CAPTION :{BLACK}Delhelje
|
STR_CONTENT_DOWNLOAD_CAPTION :{BLACK}Delhelje
|
||||||
STR_CONTENT_DOWNLOAD_CAPTION_TOOLTIP :{BLACK}Begjinne mei delheljen fan selektearre ynhâld
|
STR_CONTENT_DOWNLOAD_CAPTION_TOOLTIP :{BLACK}Begjinne mei delheljen fan selektearre ynhâld
|
||||||
|
STR_CONTENT_TOTAL_DOWNLOAD_SIZE :{SILVER}Totaal om te delheljen: {WHITE}{BYTES}
|
||||||
STR_CONTENT_DETAIL_TITLE :{SILVER}KONTENT INFO
|
STR_CONTENT_DETAIL_TITLE :{SILVER}KONTENT INFO
|
||||||
|
|
||||||
###length 5
|
###length 5
|
||||||
@@ -2207,6 +2212,7 @@ STR_CONTENT_TYPE_AI_LIBRARY :AI biblioteek
|
|||||||
STR_CONTENT_TYPE_SCENARIO :Lânskip
|
STR_CONTENT_TYPE_SCENARIO :Lânskip
|
||||||
STR_CONTENT_TYPE_HEIGHTMAP :Hichtemap
|
STR_CONTENT_TYPE_HEIGHTMAP :Hichtemap
|
||||||
STR_CONTENT_TYPE_BASE_SOUNDS :Basislûden
|
STR_CONTENT_TYPE_BASE_SOUNDS :Basislûden
|
||||||
|
STR_CONTENT_TYPE_BASE_MUSIC :Basisset for musyk
|
||||||
STR_CONTENT_TYPE_GAME_SCRIPT :Spulskript
|
STR_CONTENT_TYPE_GAME_SCRIPT :Spulskript
|
||||||
STR_CONTENT_TYPE_GS_LIBRARY :GS biblioteek
|
STR_CONTENT_TYPE_GS_LIBRARY :GS biblioteek
|
||||||
|
|
||||||
@@ -2297,6 +2303,7 @@ STR_STATION_BUILD_NUMBER_OF_TRACKS :{BLACK}Oantal b
|
|||||||
STR_STATION_BUILD_NUMBER_OF_TRACKS_TOOLTIP :{BLACK}Selektear oantal banen foar treinstasjon
|
STR_STATION_BUILD_NUMBER_OF_TRACKS_TOOLTIP :{BLACK}Selektear oantal banen foar treinstasjon
|
||||||
STR_STATION_BUILD_PLATFORM_LENGTH :{BLACK}Stasjon lengte
|
STR_STATION_BUILD_PLATFORM_LENGTH :{BLACK}Stasjon lengte
|
||||||
STR_STATION_BUILD_PLATFORM_LENGTH_TOOLTIP :{BLACK}Selektear lengte fan treinstasjon
|
STR_STATION_BUILD_PLATFORM_LENGTH_TOOLTIP :{BLACK}Selektear lengte fan treinstasjon
|
||||||
|
STR_STATION_BUILD_DRAG_DROP :Sleepe en los litte
|
||||||
|
|
||||||
STR_STATION_BUILD_STATION_TYPE_TOOLTIP :{BLACK}Selektearje type stasjon om te bouwe
|
STR_STATION_BUILD_STATION_TYPE_TOOLTIP :{BLACK}Selektearje type stasjon om te bouwe
|
||||||
|
|
||||||
@@ -2605,10 +2612,12 @@ STR_ABOUT_VERSION :{BLACK}OpenTTD-
|
|||||||
STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-{STRING} It OpenTTD team
|
STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-{STRING} It OpenTTD team
|
||||||
|
|
||||||
# Framerate display window
|
# Framerate display window
|
||||||
|
STR_FRAMERATE_CURRENT :Aktueel
|
||||||
|
|
||||||
###length 15
|
###length 15
|
||||||
|
|
||||||
###length 15
|
###length 15
|
||||||
|
STR_FRAMETIME_CAPTION_AI :Kompjûterspiler {NUM} {STRING}
|
||||||
|
|
||||||
|
|
||||||
# Save/load game/scenario
|
# Save/load game/scenario
|
||||||
@@ -2743,7 +2752,10 @@ STR_NEWGRF_SETTINGS_VERSION :{BLACK}Ferzje:
|
|||||||
STR_NEWGRF_SETTINGS_MIN_VERSION :{BLACK}Leechte noch wurkjende ferzje: {SILVER}{NUM}
|
STR_NEWGRF_SETTINGS_MIN_VERSION :{BLACK}Leechte noch wurkjende ferzje: {SILVER}{NUM}
|
||||||
STR_NEWGRF_SETTINGS_MD5SUM :{BLACK}MD5sum: {SILVER}{STRING}
|
STR_NEWGRF_SETTINGS_MD5SUM :{BLACK}MD5sum: {SILVER}{STRING}
|
||||||
STR_NEWGRF_SETTINGS_PALETTE :{BLACK}Palet: {SILVER}{STRING}
|
STR_NEWGRF_SETTINGS_PALETTE :{BLACK}Palet: {SILVER}{STRING}
|
||||||
|
STR_NEWGRF_SETTINGS_PALETTE_LEGACY :Oarspronklik (W)
|
||||||
|
STR_NEWGRF_SETTINGS_PALETTE_LEGACY_32BPP :Oarspronklik (W) / 32 bpp
|
||||||
STR_NEWGRF_SETTINGS_PARAMETER :{BLACK}Parameters: {SILVER}{STRING}
|
STR_NEWGRF_SETTINGS_PARAMETER :{BLACK}Parameters: {SILVER}{STRING}
|
||||||
|
STR_NEWGRF_SETTINGS_PARAMETER_NONE :Gjin
|
||||||
|
|
||||||
STR_NEWGRF_SETTINGS_NO_INFO :{BLACK}gjin ynformaasje beskikber
|
STR_NEWGRF_SETTINGS_NO_INFO :{BLACK}gjin ynformaasje beskikber
|
||||||
STR_NEWGRF_SETTINGS_NOT_FOUND :{RED}Keppelt bestând koe net fûn wurde
|
STR_NEWGRF_SETTINGS_NOT_FOUND :{RED}Keppelt bestând koe net fûn wurde
|
||||||
@@ -2907,6 +2919,7 @@ STR_TOWN_VIEW_RENAME_TOWN_BUTTON :Stêdsnamme Fer
|
|||||||
|
|
||||||
# Town local authority window
|
# Town local authority window
|
||||||
STR_LOCAL_AUTHORITY_CAPTION :{WHITE}{TOWN} gemeente
|
STR_LOCAL_AUTHORITY_CAPTION :{WHITE}{TOWN} gemeente
|
||||||
|
STR_LOCAL_AUTHORITY_ZONE :{BLACK}Sône
|
||||||
STR_LOCAL_AUTHORITY_COMPANY_RATINGS :{BLACK}Transportbedrieuwwurdearring:
|
STR_LOCAL_AUTHORITY_COMPANY_RATINGS :{BLACK}Transportbedrieuwwurdearring:
|
||||||
STR_LOCAL_AUTHORITY_COMPANY_RATING :{YELLOW}{COMPANY} {COMPANY_NUM}: {ORANGE}{STRING}
|
STR_LOCAL_AUTHORITY_COMPANY_RATING :{YELLOW}{COMPANY} {COMPANY_NUM}: {ORANGE}{STRING}
|
||||||
STR_LOCAL_AUTHORITY_ACTIONS_TITLE :{BLACK}Mooglike aksjes:
|
STR_LOCAL_AUTHORITY_ACTIONS_TITLE :{BLACK}Mooglike aksjes:
|
||||||
@@ -3081,6 +3094,7 @@ STR_FINANCES_SECTION_OTHER :{GOLD}Oaren
|
|||||||
STR_FINANCES_NEGATIVE_INCOME :{BLACK}-{CURRENCY_LONG}
|
STR_FINANCES_NEGATIVE_INCOME :{BLACK}-{CURRENCY_LONG}
|
||||||
STR_FINANCES_POSITIVE_INCOME :{BLACK}+{CURRENCY_LONG}
|
STR_FINANCES_POSITIVE_INCOME :{BLACK}+{CURRENCY_LONG}
|
||||||
STR_FINANCES_BANK_BALANCE_TITLE :{WHITE}Jild
|
STR_FINANCES_BANK_BALANCE_TITLE :{WHITE}Jild
|
||||||
|
STR_FINANCES_OWN_FUNDS_TITLE :{WHITE}Eigen fûnsen
|
||||||
STR_FINANCES_LOAN_TITLE :{WHITE}Liening
|
STR_FINANCES_LOAN_TITLE :{WHITE}Liening
|
||||||
STR_FINANCES_MAX_LOAN :{WHITE}Maksimale Liening: {BLACK}{CURRENCY_LONG}
|
STR_FINANCES_MAX_LOAN :{WHITE}Maksimale Liening: {BLACK}{CURRENCY_LONG}
|
||||||
STR_FINANCES_TOTAL_CURRENCY :{BLACK}{CURRENCY_LONG}
|
STR_FINANCES_TOTAL_CURRENCY :{BLACK}{CURRENCY_LONG}
|
||||||
@@ -3411,6 +3425,7 @@ STR_VEHICLE_VIEW_AIRCRAFT_SEND_TO_DEPOT_TOOLTIP :{BLACK}Stjoer f
|
|||||||
###length VEHICLE_TYPES
|
###length VEHICLE_TYPES
|
||||||
|
|
||||||
STR_VEHICLE_VIEW_TRAIN_REVERSE_TOOLTIP :{BLACK}Rydrjochting fan trein omkeare
|
STR_VEHICLE_VIEW_TRAIN_REVERSE_TOOLTIP :{BLACK}Rydrjochting fan trein omkeare
|
||||||
|
STR_VEHICLE_VIEW_ROAD_VEHICLE_REVERSE_TOOLTIP :Lit fiertug omkeare
|
||||||
|
|
||||||
###length VEHICLE_TYPES
|
###length VEHICLE_TYPES
|
||||||
STR_VEHICLE_VIEW_TRAIN_REFIT_TOOLTIP :{BLACK}Trein ombouwe om in oar soart fracht mei te nimmen
|
STR_VEHICLE_VIEW_TRAIN_REFIT_TOOLTIP :{BLACK}Trein ombouwe om in oar soart fracht mei te nimmen
|
||||||
@@ -3512,6 +3527,7 @@ STR_VEHICLE_DETAIL_TAB_TOTAL_CARGO :{BLACK}Totale F
|
|||||||
STR_VEHICLE_DETAILS_TRAIN_ARTICULATED_RV_CAPACITY :{BLACK}Kapasiteit: {LTBLUE}
|
STR_VEHICLE_DETAILS_TRAIN_ARTICULATED_RV_CAPACITY :{BLACK}Kapasiteit: {LTBLUE}
|
||||||
|
|
||||||
# Vehicle refit
|
# Vehicle refit
|
||||||
|
STR_REFIT_CAPTION :{WHITE}{VEHICLE} (Ombouwe)
|
||||||
STR_REFIT_TITLE :{GOLD}Selektearje it soart fracht om mei te nimmen:
|
STR_REFIT_TITLE :{GOLD}Selektearje it soart fracht om mei te nimmen:
|
||||||
STR_REFIT_NEW_CAPACITY_COST_OF_REFIT :{BLACK}Nije kapasiteit: {GOLD}{CARGO_LONG}{}{BLACK}Kosten fan ombou: {RED}{CURRENCY_LONG}
|
STR_REFIT_NEW_CAPACITY_COST_OF_REFIT :{BLACK}Nije kapasiteit: {GOLD}{CARGO_LONG}{}{BLACK}Kosten fan ombou: {RED}{CURRENCY_LONG}
|
||||||
STR_REFIT_NEW_CAPACITY_COST_OF_AIRCRAFT_REFIT :{BLACK}Nije kapasiteit: {GOLD}{CARGO_LONG}, {GOLD}{CARGO_LONG}{}{BLACK}kosten fan werfolje: {RED}{CURRENCY_LONG}
|
STR_REFIT_NEW_CAPACITY_COST_OF_AIRCRAFT_REFIT :{BLACK}Nije kapasiteit: {GOLD}{CARGO_LONG}, {GOLD}{CARGO_LONG}{}{BLACK}kosten fan werfolje: {RED}{CURRENCY_LONG}
|
||||||
@@ -3716,7 +3732,7 @@ STR_AI_DEBUG_CONTINUE :{BLACK}Trjochge
|
|||||||
STR_AI_DEBUG_SELECT_AI_TOOLTIP :{BLACK}Lit debug output fan dizze AI sjen
|
STR_AI_DEBUG_SELECT_AI_TOOLTIP :{BLACK}Lit debug output fan dizze AI sjen
|
||||||
STR_AI_GAME_SCRIPT :{BLACK}Spulskript
|
STR_AI_GAME_SCRIPT :{BLACK}Spulskript
|
||||||
|
|
||||||
STR_ERROR_AI_NO_AI_FOUND :Gjin geskikte compjûterspiler fûn.{}Disse compjûterspiler is in dummy en docht neat.{}Jo kinne compjûterspilers delhelje fan 'Online Inhâld' ôf.
|
STR_ERROR_AI_NO_AI_FOUND :Gjin geskikte kompjûterspiler fûn.{}Disse kompjûterspiler is in dummy en docht neat.{}Jo kinne kompjûterspilers delhelje fan 'Online Inhâld' ôf.
|
||||||
STR_ERROR_AI_DEBUG_SERVER_ONLY :{YELLOW}AI/Spulskript debugskerm is allinich beskikber foar de tsjinner
|
STR_ERROR_AI_DEBUG_SERVER_ONLY :{YELLOW}AI/Spulskript debugskerm is allinich beskikber foar de tsjinner
|
||||||
|
|
||||||
# AI configuration window
|
# AI configuration window
|
||||||
|
@@ -385,7 +385,7 @@ STR_SCENEDIT_TOOLBAR_ROAD_CONSTRUCTION :{BLACK}Construi
|
|||||||
STR_SCENEDIT_TOOLBAR_TRAM_CONSTRUCTION :{BLACK}Construção de carris para elétricos
|
STR_SCENEDIT_TOOLBAR_TRAM_CONSTRUCTION :{BLACK}Construção de carris para elétricos
|
||||||
STR_SCENEDIT_TOOLBAR_PLANT_TREES :{BLACK}Plantar árvores. Shift alterna contruir/mostrar custo estimado
|
STR_SCENEDIT_TOOLBAR_PLANT_TREES :{BLACK}Plantar árvores. Shift alterna contruir/mostrar custo estimado
|
||||||
STR_SCENEDIT_TOOLBAR_PLACE_SIGN :{BLACK}Colocar sinais
|
STR_SCENEDIT_TOOLBAR_PLACE_SIGN :{BLACK}Colocar sinais
|
||||||
STR_SCENEDIT_TOOLBAR_PLACE_OBJECT :{BLACK}Colocar objecto. Shift alterna contruir/mostrar custo estimado
|
STR_SCENEDIT_TOOLBAR_PLACE_OBJECT :{BLACK}Colocar objeto. Ctrl seleciona a área diagonalmente. Shift alterna construir/mostrar custo estimado
|
||||||
|
|
||||||
# Scenario editor file menu
|
# Scenario editor file menu
|
||||||
###length 7
|
###length 7
|
||||||
@@ -2825,11 +2825,11 @@ STR_LANDSCAPING_TOOLBAR :{WHITE}Terreno
|
|||||||
STR_LANDSCAPING_TOOLTIP_LOWER_A_CORNER_OF_LAND :{BLACK}Baixar terreno. Ao pressionar e arrastar o cursor, o primeiro ponto selecionado é rebaixado e o terreno da área selecionada é nivelado com a nova altura do primeiro ponto. Ctrl seleciona a área na diagonal. Shift mostra a estimativa de custos.
|
STR_LANDSCAPING_TOOLTIP_LOWER_A_CORNER_OF_LAND :{BLACK}Baixar terreno. Ao pressionar e arrastar o cursor, o primeiro ponto selecionado é rebaixado e o terreno da área selecionada é nivelado com a nova altura do primeiro ponto. Ctrl seleciona a área na diagonal. Shift mostra a estimativa de custos.
|
||||||
STR_LANDSCAPING_TOOLTIP_RAISE_A_CORNER_OF_LAND :{BLACK}Elevar terreno. Ao pressionar e arrastar o cursor, o primeiro ponto selecionado é elevado e o terreno da área selecionada é nivelado com a nova altura do primeiro ponto. Ctrl seleciona a área na diagonal. Shift mostra a estimativa de custos.
|
STR_LANDSCAPING_TOOLTIP_RAISE_A_CORNER_OF_LAND :{BLACK}Elevar terreno. Ao pressionar e arrastar o cursor, o primeiro ponto selecionado é elevado e o terreno da área selecionada é nivelado com a nova altura do primeiro ponto. Ctrl seleciona a área na diagonal. Shift mostra a estimativa de custos.
|
||||||
STR_LANDSCAPING_LEVEL_LAND_TOOLTIP :{BLACK}Nívelar uma área de terreno até a altura do primeiro ponto selecionado. Ctrl selecciona a área na diagonal. Shift mostra a estimativa de custos.
|
STR_LANDSCAPING_LEVEL_LAND_TOOLTIP :{BLACK}Nívelar uma área de terreno até a altura do primeiro ponto selecionado. Ctrl selecciona a área na diagonal. Shift mostra a estimativa de custos.
|
||||||
STR_LANDSCAPING_TOOLTIP_PURCHASE_LAND :{BLACK}Comprar terreno para uso futuro. Shift mostra a estimativa de custos.
|
STR_LANDSCAPING_TOOLTIP_PURCHASE_LAND :{BLACK}Comprar terreno para uso futuro. Ctrl seleciona a área diagonalmente. Shift alterna entre construir/mostrar custo estimado
|
||||||
|
|
||||||
# Object construction window
|
# Object construction window
|
||||||
STR_OBJECT_BUILD_CAPTION :{WHITE}Selecção de Objecto
|
STR_OBJECT_BUILD_CAPTION :{WHITE}Selecção de Objecto
|
||||||
STR_OBJECT_BUILD_TOOLTIP :{BLACK}Seleccionar objecto para construir. Shift alterna construir/mostrar custo estimado
|
STR_OBJECT_BUILD_TOOLTIP :{BLACK}Selecionar objeto para construir. Ctrl seleciona a área diagonalmente. Shift alterna construir/mostrar custo estimado
|
||||||
STR_OBJECT_BUILD_CLASS_TOOLTIP :{BLACK}Selecionar a classe do objecto a construir
|
STR_OBJECT_BUILD_CLASS_TOOLTIP :{BLACK}Selecionar a classe do objecto a construir
|
||||||
STR_OBJECT_BUILD_PREVIEW_TOOLTIP :{BLACK}Pré-visualização do objecto
|
STR_OBJECT_BUILD_PREVIEW_TOOLTIP :{BLACK}Pré-visualização do objecto
|
||||||
STR_OBJECT_BUILD_SIZE :{BLACK}Tamanho: {GOLD}{NUM} x {NUM} quadrados
|
STR_OBJECT_BUILD_SIZE :{BLACK}Tamanho: {GOLD}{NUM} x {NUM} quadrados
|
||||||
@@ -4943,6 +4943,7 @@ STR_ERROR_OBJECT_IN_THE_WAY :{WHITE}Objecto
|
|||||||
STR_ERROR_COMPANY_HEADQUARTERS_IN :{WHITE}... sede de empresa no caminho
|
STR_ERROR_COMPANY_HEADQUARTERS_IN :{WHITE}... sede de empresa no caminho
|
||||||
STR_ERROR_CAN_T_PURCHASE_THIS_LAND :{WHITE}Não é possível comprar esta área de terreno...
|
STR_ERROR_CAN_T_PURCHASE_THIS_LAND :{WHITE}Não é possível comprar esta área de terreno...
|
||||||
STR_ERROR_YOU_ALREADY_OWN_IT :{WHITE}... já a possui!
|
STR_ERROR_YOU_ALREADY_OWN_IT :{WHITE}... já a possui!
|
||||||
|
STR_ERROR_BUILD_OBJECT_LIMIT_REACHED :{WHITE}... atingido o limite de construção de objeto
|
||||||
|
|
||||||
# Group related errors
|
# Group related errors
|
||||||
STR_ERROR_GROUP_CAN_T_CREATE :{WHITE}Impossível criar grupo...
|
STR_ERROR_GROUP_CAN_T_CREATE :{WHITE}Impossível criar grupo...
|
||||||
|
@@ -3003,7 +3003,7 @@ STR_LANDSCAPING_TOOLBAR :{WHITE}Ланд
|
|||||||
STR_LANDSCAPING_TOOLTIP_LOWER_A_CORNER_OF_LAND :{BLACK}Опустить угол земли. Перетаскивание опускает первый выбранный угол и выравнивает выбранную область до новой высоты угла. Ctrl выбирает область по диагонали. При нажатом Shift - оценка стоимости строительства.
|
STR_LANDSCAPING_TOOLTIP_LOWER_A_CORNER_OF_LAND :{BLACK}Опустить угол земли. Перетаскивание опускает первый выбранный угол и выравнивает выбранную область до новой высоты угла. Ctrl выбирает область по диагонали. При нажатом Shift - оценка стоимости строительства.
|
||||||
STR_LANDSCAPING_TOOLTIP_RAISE_A_CORNER_OF_LAND :{BLACK}Поднять угол земли. Перетаскивание поднимает первый выбранный угол и выравнивает выбранную область до новой высоты угла. Ctrl выбирает область по диагонали. При нажатом Shift - оценка стоимости строительства.
|
STR_LANDSCAPING_TOOLTIP_RAISE_A_CORNER_OF_LAND :{BLACK}Поднять угол земли. Перетаскивание поднимает первый выбранный угол и выравнивает выбранную область до новой высоты угла. Ctrl выбирает область по диагонали. При нажатом Shift - оценка стоимости строительства.
|
||||||
STR_LANDSCAPING_LEVEL_LAND_TOOLTIP :{BLACK}Выровнять землю до высоты первого выбранного угла. Ctrl выбирает область по диагонали. При нажатом Shift - оценка стоимости выравнивания.
|
STR_LANDSCAPING_LEVEL_LAND_TOOLTIP :{BLACK}Выровнять землю до высоты первого выбранного угла. Ctrl выбирает область по диагонали. При нажатом Shift - оценка стоимости выравнивания.
|
||||||
STR_LANDSCAPING_TOOLTIP_PURCHASE_LAND :{BLACK}Покупка земли. При нажатом Shift - оценка стоимости покупки.
|
STR_LANDSCAPING_TOOLTIP_PURCHASE_LAND :{BLACK}Покупка земли.{}При нажатом Ctrl выбираются клетки по диагонали.{}При нажатом Shift - оценка стоимости покупки.
|
||||||
STR_LANDSCAPING_TOOLTIP_RULER_TOOL :{BLACK}Виртуальная линейка для измерения расстояний и высот
|
STR_LANDSCAPING_TOOLTIP_RULER_TOOL :{BLACK}Виртуальная линейка для измерения расстояний и высот
|
||||||
|
|
||||||
# Object construction window
|
# Object construction window
|
||||||
|
@@ -170,7 +170,7 @@ void LinkGraphOverlay::RebuildCache(bool incremental)
|
|||||||
item->from_pt = from_pt;
|
item->from_pt = from_pt;
|
||||||
item->to_pt = to_pt;
|
item->to_pt = to_pt;
|
||||||
}
|
}
|
||||||
this->AddStats(lg.Monthly(edge.Capacity()), lg.Monthly(edge.Usage()),
|
this->AddStats(c, lg.Monthly(edge.Capacity()), lg.Monthly(edge.Usage()),
|
||||||
ge.flows.GetFlowVia(to->index), from->owner == OWNER_NONE || to->owner == OWNER_NONE,
|
ge.flows.GetFlowVia(to->index), from->owner == OWNER_NONE || to->owner == OWNER_NONE,
|
||||||
item->prop);
|
item->prop);
|
||||||
}
|
}
|
||||||
@@ -345,11 +345,12 @@ inline bool LinkGraphOverlay::IsLinkVisible(Point pta, Point ptb, const DrawPixe
|
|||||||
* @param new_shared If the new link is shared.
|
* @param new_shared If the new link is shared.
|
||||||
* @param cargo LinkProperties to write the information to.
|
* @param cargo LinkProperties to write the information to.
|
||||||
*/
|
*/
|
||||||
/* static */ void LinkGraphOverlay::AddStats(uint new_cap, uint new_usg, uint new_plan, bool new_shared, LinkProperties &cargo)
|
/* static */ void LinkGraphOverlay::AddStats(CargoID new_cargo, uint new_cap, uint new_usg, uint new_plan, bool new_shared, LinkProperties &cargo)
|
||||||
{
|
{
|
||||||
/* multiply the numbers by 32 in order to avoid comparing to 0 too often. */
|
/* multiply the numbers by 32 in order to avoid comparing to 0 too often. */
|
||||||
if (cargo.capacity == 0 ||
|
if (cargo.capacity == 0 ||
|
||||||
std::max(cargo.usage, cargo.planned) * 32 / (cargo.capacity + 1) < std::max(new_usg, new_plan) * 32 / (new_cap + 1)) {
|
cargo.Usage() * 32 / (cargo.capacity + 1) < std::max(new_usg, new_plan) * 32 / (new_cap + 1)) {
|
||||||
|
cargo.cargo = new_cargo;
|
||||||
cargo.capacity = new_cap;
|
cargo.capacity = new_cap;
|
||||||
cargo.usage = new_usg;
|
cargo.usage = new_usg;
|
||||||
cargo.planned = new_plan;
|
cargo.planned = new_plan;
|
||||||
@@ -417,7 +418,7 @@ void LinkGraphOverlay::DrawLinks(const DrawPixelInfo *dpi) const
|
|||||||
*/
|
*/
|
||||||
void LinkGraphOverlay::DrawContent(Point pta, Point ptb, const LinkProperties &cargo) const
|
void LinkGraphOverlay::DrawContent(Point pta, Point ptb, const LinkProperties &cargo) const
|
||||||
{
|
{
|
||||||
uint usage_or_plan = std::min(cargo.capacity * 2 + 1, std::max(cargo.usage, cargo.planned));
|
uint usage_or_plan = std::min(cargo.capacity * 2 + 1, cargo.Usage());
|
||||||
int colour = LinkGraphOverlay::LINK_COLOURS[_settings_client.gui.linkgraph_colours][usage_or_plan * lengthof(LinkGraphOverlay::LINK_COLOURS[0]) / (cargo.capacity * 2 + 2)];
|
int colour = LinkGraphOverlay::LINK_COLOURS[_settings_client.gui.linkgraph_colours][usage_or_plan * lengthof(LinkGraphOverlay::LINK_COLOURS[0]) / (cargo.capacity * 2 + 2)];
|
||||||
int width = ScaleGUITrad(this->scale);
|
int width = ScaleGUITrad(this->scale);
|
||||||
int dash = cargo.shared ? width * 4 : 0;
|
int dash = cargo.shared ? width * 4 : 0;
|
||||||
@@ -483,6 +484,56 @@ void LinkGraphOverlay::DrawStationDots(const DrawPixelInfo *dpi) const
|
|||||||
GfxDrawLine(x + w2, y - w1, x + w2, y + w2, border_colour);
|
GfxDrawLine(x + w2, y - w1, x + w2, y + w2, border_colour);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool LinkGraphOverlay::ShowTooltip(Point pt, TooltipCloseCondition close_cond)
|
||||||
|
{
|
||||||
|
for (LinkList::const_reverse_iterator i(this->cached_links.rbegin()); i != this->cached_links.rend(); ++i) {
|
||||||
|
if (!Station::IsValidID(i->from_id)) continue;
|
||||||
|
if (!Station::IsValidID(i->to_id)) continue;
|
||||||
|
|
||||||
|
Point pta = i->from_pt;
|
||||||
|
Point ptb = i->to_pt;
|
||||||
|
|
||||||
|
/* Check the distance from the cursor to the line defined by the two stations. */
|
||||||
|
auto check_distance = [&]() -> bool {
|
||||||
|
int64 a = ((ptb.x - pta.x) * (pta.y - pt.y) - (pta.x - pt.x) * (ptb.y - pta.y));
|
||||||
|
return ((a * a) / ((ptb.x - pta.x) * (ptb.x - pta.x) + (ptb.y - pta.y) * (ptb.y - pta.y))) <= 16;
|
||||||
|
};
|
||||||
|
const auto &link = i->prop;
|
||||||
|
if (link.Usage() > 0 &&
|
||||||
|
pt.x + 2 >= std::min(pta.x, ptb.x) &&
|
||||||
|
pt.x - 2 <= std::max(pta.x, ptb.x) &&
|
||||||
|
check_distance()) {
|
||||||
|
|
||||||
|
static char buf[1024];
|
||||||
|
buf[0] = 0;
|
||||||
|
|
||||||
|
/* Fill buf with more information if this is a bidirectional link. */
|
||||||
|
for (LinkList::const_reverse_iterator j = std::next(i); j != this->cached_links.rend(); ++j) {
|
||||||
|
if (j->from_id == i->to_id && j->to_id == i->from_id) {
|
||||||
|
if (j->prop.Usage() > 0) {
|
||||||
|
SetDParam(0, j->prop.cargo);
|
||||||
|
SetDParam(1, j->prop.Usage());
|
||||||
|
SetDParam(2, j->prop.Usage() * 100 / (j->prop.capacity + 1));
|
||||||
|
GetString(buf, STR_LINKGRAPH_STATS_TOOLTIP_RETURN_EXTENSION, lastof(buf));
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
SetDParam(0, link.cargo);
|
||||||
|
SetDParam(1, link.Usage());
|
||||||
|
SetDParam(2, i->from_id);
|
||||||
|
SetDParam(3, i->to_id);
|
||||||
|
SetDParam(4, link.Usage() * 100 / (link.capacity + 1));
|
||||||
|
SetDParamStr(5, buf);
|
||||||
|
GuiShowTooltips(this->window, STR_LINKGRAPH_STATS_TOOLTIP, 0, nullptr, close_cond);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
GuiShowTooltips(this->window, STR_NULL, 0, nullptr, close_cond);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Determine the middle of a station in the current window.
|
* Determine the middle of a station in the current window.
|
||||||
* @param st The station we're looking for.
|
* @param st The station we're looking for.
|
||||||
|
@@ -19,14 +19,19 @@
|
|||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Properties of a link between two stations.
|
* Monthly statistics for a link between two stations.
|
||||||
|
* Only the cargo type of the most saturated linkgraph is taken into account.
|
||||||
*/
|
*/
|
||||||
struct LinkProperties {
|
struct LinkProperties {
|
||||||
LinkProperties() : capacity(0), usage(0), planned(0), shared(false) {}
|
LinkProperties() : capacity(0), usage(0), planned(0), cargo(CT_INVALID), shared(false) {}
|
||||||
|
|
||||||
|
/** Return the usage of the link to display. */
|
||||||
|
uint Usage() const { return std::max(this->usage, this->planned); }
|
||||||
|
|
||||||
uint capacity; ///< Capacity of the link.
|
uint capacity; ///< Capacity of the link.
|
||||||
uint usage; ///< Actual usage of the link.
|
uint usage; ///< Actual usage of the link.
|
||||||
uint planned; ///< Planned usage of the link.
|
uint planned; ///< Planned usage of the link.
|
||||||
|
CargoID cargo; ///< Cargo type of the link.
|
||||||
bool shared; ///< If this is a shared link to be drawn dashed.
|
bool shared; ///< If this is a shared link to be drawn dashed.
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -74,6 +79,8 @@ public:
|
|||||||
void SetCargoMask(CargoTypes cargo_mask);
|
void SetCargoMask(CargoTypes cargo_mask);
|
||||||
void SetCompanyMask(uint32 company_mask);
|
void SetCompanyMask(uint32 company_mask);
|
||||||
|
|
||||||
|
bool ShowTooltip(Point pt, TooltipCloseCondition close_cond);
|
||||||
|
|
||||||
/** Mark the linkgraph dirty to be rebuilt next time Draw() is called. */
|
/** Mark the linkgraph dirty to be rebuilt next time Draw() is called. */
|
||||||
void SetDirty() { this->dirty = true; }
|
void SetDirty() { this->dirty = true; }
|
||||||
|
|
||||||
@@ -105,7 +112,7 @@ protected:
|
|||||||
bool IsPointVisible(Point pt, const DrawPixelInfo *dpi, int padding = 0) const;
|
bool IsPointVisible(Point pt, const DrawPixelInfo *dpi, int padding = 0) const;
|
||||||
void GetWidgetDpi(DrawPixelInfo *dpi, uint margin = 0) const;
|
void GetWidgetDpi(DrawPixelInfo *dpi, uint margin = 0) const;
|
||||||
|
|
||||||
static void AddStats(uint new_cap, uint new_usg, uint new_flow, bool new_shared, LinkProperties &cargo);
|
static void AddStats(CargoID new_cargo, uint new_cap, uint new_usg, uint new_flow, bool new_shared, LinkProperties &cargo);
|
||||||
static void DrawVertex(int x, int y, int size, int colour, int border_colour);
|
static void DrawVertex(int x, int y, int size, int colour, int border_colour);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -250,7 +250,7 @@ struct MainWindow : Window
|
|||||||
ResizeWindow(this, _screen.width, _screen.height);
|
ResizeWindow(this, _screen.width, _screen.height);
|
||||||
|
|
||||||
NWidgetViewport *nvp = this->GetWidget<NWidgetViewport>(WID_M_VIEWPORT);
|
NWidgetViewport *nvp = this->GetWidget<NWidgetViewport>(WID_M_VIEWPORT);
|
||||||
nvp->InitializeViewport(this, TileXY(32, 32), ZOOM_LVL_VIEWPORT);
|
nvp->InitializeViewport(this, TileXY(32, 32), ScaleZoomGUI(ZOOM_LVL_VIEWPORT));
|
||||||
|
|
||||||
this->viewport->map_type = (ViewportMapType) _settings_client.gui.default_viewport_map_mode;
|
this->viewport->map_type = (ViewportMapType) _settings_client.gui.default_viewport_map_mode;
|
||||||
this->viewport->overlay = new LinkGraphOverlay(this, WID_M_VIEWPORT, 0, 0, 3);
|
this->viewport->overlay = new LinkGraphOverlay(this, WID_M_VIEWPORT, 0, 0, 3);
|
||||||
@@ -491,6 +491,12 @@ struct MainWindow : Window
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool OnTooltip(Point pt, int widget, TooltipCloseCondition close_cond) override
|
||||||
|
{
|
||||||
|
if (widget != WID_M_VIEWPORT) return false;
|
||||||
|
return this->viewport->overlay->ShowTooltip(pt, close_cond);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Some data on this window has become invalid.
|
* Some data on this window has become invalid.
|
||||||
* @param data Information about the changed data.
|
* @param data Information about the changed data.
|
||||||
|
@@ -309,7 +309,7 @@ struct NewsWindow : Window {
|
|||||||
/* Initialize viewport if it exists. */
|
/* Initialize viewport if it exists. */
|
||||||
NWidgetViewport *nvp = this->GetWidget<NWidgetViewport>(WID_N_VIEWPORT);
|
NWidgetViewport *nvp = this->GetWidget<NWidgetViewport>(WID_N_VIEWPORT);
|
||||||
if (nvp != nullptr) {
|
if (nvp != nullptr) {
|
||||||
nvp->InitializeViewport(this, ni->reftype1 == NR_VEHICLE ? 0x80000000 | ni->ref1 : GetReferenceTile(ni->reftype1, ni->ref1), ZOOM_LVL_NEWS);
|
nvp->InitializeViewport(this, ni->reftype1 == NR_VEHICLE ? 0x80000000 | ni->ref1 : GetReferenceTile(ni->reftype1, ni->ref1), ScaleZoomGUI(ZOOM_LVL_NEWS));
|
||||||
if (this->ni->flags & NF_NO_TRANSPARENT) nvp->disp_flags |= ND_NO_TRANSPARENCY;
|
if (this->ni->flags & NF_NO_TRANSPARENT) nvp->disp_flags |= ND_NO_TRANSPARENCY;
|
||||||
if ((this->ni->flags & NF_INCOLOUR) == 0) {
|
if ((this->ni->flags & NF_INCOLOUR) == 0) {
|
||||||
nvp->disp_flags |= ND_SHADE_GREY;
|
nvp->disp_flags |= ND_SHADE_GREY;
|
||||||
|
@@ -1317,6 +1317,27 @@ static bool CanRoadContinueIntoNextTile(const Town *t, const TileIndex tile, con
|
|||||||
return DoCommand(next_tile, rcmd | (rt << 4), t->index, DC_AUTO | DC_NO_WATER, CMD_BUILD_ROAD).Succeeded();
|
return DoCommand(next_tile, rcmd | (rt << 4), t->index, DC_AUTO | DC_NO_WATER, CMD_BUILD_ROAD).Succeeded();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* CircularTileSearch proc which checks for a nearby parallel bridge to avoid building redundant bridges.
|
||||||
|
* @param tile The tile to search.
|
||||||
|
* @param user_data Reference to the valid direction of the proposed bridge.
|
||||||
|
* @return true if another bridge exists, else false.
|
||||||
|
*/
|
||||||
|
static bool RedundantBridgeExistsNearby(TileIndex tile, void *user_data)
|
||||||
|
{
|
||||||
|
/* Don't look into the void. */
|
||||||
|
if (!IsValidTile(tile)) return false;
|
||||||
|
|
||||||
|
/* Only consider bridge head tiles. */
|
||||||
|
if (!IsBridgeTile(tile)) return false;
|
||||||
|
|
||||||
|
/* Only consider road bridges. */
|
||||||
|
if (GetTunnelBridgeTransportType(tile) != TRANSPORT_ROAD) return false;
|
||||||
|
|
||||||
|
/* If the bridge is facing the same direction as the proposed bridge, we've found a redundant bridge. */
|
||||||
|
return (GetTileSlope(tile) & InclinedSlope(ReverseDiagDir(*(DiagDirection *)user_data)));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Grows the town with a bridge.
|
* Grows the town with a bridge.
|
||||||
* At first we check if a bridge is reasonable.
|
* At first we check if a bridge is reasonable.
|
||||||
@@ -1381,9 +1402,14 @@ static bool GrowTownWithBridge(const Town *t, const TileIndex tile, const DiagDi
|
|||||||
/* Make sure the road can be continued past the bridge. At this point, bridge_tile holds the end tile of the bridge. */
|
/* Make sure the road can be continued past the bridge. At this point, bridge_tile holds the end tile of the bridge. */
|
||||||
if (!CanRoadContinueIntoNextTile(t, bridge_tile, bridge_dir)) return false;
|
if (!CanRoadContinueIntoNextTile(t, bridge_tile, bridge_dir)) return false;
|
||||||
|
|
||||||
|
/* If another parallel bridge exists nearby, this one would be redundant and shouldn't be built. We don't care about flat bridges. */
|
||||||
|
TileIndex search = tile;
|
||||||
|
DiagDirection direction_to_match = bridge_dir;
|
||||||
|
if (slope != SLOPE_FLAT && CircularTileSearch(&search, bridge_length, 0, 0, RedundantBridgeExistsNearby, &direction_to_match)) return false;
|
||||||
|
|
||||||
std::bitset <MAX_BRIDGES> tried;
|
std::bitset <MAX_BRIDGES> tried;
|
||||||
uint n = MAX_BRIDGES;
|
uint n = MAX_BRIDGES;
|
||||||
byte bridge_type = RandomRange (n);
|
byte bridge_type = RandomRange(n);
|
||||||
|
|
||||||
for (;;) {
|
for (;;) {
|
||||||
/* Can we actually build the bridge? */
|
/* Can we actually build the bridge? */
|
||||||
@@ -1397,14 +1423,14 @@ static bool GrowTownWithBridge(const Town *t, const TileIndex tile, const DiagDi
|
|||||||
/* Try a different bridge. */
|
/* Try a different bridge. */
|
||||||
tried[bridge_type] = true;
|
tried[bridge_type] = true;
|
||||||
n--;
|
n--;
|
||||||
assert (n + tried.count() == MAX_BRIDGES);
|
assert(n + tried.count() == MAX_BRIDGES);
|
||||||
if (n == 0) break;
|
if (n == 0) break;
|
||||||
|
|
||||||
bridge_type = 0;
|
bridge_type = 0;
|
||||||
uint i = RandomRange (n);
|
uint i = RandomRange(n);
|
||||||
while (tried[bridge_type] || (i-- > 0)) {
|
while (tried[bridge_type] || (i-- > 0)) {
|
||||||
bridge_type++;
|
bridge_type++;
|
||||||
assert (bridge_type < MAX_BRIDGES);
|
assert(bridge_type < MAX_BRIDGES);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -44,6 +44,7 @@
|
|||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
|
|
||||||
#include "safeguards.h"
|
#include "safeguards.h"
|
||||||
|
#include "zoom_func.h"
|
||||||
|
|
||||||
TownKdtree _town_local_authority_kdtree(&Kdtree_TownXYFunc);
|
TownKdtree _town_local_authority_kdtree(&Kdtree_TownXYFunc);
|
||||||
|
|
||||||
@@ -338,7 +339,7 @@ public:
|
|||||||
|
|
||||||
this->flags |= WF_DISABLE_VP_SCROLL;
|
this->flags |= WF_DISABLE_VP_SCROLL;
|
||||||
NWidgetViewport *nvp = this->GetWidget<NWidgetViewport>(WID_TV_VIEWPORT);
|
NWidgetViewport *nvp = this->GetWidget<NWidgetViewport>(WID_TV_VIEWPORT);
|
||||||
nvp->InitializeViewport(this, this->town->xy, ZOOM_LVL_NEWS);
|
nvp->InitializeViewport(this, this->town->xy, ScaleZoomGUI(ZOOM_LVL_TOWN));
|
||||||
}
|
}
|
||||||
|
|
||||||
~TownViewWindow()
|
~TownViewWindow()
|
||||||
|
@@ -3566,7 +3566,7 @@ public:
|
|||||||
}
|
}
|
||||||
this->FinishInitNested(window_number);
|
this->FinishInitNested(window_number);
|
||||||
this->owner = v->owner;
|
this->owner = v->owner;
|
||||||
this->GetWidget<NWidgetViewport>(WID_VV_VIEWPORT)->InitializeViewport(this, this->window_number | (1 << 31), _vehicle_view_zoom_levels[v->type]);
|
this->GetWidget<NWidgetViewport>(WID_VV_VIEWPORT)->InitializeViewport(this, this->window_number | (1 << 31), ScaleZoomGUI(_vehicle_view_zoom_levels[v->type]));
|
||||||
|
|
||||||
this->GetWidget<NWidgetCore>(WID_VV_START_STOP)->tool_tip = STR_VEHICLE_VIEW_TRAIN_STATUS_START_STOP_TOOLTIP + v->type;
|
this->GetWidget<NWidgetCore>(WID_VV_START_STOP)->tool_tip = STR_VEHICLE_VIEW_TRAIN_STATUS_START_STOP_TOOLTIP + v->type;
|
||||||
this->GetWidget<NWidgetCore>(WID_VV_RENAME)->tool_tip = STR_VEHICLE_DETAILS_TRAIN_RENAME + v->type;
|
this->GetWidget<NWidgetCore>(WID_VV_RENAME)->tool_tip = STR_VEHICLE_DETAILS_TRAIN_RENAME + v->type;
|
||||||
|
@@ -62,8 +62,8 @@ public:
|
|||||||
this->InitNested(window_number);
|
this->InitNested(window_number);
|
||||||
|
|
||||||
NWidgetViewport *nvp = this->GetWidget<NWidgetViewport>(WID_EV_VIEWPORT);
|
NWidgetViewport *nvp = this->GetWidget<NWidgetViewport>(WID_EV_VIEWPORT);
|
||||||
nvp->InitializeViewport(this, 0, ZOOM_LVL_VIEWPORT);
|
nvp->InitializeViewport(this, 0, ScaleZoomGUI(ZOOM_LVL_VIEWPORT));
|
||||||
if (_settings_client.gui.zoom_min == ZOOM_LVL_VIEWPORT) this->DisableWidget(WID_EV_ZOOM_IN);
|
if (_settings_client.gui.zoom_min == viewport->zoom) this->DisableWidget(WID_EV_ZOOM_IN);
|
||||||
|
|
||||||
Point pt;
|
Point pt;
|
||||||
if (tile == INVALID_TILE) {
|
if (tile == INVALID_TILE) {
|
||||||
|
@@ -28,6 +28,7 @@
|
|||||||
#include "table/strings.h"
|
#include "table/strings.h"
|
||||||
|
|
||||||
#include "safeguards.h"
|
#include "safeguards.h"
|
||||||
|
#include "zoom_func.h"
|
||||||
|
|
||||||
/** GUI for accessing waypoints and buoys. */
|
/** GUI for accessing waypoints and buoys. */
|
||||||
struct WaypointWindow : Window {
|
struct WaypointWindow : Window {
|
||||||
@@ -100,7 +101,7 @@ public:
|
|||||||
this->flags |= WF_DISABLE_VP_SCROLL;
|
this->flags |= WF_DISABLE_VP_SCROLL;
|
||||||
|
|
||||||
NWidgetViewport *nvp = this->GetWidget<NWidgetViewport>(WID_W_VIEWPORT);
|
NWidgetViewport *nvp = this->GetWidget<NWidgetViewport>(WID_W_VIEWPORT);
|
||||||
nvp->InitializeViewport(this, this->GetCenterTile(), ZOOM_LVL_VIEWPORT);
|
nvp->InitializeViewport(this, this->GetCenterTile(), ScaleZoomGUI(ZOOM_LVL_VIEWPORT));
|
||||||
|
|
||||||
this->OnInvalidateData(0);
|
this->OnInvalidateData(0);
|
||||||
}
|
}
|
||||||
|
@@ -3023,6 +3023,7 @@ static void MouseLoop(MouseClick click, int mousewheel)
|
|||||||
_scrolling_viewport = w;
|
_scrolling_viewport = w;
|
||||||
_cursor.fix_at = (_settings_client.gui.scroll_mode == VSM_VIEWPORT_RMB_FIXED ||
|
_cursor.fix_at = (_settings_client.gui.scroll_mode == VSM_VIEWPORT_RMB_FIXED ||
|
||||||
_settings_client.gui.scroll_mode == VSM_MAP_RMB_FIXED);
|
_settings_client.gui.scroll_mode == VSM_MAP_RMB_FIXED);
|
||||||
|
DispatchRightClickEvent(w, x - w->left, y - w->top);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -3032,7 +3033,6 @@ static void MouseLoop(MouseClick click, int mousewheel)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (vp == nullptr || (w->flags & WF_DISABLE_VP_SCROLL)) {
|
|
||||||
switch (click) {
|
switch (click) {
|
||||||
case MC_LEFT:
|
case MC_LEFT:
|
||||||
case MC_DOUBLE_LEFT:
|
case MC_DOUBLE_LEFT:
|
||||||
@@ -3053,7 +3053,6 @@ static void MouseLoop(MouseClick click, int mousewheel)
|
|||||||
DispatchHoverEvent(w, x - w->left, y - w->top);
|
DispatchHoverEvent(w, x - w->left, y - w->top);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
/* We're not doing anything with 2D scrolling, so reset the value. */
|
/* We're not doing anything with 2D scrolling, so reset the value. */
|
||||||
_cursor.h_wheel = 0;
|
_cursor.h_wheel = 0;
|
||||||
@@ -3121,6 +3120,7 @@ void HandleMouseEvents()
|
|||||||
click = MC_HOVER;
|
click = MC_HOVER;
|
||||||
_input_events_this_tick++;
|
_input_events_this_tick++;
|
||||||
_mouse_hovering = true;
|
_mouse_hovering = true;
|
||||||
|
hover_time = std::chrono::steady_clock::now();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
@@ -79,6 +79,26 @@ static inline int UnScaleGUI(int value)
|
|||||||
return UnScaleByZoom(value, ZOOM_LVL_GUI);
|
return UnScaleByZoom(value, ZOOM_LVL_GUI);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Scale zoom level relative to GUI zoom.
|
||||||
|
* @param value zoom level to scale
|
||||||
|
* @return scaled zoom level
|
||||||
|
*/
|
||||||
|
static inline ZoomLevel ScaleZoomGUI(ZoomLevel value)
|
||||||
|
{
|
||||||
|
return std::clamp(ZoomLevel(value + (ZOOM_LVL_GUI - ZOOM_LVL_OUT_4X)), ZOOM_LVL_MIN, ZOOM_LVL_MAX);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* UnScale zoom level relative to GUI zoom.
|
||||||
|
* @param value zoom level to scale
|
||||||
|
* @return un-scaled zoom level
|
||||||
|
*/
|
||||||
|
static inline ZoomLevel UnScaleZoomGUI(ZoomLevel value)
|
||||||
|
{
|
||||||
|
return std::clamp(ZoomLevel(value - (ZOOM_LVL_GUI - ZOOM_LVL_OUT_4X)), ZOOM_LVL_MIN, ZOOM_LVL_MAX);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Scale traditional pixel dimensions to GUI zoom level.
|
* Scale traditional pixel dimensions to GUI zoom level.
|
||||||
* @param value Pixel amount at #ZOOM_LVL_BASE (traditional "normal" interface size).
|
* @param value Pixel amount at #ZOOM_LVL_BASE (traditional "normal" interface size).
|
||||||
|
@@ -39,7 +39,7 @@ enum ZoomLevel : byte {
|
|||||||
ZOOM_LVL_VIEWPORT = ZOOM_LVL_OUT_4X, ///< Default zoom level for viewports.
|
ZOOM_LVL_VIEWPORT = ZOOM_LVL_OUT_4X, ///< Default zoom level for viewports.
|
||||||
ZOOM_LVL_NEWS = ZOOM_LVL_OUT_4X, ///< Default zoom level for the news messages.
|
ZOOM_LVL_NEWS = ZOOM_LVL_OUT_4X, ///< Default zoom level for the news messages.
|
||||||
ZOOM_LVL_INDUSTRY = ZOOM_LVL_OUT_8X, ///< Default zoom level for the industry view.
|
ZOOM_LVL_INDUSTRY = ZOOM_LVL_OUT_8X, ///< Default zoom level for the industry view.
|
||||||
ZOOM_LVL_TOWN = ZOOM_LVL_OUT_8X, ///< Default zoom level for the town view.
|
ZOOM_LVL_TOWN = ZOOM_LVL_OUT_4X, ///< Default zoom level for the town view.
|
||||||
ZOOM_LVL_AIRCRAFT = ZOOM_LVL_OUT_4X, ///< Default zoom level for the aircraft view.
|
ZOOM_LVL_AIRCRAFT = ZOOM_LVL_OUT_4X, ///< Default zoom level for the aircraft view.
|
||||||
ZOOM_LVL_SHIP = ZOOM_LVL_OUT_4X, ///< Default zoom level for the ship view.
|
ZOOM_LVL_SHIP = ZOOM_LVL_OUT_4X, ///< Default zoom level for the ship view.
|
||||||
ZOOM_LVL_TRAIN = ZOOM_LVL_OUT_4X, ///< Default zoom level for the train view.
|
ZOOM_LVL_TRAIN = ZOOM_LVL_OUT_4X, ///< Default zoom level for the train view.
|
||||||
|
Reference in New Issue
Block a user