Changeset - r20325:7a8caf009bab
[Not reviewed]
master
0 2 0
frosch - 11 years ago 2013-06-08 16:54:19
frosch@openttd.org
(svn r25335) -Change: Revisit the map menu in scenario editor: Remove linkgraph legend, add industry list.
2 files changed with 41 insertions and 14 deletions:
0 comments (0 inline, 0 general)
src/lang/english.txt
Show inline comments
 
##name English (UK)
 
##ownname English (UK)
 
##isocode en_GB
 
##plural 0
 
##textdir ltr
 
##digitsep ,
 
##digitsepcur ,
 
##decimalsep .
 
##winlangid 0x0809
 
##grflangid 0x01
 

	
 

	
 
# $Id$
 

	
 
# This file is part of OpenTTD.
 
# OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
 
# OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 
# See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
 

	
 

	
 
##id 0x0000
 
STR_NULL                                                        :
 
STR_EMPTY                                                       :
 
STR_UNDEFINED                                                   :(undefined string)
 
STR_JUST_NOTHING                                                :Nothing
 

	
 
# Cargo related strings
 
# Plural cargo name
 
STR_CARGO_PLURAL_NOTHING                                        :
 
STR_CARGO_PLURAL_PASSENGERS                                     :Passengers
 
STR_CARGO_PLURAL_COAL                                           :Coal
 
STR_CARGO_PLURAL_MAIL                                           :Mail
 
STR_CARGO_PLURAL_OIL                                            :Oil
 
STR_CARGO_PLURAL_LIVESTOCK                                      :Livestock
 
STR_CARGO_PLURAL_GOODS                                          :Goods
 
STR_CARGO_PLURAL_GRAIN                                          :Grain
 
STR_CARGO_PLURAL_WOOD                                           :Wood
 
STR_CARGO_PLURAL_IRON_ORE                                       :Iron Ore
 
STR_CARGO_PLURAL_STEEL                                          :Steel
 
STR_CARGO_PLURAL_VALUABLES                                      :Valuables
 
STR_CARGO_PLURAL_COPPER_ORE                                     :Copper Ore
 
STR_CARGO_PLURAL_MAIZE                                          :Maize
 
STR_CARGO_PLURAL_FRUIT                                          :Fruit
 
STR_CARGO_PLURAL_DIAMONDS                                       :Diamonds
 
STR_CARGO_PLURAL_FOOD                                           :Food
 
STR_CARGO_PLURAL_PAPER                                          :Paper
 
STR_CARGO_PLURAL_GOLD                                           :Gold
 
STR_CARGO_PLURAL_WATER                                          :Water
 
STR_CARGO_PLURAL_WHEAT                                          :Wheat
 
STR_CARGO_PLURAL_RUBBER                                         :Rubber
 
STR_CARGO_PLURAL_SUGAR                                          :Sugar
 
STR_CARGO_PLURAL_TOYS                                           :Toys
 
STR_CARGO_PLURAL_CANDY                                          :Sweets
 
STR_CARGO_PLURAL_COLA                                           :Cola
 
STR_CARGO_PLURAL_COTTON_CANDY                                   :Candyfloss
 
STR_CARGO_PLURAL_BUBBLES                                        :Bubbles
 
STR_CARGO_PLURAL_TOFFEE                                         :Toffee
 
STR_CARGO_PLURAL_BATTERIES                                      :Batteries
 
STR_CARGO_PLURAL_PLASTIC                                        :Plastic
 
STR_CARGO_PLURAL_FIZZY_DRINKS                                   :Fizzy Drinks
 

	
 
# Singular cargo name
 
STR_CARGO_SINGULAR_NOTHING                                      :
 
STR_CARGO_SINGULAR_PASSENGER                                    :Passenger
 
STR_CARGO_SINGULAR_COAL                                         :Coal
 
STR_CARGO_SINGULAR_MAIL                                         :Mail
 
STR_CARGO_SINGULAR_OIL                                          :Oil
 
STR_CARGO_SINGULAR_LIVESTOCK                                    :Livestock
 
STR_CARGO_SINGULAR_GOODS                                        :Goods
 
STR_CARGO_SINGULAR_GRAIN                                        :Grain
 
STR_CARGO_SINGULAR_WOOD                                         :Wood
 
STR_CARGO_SINGULAR_IRON_ORE                                     :Iron Ore
 
STR_CARGO_SINGULAR_STEEL                                        :Steel
 
STR_CARGO_SINGULAR_VALUABLES                                    :Valuables
 
STR_CARGO_SINGULAR_COPPER_ORE                                   :Copper Ore
 
STR_CARGO_SINGULAR_MAIZE                                        :Maize
 
STR_CARGO_SINGULAR_FRUIT                                        :Fruit
 
STR_CARGO_SINGULAR_DIAMOND                                      :Diamond
 
STR_CARGO_SINGULAR_FOOD                                         :Food
 
STR_CARGO_SINGULAR_PAPER                                        :Paper
 
STR_CARGO_SINGULAR_GOLD                                         :Gold
 
STR_CARGO_SINGULAR_WATER                                        :Water
 
STR_CARGO_SINGULAR_WHEAT                                        :Wheat
 
STR_CARGO_SINGULAR_RUBBER                                       :Rubber
 
STR_CARGO_SINGULAR_SUGAR                                        :Sugar
 
STR_CARGO_SINGULAR_TOY                                          :Toy
 
STR_CARGO_SINGULAR_CANDY                                        :Sweet
 
STR_CARGO_SINGULAR_COLA                                         :Cola
 
STR_CARGO_SINGULAR_COTTON_CANDY                                 :Candyfloss
 
STR_CARGO_SINGULAR_BUBBLE                                       :Bubble
 
STR_CARGO_SINGULAR_TOFFEE                                       :Toffee
 
STR_CARGO_SINGULAR_BATTERY                                      :Battery
 
STR_CARGO_SINGULAR_PLASTIC                                      :Plastic
 
STR_CARGO_SINGULAR_FIZZY_DRINK                                  :Fizzy Drink
 

	
 
# Quantity of cargo
 
STR_QUANTITY_NOTHING                                            :
 
STR_QUANTITY_PASSENGERS                                         :{COMMA} passenger{P "" s}
 
STR_QUANTITY_COAL                                               :{WEIGHT_LONG} of coal
 
STR_QUANTITY_MAIL                                               :{COMMA} bag{P "" s} of mail
 
STR_QUANTITY_OIL                                                :{VOLUME_LONG} of oil
 
STR_QUANTITY_LIVESTOCK                                          :{COMMA} item{P "" s} of livestock
 
STR_QUANTITY_GOODS                                              :{COMMA} crate{P "" s} of goods
 
STR_QUANTITY_GRAIN                                              :{WEIGHT_LONG} of grain
 
STR_QUANTITY_WOOD                                               :{WEIGHT_LONG} of wood
 
STR_QUANTITY_IRON_ORE                                           :{WEIGHT_LONG} of iron ore
 
STR_QUANTITY_STEEL                                              :{WEIGHT_LONG} of steel
 
STR_QUANTITY_VALUABLES                                          :{COMMA} bag{P "" s} of valuables
 
STR_QUANTITY_COPPER_ORE                                         :{WEIGHT_LONG} of copper ore
 
STR_QUANTITY_MAIZE                                              :{WEIGHT_LONG} of maize
 
STR_QUANTITY_FRUIT                                              :{WEIGHT_LONG} of fruit
 
STR_QUANTITY_DIAMONDS                                           :{COMMA} bag{P "" s} of diamonds
 
STR_QUANTITY_FOOD                                               :{WEIGHT_LONG} of food
 
STR_QUANTITY_PAPER                                              :{WEIGHT_LONG} of paper
 
STR_QUANTITY_GOLD                                               :{COMMA} bag{P "" s} of gold
 
STR_QUANTITY_WATER                                              :{VOLUME_LONG} of water
 
STR_QUANTITY_WHEAT                                              :{WEIGHT_LONG} of wheat
 
STR_QUANTITY_RUBBER                                             :{VOLUME_LONG} of rubber
 
STR_QUANTITY_SUGAR                                              :{WEIGHT_LONG} of sugar
 
STR_QUANTITY_TOYS                                               :{COMMA} toy{P "" s}
 
STR_QUANTITY_SWEETS                                             :{COMMA} bag{P "" s} of sweets
 
STR_QUANTITY_COLA                                               :{VOLUME_LONG} of cola
 
STR_QUANTITY_CANDYFLOSS                                         :{WEIGHT_LONG} of candyfloss
 
STR_QUANTITY_BUBBLES                                            :{COMMA} bubble{P "" s}
 
STR_QUANTITY_TOFFEE                                             :{WEIGHT_LONG} of toffee
 
STR_QUANTITY_BATTERIES                                          :{COMMA} batter{P y ies}
 
STR_QUANTITY_PLASTIC                                            :{VOLUME_LONG} of plastic
 
STR_QUANTITY_FIZZY_DRINKS                                       :{COMMA} fizzy drink{P "" s}
 
STR_QUANTITY_N_A                                                :N/A
 

	
 
# Two letter abbreviation of cargo name
 
STR_ABBREV_NOTHING                                              :
 
STR_ABBREV_PASSENGERS                                           :{TINY_FONT}PS
 
STR_ABBREV_COAL                                                 :{TINY_FONT}CL
 
STR_ABBREV_MAIL                                                 :{TINY_FONT}ML
 
STR_ABBREV_OIL                                                  :{TINY_FONT}OL
 
STR_ABBREV_LIVESTOCK                                            :{TINY_FONT}LV
 
STR_ABBREV_GOODS                                                :{TINY_FONT}GD
 
STR_ABBREV_GRAIN                                                :{TINY_FONT}GR
 
STR_ABBREV_WOOD                                                 :{TINY_FONT}WD
 
STR_ABBREV_IRON_ORE                                             :{TINY_FONT}OR
 
STR_ABBREV_STEEL                                                :{TINY_FONT}ST
 
STR_ABBREV_VALUABLES                                            :{TINY_FONT}VL
 
STR_ABBREV_COPPER_ORE                                           :{TINY_FONT}CO
 
STR_ABBREV_MAIZE                                                :{TINY_FONT}MZ
 
STR_ABBREV_FRUIT                                                :{TINY_FONT}FT
 
STR_ABBREV_DIAMONDS                                             :{TINY_FONT}DM
 
STR_ABBREV_FOOD                                                 :{TINY_FONT}FD
 
STR_ABBREV_PAPER                                                :{TINY_FONT}PR
 
STR_ABBREV_GOLD                                                 :{TINY_FONT}GD
 
STR_ABBREV_WATER                                                :{TINY_FONT}WR
 
STR_ABBREV_WHEAT                                                :{TINY_FONT}WH
 
STR_ABBREV_RUBBER                                               :{TINY_FONT}RB
 
STR_ABBREV_SUGAR                                                :{TINY_FONT}SG
 
STR_ABBREV_TOYS                                                 :{TINY_FONT}TY
 
STR_ABBREV_SWEETS                                               :{TINY_FONT}SW
 
STR_ABBREV_COLA                                                 :{TINY_FONT}CL
 
STR_ABBREV_CANDYFLOSS                                           :{TINY_FONT}CF
 
STR_ABBREV_BUBBLES                                              :{TINY_FONT}BU
 
STR_ABBREV_TOFFEE                                               :{TINY_FONT}TF
 
STR_ABBREV_BATTERIES                                            :{TINY_FONT}BA
 
STR_ABBREV_PLASTIC                                              :{TINY_FONT}PL
 
STR_ABBREV_FIZZY_DRINKS                                         :{TINY_FONT}FZ
 
STR_ABBREV_NONE                                                 :{TINY_FONT}NO
 
STR_ABBREV_ALL                                                  :{TINY_FONT}ALL
 

	
 
# 'Mode' of transport for cargoes
 
STR_PASSENGERS                                                  :{COMMA} passenger{P "" s}
 
STR_BAGS                                                        :{COMMA} bag{P "" s}
 
STR_TONS                                                        :{COMMA} tonne{P "" s}
 
STR_LITERS                                                      :{COMMA} litre{P "" s}
 
STR_ITEMS                                                       :{COMMA} item{P "" s}
 
STR_CRATES                                                      :{COMMA} crate{P "" s}
 

	
 
# Colours, do not shuffle
 
STR_COLOUR_DARK_BLUE                                            :Dark Blue
 
STR_COLOUR_PALE_GREEN                                           :Pale Green
 
STR_COLOUR_PINK                                                 :Pink
 
STR_COLOUR_YELLOW                                               :Yellow
 
STR_COLOUR_RED                                                  :Red
 
STR_COLOUR_LIGHT_BLUE                                           :Light Blue
 
STR_COLOUR_GREEN                                                :Green
 
STR_COLOUR_DARK_GREEN                                           :Dark Green
 
STR_COLOUR_BLUE                                                 :Blue
 
STR_COLOUR_CREAM                                                :Cream
 
STR_COLOUR_MAUVE                                                :Mauve
 
STR_COLOUR_PURPLE                                               :Purple
 
STR_COLOUR_ORANGE                                               :Orange
 
STR_COLOUR_BROWN                                                :Brown
 
STR_COLOUR_GREY                                                 :Grey
 
STR_COLOUR_WHITE                                                :White
 

	
 
# Units used in OpenTTD
 
STR_UNITS_VELOCITY_IMPERIAL                                     :{COMMA} mph
 
STR_UNITS_VELOCITY_METRIC                                       :{COMMA} km/h
 
STR_UNITS_VELOCITY_SI                                           :{COMMA} m/s
 

	
 
STR_UNITS_POWER_IMPERIAL                                        :{COMMA}hp
 
STR_UNITS_POWER_METRIC                                          :{COMMA}hp
 
STR_UNITS_POWER_SI                                              :{COMMA}kW
 

	
 
STR_UNITS_WEIGHT_SHORT_METRIC                                   :{COMMA}t
 
STR_UNITS_WEIGHT_SHORT_SI                                       :{COMMA}kg
 

	
 
STR_UNITS_WEIGHT_LONG_METRIC                                    :{COMMA} tonne{P "" s}
 
STR_UNITS_WEIGHT_LONG_SI                                        :{COMMA} kg
 

	
 
STR_UNITS_VOLUME_SHORT_METRIC                                   :{COMMA}l
 
STR_UNITS_VOLUME_SHORT_SI                                       :{COMMA}m³
 

	
 
STR_UNITS_VOLUME_LONG_METRIC                                    :{COMMA} litre{P "" s}
 
STR_UNITS_VOLUME_LONG_SI                                        :{COMMA} m³
 

	
 
STR_UNITS_FORCE_SI                                              :{COMMA} kN
 

	
 
STR_UNITS_HEIGHT_IMPERIAL                                       :{COMMA} ft
 
STR_UNITS_HEIGHT_SI                                             :{COMMA} m
 

	
 
# Common window strings
 
STR_LIST_FILTER_TITLE                                           :{BLACK}Filter string:
 
STR_LIST_FILTER_OSKTITLE                                        :{BLACK}Enter filter string
 
STR_LIST_FILTER_TOOLTIP                                         :{BLACK}Enter a keyword to filter the list for
 

	
 
STR_TOOLTIP_SORT_ORDER                                          :{BLACK}Select sorting order (descending/ascending)
 
STR_TOOLTIP_SORT_CRITERIA                                       :{BLACK}Select sorting criteria
 
STR_TOOLTIP_FILTER_CRITERIA                                     :{BLACK}Select filtering criteria
 
STR_BUTTON_SORT_BY                                              :{BLACK}Sort by
 
STR_BUTTON_LOCATION                                             :{BLACK}Location
 
STR_BUTTON_RENAME                                               :{BLACK}Rename
 

	
 
STR_TOOLTIP_CLOSE_WINDOW                                        :{BLACK}Close window
 
STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS                              :{BLACK}Window title - drag this to move window
 
STR_TOOLTIP_SHADE                                               :{BLACK}Shade window - only show the title bar
 
STR_TOOLTIP_DEBUG                                               :{BLACK}Show NewGRF debug information
 
STR_TOOLTIP_DEFSIZE                                             :{BLACK}Resize window to default size. Ctrl+Click to store current size as default
 
STR_TOOLTIP_STICKY                                              :{BLACK}Mark this window as uncloseable by the 'Close All Windows' key. Ctrl+Click to also save state as default
 
STR_TOOLTIP_RESIZE                                              :{BLACK}Click and drag to resize this window
 
STR_TOOLTIP_TOGGLE_LARGE_SMALL_WINDOW                           :{BLACK}Toggle large/small window size
 
STR_TOOLTIP_VSCROLL_BAR_SCROLLS_LIST                            :{BLACK}Scroll bar - scrolls list up/down
 
STR_TOOLTIP_HSCROLL_BAR_SCROLLS_LIST                            :{BLACK}Scroll bar - scrolls list left/right
 
STR_TOOLTIP_DEMOLISH_BUILDINGS_ETC                              :{BLACK}Demolish buildings etc. on a square of land. Ctrl selects the area diagonally. Shift toggles building/showing cost estimate
 

	
 
# Query window
 
STR_BUTTON_DEFAULT                                              :{BLACK}Default
 
STR_BUTTON_CANCEL                                               :{BLACK}Cancel
 
STR_BUTTON_OK                                                   :{BLACK}OK
 

	
 
# On screen keyboard window
 
STR_OSK_KEYBOARD_LAYOUT                                         :`1234567890-=\qwertyuiop[]asdfghjkl;'  zxcvbnm,./ .
 
STR_OSK_KEYBOARD_LAYOUT_CAPS                                    :~!@#$%^&*()_+|QWERTYUIOP{{}}ASDFGHJKL:"  ZXCVBNM<>? .
 

	
 
# Measurement tooltip
 
STR_MEASURE_LENGTH                                              :{BLACK}Length: {NUM}
 
STR_MEASURE_AREA                                                :{BLACK}Area: {NUM} x {NUM}
 
STR_MEASURE_LENGTH_HEIGHTDIFF                                   :{BLACK}Length: {NUM}{}Height difference: {HEIGHT}
 
STR_MEASURE_AREA_HEIGHTDIFF                                     :{BLACK}Area: {NUM} x {NUM}{}Height difference: {HEIGHT}
 

	
 

	
 
# These are used in buttons
 
STR_SORT_BY_CAPTION_NAME                                        :{BLACK}Name
 
STR_SORT_BY_CAPTION_DATE                                        :{BLACK}Date
 
# These are used in dropdowns
 
STR_SORT_BY_NAME                                                :Name
 
STR_SORT_BY_PRODUCTION                                          :Production
 
STR_SORT_BY_TYPE                                                :Type
 
STR_SORT_BY_TRANSPORTED                                         :Transported
 
STR_SORT_BY_NUMBER                                              :Number
 
STR_SORT_BY_PROFIT_LAST_YEAR                                    :Profit last year
 
STR_SORT_BY_PROFIT_THIS_YEAR                                    :Profit this year
 
STR_SORT_BY_AGE                                                 :Age
 
STR_SORT_BY_RELIABILITY                                         :Reliability
 
STR_SORT_BY_TOTAL_CAPACITY_PER_CARGOTYPE                        :Total capacity per cargo type
 
STR_SORT_BY_MAX_SPEED                                           :Maximum speed
 
STR_SORT_BY_MODEL                                               :Model
 
STR_SORT_BY_VALUE                                               :Value
 
STR_SORT_BY_LENGTH                                              :Length
 
STR_SORT_BY_LIFE_TIME                                           :Remaining lifetime
 
STR_SORT_BY_TIMETABLE_DELAY                                     :Timetable delay
 
STR_SORT_BY_FACILITY                                            :Station type
 
STR_SORT_BY_WAITING                                             :Waiting cargo value
 
STR_SORT_BY_RATING_MAX                                          :Highest cargo rating
 
STR_SORT_BY_RATING_MIN                                          :Lowest cargo rating
 
STR_SORT_BY_ENGINE_ID                                           :EngineID (classic sort)
 
STR_SORT_BY_COST                                                :Cost
 
STR_SORT_BY_POWER                                               :Power
 
STR_SORT_BY_TRACTIVE_EFFORT                                     :Tractive effort
 
STR_SORT_BY_INTRO_DATE                                          :Introduction Date
 
STR_SORT_BY_RUNNING_COST                                        :Running Cost
 
STR_SORT_BY_POWER_VS_RUNNING_COST                               :Power/Running Cost
 
STR_SORT_BY_CARGO_CAPACITY                                      :Cargo Capacity
 
STR_SORT_BY_RANGE                                               :Range
 
STR_SORT_BY_POPULATION                                          :Population
 
STR_SORT_BY_RATING                                              :Rating
 

	
 
# Tooltips for the main toolbar
 
STR_TOOLBAR_TOOLTIP_PAUSE_GAME                                  :{BLACK}Pause game
 
STR_TOOLBAR_TOOLTIP_FORWARD                                     :{BLACK}Fast forward the game
 
STR_TOOLBAR_TOOLTIP_OPTIONS                                     :{BLACK}Options
 
STR_TOOLBAR_TOOLTIP_SAVE_GAME_ABANDON_GAME                      :{BLACK}Save game, abandon game, exit
 
STR_TOOLBAR_TOOLTIP_DISPLAY_MAP                                 :{BLACK}Display map, extra viewport or list of signs
 
STR_TOOLBAR_TOOLTIP_DISPLAY_TOWN_DIRECTORY                      :{BLACK}Display town directory
 
STR_TOOLBAR_TOOLTIP_DISPLAY_SUBSIDIES                           :{BLACK}Display subsidies
 
STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_STATIONS            :{BLACK}Display list of company's stations
 
STR_TOOLBAR_TOOLTIP_DISPLAY_COMPANY_FINANCES                    :{BLACK}Display company finances information
 
STR_TOOLBAR_TOOLTIP_DISPLAY_COMPANY_GENERAL                     :{BLACK}Display general company information
 
STR_TOOLBAR_TOOLTIP_DISPLAY_GRAPHS                              :{BLACK}Display graphs
 
STR_TOOLBAR_TOOLTIP_DISPLAY_COMPANY_LEAGUE                      :{BLACK}Display company league table
 
STR_TOOLBAR_TOOLTIP_FUND_CONSTRUCTION_OF_NEW                    :{BLACK}Fund construction of new industry or list all industries
 
STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_TRAINS              :{BLACK}Display list of company's trains. Ctrl+Click toggles opening the group/vehicle list
 
STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_ROAD_VEHICLES       :{BLACK}Display list of company's road vehicles. Ctrl+Click toggles opening the group/vehicle list
 
STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_SHIPS               :{BLACK}Display list of company's ships. Ctrl+Click toggles opening the group/vehicle list
 
STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_AIRCRAFT            :{BLACK}Display list of company's aircraft. Ctrl+Click toggles opening the group/vehicle list
 
STR_TOOLBAR_TOOLTIP_ZOOM_THE_VIEW_IN                            :{BLACK}Zoom the view in
 
STR_TOOLBAR_TOOLTIP_ZOOM_THE_VIEW_OUT                           :{BLACK}Zoom the view out
 
STR_TOOLBAR_TOOLTIP_BUILD_RAILROAD_TRACK                        :{BLACK}Build railway track
 
STR_TOOLBAR_TOOLTIP_BUILD_ROADS                                 :{BLACK}Build roads
 
STR_TOOLBAR_TOOLTIP_BUILD_SHIP_DOCKS                            :{BLACK}Build ship docks
 
STR_TOOLBAR_TOOLTIP_BUILD_AIRPORTS                              :{BLACK}Build airports
 
STR_TOOLBAR_TOOLTIP_LANDSCAPING                                 :{BLACK}Open the landscaping toolbar to raise/lower land, plant trees, etc.
 
STR_TOOLBAR_TOOLTIP_SHOW_SOUND_MUSIC_WINDOW                     :{BLACK}Show sound/music window
 
STR_TOOLBAR_TOOLTIP_SHOW_LAST_MESSAGE_NEWS                      :{BLACK}Show last message/news report, show message options
 
STR_TOOLBAR_TOOLTIP_LAND_BLOCK_INFORMATION                      :{BLACK}Land area information, console, script debug, screenshots, about OpenTTD
 
STR_TOOLBAR_TOOLTIP_SWITCH_TOOLBAR                              :{BLACK}Switch toolbars
 

	
 
# Extra tooltips for the scenario editor toolbar
 
STR_SCENEDIT_TOOLBAR_TOOLTIP_SAVE_SCENARIO_LOAD_SCENARIO        :{BLACK}Save scenario, load scenario, abandon scenario editor, exit
 
STR_SCENEDIT_TOOLBAR_OPENTTD                                    :{YELLOW}OpenTTD
 
STR_SCENEDIT_TOOLBAR_SCENARIO_EDITOR                            :{YELLOW}Scenario Editor
 
STR_SCENEDIT_TOOLBAR_TOOLTIP_MOVE_THE_STARTING_DATE_BACKWARD    :{BLACK}Move the starting date backward 1 year
 
STR_SCENEDIT_TOOLBAR_TOOLTIP_MOVE_THE_STARTING_DATE_FORWARD     :{BLACK}Move the starting date forward 1 year
 
STR_SCENEDIT_TOOLBAR_TOOLTIP_SET_DATE                           :{BLACK}Click to enter the starting year
 
STR_SCENEDIT_TOOLBAR_TOOLTIP_DISPLAY_MAP_TOWN_DIRECTORY         :{BLACK}Display map, town directory
 
STR_SCENEDIT_TOOLBAR_LANDSCAPE_GENERATION                       :{BLACK}Landscape generation
 
STR_SCENEDIT_TOOLBAR_TOWN_GENERATION                            :{BLACK}Town generation
 
STR_SCENEDIT_TOOLBAR_INDUSTRY_GENERATION                        :{BLACK}Industry generation
 
STR_SCENEDIT_TOOLBAR_ROAD_CONSTRUCTION                          :{BLACK}Road construction
 
STR_SCENEDIT_TOOLBAR_PLANT_TREES                                :{BLACK}Plant trees. Shift toggles building/showing cost estimate
 
STR_SCENEDIT_TOOLBAR_PLACE_SIGN                                 :{BLACK}Place sign
 
STR_SCENEDIT_TOOLBAR_PLACE_OBJECT                               :{BLACK}Place object. Shift toggles building/showing cost estimate
 

	
 
############ range for SE file menu starts
 
STR_SCENEDIT_FILE_MENU_SAVE_SCENARIO                            :Save scenario
 
STR_SCENEDIT_FILE_MENU_LOAD_SCENARIO                            :Load scenario
 
STR_SCENEDIT_FILE_MENU_SAVE_HEIGHTMAP                           :Save heightmap
 
STR_SCENEDIT_FILE_MENU_LOAD_HEIGHTMAP                           :Load heightmap
 
STR_SCENEDIT_FILE_MENU_QUIT_EDITOR                              :Abandon scenario editor
 
STR_SCENEDIT_FILE_MENU_SEPARATOR                                :
 
STR_SCENEDIT_FILE_MENU_QUIT                                     :Exit
 
############ range for SE file menu starts
 

	
 
############ range for settings menu starts
 
STR_SETTINGS_MENU_GAME_OPTIONS                                  :Game options
 
STR_SETTINGS_MENU_CONFIG_SETTINGS                               :Advanced settings
 
STR_SETTINGS_MENU_SCRIPT_SETTINGS                               :AI/Game script settings
 
STR_SETTINGS_MENU_NEWGRF_SETTINGS                               :NewGRF settings
 
STR_SETTINGS_MENU_TRANSPARENCY_OPTIONS                          :Transparency options
 
STR_SETTINGS_MENU_TOWN_NAMES_DISPLAYED                          :Town names displayed
 
STR_SETTINGS_MENU_STATION_NAMES_DISPLAYED                       :Station names displayed
 
STR_SETTINGS_MENU_WAYPOINTS_DISPLAYED                           :Waypoint names displayed
 
STR_SETTINGS_MENU_SIGNS_DISPLAYED                               :Signs displayed
 
STR_SETTINGS_MENU_SHOW_COMPETITOR_SIGNS                         :Competitor signs and names displayed
 
STR_SETTINGS_MENU_FULL_ANIMATION                                :Full animation
 
STR_SETTINGS_MENU_FULL_DETAIL                                   :Full detail
 
STR_SETTINGS_MENU_TRANSPARENT_BUILDINGS                         :Transparent buildings
 
STR_SETTINGS_MENU_TRANSPARENT_SIGNS                             :Transparent signs
 
############ range ends here
 

	
 
############ range for file menu starts
 
STR_FILE_MENU_SAVE_GAME                                         :Save game
 
STR_FILE_MENU_LOAD_GAME                                         :Load game
 
STR_FILE_MENU_QUIT_GAME                                         :Abandon game
 
STR_FILE_MENU_SEPARATOR                                         :
 
STR_FILE_MENU_EXIT                                              :Exit
 
############ range ends here
 

	
 
############ range for map menu starts
 
# map menu
 
STR_MAP_MENU_MAP_OF_WORLD                                       :Map of world
 
STR_MAP_MENU_EXTRA_VIEW_PORT                                    :Extra viewport
 
STR_MAP_MENU_LINGRAPH_LEGEND                                    :Cargo Flow Legend
 
STR_MAP_MENU_SIGN_LIST                                          :Sign list
 
############ range for town menu starts, yet the town directory is shown in the map menu in the scenario editor
 

	
 
############ range for town menu starts
 
STR_TOWN_MENU_TOWN_DIRECTORY                                    :Town directory
 
############ end of the 'Display map' dropdown
 
STR_TOWN_MENU_FOUND_TOWN                                        :Found town
 
############ end of the 'Town' dropdown
 
############ range ends here
 

	
 
############ range for subsidies menu starts
 
STR_SUBSIDIES_MENU_SUBSIDIES                                    :Subsidies
 
############ range ends here
 

	
 
############ range for graph menu starts
 
STR_GRAPH_MENU_OPERATING_PROFIT_GRAPH                           :Operating profit graph
 
STR_GRAPH_MENU_INCOME_GRAPH                                     :Income graph
 
STR_GRAPH_MENU_DELIVERED_CARGO_GRAPH                            :Delivered cargo graph
 
STR_GRAPH_MENU_PERFORMANCE_HISTORY_GRAPH                        :Performance history graph
 
STR_GRAPH_MENU_COMPANY_VALUE_GRAPH                              :Company value graph
 
STR_GRAPH_MENU_CARGO_PAYMENT_RATES                              :Cargo payment rates
 
############ range ends here
 

	
 
############ range for company league menu starts
 
STR_GRAPH_MENU_GOAL                                             :Current goals
 
STR_GRAPH_MENU_COMPANY_LEAGUE_TABLE                             :Company league table
 
STR_GRAPH_MENU_DETAILED_PERFORMANCE_RATING                      :Detailed performance rating
 
STR_GRAPH_MENU_HIGHSCORE                                        :Highscore table
 
############ range ends here
 

	
 
############ range for industry menu starts
 
STR_INDUSTRY_MENU_INDUSTRY_DIRECTORY                            :Industry directory
 
STR_INDUSTRY_MENU_INDUSTRY_CHAIN                                :Industry chains
 
STR_INDUSTRY_MENU_FUND_NEW_INDUSTRY                             :Fund new industry
 
############ range ends here
 

	
 
############ range for railway construction menu starts
 
STR_RAIL_MENU_RAILROAD_CONSTRUCTION                             :Railway construction
 
STR_RAIL_MENU_ELRAIL_CONSTRUCTION                               :Electrified railway construction
 
STR_RAIL_MENU_MONORAIL_CONSTRUCTION                             :Monorail construction
 
STR_RAIL_MENU_MAGLEV_CONSTRUCTION                               :Maglev construction
 
############ range ends here
 

	
 
############ range for road construction menu starts
 
STR_ROAD_MENU_ROAD_CONSTRUCTION                                 :Road construction
 
STR_ROAD_MENU_TRAM_CONSTRUCTION                                 :Tramway construction
 
############ range ends here
 

	
 
############ range for waterways construction menu starts
 
STR_WATERWAYS_MENU_WATERWAYS_CONSTRUCTION                       :Waterways construction
 
############ range ends here
 

	
 
############ range for airport construction menu starts
 
STR_AIRCRAFT_MENU_AIRPORT_CONSTRUCTION                          :Airport construction
 
############ range ends here
 

	
 
############ range for landscaping menu starts
 
STR_LANDSCAPING_MENU_LANDSCAPING                                :Landscaping
 
STR_LANDSCAPING_MENU_PLANT_TREES                                :Plant trees
 
STR_LANDSCAPING_MENU_PLACE_SIGN                                 :Place sign
 
############ range ends here
 

	
 
############ range for music menu starts
 
STR_TOOLBAR_SOUND_MUSIC                                         :Sound/music
 
############ range ends here
 

	
 
############ range for message menu starts
 
STR_NEWS_MENU_LAST_MESSAGE_NEWS_REPORT                          :Last message/news report
 
STR_NEWS_MENU_MESSAGE_HISTORY_MENU                              :Message history
 
############ range ends here
 

	
 
############ range for about menu starts
 
STR_ABOUT_MENU_LAND_BLOCK_INFO                                  :Land area information
 
STR_ABOUT_MENU_SEPARATOR                                        :
 
STR_ABOUT_MENU_TOGGLE_CONSOLE                                   :Toggle console
 
STR_ABOUT_MENU_AI_DEBUG                                         :AI/Game script debug
 
STR_ABOUT_MENU_SCREENSHOT                                       :Screenshot
 
STR_ABOUT_MENU_ZOOMIN_SCREENSHOT                                :Fully zoomed in screenshot
 
STR_ABOUT_MENU_DEFAULTZOOM_SCREENSHOT                           :Default zoom screenshot
 
STR_ABOUT_MENU_GIANT_SCREENSHOT                                 :Whole map screenshot
 
STR_ABOUT_MENU_ABOUT_OPENTTD                                    :About 'OpenTTD'
 
STR_ABOUT_MENU_SPRITE_ALIGNER                                   :Sprite aligner
 
STR_ABOUT_MENU_TOGGLE_BOUNDING_BOXES                            :Toggle bounding boxes
 
STR_ABOUT_MENU_TOGGLE_DIRTY_BLOCKS                              :Toggle colouring of dirty blocks
 
############ range ends here
 

	
 
############ range for days starts (also used for the place in the highscore window)
 
STR_ORDINAL_NUMBER_1ST                                          :1st
 
STR_ORDINAL_NUMBER_2ND                                          :2nd
 
STR_ORDINAL_NUMBER_3RD                                          :3rd
 
STR_ORDINAL_NUMBER_4TH                                          :4th
 
STR_ORDINAL_NUMBER_5TH                                          :5th
 
STR_ORDINAL_NUMBER_6TH                                          :6th
 
STR_ORDINAL_NUMBER_7TH                                          :7th
 
STR_ORDINAL_NUMBER_8TH                                          :8th
 
STR_ORDINAL_NUMBER_9TH                                          :9th
 
STR_ORDINAL_NUMBER_10TH                                         :10th
 
STR_ORDINAL_NUMBER_11TH                                         :11th
 
STR_ORDINAL_NUMBER_12TH                                         :12th
 
STR_ORDINAL_NUMBER_13TH                                         :13th
 
STR_ORDINAL_NUMBER_14TH                                         :14th
 
STR_ORDINAL_NUMBER_15TH                                         :15th
 
STR_ORDINAL_NUMBER_16TH                                         :16th
 
STR_ORDINAL_NUMBER_17TH                                         :17th
 
STR_ORDINAL_NUMBER_18TH                                         :18th
 
STR_ORDINAL_NUMBER_19TH                                         :19th
 
STR_ORDINAL_NUMBER_20TH                                         :20th
 
STR_ORDINAL_NUMBER_21ST                                         :21st
 
STR_ORDINAL_NUMBER_22ND                                         :22nd
 
STR_ORDINAL_NUMBER_23RD                                         :23rd
 
STR_ORDINAL_NUMBER_24TH                                         :24th
 
STR_ORDINAL_NUMBER_25TH                                         :25th
 
STR_ORDINAL_NUMBER_26TH                                         :26th
 
STR_ORDINAL_NUMBER_27TH                                         :27th
 
STR_ORDINAL_NUMBER_28TH                                         :28th
 
STR_ORDINAL_NUMBER_29TH                                         :29th
 
STR_ORDINAL_NUMBER_30TH                                         :30th
 
STR_ORDINAL_NUMBER_31ST                                         :31st
 
############ range for days ends
 

	
 
############ range for months starts
 
STR_MONTH_ABBREV_JAN                                            :Jan
 
STR_MONTH_ABBREV_FEB                                            :Feb
 
STR_MONTH_ABBREV_MAR                                            :Mar
 
STR_MONTH_ABBREV_APR                                            :Apr
 
STR_MONTH_ABBREV_MAY                                            :May
 
STR_MONTH_ABBREV_JUN                                            :Jun
 
STR_MONTH_ABBREV_JUL                                            :Jul
 
STR_MONTH_ABBREV_AUG                                            :Aug
 
STR_MONTH_ABBREV_SEP                                            :Sep
 
STR_MONTH_ABBREV_OCT                                            :Oct
 
STR_MONTH_ABBREV_NOV                                            :Nov
 
STR_MONTH_ABBREV_DEC                                            :Dec
 

	
 
STR_MONTH_JAN                                                   :January
 
STR_MONTH_FEB                                                   :February
 
STR_MONTH_MAR                                                   :March
 
STR_MONTH_APR                                                   :April
 
STR_MONTH_MAY                                                   :May
 
STR_MONTH_JUN                                                   :June
 
STR_MONTH_JUL                                                   :July
 
STR_MONTH_AUG                                                   :August
 
STR_MONTH_SEP                                                   :September
 
STR_MONTH_OCT                                                   :October
 
STR_MONTH_NOV                                                   :November
 
STR_MONTH_DEC                                                   :December
 
############ range for months ends
 

	
 
# Graph window
 
STR_GRAPH_KEY_BUTTON                                            :{BLACK}Key
 
STR_GRAPH_KEY_TOOLTIP                                           :{BLACK}Show key to graphs
 
STR_GRAPH_X_LABEL_MONTH                                         :{TINY_FONT}{STRING}{} {STRING}
 
STR_GRAPH_X_LABEL_MONTH_YEAR                                    :{TINY_FONT}{STRING}{} {STRING}{}{NUM}
 
STR_GRAPH_Y_LABEL                                               :{TINY_FONT}{STRING2}
 
STR_GRAPH_Y_LABEL_NUMBER                                        :{TINY_FONT}{COMMA}
 

	
 
STR_GRAPH_OPERATING_PROFIT_CAPTION                              :{WHITE}Operating Profit Graph
 
STR_GRAPH_INCOME_CAPTION                                        :{WHITE}Income Graph
 
STR_GRAPH_CARGO_DELIVERED_CAPTION                               :{WHITE}Units of cargo delivered
 
STR_GRAPH_COMPANY_PERFORMANCE_RATINGS_CAPTION                   :{WHITE}Company performance ratings (maximum rating=1000)
 
STR_GRAPH_COMPANY_VALUES_CAPTION                                :{WHITE}Company values
 

	
 
STR_GRAPH_CARGO_PAYMENT_RATES_CAPTION                           :{WHITE}Cargo Payment Rates
 
STR_GRAPH_CARGO_PAYMENT_RATES_X_LABEL                           :{TINY_FONT}{BLACK}Days in transit
 
STR_GRAPH_CARGO_PAYMENT_RATES_TITLE                             :{TINY_FONT}{BLACK}Payment for delivering 10 units (or 10,000 litres) of cargo a distance of 20 squares
 
STR_GRAPH_CARGO_ENABLE_ALL                                      :{TINY_FONT}{BLACK}Enable all
 
STR_GRAPH_CARGO_DISABLE_ALL                                     :{TINY_FONT}{BLACK}Disable all
 
STR_GRAPH_CARGO_TOOLTIP_ENABLE_ALL                              :{BLACK}Display all cargoes on the cargo payment rates graph
 
STR_GRAPH_CARGO_TOOLTIP_DISABLE_ALL                             :{BLACK}Display no cargoes on the cargo payment rates graph
 
STR_GRAPH_CARGO_PAYMENT_TOGGLE_CARGO                            :{BLACK}Toggle graph for cargo type on/off
 
STR_GRAPH_CARGO_PAYMENT_CARGO                                   :{TINY_FONT}{BLACK}{STRING}
 

	
 
STR_GRAPH_PERFORMANCE_DETAIL_TOOLTIP                            :{BLACK}Show detailed performance ratings
 

	
 
# Graph key window
 
STR_GRAPH_KEY_CAPTION                                           :{WHITE}Key to company graphs
 
STR_GRAPH_KEY_COMPANY_SELECTION_TOOLTIP                         :{BLACK}Click here to toggle company's entry on graph on/off
 

	
 
# Company league window
 
STR_COMPANY_LEAGUE_TABLE_CAPTION                                :{WHITE}Company League Table
 
STR_COMPANY_LEAGUE_COMPANY_NAME                                 :{ORANGE}{COMPANY} {BLACK}{COMPANY_NUM} '{STRING}'
 
STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_ENGINEER                   :Engineer
 
STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_TRAFFIC_MANAGER            :Traffic Manager
 
STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_TRANSPORT_COORDINATOR      :Transport Coordinator
 
STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_ROUTE_SUPERVISOR           :Route Supervisor
 
STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_DIRECTOR                   :Director
 
STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_CHIEF_EXECUTIVE            :Chief Executive
 
STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_CHAIRMAN                   :Chairman
 
STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_PRESIDENT                  :President
 
STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_TYCOON                     :Tycoon
 

	
 
# Performance detail window
 
STR_PERFORMANCE_DETAIL                                          :{WHITE}Detailed performance rating
 
STR_PERFORMANCE_DETAIL_KEY                                      :{BLACK}Detail
 
STR_PERFORMANCE_DETAIL_AMOUNT_CURRENCY                          :{BLACK}({CURRENCY_SHORT}/{CURRENCY_SHORT})
 
STR_PERFORMANCE_DETAIL_AMOUNT_INT                               :{BLACK}({COMMA}/{COMMA})
 
STR_PERFORMANCE_DETAIL_PERCENT                                  :{WHITE}{NUM}%
 
STR_PERFORMANCE_DETAIL_SELECT_COMPANY_TOOLTIP                   :{BLACK}View details about this company
 
############ Those following lines need to be in this order!!
 
STR_PERFORMANCE_DETAIL_VEHICLES                                 :{BLACK}Vehicles:
 
STR_PERFORMANCE_DETAIL_STATIONS                                 :{BLACK}Stations:
 
STR_PERFORMANCE_DETAIL_MIN_PROFIT                               :{BLACK}Min. profit:
 
STR_PERFORMANCE_DETAIL_MIN_INCOME                               :{BLACK}Min. income:
 
STR_PERFORMANCE_DETAIL_MAX_INCOME                               :{BLACK}Max. income:
 
STR_PERFORMANCE_DETAIL_DELIVERED                                :{BLACK}Delivered:
 
STR_PERFORMANCE_DETAIL_CARGO                                    :{BLACK}Cargo:
 
STR_PERFORMANCE_DETAIL_MONEY                                    :{BLACK}Money:
 
STR_PERFORMANCE_DETAIL_LOAN                                     :{BLACK}Loan:
 
STR_PERFORMANCE_DETAIL_TOTAL                                    :{BLACK}Total:
 
############ End of order list
 
STR_PERFORMANCE_DETAIL_VEHICLES_TOOLTIP                         :{BLACK}Number of vehicles that turned a profit last year. This includes road vehicles, trains, ships and aircraft
 
STR_PERFORMANCE_DETAIL_STATIONS_TOOLTIP                         :{BLACK}Number of recently-serviced stations. Train stations, bus stops, airports and so on are counted separately even if they belong to the same station
 
STR_PERFORMANCE_DETAIL_MIN_PROFIT_TOOLTIP                       :{BLACK}The profit of the vehicle with the lowest income (only vehicles older than two years are considered)
 
STR_PERFORMANCE_DETAIL_MIN_INCOME_TOOLTIP                       :{BLACK}Amount of cash made in the quarter with the lowest profit of the last 12 quarters
 
STR_PERFORMANCE_DETAIL_MAX_INCOME_TOOLTIP                       :{BLACK}Amount of cash made in the quarter with the highest profit of the last 12 quarters
 
STR_PERFORMANCE_DETAIL_DELIVERED_TOOLTIP                        :{BLACK}Units of cargo delivered in the last four quarters
 
STR_PERFORMANCE_DETAIL_CARGO_TOOLTIP                            :{BLACK}Number of types of cargo delivered in the last quarter
 
STR_PERFORMANCE_DETAIL_MONEY_TOOLTIP                            :{BLACK}Amount of money this company has in the bank
 
STR_PERFORMANCE_DETAIL_LOAN_TOOLTIP                             :{BLACK}The amount of money this company has taken on loan
 
STR_PERFORMANCE_DETAIL_TOTAL_TOOLTIP                            :{BLACK}Total points out of possible points
 

	
 
# Music window
 
STR_MUSIC_JAZZ_JUKEBOX_CAPTION                                  :{WHITE}Jazz Jukebox
 
STR_MUSIC_PLAYLIST_ALL                                          :{TINY_FONT}{BLACK}All
 
STR_MUSIC_PLAYLIST_OLD_STYLE                                    :{TINY_FONT}{BLACK}Old Style
 
STR_MUSIC_PLAYLIST_NEW_STYLE                                    :{TINY_FONT}{BLACK}New Style
 
STR_MUSIC_PLAYLIST_EZY_STREET                                   :{TINY_FONT}{BLACK}Ezy Street
 
STR_MUSIC_PLAYLIST_CUSTOM_1                                     :{TINY_FONT}{BLACK}Custom 1
 
STR_MUSIC_PLAYLIST_CUSTOM_2                                     :{TINY_FONT}{BLACK}Custom 2
 
STR_MUSIC_MUSIC_VOLUME                                          :{TINY_FONT}{BLACK}Music Volume
 
STR_MUSIC_EFFECTS_VOLUME                                        :{TINY_FONT}{BLACK}Effects Volume
 
STR_MUSIC_RULER_MIN                                             :{TINY_FONT}{BLACK}MIN
 
STR_MUSIC_RULER_MAX                                             :{TINY_FONT}{BLACK}MAX
 
STR_MUSIC_RULER_MARKER                                          :{TINY_FONT}{BLACK}'
 
STR_MUSIC_TRACK_NONE                                            :{TINY_FONT}{DKGREEN}--
 
STR_MUSIC_TRACK_DIGIT                                           :{TINY_FONT}{DKGREEN}{ZEROFILL_NUM}
 
STR_MUSIC_TITLE_NONE                                            :{TINY_FONT}{DKGREEN}------
 
STR_MUSIC_TITLE_NAME                                            :{TINY_FONT}{DKGREEN}"{RAW_STRING}"
 
STR_MUSIC_TRACK                                                 :{TINY_FONT}{BLACK}Track
 
STR_MUSIC_XTITLE                                                :{TINY_FONT}{BLACK}Title
 
STR_MUSIC_SHUFFLE                                               :{TINY_FONT}{BLACK}Shuffle
 
STR_MUSIC_PROGRAM                                               :{TINY_FONT}{BLACK}Programme
 
STR_MUSIC_TOOLTIP_SKIP_TO_PREVIOUS_TRACK                        :{BLACK}Skip to previous track in selection
 
STR_MUSIC_TOOLTIP_SKIP_TO_NEXT_TRACK_IN_SELECTION               :{BLACK}Skip to next track in selection
 
STR_MUSIC_TOOLTIP_STOP_PLAYING_MUSIC                            :{BLACK}Stop playing music
 
STR_MUSIC_TOOLTIP_START_PLAYING_MUSIC                           :{BLACK}Start playing music
 
STR_MUSIC_TOOLTIP_DRAG_SLIDERS_TO_SET_MUSIC                     :{BLACK}Drag sliders to set music and sound effect volumes
 
STR_MUSIC_TOOLTIP_SELECT_ALL_TRACKS_PROGRAM                     :{BLACK}Select 'all tracks' programme
 
STR_MUSIC_TOOLTIP_SELECT_OLD_STYLE_MUSIC                        :{BLACK}Select 'old style music' programme
 
STR_MUSIC_TOOLTIP_SELECT_NEW_STYLE_MUSIC                        :{BLACK}Select 'new style music' programme
 
STR_MUSIC_TOOLTIP_SELECT_EZY_STREET_STYLE                       :{BLACK}Select 'Ezy Street style music' programme
 
STR_MUSIC_TOOLTIP_SELECT_CUSTOM_1_USER_DEFINED                  :{BLACK}Select 'Custom 1' (user-defined) programme
 
STR_MUSIC_TOOLTIP_SELECT_CUSTOM_2_USER_DEFINED                  :{BLACK}Select 'Custom 2' (user-defined) programme
 
STR_MUSIC_TOOLTIP_TOGGLE_PROGRAM_SHUFFLE                        :{BLACK}Toggle programme shuffle on/off
 
STR_MUSIC_TOOLTIP_SHOW_MUSIC_TRACK_SELECTION                    :{BLACK}Show music track selection window
 

	
 
STR_ERROR_NO_SONGS                                              :{WHITE}A music set without songs has been selected. No songs will be played
 

	
 
# Playlist window
 
STR_PLAYLIST_MUSIC_PROGRAM_SELECTION                            :{WHITE}Music Programme Selection
 
STR_PLAYLIST_TRACK_NAME                                         :{TINY_FONT}{LTBLUE}{ZEROFILL_NUM} "{RAW_STRING}"
 
STR_PLAYLIST_TRACK_INDEX                                        :{TINY_FONT}{BLACK}Track Index
 
STR_PLAYLIST_PROGRAM                                            :{TINY_FONT}{BLACK}Programme - '{STRING}'
 
STR_PLAYLIST_CLEAR                                              :{TINY_FONT}{BLACK}Clear
 
STR_PLAYLIST_TOOLTIP_CLEAR_CURRENT_PROGRAM_CUSTOM1              :{BLACK}Clear current programme (Custom1 or Custom2 only)
 
STR_PLAYLIST_TOOLTIP_CLICK_TO_ADD_TRACK                         :{BLACK}Click on music track to add to current programme (Custom1 or Custom2 only)
 
STR_PLAYLIST_TOOLTIP_CLICK_TO_REMOVE_TRACK                      :{BLACK}Click on music track to remove it from current programme (Custom1 or Custom2 only)
 

	
 
# Highscore window
 
STR_HIGHSCORE_TOP_COMPANIES_WHO_REACHED                         :{BIG_FONT}{BLACK}Top companies who reached {NUM}
 
STR_HIGHSCORE_TOP_COMPANIES_NETWORK_GAME                        :{BIG_FONT}{BLACK}Company League Table in {NUM}
 
STR_HIGHSCORE_POSITION                                          :{BIG_FONT}{BLACK}{COMMA}.
 
STR_HIGHSCORE_PERFORMANCE_TITLE_BUSINESSMAN                     :Businessman
 
STR_HIGHSCORE_PERFORMANCE_TITLE_ENTREPRENEUR                    :Entrepreneur
 
STR_HIGHSCORE_PERFORMANCE_TITLE_INDUSTRIALIST                   :Industrialist
 
STR_HIGHSCORE_PERFORMANCE_TITLE_CAPITALIST                      :Capitalist
 
STR_HIGHSCORE_PERFORMANCE_TITLE_MAGNATE                         :Magnate
 
STR_HIGHSCORE_PERFORMANCE_TITLE_MOGUL                           :Mogul
 
STR_HIGHSCORE_PERFORMANCE_TITLE_TYCOON_OF_THE_CENTURY           :Tycoon of the Century
 
STR_HIGHSCORE_NAME                                              :{BIG_FONT}{PRESIDENT_NAME}, {COMPANY}
 
STR_HIGHSCORE_STATS                                             :{BIG_FONT}'{STRING}'   ({COMMA})
 
STR_HIGHSCORE_COMPANY_ACHIEVES_STATUS                           :{BIG_FONT}{BLACK}{COMPANY} achieves '{STRING}' status!
 
STR_HIGHSCORE_PRESIDENT_OF_COMPANY_ACHIEVES_STATUS              :{BIG_FONT}{WHITE}{PRESIDENT_NAME} of {COMPANY} achieves '{STRING}' status!
 

	
 
# Smallmap window
 
STR_SMALLMAP_CAPTION                                            :{WHITE}Map - {STRING}
 

	
 
STR_SMALLMAP_TYPE_CONTOURS                                      :Contours
 
STR_SMALLMAP_TYPE_VEHICLES                                      :Vehicles
 
STR_SMALLMAP_TYPE_INDUSTRIES                                    :Industries
 
STR_SMALLMAP_TYPE_ROUTEMAP                                      :Cargo Flow
 
STR_SMALLMAP_TYPE_ROUTES                                        :Routes
 
STR_SMALLMAP_TYPE_VEGETATION                                    :Vegetation
 
STR_SMALLMAP_TYPE_OWNERS                                        :Owners
 
STR_SMALLMAP_TOOLTIP_SHOW_LAND_CONTOURS_ON_MAP                  :{BLACK}Show land contours on map
 
STR_SMALLMAP_TOOLTIP_SHOW_VEHICLES_ON_MAP                       :{BLACK}Show vehicles on map
 
STR_SMALLMAP_TOOLTIP_SHOW_INDUSTRIES_ON_MAP                     :{BLACK}Show industries on map
 
STR_SMALLMAP_TOOLTIP_SHOW_LINK_STATS_ON_MAP                     :{BLACK}Show cargo flow on map
 
STR_SMALLMAP_TOOLTIP_SHOW_TRANSPORT_ROUTES_ON                   :{BLACK}Show transport routes on map
 
STR_SMALLMAP_TOOLTIP_SHOW_VEGETATION_ON_MAP                     :{BLACK}Show vegetation on map
 
STR_SMALLMAP_TOOLTIP_SHOW_LAND_OWNERS_ON_MAP                    :{BLACK}Show land owners on map
 
STR_SMALLMAP_TOOLTIP_INDUSTRY_SELECTION                         :{BLACK}Click on an industry type to toggle displaying it. Ctrl+Click disables all types except the selected one. Ctrl+Click on it again to enable all industry types
 
STR_SMALLMAP_TOOLTIP_COMPANY_SELECTION                          :{BLACK}Click on a company to toggle displaying its property. Ctrl+Click disables all companies except the selected one. Ctrl+Click on it again to enable all companies
 
STR_SMALLMAP_TOOLTIP_CARGO_SELECTION                            :{BLACK}Click on a cargo to toggle displaying its property. Ctrl+Click disables all cargoes except the selected one. Ctrl+Click on it again to enable all cargoes
 

	
 
STR_SMALLMAP_LEGENDA_ROADS                                      :{TINY_FONT}{BLACK}Roads
 
STR_SMALLMAP_LEGENDA_RAILROADS                                  :{TINY_FONT}{BLACK}Railways
 
STR_SMALLMAP_LEGENDA_STATIONS_AIRPORTS_DOCKS                    :{TINY_FONT}{BLACK}Stations/Airports/Docks
 
STR_SMALLMAP_LEGENDA_BUILDINGS_INDUSTRIES                       :{TINY_FONT}{BLACK}Buildings/Industries
 
STR_SMALLMAP_LEGENDA_VEHICLES                                   :{TINY_FONT}{BLACK}Vehicles
 
STR_SMALLMAP_LEGENDA_TRAINS                                     :{TINY_FONT}{BLACK}Trains
 
STR_SMALLMAP_LEGENDA_ROAD_VEHICLES                              :{TINY_FONT}{BLACK}Road Vehicles
 
STR_SMALLMAP_LEGENDA_SHIPS                                      :{TINY_FONT}{BLACK}Ships
 
STR_SMALLMAP_LEGENDA_AIRCRAFT                                   :{TINY_FONT}{BLACK}Aircraft
 
STR_SMALLMAP_LEGENDA_TRANSPORT_ROUTES                           :{TINY_FONT}{BLACK}Transport Routes
 
STR_SMALLMAP_LEGENDA_FOREST                                     :{TINY_FONT}{BLACK}Forest
 
STR_SMALLMAP_LEGENDA_RAILROAD_STATION                           :{TINY_FONT}{BLACK}Railway Station
 
STR_SMALLMAP_LEGENDA_TRUCK_LOADING_BAY                          :{TINY_FONT}{BLACK}Lorry Loading Bay
 
STR_SMALLMAP_LEGENDA_BUS_STATION                                :{TINY_FONT}{BLACK}Bus Station
 
STR_SMALLMAP_LEGENDA_AIRPORT_HELIPORT                           :{TINY_FONT}{BLACK}Airport/Heliport
 
STR_SMALLMAP_LEGENDA_DOCK                                       :{TINY_FONT}{BLACK}Dock
 
STR_SMALLMAP_LEGENDA_ROUGH_LAND                                 :{TINY_FONT}{BLACK}Rough Land
 
STR_SMALLMAP_LEGENDA_GRASS_LAND                                 :{TINY_FONT}{BLACK}Grass Land
 
STR_SMALLMAP_LEGENDA_BARE_LAND                                  :{TINY_FONT}{BLACK}Bare Land
 
STR_SMALLMAP_LEGENDA_FIELDS                                     :{TINY_FONT}{BLACK}Fields
 
STR_SMALLMAP_LEGENDA_TREES                                      :{TINY_FONT}{BLACK}Trees
 
STR_SMALLMAP_LEGENDA_ROCKS                                      :{TINY_FONT}{BLACK}Rocks
 
STR_SMALLMAP_LEGENDA_WATER                                      :{TINY_FONT}{BLACK}Water
 
STR_SMALLMAP_LEGENDA_NO_OWNER                                   :{TINY_FONT}{BLACK}No Owner
 
STR_SMALLMAP_LEGENDA_TOWNS                                      :{TINY_FONT}{BLACK}Towns
 
STR_SMALLMAP_LEGENDA_INDUSTRIES                                 :{TINY_FONT}{BLACK}Industries
 
STR_SMALLMAP_LEGENDA_DESERT                                     :{TINY_FONT}{BLACK}Desert
 
STR_SMALLMAP_LEGENDA_SNOW                                       :{TINY_FONT}{BLACK}Snow
 

	
 
STR_SMALLMAP_TOOLTIP_TOGGLE_TOWN_NAMES_ON_OFF                   :{BLACK}Toggle town names on/off on map
 
STR_SMALLMAP_CENTER                                             :{BLACK}Centre the smallmap on the current position
 
STR_SMALLMAP_INDUSTRY                                           :{TINY_FONT}{STRING} ({NUM})
 
STR_SMALLMAP_LINKSTATS                                          :{TINY_FONT}{STRING}
 
STR_SMALLMAP_COMPANY                                            :{TINY_FONT}{COMPANY}
 
STR_SMALLMAP_TOWN                                               :{TINY_FONT}{WHITE}{TOWN}
 
STR_SMALLMAP_DISABLE_ALL                                        :{BLACK}Disable all
 
STR_SMALLMAP_ENABLE_ALL                                         :{BLACK}Enable all
 
STR_SMALLMAP_SHOW_HEIGHT                                        :{BLACK}Show height
 
STR_SMALLMAP_TOOLTIP_DISABLE_ALL_INDUSTRIES                     :{BLACK}Display no industries on the map
 
STR_SMALLMAP_TOOLTIP_ENABLE_ALL_INDUSTRIES                      :{BLACK}Display all industries on the map
 
STR_SMALLMAP_TOOLTIP_SHOW_HEIGHT                                :{BLACK}Toggle display of heightmap
 
STR_SMALLMAP_TOOLTIP_DISABLE_ALL_COMPANIES                      :{BLACK}Display no company property on the map
 
STR_SMALLMAP_TOOLTIP_ENABLE_ALL_COMPANIES                       :{BLACK}Display all company property on the map
 
STR_SMALLMAP_TOOLTIP_DISABLE_ALL_CARGOS                         :{BLACK}Display no cargoes on the map
 
STR_SMALLMAP_TOOLTIP_ENABLE_ALL_CARGOS                          :{BLACK}Display all cargoes on the map
 

	
 
# Status bar messages
 
STR_STATUSBAR_TOOLTIP_SHOW_LAST_NEWS                            :{BLACK}Show last message or news report
 
STR_STATUSBAR_COMPANY_NAME                                      :{SILVER}- -  {COMPANY}  - -
 
STR_STATUSBAR_PAUSED                                            :{YELLOW}*  *  PAUSED  *  *
 
STR_STATUSBAR_AUTOSAVE                                          :{RED}AUTOSAVE
 
STR_STATUSBAR_SAVING_GAME                                       :{RED}*  *  SAVING GAME  *  *
 

	
 
# News message history
 
STR_MESSAGE_HISTORY                                             :{WHITE}Message History
 
STR_MESSAGE_HISTORY_TOOLTIP                                     :{BLACK}A list of the recent news messages
 
STR_MESSAGE_NEWS_FORMAT                                         :{STRING}  -  {STRING5}
 

	
 
STR_NEWS_MESSAGE_CAPTION                                        :{WHITE}Message
 
STR_NEWS_CUSTOM_ITEM                                            :{BIG_FONT}{BLACK}{RAW_STRING}
 

	
 
STR_NEWS_FIRST_TRAIN_ARRIVAL                                    :{BIG_FONT}{BLACK}Citizens celebrate . . .{}First train arrives at {STATION}!
 
STR_NEWS_FIRST_BUS_ARRIVAL                                      :{BIG_FONT}{BLACK}Citizens celebrate . . .{}First bus arrives at {STATION}!
 
STR_NEWS_FIRST_TRUCK_ARRIVAL                                    :{BIG_FONT}{BLACK}Citizens celebrate . . .{}First truck arrives at {STATION}!
 
STR_NEWS_FIRST_PASSENGER_TRAM_ARRIVAL                           :{BIG_FONT}{BLACK}Citizens celebrate . . .{}First passenger tram arrives at {STATION}!
 
STR_NEWS_FIRST_CARGO_TRAM_ARRIVAL                               :{BIG_FONT}{BLACK}Citizens celebrate . . .{}First freight tram arrives at {STATION}!
 
STR_NEWS_FIRST_SHIP_ARRIVAL                                     :{BIG_FONT}{BLACK}Citizens celebrate . . .{}First ship arrives at {STATION}!
 
STR_NEWS_FIRST_AIRCRAFT_ARRIVAL                                 :{BIG_FONT}{BLACK}Citizens celebrate . . .{}First aircraft arrives at {STATION}!
 

	
 
STR_NEWS_TRAIN_CRASH                                            :{BIG_FONT}{BLACK}Train Crash!{}{COMMA} die in fireball after collision
 
STR_NEWS_ROAD_VEHICLE_CRASH_DRIVER                              :{BIG_FONT}{BLACK}Road Vehicle Crash!{}Driver dies in fireball after collision with train
 
STR_NEWS_ROAD_VEHICLE_CRASH                                     :{BIG_FONT}{BLACK}Road Vehicle Crash!{}{COMMA} die in fireball after collision with train
 
STR_NEWS_AIRCRAFT_CRASH                                         :{BIG_FONT}{BLACK}Plane Crash!{}{COMMA} die in fireball at {STATION}
 
STR_NEWS_PLANE_CRASH_OUT_OF_FUEL                                :{BIG_FONT}{BLACK}Plane Crash!{}Aircraft ran out of fuel, {COMMA} die in fireball
 

	
 
STR_NEWS_DISASTER_ZEPPELIN                                      :{BIG_FONT}{BLACK}Zeppelin disaster at {STATION}!
 
STR_NEWS_DISASTER_SMALL_UFO                                     :{BIG_FONT}{BLACK}Road vehicle destroyed in 'UFO' collision!
 
STR_NEWS_DISASTER_AIRPLANE_OIL_REFINERY                         :{BIG_FONT}{BLACK}Oil refinery explosion near {TOWN}!
 
STR_NEWS_DISASTER_HELICOPTER_FACTORY                            :{BIG_FONT}{BLACK}Factory destroyed in suspicious circumstances near {TOWN}!
 
STR_NEWS_DISASTER_BIG_UFO                                       :{BIG_FONT}{BLACK}'UFO' lands near {TOWN}!
 
STR_NEWS_DISASTER_COAL_MINE_SUBSIDENCE                          :{BIG_FONT}{BLACK}Coal mine subsidence leaves trail of destruction near {TOWN}!
 
STR_NEWS_DISASTER_FLOOD_VEHICLE                                 :{BIG_FONT}{BLACK}Floods!{}At least {COMMA} missing, presumed dead after significant flooding!
 

	
 
STR_NEWS_COMPANY_IN_TROUBLE_TITLE                               :{BIG_FONT}{BLACK}Transport company in trouble!
 
STR_NEWS_COMPANY_IN_TROUBLE_DESCRIPTION                         :{BIG_FONT}{BLACK}{RAW_STRING} will be sold off or declared bankrupt unless performance increases soon!
 
STR_NEWS_COMPANY_MERGER_TITLE                                   :{BIG_FONT}{BLACK}Transport company merger!
 
STR_NEWS_COMPANY_MERGER_DESCRIPTION                             :{BIG_FONT}{BLACK}{RAW_STRING} has been sold to {RAW_STRING} for {CURRENCY_LONG}!
 
STR_NEWS_COMPANY_BANKRUPT_TITLE                                 :{BIG_FONT}{BLACK}Bankrupt!
 
STR_NEWS_COMPANY_BANKRUPT_DESCRIPTION                           :{BIG_FONT}{BLACK}{RAW_STRING} has been closed down by creditors and all assets sold off!
 
STR_NEWS_COMPANY_LAUNCH_TITLE                                   :{BIG_FONT}{BLACK}New transport company launched!
 
STR_NEWS_COMPANY_LAUNCH_DESCRIPTION                             :{BIG_FONT}{BLACK}{RAW_STRING} starts construction near {TOWN}!
 
STR_NEWS_MERGER_TAKEOVER_TITLE                                  :{BIG_FONT}{BLACK}{RAW_STRING} has been taken over by {RAW_STRING}!
 
STR_PRESIDENT_NAME_MANAGER                                      :{BLACK}{PRESIDENT_NAME}{}(Manager)
 

	
 
STR_NEWS_NEW_TOWN                                               :{BLACK}{BIG_FONT}{RAW_STRING} sponsored construction of new town {TOWN}!
 

	
 
STR_NEWS_INDUSTRY_CONSTRUCTION                                  :{BIG_FONT}{BLACK}New {STRING} under construction near {TOWN}!
 
STR_NEWS_INDUSTRY_PLANTED                                       :{BIG_FONT}{BLACK}New {STRING} being planted near {TOWN}!
 

	
 
STR_NEWS_INDUSTRY_CLOSURE_GENERAL                               :{BIG_FONT}{BLACK}{STRING2} announces imminent closure!
 
STR_NEWS_INDUSTRY_CLOSURE_SUPPLY_PROBLEMS                       :{BIG_FONT}{BLACK}Supply problems cause {STRING2} to announce imminent closure!
 
STR_NEWS_INDUSTRY_CLOSURE_LACK_OF_TREES                         :{BIG_FONT}{BLACK}Lack of nearby trees causes {STRING2} to announce imminent closure!
 

	
 
STR_NEWS_EURO_INTRODUCTION                                      :{BIG_FONT}{BLACK}European Monetary Union!{}{}The Euro is introduced as the sole currency for everyday transactions in your country!
 
STR_NEWS_BEGIN_OF_RECESSION                                     :{BIG_FONT}{BLACK}World Recession!{}{}Financial experts fear worst as economy slumps!
 
STR_NEWS_END_OF_RECESSION                                       :{BIG_FONT}{BLACK}Recession Over!{}{}Upturn in trade gives confidence to industries as economy strengthens!
 

	
 
STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_GENERAL                   :{BIG_FONT}{BLACK}{INDUSTRY} increases production!
 
STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_COAL                      :{BIG_FONT}{BLACK}New coal seam found at {INDUSTRY}!{}Production is expected to double!
 
STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_OIL                       :{BIG_FONT}{BLACK}New oil reserves found at {INDUSTRY}!{}Production is expected to double!
 
STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_FARM                      :{BIG_FONT}{BLACK}Improved farming methods at {INDUSTRY} are expected to double production!
 
STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_SMOOTH                    :{BIG_FONT}{BLACK}{STRING} production at {INDUSTRY} increases {COMMA}%!
 
STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_GENERAL                   :{BIG_FONT}{BLACK}{INDUSTRY} production down by 50%
 
STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_FARM                      :{BIG_FONT}{BLACK}Insect infestation causes havoc at {INDUSTRY}!{}Production down by 50%
 
STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_SMOOTH                    :{BIG_FONT}{BLACK}{STRING} production at {INDUSTRY} decreases {COMMA}%!
 

	
 
STR_NEWS_TRAIN_IS_WAITING                                       :{WHITE}{VEHICLE} is waiting in depot
 
STR_NEWS_ROAD_VEHICLE_IS_WAITING                                :{WHITE}{VEHICLE} is waiting in depot
 
STR_NEWS_SHIP_IS_WAITING                                        :{WHITE}{VEHICLE} is waiting in depot
 
STR_NEWS_AIRCRAFT_IS_WAITING                                    :{WHITE}{VEHICLE} is waiting in the aircraft hangar
 

	
 
# Start of order review system
 
# DON'T ADD OR REMOVE LINES HERE
 
STR_NEWS_VEHICLE_HAS_TOO_FEW_ORDERS                             :{WHITE}{VEHICLE} has too few orders in the schedule
 
STR_NEWS_VEHICLE_HAS_VOID_ORDER                                 :{WHITE}{VEHICLE} has a void order
 
STR_NEWS_VEHICLE_HAS_DUPLICATE_ENTRY                            :{WHITE}{VEHICLE} has duplicate orders
 
STR_NEWS_VEHICLE_HAS_INVALID_ENTRY                              :{WHITE}{VEHICLE} has an invalid station in its orders
 
# end of order system
 

	
 
STR_NEWS_VEHICLE_IS_GETTING_OLD                                 :{WHITE}{VEHICLE} is getting old
 
STR_NEWS_VEHICLE_IS_GETTING_VERY_OLD                            :{WHITE}{VEHICLE} is getting very old
 
STR_NEWS_VEHICLE_IS_GETTING_VERY_OLD_AND                        :{WHITE}{VEHICLE} is getting very old and urgently needs replacing
 
STR_NEWS_TRAIN_IS_STUCK                                         :{WHITE}{VEHICLE} can't find a path to continue
 
STR_NEWS_VEHICLE_IS_LOST                                        :{WHITE}{VEHICLE} is lost
 
STR_NEWS_VEHICLE_IS_UNPROFITABLE                                :{WHITE}{VEHICLE}'s profit last year was {CURRENCY_LONG}
 
STR_NEWS_AIRCRAFT_DEST_TOO_FAR                                  :{WHITE}{VEHICLE} can't get to the next destination because it is out of range
 

	
 
STR_NEWS_ORDER_REFIT_FAILED                                     :{WHITE}{VEHICLE} stopped because an ordered refit failed
 
STR_NEWS_VEHICLE_AUTORENEW_FAILED                               :{WHITE}Autorenew failed on {VEHICLE}{}{STRING}
 

	
 
STR_NEWS_NEW_VEHICLE_NOW_AVAILABLE                              :{BIG_FONT}{BLACK}New {STRING} now available!
 
STR_NEWS_NEW_VEHICLE_TYPE                                       :{BIG_FONT}{BLACK}{ENGINE}
 
STR_NEWS_NEW_VEHICLE_NOW_AVAILABLE_WITH_TYPE                    :{BLACK}New {STRING} now available!  -  {ENGINE}
 

	
 
STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO                        :{WHITE}{STATION} no longer accepts {STRING}
 
STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO_OR_CARGO               :{WHITE}{STATION} no longer accepts {STRING} or {STRING}
 
STR_NEWS_STATION_NOW_ACCEPTS_CARGO                              :{WHITE}{STATION} now accepts {STRING}
 
STR_NEWS_STATION_NOW_ACCEPTS_CARGO_AND_CARGO                    :{WHITE}{STATION} now accepts {STRING} and {STRING}
 

	
 
STR_NEWS_OFFER_OF_SUBSIDY_EXPIRED                               :{BIG_FONT}{BLACK}Offer of subsidy expired:{}{}{STRING} from {STRING2} to {STRING2} will now not attract a subsidy
 
STR_NEWS_SUBSIDY_WITHDRAWN_SERVICE                              :{BIG_FONT}{BLACK}Subsidy withdrawn:{}{}{STRING} service from {STRING2} to {STRING2} is no longer subsidised
 
STR_NEWS_SERVICE_SUBSIDY_OFFERED                                :{BIG_FONT}{BLACK}Service subsidy offered:{}{}First {STRING} service from {STRING2} to {STRING2} will attract a year's subsidy from the local authority!
 
STR_NEWS_SERVICE_SUBSIDY_AWARDED_HALF                           :{BIG_FONT}{BLACK}Service subsidy awarded to {RAW_STRING}!{}{}{STRING} service from {STRING2} to {STRING2} will pay 50% extra for the next year!
 
STR_NEWS_SERVICE_SUBSIDY_AWARDED_DOUBLE                         :{BIG_FONT}{BLACK}Service subsidy awarded to {RAW_STRING}!{}{}{STRING} service from {STRING2} to {STRING2} will pay double rates for the next year!
 
STR_NEWS_SERVICE_SUBSIDY_AWARDED_TRIPLE                         :{BIG_FONT}{BLACK}Service subsidy awarded to {RAW_STRING}!{}{}{STRING} service from {STRING2} to {STRING2} will pay triple rates for the next year!
 
STR_NEWS_SERVICE_SUBSIDY_AWARDED_QUADRUPLE                      :{BIG_FONT}{BLACK}Service subsidy awarded to {RAW_STRING}!{}{}{STRING} service from {STRING2} to {STRING2} will pay quadruple rates for the next year!
 

	
 
STR_NEWS_ROAD_REBUILDING                                        :{BIG_FONT}{BLACK}Traffic chaos in {TOWN}!{}{}Road rebuilding programme funded by {RAW_STRING} brings 6 months of misery to motorists!
 
STR_NEWS_EXCLUSIVE_RIGHTS_TITLE                                 :{BIG_FONT}{BLACK}Transport monopoly!
 
STR_NEWS_EXCLUSIVE_RIGHTS_DESCRIPTION                           :{BIG_FONT}{BLACK}Local authority of {TOWN} signs contract with {RAW_STRING} for one year of exclusive transport rights!
 

	
 
# Extra view window
 
STR_EXTRA_VIEW_PORT_TITLE                                       :{WHITE}Viewport {COMMA}
 
STR_EXTRA_VIEW_MOVE_VIEW_TO_MAIN                                :{BLACK}Copy to viewport
 
STR_EXTRA_VIEW_MOVE_VIEW_TO_MAIN_TT                             :{BLACK}Copy the location of the main view to this viewport
 
STR_EXTRA_VIEW_MOVE_MAIN_TO_VIEW                                :{BLACK}Paste from viewport
 
STR_EXTRA_VIEW_MOVE_MAIN_TO_VIEW_TT                             :{BLACK}Paste the location of this viewport to the main view
 

	
 
# Game options window
 
STR_GAME_OPTIONS_CAPTION                                        :{WHITE}Game Options
 
STR_GAME_OPTIONS_CURRENCY_UNITS_FRAME                           :{BLACK}Currency units
 
STR_GAME_OPTIONS_CURRENCY_UNITS_DROPDOWN_TOOLTIP                :{BLACK}Currency units selection
 

	
 
############ start of currency region
 
STR_GAME_OPTIONS_CURRENCY_GBP                                   :British Pound (GBP)
 
STR_GAME_OPTIONS_CURRENCY_USD                                   :American Dollar (USD)
 
STR_GAME_OPTIONS_CURRENCY_EUR                                   :Euro (EUR)
 
STR_GAME_OPTIONS_CURRENCY_JPY                                   :Japanese Yen (JPY)
 
STR_GAME_OPTIONS_CURRENCY_ATS                                   :Austrian Shilling (ATS)
 
STR_GAME_OPTIONS_CURRENCY_BEF                                   :Belgian Franc (BEF)
 
STR_GAME_OPTIONS_CURRENCY_CHF                                   :Swiss Franc (CHF)
 
STR_GAME_OPTIONS_CURRENCY_CZK                                   :Czech Koruna (CZK)
 
STR_GAME_OPTIONS_CURRENCY_DEM                                   :Deutschmark (DEM)
 
STR_GAME_OPTIONS_CURRENCY_DKK                                   :Danish Krone (DKK)
 
STR_GAME_OPTIONS_CURRENCY_ESP                                   :Spanish Peseta (ESP)
 
STR_GAME_OPTIONS_CURRENCY_FIM                                   :Finnish Markka (FIM)
 
STR_GAME_OPTIONS_CURRENCY_FRF                                   :French Franc (FRF)
 
STR_GAME_OPTIONS_CURRENCY_GRD                                   :Greek Drachma (GRD)
 
STR_GAME_OPTIONS_CURRENCY_HUF                                   :Hungarian Forint (HUF)
 
STR_GAME_OPTIONS_CURRENCY_ISK                                   :Icelandic Krona (ISK)
 
STR_GAME_OPTIONS_CURRENCY_ITL                                   :Italian Lira (ITL)
 
STR_GAME_OPTIONS_CURRENCY_NLG                                   :Dutch Guilder (NLG)
 
STR_GAME_OPTIONS_CURRENCY_NOK                                   :Norwegian Krone (NOK)
 
STR_GAME_OPTIONS_CURRENCY_PLN                                   :Polish ZÅ‚oty (PLN)
 
STR_GAME_OPTIONS_CURRENCY_RON                                   :Romanian Leu (RON)
 
STR_GAME_OPTIONS_CURRENCY_RUR                                   :Russian Rubles (RUR)
 
STR_GAME_OPTIONS_CURRENCY_SIT                                   :Slovenian Tolar (SIT)
 
STR_GAME_OPTIONS_CURRENCY_SEK                                   :Swedish Krona (SEK)
 
STR_GAME_OPTIONS_CURRENCY_TRY                                   :Turkish Lira (TRY)
 
STR_GAME_OPTIONS_CURRENCY_SKK                                   :Slovak Koruna (SKK)
 
STR_GAME_OPTIONS_CURRENCY_BRL                                   :Brazilian Real (BRL)
 
STR_GAME_OPTIONS_CURRENCY_EEK                                   :Estonian Krooni (EEK)
 
STR_GAME_OPTIONS_CURRENCY_LTL                                   :Lithuanian Litas (LTL)
 
STR_GAME_OPTIONS_CURRENCY_KRW                                   :South Korean Won (KRW)
 
STR_GAME_OPTIONS_CURRENCY_ZAR                                   :South African Rand (ZAR)
 
STR_GAME_OPTIONS_CURRENCY_CUSTOM                                :Custom...
 
STR_GAME_OPTIONS_CURRENCY_GEL                                   :Georgian Lari (GEL)
 
STR_GAME_OPTIONS_CURRENCY_IRR                                   :Iranian Rial (IRR)
 
############ end of currency region
 

	
 
STR_GAME_OPTIONS_MEASURING_UNITS_FRAME                          :{BLACK}Measuring units
 
STR_GAME_OPTIONS_MEASURING_UNITS_DROPDOWN_TOOLTIP               :{BLACK}Measuring units selection
 

	
 
############ start of measuring units region
 
STR_GAME_OPTIONS_MEASURING_UNITS_IMPERIAL                       :Imperial
 
STR_GAME_OPTIONS_MEASURING_UNITS_METRIC                         :Metric
 
STR_GAME_OPTIONS_MEASURING_UNITS_SI                             :SI
 
############ end of measuring units region
 

	
 
STR_GAME_OPTIONS_ROAD_VEHICLES_FRAME                            :{BLACK}Road vehicles
 
STR_GAME_OPTIONS_ROAD_VEHICLES_DROPDOWN_TOOLTIP                 :{BLACK}Select side of road for vehicles to drive on
 
STR_GAME_OPTIONS_ROAD_VEHICLES_DROPDOWN_LEFT                    :Drive on left
 
STR_GAME_OPTIONS_ROAD_VEHICLES_DROPDOWN_RIGHT                   :Drive on right
 

	
 
STR_GAME_OPTIONS_TOWN_NAMES_FRAME                               :{BLACK}Town names
 
STR_GAME_OPTIONS_TOWN_NAMES_DROPDOWN_TOOLTIP                    :{BLACK}Select style of town names
 

	
 
############ start of townname region
 
STR_GAME_OPTIONS_TOWN_NAME_ORIGINAL_ENGLISH                     :English (Original)
 
STR_GAME_OPTIONS_TOWN_NAME_FRENCH                               :French
 
STR_GAME_OPTIONS_TOWN_NAME_GERMAN                               :German
 
STR_GAME_OPTIONS_TOWN_NAME_ADDITIONAL_ENGLISH                   :English (Additional)
 
STR_GAME_OPTIONS_TOWN_NAME_LATIN_AMERICAN                       :Latin-American
 
STR_GAME_OPTIONS_TOWN_NAME_SILLY                                :Silly
 
STR_GAME_OPTIONS_TOWN_NAME_SWEDISH                              :Swedish
 
STR_GAME_OPTIONS_TOWN_NAME_DUTCH                                :Dutch
 
STR_GAME_OPTIONS_TOWN_NAME_FINNISH                              :Finnish
 
STR_GAME_OPTIONS_TOWN_NAME_POLISH                               :Polish
 
STR_GAME_OPTIONS_TOWN_NAME_SLOVAK                               :Slovak
 
STR_GAME_OPTIONS_TOWN_NAME_NORWEGIAN                            :Norwegian
 
STR_GAME_OPTIONS_TOWN_NAME_HUNGARIAN                            :Hungarian
 
STR_GAME_OPTIONS_TOWN_NAME_AUSTRIAN                             :Austrian
 
STR_GAME_OPTIONS_TOWN_NAME_ROMANIAN                             :Romanian
 
STR_GAME_OPTIONS_TOWN_NAME_CZECH                                :Czech
 
STR_GAME_OPTIONS_TOWN_NAME_SWISS                                :Swiss
 
STR_GAME_OPTIONS_TOWN_NAME_DANISH                               :Danish
 
STR_GAME_OPTIONS_TOWN_NAME_TURKISH                              :Turkish
 
STR_GAME_OPTIONS_TOWN_NAME_ITALIAN                              :Italian
 
STR_GAME_OPTIONS_TOWN_NAME_CATALAN                              :Catalan
 
############ end of townname region
 

	
 
STR_GAME_OPTIONS_AUTOSAVE_FRAME                                 :{BLACK}Autosave
 
STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_TOOLTIP                      :{BLACK}Select interval between automatic game saves
 

	
 
STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_OFF                          :Off
 
STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_1_MONTH                :Every month
 
STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_3_MONTHS               :Every 3 months
 
STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_6_MONTHS               :Every 6 months
 
STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_12_MONTHS              :Every 12 months
 

	
 
STR_GAME_OPTIONS_LANGUAGE                                       :{BLACK}Language
 
STR_GAME_OPTIONS_LANGUAGE_TOOLTIP                               :{BLACK}Select the interface language to use
 

	
 
STR_GAME_OPTIONS_FULLSCREEN                                     :{BLACK}Fullscreen
 
STR_GAME_OPTIONS_FULLSCREEN_TOOLTIP                             :{BLACK}Check this box to play OpenTTD fullscreen mode
 

	
 
STR_GAME_OPTIONS_RESOLUTION                                     :{BLACK}Screen resolution
 
STR_GAME_OPTIONS_RESOLUTION_TOOLTIP                             :{BLACK}Select the screen resolution to use
 
STR_GAME_OPTIONS_RESOLUTION_OTHER                               :other
 

	
 
STR_GAME_OPTIONS_SCREENSHOT_FORMAT                              :{BLACK}Screenshot format
 
STR_GAME_OPTIONS_SCREENSHOT_FORMAT_TOOLTIP                      :{BLACK}Select the screenshot format to use
 

	
 
STR_GAME_OPTIONS_BASE_GRF                                       :{BLACK}Base graphics set
 
STR_GAME_OPTIONS_BASE_GRF_TOOLTIP                               :{BLACK}Select the base graphics set to use
 
STR_GAME_OPTIONS_BASE_GRF_STATUS                                :{RED}{NUM} missing/corrupted file{P "" s}
 
STR_GAME_OPTIONS_BASE_GRF_DESCRIPTION_TOOLTIP                   :{BLACK}Additional information about the base graphics set
 

	
 
STR_GAME_OPTIONS_BASE_SFX                                       :{BLACK}Base sounds set
 
STR_GAME_OPTIONS_BASE_SFX_TOOLTIP                               :{BLACK}Select the base sounds set to use
 
STR_GAME_OPTIONS_BASE_SFX_DESCRIPTION_TOOLTIP                   :{BLACK}Additional information about the base sounds set
 

	
 
STR_GAME_OPTIONS_BASE_MUSIC                                     :{BLACK}Base music set
 
STR_GAME_OPTIONS_BASE_MUSIC_TOOLTIP                             :{BLACK}Select the base music set to use
 
STR_GAME_OPTIONS_BASE_MUSIC_STATUS                              :{RED}{NUM} corrupted file{P "" s}
 
STR_GAME_OPTIONS_BASE_MUSIC_DESCRIPTION_TOOLTIP                 :{BLACK}Additional information about the base music set
 

	
 
STR_ERROR_FULLSCREEN_FAILED                                     :{WHITE}Fullscreen mode failed
 

	
 
# Custom currency window
 

	
 
STR_CURRENCY_WINDOW                                             :{WHITE}Custom currency
 
STR_CURRENCY_EXCHANGE_RATE                                      :{LTBLUE}Exchange rate: {ORANGE}{CURRENCY_LONG} = £ {COMMA}
 
STR_CURRENCY_DECREASE_EXCHANGE_RATE_TOOLTIP                     :{BLACK}Decrease the amount of your currency for one Pound (£)
 
STR_CURRENCY_INCREASE_EXCHANGE_RATE_TOOLTIP                     :{BLACK}Increase the amount of your currency for one Pound (£)
 
STR_CURRENCY_SET_EXCHANGE_RATE_TOOLTIP                          :{BLACK}Set the exchange rate of your currency for one Pound (£)
 

	
 
STR_CURRENCY_SEPARATOR                                          :{LTBLUE}Separator: {ORANGE}{RAW_STRING}
 
STR_CURRENCY_SET_CUSTOM_CURRENCY_SEPARATOR_TOOLTIP              :{BLACK}Set the separator for your currency
 

	
 
STR_CURRENCY_PREFIX                                             :{LTBLUE}Prefix: {ORANGE}{RAW_STRING}
 
STR_CURRENCY_SET_CUSTOM_CURRENCY_PREFIX_TOOLTIP                 :{BLACK}Set the prefix string for your currency
 
STR_CURRENCY_SUFFIX                                             :{LTBLUE}Suffix: {ORANGE}{RAW_STRING}
 
STR_CURRENCY_SET_CUSTOM_CURRENCY_SUFFIX_TOOLTIP                 :{BLACK}Set the suffix string for your currency
 

	
 
STR_CURRENCY_SWITCH_TO_EURO                                     :{LTBLUE}Switch to Euro: {ORANGE}{NUM}
 
STR_CURRENCY_SWITCH_TO_EURO_NEVER                               :{LTBLUE}Switch to Euro: {ORANGE}never
 
STR_CURRENCY_SET_CUSTOM_CURRENCY_TO_EURO_TOOLTIP                :{BLACK}Set the year to switch to Euro
 
STR_CURRENCY_DECREASE_CUSTOM_CURRENCY_TO_EURO_TOOLTIP           :{BLACK}Switch to Euro earlier
 
STR_CURRENCY_INCREASE_CUSTOM_CURRENCY_TO_EURO_TOOLTIP           :{BLACK}Switch to Euro later
 

	
 
STR_CURRENCY_PREVIEW                                            :{LTBLUE}Preview: {ORANGE}{CURRENCY_LONG}
 
STR_CURRENCY_CUSTOM_CURRENCY_PREVIEW_TOOLTIP                    :{BLACK}10000 Pound (£) in your currency
 
STR_CURRENCY_CHANGE_PARAMETER                                   :{BLACK}Change custom currency parameter
 

	
 
STR_DIFFICULTY_LEVEL_SETTING_MAXIMUM_NO_COMPETITORS             :{LTBLUE}Maximum no. competitors: {ORANGE}{COMMA}
 

	
 
STR_NONE                                                        :None
 
STR_FUNDING_ONLY                                                :Funding only
 
STR_MINIMAL                                                     :Minimal
 
STR_NUM_VERY_LOW                                                :Very Low
 
STR_NUM_LOW                                                     :Low
 
STR_NUM_NORMAL                                                  :Normal
 
STR_NUM_HIGH                                                    :High
 
STR_NUM_CUSTOM                                                  :Custom
 
STR_NUM_CUSTOM_NUMBER                                           :Custom ({NUM})
 

	
 
STR_VARIETY_NONE                                                :None
 
STR_VARIETY_VERY_LOW                                            :Very Low
 
STR_VARIETY_LOW                                                 :Low
 
STR_VARIETY_MEDIUM                                              :Medium
 
STR_VARIETY_HIGH                                                :High
 
STR_VARIETY_VERY_HIGH                                           :Very High
 

	
 
STR_AI_SPEED_VERY_SLOW                                          :Very Slow
 
STR_AI_SPEED_SLOW                                               :Slow
 
STR_AI_SPEED_MEDIUM                                             :Medium
 
STR_AI_SPEED_FAST                                               :Fast
 
STR_AI_SPEED_VERY_FAST                                          :Very Fast
 

	
 
STR_SEA_LEVEL_VERY_LOW                                          :Very Low
 
STR_SEA_LEVEL_LOW                                               :Low
 
STR_SEA_LEVEL_MEDIUM                                            :Medium
 
STR_SEA_LEVEL_HIGH                                              :High
 
STR_SEA_LEVEL_CUSTOM                                            :Custom
 
STR_SEA_LEVEL_CUSTOM_PERCENTAGE                                 :Custom ({NUM}%)
 

	
 
STR_RIVERS_NONE                                                 :None
 
STR_RIVERS_FEW                                                  :Few
 
STR_RIVERS_MODERATE                                             :Medium
 
STR_RIVERS_LOT                                                  :Many
 

	
 
STR_DISASTER_NONE                                               :None
 
STR_DISASTER_REDUCED                                            :Reduced
 
STR_DISASTER_NORMAL                                             :Normal
 

	
 
STR_SUBSIDY_X1_5                                                :x1.5
 
STR_SUBSIDY_X2                                                  :x2
 
STR_SUBSIDY_X3                                                  :x3
 
STR_SUBSIDY_X4                                                  :x4
 

	
 
STR_TERRAIN_TYPE_VERY_FLAT                                      :Very Flat
 
STR_TERRAIN_TYPE_FLAT                                           :Flat
 
STR_TERRAIN_TYPE_HILLY                                          :Hilly
 
STR_TERRAIN_TYPE_MOUNTAINOUS                                    :Mountainous
 

	
 
STR_CITY_APPROVAL_PERMISSIVE                                    :Permissive
 
STR_CITY_APPROVAL_TOLERANT                                      :Tolerant
 
STR_CITY_APPROVAL_HOSTILE                                       :Hostile
 

	
 
STR_WARNING_NO_SUITABLE_AI                                      :{WHITE}No suitable AIs available...{}You can download several AIs via the 'Online Content' system
 

	
 
# Advanced settings window
 
STR_CONFIG_SETTING_CAPTION                                      :{WHITE}Advanced Settings
 
STR_CONFIG_SETTING_FILTER_TITLE                                 :{BLACK}Filter string:
 
STR_CONFIG_SETTING_EXPAND_ALL                                   :{BLACK}Expand all
 
STR_CONFIG_SETTING_COLLAPSE_ALL                                 :{BLACK}Collapse all
 
STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT            :(no explanation available)
 
STR_CONFIG_SETTING_DEFAULT_VALUE                                :{LTBLUE}Default value: {ORANGE}{STRING1}
 
STR_CONFIG_SETTING_TYPE                                         :{LTBLUE}Setting type: {ORANGE}{STRING}
 
STR_CONFIG_SETTING_TYPE_CLIENT                                  :Client setting (not stored in saves; affects all games)
 
STR_CONFIG_SETTING_TYPE_GAME_MENU                               :Game setting (stored in saves; affects only new games)
 
STR_CONFIG_SETTING_TYPE_GAME_INGAME                             :Game setting (stored in save; affects only current game)
 
STR_CONFIG_SETTING_TYPE_COMPANY_MENU                            :Company setting (stored in saves; affects only new games)
 
STR_CONFIG_SETTING_TYPE_COMPANY_INGAME                          :Company setting (stored in save; affects only current company)
 

	
 
STR_CONFIG_SETTING_RESTRICT_LABEL                               :{BLACK}Show:
 
STR_CONFIG_SETTING_RESTRICT_DROPDOWN_HELPTEXT                   :{BLACK}Restricts the list below showing only changed settings
 
STR_CONFIG_SETTING_RESTRICT_BASIC                               :Basic settings
 
STR_CONFIG_SETTING_RESTRICT_ADVANCED                            :Advanced settings
 
STR_CONFIG_SETTING_RESTRICT_ALL                                 :Expert settings / all settings
 
STR_CONFIG_SETTING_RESTRICT_CHANGED_AGAINST_DEFAULT             :Settings with a different value than the default
 
STR_CONFIG_SETTING_RESTRICT_CHANGED_AGAINST_NEW                 :Settings with a different value than your new-game settings
 

	
 
STR_CONFIG_SETTING_TYPE_DROPDOWN_HELPTEXT                       :{BLACK}Restricts the list below to certain setting types
 
STR_CONFIG_SETTING_TYPE_DROPDOWN_ALL                            :All settings
 
STR_CONFIG_SETTING_TYPE_DROPDOWN_CLIENT                         :Client settings (not stored in saves; affects all games)
 
STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_MENU                      :Game settings (stored in saves; affects only new games)
 
STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_INGAME                    :Game settings (stored in save; affects only current game)
 
STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_MENU                   :Company settings (stored in saves; affects only new games)
 
STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_INGAME                 :Company settings (stored in save; affects only current company)
 

	
 
STR_CONFIG_SETTING_OFF                                          :Off
 
STR_CONFIG_SETTING_ON                                           :On
 
STR_CONFIG_SETTING_DISABLED                                     :Disabled
 

	
 
STR_CONFIG_SETTING_COMPANIES_OFF                                :Off
 
STR_CONFIG_SETTING_COMPANIES_OWN                                :Own company
 
STR_CONFIG_SETTING_COMPANIES_ALL                                :All companies
 

	
 
STR_CONFIG_SETTING_NONE                                         :None
 
STR_CONFIG_SETTING_ORIGINAL                                     :Original
 
STR_CONFIG_SETTING_REALISTIC                                    :Realistic
 

	
 
STR_CONFIG_SETTING_HORIZONTAL_POS_LEFT                          :Left
 
STR_CONFIG_SETTING_HORIZONTAL_POS_CENTER                        :Centre
 
STR_CONFIG_SETTING_HORIZONTAL_POS_RIGHT                         :Right
 

	
 
STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN                         :Maximum initial loan: {STRING2}
 
STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_HELPTEXT                :Maximum amount a company can loan (without taking inflation into account)
 
STR_CONFIG_SETTING_INTEREST_RATE                                :Interest rate: {STRING2}
 
STR_CONFIG_SETTING_INTEREST_RATE_HELPTEXT                       :Loan interest rate; also controls inflation, if enabled
 
STR_CONFIG_SETTING_RUNNING_COSTS                                :Running costs: {STRING2}
 
STR_CONFIG_SETTING_RUNNING_COSTS_HELPTEXT                       :Set level of maintainance and running costs of vehicles and infrastructure
 
STR_CONFIG_SETTING_CONSTRUCTION_SPEED                           :Construction speed: {STRING2}
 
STR_CONFIG_SETTING_CONSTRUCTION_SPEED_HELPTEXT                  :Limit the amount of construction actions for AIs
 
STR_CONFIG_SETTING_VEHICLE_BREAKDOWNS                           :Vehicle breakdowns: {STRING2}
 
STR_CONFIG_SETTING_VEHICLE_BREAKDOWNS_HELPTEXT                  :Control how often inadequately serviced vehicles may break down
 
STR_CONFIG_SETTING_SUBSIDY_MULTIPLIER                           :Subsidy multiplier: {STRING2}
 
STR_CONFIG_SETTING_SUBSIDY_MULTIPLIER_HELPTEXT                  :Set how much is paid for subsidised connections
 
STR_CONFIG_SETTING_CONSTRUCTION_COSTS                           :Construction costs: {STRING2}
 
STR_CONFIG_SETTING_CONSTRUCTION_COSTS_HELPTEXT                  :Set level of construction and purchase costs
 
STR_CONFIG_SETTING_RECESSIONS                                   :Recessions: {STRING2}
 
STR_CONFIG_SETTING_RECESSIONS_HELPTEXT                          :If enabled, recessions may occur every few years. During a recession all production is significantly lower (it returns to previous level when the recession is over)
 
STR_CONFIG_SETTING_TRAIN_REVERSING                              :Disallow train reversing in stations: {STRING2}
 
STR_CONFIG_SETTING_TRAIN_REVERSING_HELPTEXT                     :If enabled, trains will not reverse in non-terminus stations, even if there is a shorter path to their next destination when reversing
 
STR_CONFIG_SETTING_DISASTERS                                    :Disasters: {STRING2}
 
STR_CONFIG_SETTING_DISASTERS_HELPTEXT                           :Toggle disasters which may occasionally block or destroy vehicles or infrastructure
 
STR_CONFIG_SETTING_CITY_APPROVAL                                :City council's attitude towards area restructuring: {STRING2}
 
STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT                       :Choose how much noise and environmental damage by companies affect their town rating and further construction actions in their area
 

	
 
STR_CONFIG_SETTING_BUILDONSLOPES                                :Allow building on slopes and coasts: {STRING2}
 
STR_CONFIG_SETTING_BUILDONSLOPES_HELPTEXT                       :If enabled, tracks and stations can be build on most slopes. If disabled, they are only allowed on slopes which match the direction of the track and thus require no foundations
 
STR_CONFIG_SETTING_AUTOSLOPE                                    :Allow landscaping under buildings, tracks, etc. (autoslope): {STRING2}
 
STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT                           :Allow landscaping under buildings and tracks without removing them
 
STR_CONFIG_SETTING_CATCHMENT                                    :Allow more realistically sized catchment areas: {STRING2}
 
STR_CONFIG_SETTING_CATCHMENT_HELPTEXT                           :Have differently sized catchment areas for different types of stations and airports
 
STR_CONFIG_SETTING_EXTRADYNAMITE                                :Allow removal of more town-owned roads, bridges and tunnels: {STRING2}
 
STR_CONFIG_SETTING_EXTRADYNAMITE_HELPTEXT                       :Make it easier to remove town-owned infrastructure and buildings
 
STR_CONFIG_SETTING_TRAIN_LENGTH                                 :Maximum length of trains: {STRING2}
 
STR_CONFIG_SETTING_TRAIN_LENGTH_HELPTEXT                        :Set the maximum length of trains
 
STR_CONFIG_SETTING_TILE_LENGTH                                  :{COMMA} tile{P 0 "" s}
 
STR_CONFIG_SETTING_SMOKE_AMOUNT                                 :Amount of vehicle smoke/sparks: {STRING2}
 
STR_CONFIG_SETTING_SMOKE_AMOUNT_HELPTEXT                        :Set how much smoke or how many sparks are emitted by vehicles
 
STR_CONFIG_SETTING_TRAIN_ACCELERATION_MODEL                     :Train acceleration model: {STRING2}
 
STR_CONFIG_SETTING_TRAIN_ACCELERATION_MODEL_HELPTEXT            :Select the physics model for train acceleration. The "original" model penalises slopes equally for all vehicles. The "realistic" model penalises slopes and curves depending on various properties of the consist, like length and tractive effort
 
STR_CONFIG_SETTING_ROAD_VEHICLE_ACCELERATION_MODEL              :Road vehicle acceleration model: {STRING2}
 
STR_CONFIG_SETTING_ROAD_VEHICLE_ACCELERATION_MODEL_HELPTEXT     :Select the physics model for road vehicle acceleration. The "original" model penalises slopes equally for all vehicles. The "realistic" model penalises slopes depending on various properties of the engine, for example 'tractive effort'
 
STR_CONFIG_SETTING_TRAIN_SLOPE_STEEPNESS                        :Slope steepness for trains: {STRING2}
 
STR_CONFIG_SETTING_TRAIN_SLOPE_STEEPNESS_HELPTEXT               :Steepness of a sloped tile for a train. Higher values make it more difficult to climb a hill
 
STR_CONFIG_SETTING_PERCENTAGE                                   :{COMMA}%
 
STR_CONFIG_SETTING_ROAD_VEHICLE_SLOPE_STEEPNESS                 :Slope steepness for road vehicles: {STRING2}
 
STR_CONFIG_SETTING_ROAD_VEHICLE_SLOPE_STEEPNESS_HELPTEXT        :Steepness of a sloped tile for a road vehicle. Higher values make it more difficult to climb a hill
 
STR_CONFIG_SETTING_FORBID_90_DEG                                :Forbid trains and ships from making 90° turns: {STRING2}
 
STR_CONFIG_SETTING_FORBID_90_DEG_HELPTEXT                       :90 degree turns occur when a horizontal track is directly followed by a vertical track piece on the adjacent tile, thus making the train turn by 90 degree when traversing the tile edge instead of the usual 45 degrees for other track combinations. This also applies to the turning radius of ships
 
STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS                        :Allow to join stations not directly adjacent: {STRING2}
 
STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS_HELPTEXT               :Allow adding parts to a station without directly touching the existing parts. Needs Ctrl+Click while placing the new parts
 
STR_CONFIG_SETTING_IMPROVEDLOAD                                 :Use improved loading algorithm: {STRING2}
 
STR_CONFIG_SETTING_IMPROVEDLOAD_HELPTEXT                        :If enabled, multiple vehicles waiting at a station are loaded sequentially. Loading of the next vehicle only starts when there is enough cargo waiting to completely fill the first vehicle
 
STR_CONFIG_SETTING_GRADUAL_LOADING                              :Load vehicles gradually: {STRING2}
 
STR_CONFIG_SETTING_GRADUAL_LOADING_HELPTEXT                     :Gradually load vehicles using vehicle specific loading durations, instead of loading everything at once with a fixed time depending only on the amount of cargo loaded
 
STR_CONFIG_SETTING_INFLATION                                    :Inflation: {STRING2}
src/toolbar_gui.cpp
Show inline comments
 
/* $Id$ */
 

	
 
/*
 
 * This file is part of OpenTTD.
 
 * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
 
 * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 
 * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
 
 */
 

	
 
/** @file toolbar_gui.cpp Code related to the (main) toolbar. */
 

	
 
#include "stdafx.h"
 
#include "gui.h"
 
#include "window_gui.h"
 
#include "window_func.h"
 
#include "viewport_func.h"
 
#include "command_func.h"
 
#include "vehicle_gui.h"
 
#include "rail_gui.h"
 
#include "road_gui.h"
 
#include "date_func.h"
 
#include "vehicle_func.h"
 
#include "sound_func.h"
 
#include "terraform_gui.h"
 
#include "strings_func.h"
 
#include "company_func.h"
 
#include "company_gui.h"
 
#include "vehicle_base.h"
 
#include "cheat_func.h"
 
#include "transparency_gui.h"
 
#include "screenshot.h"
 
#include "signs_func.h"
 
#include "fios.h"
 
#include "console_gui.h"
 
#include "news_gui.h"
 
#include "ai/ai_gui.hpp"
 
#include "tilehighlight_func.h"
 
#include "smallmap_gui.h"
 
#include "graph_gui.h"
 
#include "textbuf_gui.h"
 
#include "linkgraph/linkgraph_gui.h"
 
#include "newgrf_debug.h"
 
#include "hotkeys.h"
 
#include "engine_base.h"
 
#include "highscore.h"
 
#include "game/game.hpp"
 

	
 
#include "widgets/toolbar_widget.h"
 

	
 
#include "network/network.h"
 
#include "network/network_gui.h"
 
#include "network/network_func.h"
 

	
 

	
 
RailType _last_built_railtype;
 
RoadType _last_built_roadtype;
 

	
 
static ScreenshotType _confirmed_screenshot_type; ///< Screenshot type the current query is about to confirm.
 

	
 
/** Toobar modes */
 
enum ToolbarMode {
 
	TB_NORMAL,
 
	TB_UPPER,
 
	TB_LOWER
 
};
 

	
 
/** Callback functions. */
 
enum CallBackFunction {
 
	CBF_NONE,
 
	CBF_PLACE_SIGN,
 
	CBF_PLACE_LANDINFO,
 
};
 

	
 
/**
 
 * Drop down list entry for showing a checked/unchecked toggle item.
 
 */
 
class DropDownListCheckedItem : public DropDownListStringItem {
 
	uint checkmark_width;
 
public:
 
	bool checked;
 

	
 
	DropDownListCheckedItem(StringID string, int result, bool masked, bool checked) : DropDownListStringItem(string, result, masked), checked(checked)
 
	{
 
		this->checkmark_width = GetStringBoundingBox(STR_JUST_CHECKMARK).width + 3;
 
	}
 

	
 
	virtual ~DropDownListCheckedItem() {}
 

	
 
	uint Width() const
 
	{
 
		return DropDownListStringItem::Width() + this->checkmark_width;
 
	}
 

	
 
	void Draw(int left, int right, int top, int bottom, bool sel, int bg_colour) const
 
	{
 
		bool rtl = _current_text_dir == TD_RTL;
 
		if (this->checked) {
 
			DrawString(left + WD_FRAMERECT_LEFT, right - WD_FRAMERECT_RIGHT, top, STR_JUST_CHECKMARK, sel ? TC_WHITE : TC_BLACK);
 
		}
 
		DrawString(left + WD_FRAMERECT_LEFT + (rtl ? 0 : this->checkmark_width), right - WD_FRAMERECT_RIGHT - (rtl ? this->checkmark_width : 0), top, this->String(), sel ? TC_WHITE : TC_BLACK);
 
	}
 
};
 

	
 
/**
 
 * Drop down list entry for showing a company entry, with companies 'blob'.
 
 */
 
class DropDownListCompanyItem : public DropDownListItem {
 
	Dimension icon_size;
 
public:
 
	bool greyed;
 

	
 
	DropDownListCompanyItem(int result, bool masked, bool greyed) : DropDownListItem(result, masked), greyed(greyed)
 
	{
 
		this->icon_size = GetSpriteSize(SPR_COMPANY_ICON);
 
	}
 

	
 
	virtual ~DropDownListCompanyItem() {}
 

	
 
	bool Selectable() const
 
	{
 
		return true;
 
	}
 

	
 
	uint Width() const
 
	{
 
		CompanyID company = (CompanyID)this->result;
 
		SetDParam(0, company);
 
		SetDParam(1, company);
 
		return GetStringBoundingBox(STR_COMPANY_NAME_COMPANY_NUM).width + this->icon_size.width + 3;
 
	}
 

	
 
	uint Height(uint width) const
 
	{
 
		return max(this->icon_size.height + 2U, (uint)FONT_HEIGHT_NORMAL);
 
	}
 

	
 
	void Draw(int left, int right, int top, int bottom, bool sel, int bg_colour) const
 
	{
 
		CompanyID company = (CompanyID)this->result;
 
		bool rtl = _current_text_dir == TD_RTL;
 

	
 
		/* It's possible the company is deleted while the dropdown is open */
 
		if (!Company::IsValidID(company)) return;
 

	
 
		int icon_offset = (bottom - top - icon_size.height) / 2;
 
		int text_offset = (bottom - top - FONT_HEIGHT_NORMAL) / 2;
 

	
 
		DrawCompanyIcon(company, rtl ? right - this->icon_size.width - WD_FRAMERECT_RIGHT : left + WD_FRAMERECT_LEFT, top + icon_offset);
 

	
 
		SetDParam(0, company);
 
		SetDParam(1, company);
 
		TextColour col;
 
		if (this->greyed) {
 
			col = (sel ? TC_SILVER : TC_GREY) | TC_NO_SHADE;
 
		} else {
 
			col = sel ? TC_WHITE : TC_BLACK;
 
		}
 
		DrawString(left + WD_FRAMERECT_LEFT + (rtl ? 0 : 3 + this->icon_size.width), right - WD_FRAMERECT_RIGHT - (rtl ? 3 + this->icon_size.width : 0), top + text_offset, STR_COMPANY_NAME_COMPANY_NUM, col);
 
	}
 
};
 

	
 
/**
 
 * Pop up a generic text only menu.
 
 * @param w Toolbar
 
 * @param widget Toolbar button
 
 * @param list List of items
 
 * @param def Default item
 
 */
 
static void PopupMainToolbMenu(Window *w, int widget, DropDownList *list, int def)
 
{
 
	ShowDropDownList(w, list, def, widget, 0, true, true);
 
	if (_settings_client.sound.click_beep) SndPlayFx(SND_15_BEEP);
 
}
 

	
 
/**
 
 * Pop up a generic text only menu.
 
 * @param w Toolbar
 
 * @param widget Toolbar button
 
 * @param string String for the first item in the menu
 
 * @param count Number of items in the menu
 
 * @param skip Hide first \a skip items in the menu
 
 */
 
static void PopupMainToolbMenu(Window *w, int widget, StringID string, int count, int skip = 0)
 
{
 
	DropDownList *list = new DropDownList();
 
	for (int i = skip; i < count; i++) {
 
		list->push_back(new DropDownListStringItem(string + i, i, false));
 
	}
 
	ShowDropDownList(w, list, skip, widget, 140, true, true);
 
	if (_settings_client.sound.click_beep) SndPlayFx(SND_15_BEEP);
 
	PopupMainToolbMenu(w, widget, list, skip);
 
}
 

	
 
/** Enum for the Company Toolbar's network related buttons */
 
static const int CTMN_CLIENT_LIST = -1; ///< Show the client list
 
static const int CTMN_NEW_COMPANY = -2; ///< Create a new company
 
static const int CTMN_SPECTATE    = -3; ///< Become spectator
 

	
 
/**
 
 * Pop up a generic company list menu.
 
 */
 
static void PopupMainCompanyToolbMenu(Window *w, int widget, int grey = 0)
 
{
 
	DropDownList *list = new DropDownList();
 

	
 
#ifdef ENABLE_NETWORK
 
	if (widget == WID_TN_COMPANIES && _networking) {
 
		/* Add the client list button for the companies menu */
 
		list->push_back(new DropDownListStringItem(STR_NETWORK_COMPANY_LIST_CLIENT_LIST, CTMN_CLIENT_LIST, false));
 

	
 
		if (_local_company == COMPANY_SPECTATOR) {
 
			list->push_back(new DropDownListStringItem(STR_NETWORK_COMPANY_LIST_NEW_COMPANY, CTMN_NEW_COMPANY, NetworkMaxCompaniesReached()));
 
		} else {
 
			list->push_back(new DropDownListStringItem(STR_NETWORK_COMPANY_LIST_SPECTATE, CTMN_SPECTATE, NetworkMaxSpectatorsReached()));
 
		}
 
	}
 
#endif /* ENABLE_NETWORK */
 

	
 
	for (CompanyID c = COMPANY_FIRST; c < MAX_COMPANIES; c++) {
 
		if (!Company::IsValidID(c)) continue;
 
		list->push_back(new DropDownListCompanyItem(c, false, HasBit(grey, c)));
 
	}
 

	
 
	ShowDropDownList(w, list, _local_company == COMPANY_SPECTATOR ? CTMN_CLIENT_LIST : (int)_local_company, widget, 240, true, true);
 
	if (_settings_client.sound.click_beep) SndPlayFx(SND_15_BEEP);
 
	PopupMainToolbMenu(w, widget, list, _local_company == COMPANY_SPECTATOR ? CTMN_CLIENT_LIST : (int)_local_company);
 
}
 

	
 

	
 
static ToolbarMode _toolbar_mode;
 

	
 
static CallBackFunction SelectSignTool()
 
{
 
	if (_cursor.sprite == SPR_CURSOR_SIGN) {
 
		ResetObjectToPlace();
 
		return CBF_NONE;
 
	} else {
 
		SetObjectToPlace(SPR_CURSOR_SIGN, PAL_NONE, HT_RECT, WC_MAIN_TOOLBAR, 0);
 
		return CBF_PLACE_SIGN;
 
	}
 
}
 

	
 
/* --- Pausing --- */
 

	
 
static CallBackFunction ToolbarPauseClick(Window *w)
 
{
 
	if (_networking && !_network_server) return CBF_NONE; // only server can pause the game
 

	
 
	if (DoCommandP(0, PM_PAUSED_NORMAL, _pause_mode == PM_UNPAUSED, CMD_PAUSE)) {
 
		if (_settings_client.sound.confirm) SndPlayFx(SND_15_BEEP);
 
	}
 
	return CBF_NONE;
 
}
 

	
 
/**
 
 * Toggle fast forward mode.
 
 *
 
 * @param w Unused.
 
 * @return #CBF_NONE
 
 */
 
static CallBackFunction ToolbarFastForwardClick(Window *w)
 
{
 
	_fast_forward ^= true;
 
	if (_settings_client.sound.click_beep) SndPlayFx(SND_15_BEEP);
 
	return CBF_NONE;
 
}
 

	
 
/**
 
 * Game Option button menu entries.
 
 */
 
enum OptionMenuEntries {
 
	OME_GAMEOPTIONS,
 
	OME_SETTINGS,
 
	OME_SCRIPT_SETTINGS,
 
	OME_NEWGRFSETTINGS,
 
	OME_TRANSPARENCIES,
 
	OME_SHOW_TOWNNAMES,
 
	OME_SHOW_STATIONNAMES,
 
	OME_SHOW_WAYPOINTNAMES,
 
	OME_SHOW_SIGNS,
 
	OME_SHOW_COMPETITOR_SIGNS,
 
	OME_FULL_ANIMATION,
 
	OME_FULL_DETAILS,
 
	OME_TRANSPARENTBUILDINGS,
 
	OME_SHOW_STATIONSIGNS,
 
};
 

	
 
/**
 
 * Handle click on Options button in toolbar.
 
 *
 
 * @param w parent window the shown Drop down list is attached to.
 
 * @return #CBF_NONE
 
 */
 
static CallBackFunction ToolbarOptionsClick(Window *w)
 
{
 
	DropDownList *list = new DropDownList();
 
	list->push_back(new DropDownListStringItem(STR_SETTINGS_MENU_GAME_OPTIONS,             OME_GAMEOPTIONS, false));
 
	list->push_back(new DropDownListStringItem(STR_SETTINGS_MENU_CONFIG_SETTINGS,          OME_SETTINGS, false));
 
	/* Changes to the per-AI settings don't get send from the server to the clients. Clients get
 
	 * the settings once they join but never update it. As such don't show the window at all
 
	 * to network clients. */
 
	if (!_networking || _network_server) list->push_back(new DropDownListStringItem(STR_SETTINGS_MENU_SCRIPT_SETTINGS, OME_SCRIPT_SETTINGS, false));
 
	list->push_back(new DropDownListStringItem(STR_SETTINGS_MENU_NEWGRF_SETTINGS,          OME_NEWGRFSETTINGS, false));
 
	list->push_back(new DropDownListStringItem(STR_SETTINGS_MENU_TRANSPARENCY_OPTIONS,     OME_TRANSPARENCIES, false));
 
	list->push_back(new DropDownListItem(-1, false));
 
	list->push_back(new DropDownListCheckedItem(STR_SETTINGS_MENU_TOWN_NAMES_DISPLAYED,    OME_SHOW_TOWNNAMES, false, HasBit(_display_opt, DO_SHOW_TOWN_NAMES)));
 
	list->push_back(new DropDownListCheckedItem(STR_SETTINGS_MENU_STATION_NAMES_DISPLAYED, OME_SHOW_STATIONNAMES, false, HasBit(_display_opt, DO_SHOW_STATION_NAMES)));
 
	list->push_back(new DropDownListCheckedItem(STR_SETTINGS_MENU_WAYPOINTS_DISPLAYED,     OME_SHOW_WAYPOINTNAMES, false, HasBit(_display_opt, DO_SHOW_WAYPOINT_NAMES)));
 
	list->push_back(new DropDownListCheckedItem(STR_SETTINGS_MENU_SIGNS_DISPLAYED,         OME_SHOW_SIGNS, false, HasBit(_display_opt, DO_SHOW_SIGNS)));
 
	list->push_back(new DropDownListCheckedItem(STR_SETTINGS_MENU_SHOW_COMPETITOR_SIGNS,   OME_SHOW_COMPETITOR_SIGNS, false, HasBit(_display_opt, DO_SHOW_COMPETITOR_SIGNS)));
 
	list->push_back(new DropDownListCheckedItem(STR_SETTINGS_MENU_FULL_ANIMATION,          OME_FULL_ANIMATION, false, HasBit(_display_opt, DO_FULL_ANIMATION)));
 
	list->push_back(new DropDownListCheckedItem(STR_SETTINGS_MENU_FULL_DETAIL,             OME_FULL_DETAILS, false, HasBit(_display_opt, DO_FULL_DETAIL)));
 
	list->push_back(new DropDownListCheckedItem(STR_SETTINGS_MENU_TRANSPARENT_BUILDINGS,   OME_TRANSPARENTBUILDINGS, false, IsTransparencySet(TO_HOUSES)));
 
	list->push_back(new DropDownListCheckedItem(STR_SETTINGS_MENU_TRANSPARENT_SIGNS,       OME_SHOW_STATIONSIGNS, false, IsTransparencySet(TO_SIGNS)));
 

	
 
	ShowDropDownList(w, list, 0, WID_TN_SETTINGS, 140, true, true);
 
	if (_settings_client.sound.click_beep) SndPlayFx(SND_15_BEEP);
 
	return CBF_NONE;
 
}
 

	
 
/**
 
 * Handle click on one of the entries in the Options button menu.
 
 *
 
 * @param index Index being clicked.
 
 * @return #CBF_NONE
 
 */
 
static CallBackFunction MenuClickSettings(int index)
 
{
 
	switch (index) {
 
		case OME_GAMEOPTIONS:          ShowGameOptions();                               return CBF_NONE;
 
		case OME_SETTINGS:             ShowGameSettings();                              return CBF_NONE;
 
		case OME_SCRIPT_SETTINGS:      ShowAIConfigWindow();                            return CBF_NONE;
 
		case OME_NEWGRFSETTINGS:       ShowNewGRFSettings(!_networking && _settings_client.gui.UserIsAllowedToChangeNewGRFs(), true, true, &_grfconfig); return CBF_NONE;
 
		case OME_TRANSPARENCIES:       ShowTransparencyToolbar();                       break;
 

	
 
		case OME_SHOW_TOWNNAMES:       ToggleBit(_display_opt, DO_SHOW_TOWN_NAMES);     break;
 
		case OME_SHOW_STATIONNAMES:    ToggleBit(_display_opt, DO_SHOW_STATION_NAMES);  break;
 
		case OME_SHOW_WAYPOINTNAMES:   ToggleBit(_display_opt, DO_SHOW_WAYPOINT_NAMES); break;
 
		case OME_SHOW_SIGNS:           ToggleBit(_display_opt, DO_SHOW_SIGNS);          break;
 
		case OME_SHOW_COMPETITOR_SIGNS:
 
			ToggleBit(_display_opt, DO_SHOW_COMPETITOR_SIGNS);
 
			InvalidateWindowClassesData(WC_SIGN_LIST, -1);
 
			break;
 
		case OME_FULL_ANIMATION:       ToggleBit(_display_opt, DO_FULL_ANIMATION);      break;
 
		case OME_FULL_DETAILS:         ToggleBit(_display_opt, DO_FULL_DETAIL);         break;
 
		case OME_TRANSPARENTBUILDINGS: ToggleTransparency(TO_HOUSES);                   break;
 
		case OME_SHOW_STATIONSIGNS:    ToggleTransparency(TO_SIGNS);                    break;
 
	}
 
	MarkWholeScreenDirty();
 
	return CBF_NONE;
 
}
 

	
 
/**
 
 * SaveLoad entries in scenario editor mode.
 
 */
 
enum SaveLoadEditorMenuEntries {
 
	SLEME_SAVE_SCENARIO   = 0,
 
	SLEME_LOAD_SCENARIO,
 
	SLEME_SAVE_HEIGHTMAP,
 
	SLEME_LOAD_HEIGHTMAP,
 
	SLEME_EXIT_TOINTRO,
 
	SLEME_EXIT_GAME       = 6,
 
	SLEME_MENUCOUNT,
 
};
 

	
 
/**
 
 * SaveLoad entries in normal game mode.
 
 */
 
enum SaveLoadNormalMenuEntries {
 
	SLNME_SAVE_GAME   = 0,
 
	SLNME_LOAD_GAME,
 
	SLNME_EXIT_TOINTRO,
 
	SLNME_EXIT_GAME = 4,
 
	SLNME_MENUCOUNT,
 
};
 

	
 
/**
 
 * Handle click on Save button in toolbar in normal game mode.
 
 *
 
 * @param w parent window the shown save dialogue is attached to.
 
 * @return #CBF_NONE
 
 */
 
static CallBackFunction ToolbarSaveClick(Window *w)
 
{
 
	PopupMainToolbMenu(w, WID_TN_SAVE, STR_FILE_MENU_SAVE_GAME, SLNME_MENUCOUNT);
 
	return CBF_NONE;
 
}
 

	
 
/**
 
 * Handle click on SaveLoad button in toolbar in the scenario editor.
 
 *
 
 * @param w parent window the shown save dialogue is attached to.
 
 * @return #CBF_NONE
 
 */
 
static CallBackFunction ToolbarScenSaveOrLoad(Window *w)
 
{
 
	PopupMainToolbMenu(w, WID_TE_SAVE, STR_SCENEDIT_FILE_MENU_SAVE_SCENARIO, SLEME_MENUCOUNT);
 
	return CBF_NONE;
 
}
 

	
 
/**
 
 * Handle click on one of the entries in the SaveLoad menu.
 
 *
 
 * @param index Index being clicked.
 
 * @return #CBF_NONE
 
 */
 
static CallBackFunction MenuClickSaveLoad(int index = 0)
 
{
 
	if (_game_mode == GM_EDITOR) {
 
		switch (index) {
 
			case SLEME_SAVE_SCENARIO:  ShowSaveLoadDialog(SLD_SAVE_SCENARIO);  break;
 
			case SLEME_LOAD_SCENARIO:  ShowSaveLoadDialog(SLD_LOAD_SCENARIO);  break;
 
			case SLEME_SAVE_HEIGHTMAP: ShowSaveLoadDialog(SLD_SAVE_HEIGHTMAP); break;
 
			case SLEME_LOAD_HEIGHTMAP: ShowSaveLoadDialog(SLD_LOAD_HEIGHTMAP); break;
 
			case SLEME_EXIT_TOINTRO:   AskExitToGameMenu();                    break;
 
			case SLEME_EXIT_GAME:      HandleExitGameRequest();                break;
 
		}
 
	} else {
 
		switch (index) {
 
			case SLNME_SAVE_GAME:      ShowSaveLoadDialog(SLD_SAVE_GAME); break;
 
			case SLNME_LOAD_GAME:      ShowSaveLoadDialog(SLD_LOAD_GAME); break;
 
			case SLNME_EXIT_TOINTRO:   AskExitToGameMenu();               break;
 
			case SLNME_EXIT_GAME:      HandleExitGameRequest();           break;
 
		}
 
	}
 
	return CBF_NONE;
 
}
 

	
 
/* --- Map button menu --- */
 

	
 
enum MapMenuEntries {
 
	MME_SHOW_SMALLMAP        = 0,
 
	MME_SHOW_EXTRAVIEWPORTS,
 
	MME_SHOW_LINKGRAPH,
 
	MME_SHOW_SIGNLISTS,
 
	MME_SHOW_TOWNDIRECTORY,    ///< This entry is only used in Editor mode
 
	MME_MENUCOUNT_NORMAL     = 4,
 
	MME_MENUCOUNT_EDITOR     = 5,
 
	MME_SHOW_TOWNDIRECTORY,
 
	MME_SHOW_INDUSTRYDIRECTORY,
 
};
 

	
 
static CallBackFunction ToolbarMapClick(Window *w)
 
{
 
	PopupMainToolbMenu(w, WID_TN_SMALL_MAP, STR_MAP_MENU_MAP_OF_WORLD, MME_MENUCOUNT_NORMAL);
 
	DropDownList *list = new DropDownList();
 
	list->push_back(new DropDownListStringItem(STR_MAP_MENU_MAP_OF_WORLD,            MME_SHOW_SMALLMAP,          false));
 
	list->push_back(new DropDownListStringItem(STR_MAP_MENU_EXTRA_VIEW_PORT,         MME_SHOW_EXTRAVIEWPORTS,    false));
 
	list->push_back(new DropDownListStringItem(STR_MAP_MENU_LINGRAPH_LEGEND,         MME_SHOW_LINKGRAPH,         false));
 
	list->push_back(new DropDownListStringItem(STR_MAP_MENU_SIGN_LIST,               MME_SHOW_SIGNLISTS,         false));
 
	PopupMainToolbMenu(w, WID_TN_SMALL_MAP, list, 0);
 
	return CBF_NONE;
 
}
 

	
 
static CallBackFunction ToolbarScenMapTownDir(Window *w)
 
{
 
	PopupMainToolbMenu(w, WID_TE_SMALL_MAP, STR_MAP_MENU_MAP_OF_WORLD, MME_MENUCOUNT_EDITOR);
 
	DropDownList *list = new DropDownList();
 
	list->push_back(new DropDownListStringItem(STR_MAP_MENU_MAP_OF_WORLD,            MME_SHOW_SMALLMAP,          false));
 
	list->push_back(new DropDownListStringItem(STR_MAP_MENU_EXTRA_VIEW_PORT,         MME_SHOW_EXTRAVIEWPORTS,    false));
 
	list->push_back(new DropDownListStringItem(STR_MAP_MENU_SIGN_LIST,               MME_SHOW_SIGNLISTS,         false));
 
	list->push_back(new DropDownListStringItem(STR_TOWN_MENU_TOWN_DIRECTORY,         MME_SHOW_TOWNDIRECTORY,     false));
 
	list->push_back(new DropDownListStringItem(STR_INDUSTRY_MENU_INDUSTRY_DIRECTORY, MME_SHOW_INDUSTRYDIRECTORY, false));
 
	PopupMainToolbMenu(w, WID_TE_SMALL_MAP, list, 0);
 
	return CBF_NONE;
 
}
 

	
 
/**
 
 * Handle click on one of the entries in the Map menu.
 
 *
 
 * @param index Index being clicked.
 
 * @return #CBF_NONE
 
 */
 
static CallBackFunction MenuClickMap(int index)
 
{
 
	switch (index) {
 
		case MME_SHOW_SMALLMAP:       ShowSmallMap();            break;
 
		case MME_SHOW_EXTRAVIEWPORTS: ShowExtraViewPortWindow(); break;
 
		case MME_SHOW_LINKGRAPH:      ShowLinkGraphLegend();     break;
 
		case MME_SHOW_SIGNLISTS:      ShowSignList();            break;
 
		case MME_SHOW_TOWNDIRECTORY:  if (_game_mode == GM_EDITOR) ShowTownDirectory(); break;
 
		case MME_SHOW_TOWNDIRECTORY:  ShowTownDirectory();       break;
 
		case MME_SHOW_INDUSTRYDIRECTORY: ShowIndustryDirectory(); break;
 
	}
 
	return CBF_NONE;
 
}
 

	
 
/* --- Town button menu --- */
 

	
 
static CallBackFunction ToolbarTownClick(Window *w)
 
{
 
	PopupMainToolbMenu(w, WID_TN_TOWNS, STR_TOWN_MENU_TOWN_DIRECTORY, (_settings_game.economy.found_town == TF_FORBIDDEN) ? 1 : 2);
 
	return CBF_NONE;
 
}
 

	
 
/**
 
 * Handle click on one of the entries in the Town menu.
 
 *
 
 * @param index Index being clicked.
 
 * @return #CBF_NONE
 
 */
 
static CallBackFunction MenuClickTown(int index)
 
{
 
	switch (index) {
 
		case 0: ShowTownDirectory(); break;
 
		case 1: // setting could be changed when the dropdown was open
 
			if (_settings_game.economy.found_town != TF_FORBIDDEN) ShowFoundTownWindow();
 
			break;
 
	}
 
	return CBF_NONE;
 
}
 

	
 
/* --- Subidies button menu --- */
 

	
 
static CallBackFunction ToolbarSubsidiesClick(Window *w)
 
{
 
	PopupMainToolbMenu(w, WID_TN_SUBSIDIES, STR_SUBSIDIES_MENU_SUBSIDIES, 1);
 
	return CBF_NONE;
 
}
 

	
 
/**
 
 * Handle click on the entry in the Subsidies menu.
 
 *
 
 * @param index Unused.
 
 * @return #CBF_NONE
 
 */
 
static CallBackFunction MenuClickSubsidies(int index)
 
{
 
	switch (index) {
 
		case 0: ShowSubsidiesList(); break;
 
	}
 
	return CBF_NONE;
 
}
 

	
 
/* --- Stations button menu --- */
 

	
 
static CallBackFunction ToolbarStationsClick(Window *w)
 
{
 
	PopupMainCompanyToolbMenu(w, WID_TN_STATIONS);
 
	return CBF_NONE;
 
}
 

	
 
/**
 
 * Handle click on the entry in the Stations menu
 
 *
 
 * @param index CompanyID to show station list for
 
 * @return #CBF_NONE
 
 */
 
static CallBackFunction MenuClickStations(int index)
 
{
 
	ShowCompanyStations((CompanyID)index);
 
	return CBF_NONE;
 
}
 

	
 
/* --- Finances button menu --- */
 

	
 
static CallBackFunction ToolbarFinancesClick(Window *w)
 
{
 
	PopupMainCompanyToolbMenu(w, WID_TN_FINANCES);
 
	return CBF_NONE;
 
}
 

	
 
/**
 
 * Handle click on the entry in the finances overview menu.
 
 *
 
 * @param index CompanyID to show finances for.
 
 * @return #CBF_NONE
 
 */
 
static CallBackFunction MenuClickFinances(int index)
 
{
 
	ShowCompanyFinances((CompanyID)index);
 
	return CBF_NONE;
 
}
 

	
 
/* --- Company's button menu --- */
 

	
 
static CallBackFunction ToolbarCompaniesClick(Window *w)
 
{
 
	PopupMainCompanyToolbMenu(w, WID_TN_COMPANIES);
 
	return CBF_NONE;
 
}
 

	
 
/**
 
 * Handle click on the entry in the Company menu.
 
 *
 
 * @param index Menu entry to handle.
 
 * @return #CBF_NONE
 
 */
 
static CallBackFunction MenuClickCompany(int index)
 
{
 
#ifdef ENABLE_NETWORK
 
	if (_networking) {
 
		switch (index) {
 
			case CTMN_CLIENT_LIST:
 
				ShowClientList();
 
				return CBF_NONE;
 

	
 
			case CTMN_NEW_COMPANY:
 
				if (_network_server) {
 
					DoCommandP(0, 0, _network_own_client_id, CMD_COMPANY_CTRL);
 
				} else {
 
					NetworkSendCommand(0, 0, 0, CMD_COMPANY_CTRL, NULL, NULL, _local_company);
 
				}
 
				return CBF_NONE;
 

	
 
			case CTMN_SPECTATE:
 
				if (_network_server) {
 
					NetworkServerDoMove(CLIENT_ID_SERVER, COMPANY_SPECTATOR);
 
					MarkWholeScreenDirty();
 
				} else {
 
					NetworkClientRequestMove(COMPANY_SPECTATOR);
 
				}
 
				return CBF_NONE;
 
		}
 
	}
 
#endif /* ENABLE_NETWORK */
 
	ShowCompany((CompanyID)index);
 
	return CBF_NONE;
 
}
 

	
 
/* --- Graphs button menu --- */
 

	
 
static CallBackFunction ToolbarGraphsClick(Window *w)
 
{
 
	PopupMainToolbMenu(w, WID_TN_GRAPHS, STR_GRAPH_MENU_OPERATING_PROFIT_GRAPH, (_toolbar_mode == TB_NORMAL) ? 6 : 8);
 
	return CBF_NONE;
 
}
 

	
 
/**
 
 * Handle click on the entry in the Graphs menu.
 
 *
 
 * @param index Graph to show.
 
 * @return #CBF_NONE
 
 */
 
static CallBackFunction MenuClickGraphs(int index)
 
{
 
	switch (index) {
 
		case 0: ShowOperatingProfitGraph();    break;
 
		case 1: ShowIncomeGraph();             break;
 
		case 2: ShowDeliveredCargoGraph();     break;
 
		case 3: ShowPerformanceHistoryGraph(); break;
 
		case 4: ShowCompanyValueGraph();       break;
 
		case 5: ShowCargoPaymentRates();       break;
 
		/* functions for combined graphs/league button */
 
		case 6: ShowCompanyLeagueTable();      break;
 
		case 7: ShowPerformanceRatingDetail(); break;
 
	}
 
	return CBF_NONE;
 
}
 

	
 
/* --- League button menu --- */
 

	
 
static CallBackFunction ToolbarLeagueClick(Window *w)
 
{
 
	PopupMainToolbMenu(w, WID_TN_LEAGUE, STR_GRAPH_MENU_GOAL, _networking ? 3 : 4, Game::GetInstance() != NULL ? 0 : 1);
 
	return CBF_NONE;
 
}
 

	
 
/**
 
 * Handle click on the entry in the CompanyLeague menu.
 
 *
 
 * @param index Menu entry number.
 
 * @return #CBF_NONE
 
 */
 
static CallBackFunction MenuClickLeague(int index)
 
{
 
	switch (index) {
 
		case 0: ShowGoalsList();               break;
 
		case 1: ShowCompanyLeagueTable();      break;
 
		case 2: ShowPerformanceRatingDetail(); break;
 
		case 3: ShowHighscoreTable();          break;
 
	}
 
	return CBF_NONE;
 
}
 

	
 
/* --- Industries button menu --- */
 

	
 
static CallBackFunction ToolbarIndustryClick(Window *w)
 
{
 
	/* Disable build-industry menu if we are a spectator */
 
	PopupMainToolbMenu(w, WID_TN_INDUSTRIES, STR_INDUSTRY_MENU_INDUSTRY_DIRECTORY, (_local_company == COMPANY_SPECTATOR) ? 2 : 3);
 
	return CBF_NONE;
 
}
 

	
 
/**
 
 * Handle click on the entry in the Industry menu.
 
 *
 
 * @param index Menu entry number.
 
 * @return #CBF_NONE
 
 */
 
static CallBackFunction MenuClickIndustry(int index)
 
{
 
	switch (index) {
 
		case 0: ShowIndustryDirectory();     break;
 
		case 1: ShowIndustryCargoesWindow(); break;
 
		case 2: ShowBuildIndustryWindow();   break;
 
	}
 
	return CBF_NONE;
 
}
 

	
 
/* --- Trains button menu + 1 helper function for all vehicles. --- */
 

	
 
static void ToolbarVehicleClick(Window *w, VehicleType veh)
 
{
 
	const Vehicle *v;
 
	int dis = ~0;
 

	
 
	FOR_ALL_VEHICLES(v) {
 
		if (v->type == veh && v->IsPrimaryVehicle()) ClrBit(dis, v->owner);
 
	}
 
	PopupMainCompanyToolbMenu(w, WID_TN_VEHICLE_START + veh, dis);
 
}
 

	
 

	
 
static CallBackFunction ToolbarTrainClick(Window *w)
 
{
 
	ToolbarVehicleClick(w, VEH_TRAIN);
 
	return CBF_NONE;
 
}
 

	
 
/**
 
 * Handle click on the entry in the Train menu.
 
 *
 
 * @param index CompanyID to show train list for.
 
 * @return #CBF_NONE
 
 */
 
static CallBackFunction MenuClickShowTrains(int index)
 
{
 
	ShowVehicleListWindow((CompanyID)index, VEH_TRAIN);
 
	return CBF_NONE;
 
}
 

	
 
/* --- Road vehicle button menu --- */
 

	
 
static CallBackFunction ToolbarRoadClick(Window *w)
 
{
 
	ToolbarVehicleClick(w, VEH_ROAD);
 
	return CBF_NONE;
 
}
 

	
 
/**
 
 * Handle click on the entry in the Road Vehicles menu.
 
 *
 
 * @param index CompanyID to show road vehicles list for.
 
 * @return #CBF_NONE
 
 */
 
static CallBackFunction MenuClickShowRoad(int index)
 
{
 
	ShowVehicleListWindow((CompanyID)index, VEH_ROAD);
 
	return CBF_NONE;
 
}
 

	
 
/* --- Ship button menu --- */
 

	
 
static CallBackFunction ToolbarShipClick(Window *w)
 
{
 
	ToolbarVehicleClick(w, VEH_SHIP);
 
	return CBF_NONE;
 
}
 

	
 
/**
 
 * Handle click on the entry in the Ships menu.
 
 *
 
 * @param index CompanyID to show ship list for.
 
 * @return #CBF_NONE
 
 */
 
static CallBackFunction MenuClickShowShips(int index)
 
{
 
	ShowVehicleListWindow((CompanyID)index, VEH_SHIP);
 
	return CBF_NONE;
 
}
 

	
 
/* --- Aircraft button menu --- */
 

	
 
static CallBackFunction ToolbarAirClick(Window *w)
 
{
 
	ToolbarVehicleClick(w, VEH_AIRCRAFT);
 
	return CBF_NONE;
 
}
 

	
 
/**
 
 * Handle click on the entry in the Aircraft menu.
 
 *
 
 * @param index CompanyID to show aircraft list for.
 
 * @return #CBF_NONE
 
 */
 
static CallBackFunction MenuClickShowAir(int index)
 
{
 
	ShowVehicleListWindow((CompanyID)index, VEH_AIRCRAFT);
 
	return CBF_NONE;
 
}
 

	
 
/* --- Zoom in button --- */
 

	
 
static CallBackFunction ToolbarZoomInClick(Window *w)
 
{
 
	if (DoZoomInOutWindow(ZOOM_IN, FindWindowById(WC_MAIN_WINDOW, 0))) {
 
		w->HandleButtonClick((_game_mode == GM_EDITOR) ? (byte)WID_TE_ZOOM_IN : (byte)WID_TN_ZOOM_IN);
 
		if (_settings_client.sound.click_beep) SndPlayFx(SND_15_BEEP);
 
	}
 
	return CBF_NONE;
 
}
 

	
 
/* --- Zoom out button --- */
 

	
 
static CallBackFunction ToolbarZoomOutClick(Window *w)
 
{
 
	if (DoZoomInOutWindow(ZOOM_OUT, FindWindowById(WC_MAIN_WINDOW, 0))) {
 
		w->HandleButtonClick((_game_mode == GM_EDITOR) ? (byte)WID_TE_ZOOM_OUT : (byte)WID_TN_ZOOM_OUT);
 
		if (_settings_client.sound.click_beep) SndPlayFx(SND_15_BEEP);
 
	}
 
	return CBF_NONE;
 
}
 

	
 
/* --- Rail button menu --- */
 

	
 
static CallBackFunction ToolbarBuildRailClick(Window *w)
 
{
 
	ShowDropDownList(w, GetRailTypeDropDownList(), _last_built_railtype, WID_TN_RAILS, 140, true, true);
 
	if (_settings_client.sound.click_beep) SndPlayFx(SND_15_BEEP);
 
	return CBF_NONE;
 
}
 

	
 
/**
 
 * Handle click on the entry in the Build Rail menu.
 
 *
 
 * @param index RailType to show the build toolbar for.
 
 * @return #CBF_NONE
 
 */
 
static CallBackFunction MenuClickBuildRail(int index)
 
{
 
	_last_built_railtype = (RailType)index;
 
	ShowBuildRailToolbar(_last_built_railtype);
 
	return CBF_NONE;
 
}
 

	
 
/* --- Road button menu --- */
 

	
 
static CallBackFunction ToolbarBuildRoadClick(Window *w)
 
{
 
	const Company *c = Company::Get(_local_company);
 
	DropDownList *list = new DropDownList();
 

	
 
	/* Road is always visible and available. */
 
	list->push_back(new DropDownListStringItem(STR_ROAD_MENU_ROAD_CONSTRUCTION, ROADTYPE_ROAD, false));
 

	
 
	/* Tram is only visible when there will be a tram, and available when that has been introduced. */
 
	Engine *e;
 
	FOR_ALL_ENGINES_OF_TYPE(e, VEH_ROAD) {
 
		if (!HasBit(e->info.climates, _settings_game.game_creation.landscape)) continue;
 
		if (!HasBit(e->info.misc_flags, EF_ROAD_TRAM)) continue;
 

	
 
		list->push_back(new DropDownListStringItem(STR_ROAD_MENU_TRAM_CONSTRUCTION, ROADTYPE_TRAM, !HasBit(c->avail_roadtypes, ROADTYPE_TRAM)));
 
		break;
 
	}
 
	ShowDropDownList(w, list, _last_built_roadtype, WID_TN_ROADS, 140, true, true);
 
	if (_settings_client.sound.click_beep) SndPlayFx(SND_15_BEEP);
 
	return CBF_NONE;
 
}
 

	
 
/**
 
 * Handle click on the entry in the Build Road menu.
 
 *
 
 * @param index RoadType to show the build toolbar for.
 
 * @return #CBF_NONE
 
 */
 
static CallBackFunction MenuClickBuildRoad(int index)
 
{
 
	_last_built_roadtype = (RoadType)index;
 
	ShowBuildRoadToolbar(_last_built_roadtype);
 
	return CBF_NONE;
 
}
 

	
 
/* --- Water button menu --- */
 

	
 
static CallBackFunction ToolbarBuildWaterClick(Window *w)
 
{
 
	PopupMainToolbMenu(w, WID_TN_WATER, STR_WATERWAYS_MENU_WATERWAYS_CONSTRUCTION, 1);
 
	return CBF_NONE;
 
}
 

	
 
/**
 
 * Handle click on the entry in the Build Waterways menu.
 
 *
 
 * @param index Unused.
 
 * @return #CBF_NONE
 
 */
 
static CallBackFunction MenuClickBuildWater(int index)
 
{
 
	ShowBuildDocksToolbar();
 
	return CBF_NONE;
 
}
 

	
 
/* --- Airport button menu --- */
 

	
 
static CallBackFunction ToolbarBuildAirClick(Window *w)
 
{
 
	PopupMainToolbMenu(w, WID_TN_AIR, STR_AIRCRAFT_MENU_AIRPORT_CONSTRUCTION, 1);
 
	return CBF_NONE;
 
}
 

	
 
/**
 
 * Handle click on the entry in the Build Air menu.
 
 *
 
 * @param index Unused.
 
 * @return #CBF_NONE
 
 */
 
static CallBackFunction MenuClickBuildAir(int index)
 
{
 
	ShowBuildAirToolbar();
 
	return CBF_NONE;
 
}
 

	
 
/* --- Forest button menu --- */
 

	
 
static CallBackFunction ToolbarForestClick(Window *w)
 
{
 
	PopupMainToolbMenu(w, WID_TN_LANDSCAPE, STR_LANDSCAPING_MENU_LANDSCAPING, 3);
 
	return CBF_NONE;
 
}
 

	
 
/**
 
 * Handle click on the entry in the landscaping menu.
 
 *
 
 * @param index Menu entry clicked.
 
 * @return #CBF_NONE
 
 */
 
static CallBackFunction MenuClickForest(int index)
 
{
 
	switch (index) {
 
		case 0: ShowTerraformToolbar();  break;
 
		case 1: ShowBuildTreesToolbar(); break;
 
		case 2: return SelectSignTool();
 
	}
 
	return CBF_NONE;
 
}
 

	
 
/* --- Music button menu --- */
 

	
 
static CallBackFunction ToolbarMusicClick(Window *w)
 
{
 
	PopupMainToolbMenu(w, WID_TN_MUSIC_SOUND, STR_TOOLBAR_SOUND_MUSIC, 1);
 
	return CBF_NONE;
 
}
 

	
 
/**
 
 * Handle click on the entry in the Music menu.
 
 *
 
 * @param index Unused.
 
 * @return #CBF_NONE
 
 */
 
static CallBackFunction MenuClickMusicWindow(int index)
 
{
 
	ShowMusicWindow();
 
	return CBF_NONE;
 
}
 

	
 
/* --- Newspaper button menu --- */
 

	
 
static CallBackFunction ToolbarNewspaperClick(Window *w)
 
{
 
	PopupMainToolbMenu(w, WID_TN_MESSAGES, STR_NEWS_MENU_LAST_MESSAGE_NEWS_REPORT, 2);
 
	return CBF_NONE;
 
}
 

	
 
/**
 
 * Handle click on the entry in the Newspaper menu.
 
 *
 
 * @param index Menu entry clicked.
 
 * @return #CBF_NONE
 
 */
 
static CallBackFunction MenuClickNewspaper(int index)
 
{
 
	switch (index) {
 
		case 0: ShowLastNewsMessage(); break;
 
		case 1: ShowMessageHistory();  break;
 
	}
 
	return CBF_NONE;
 
}
 

	
 
/* --- Help button menu --- */
 

	
 
static CallBackFunction PlaceLandBlockInfo()
 
{
 
	if (_cursor.sprite == SPR_CURSOR_QUERY) {
 
		ResetObjectToPlace();
 
		return CBF_NONE;
 
	} else {
 
		SetObjectToPlace(SPR_CURSOR_QUERY, PAL_NONE, HT_RECT, WC_MAIN_TOOLBAR, 0);
 
		return CBF_PLACE_LANDINFO;
 
	}
 
}
 

	
 
static CallBackFunction ToolbarHelpClick(Window *w)
 
{
 
	PopupMainToolbMenu(w, WID_TN_HELP, STR_ABOUT_MENU_LAND_BLOCK_INFO, _settings_client.gui.newgrf_developer_tools ? 12 : 9);
 
	return CBF_NONE;
 
}
 

	
 
static void MenuClickSmallScreenshot()
 
{
 
	MakeScreenshot(SC_VIEWPORT, NULL);
 
}
 

	
 
/**
 
 * Callback on the confirmation window for huge screenshots.
 
 * @param w Window with viewport
 
 * @param confirmed true on confirmation
 
 */
 
static void ScreenshotConfirmCallback(Window *w, bool confirmed)
 
{
 
	if (confirmed) MakeScreenshot(_confirmed_screenshot_type, NULL);
 
}
 

	
 
/**
 
 * Make a screenshot of the world.
 
 * Ask for confirmation if the screenshot will be huge.
 
 * @param t Screenshot type: World or viewport screenshot
 
 */
 
static void MenuClickLargeWorldScreenshot(ScreenshotType t)
 
{
 
	ViewPort vp;
 
	SetupScreenshotViewport(t, &vp);
 
	if (vp.width * vp.height > 8192 * 8192) {
 
		/* Ask for confirmation */
 
		SetDParam(0, vp.width);
 
		SetDParam(1, vp.height);
 
		_confirmed_screenshot_type = t;
 
		ShowQuery(STR_WARNING_SCREENSHOT_SIZE_CAPTION, STR_WARNING_SCREENSHOT_SIZE_MESSAGE, NULL, ScreenshotConfirmCallback);
 
	} else {
 
		/* Less than 4M pixels, just do it */
 
		MakeScreenshot(t, NULL);
 
	}
 
}
 

	
 
/**
 
 * Toggle drawing of sprites' bounding boxes.
 
 * @note has only an effect when newgrf_developer_tools are active.
 
 *
 
 * Function is found here and not in viewport.cpp in order to avoid
 
 * importing the settings structs to there.
 
 */
 
void ToggleBoundingBoxes()
 
{
 
	extern bool _draw_bounding_boxes;
 
	/* Always allow to toggle them off */
 
	if (_settings_client.gui.newgrf_developer_tools || _draw_bounding_boxes) {
 
		_draw_bounding_boxes = !_draw_bounding_boxes;
 
		MarkWholeScreenDirty();
 
	}
 
}
 

	
 
/**
 
 * Toggle drawing of the dirty blocks.
 
 * @note has only an effect when newgrf_developer_tools are active.
 
 *
 
 * Function is found here and not in viewport.cpp in order to avoid
 
 * importing the settings structs to there.
 
 */
 
void ToggleDirtyBlocks()
 
{
 
	extern bool _draw_dirty_blocks;
 
	/* Always allow to toggle them off */
 
	if (_settings_client.gui.newgrf_developer_tools || _draw_dirty_blocks) {
 
		_draw_dirty_blocks = !_draw_dirty_blocks;
 
		MarkWholeScreenDirty();
 
	}
 
}
 

	
 
/**
 
 * Choose the proper callback function for the main toolbar's help menu.
 
 * @param index The menu index which was selected.
 
 * @return CBF_NONE
 
 */
 
static CallBackFunction MenuClickHelp(int index)
 
{
 
	switch (index) {
 
		case  0: return PlaceLandBlockInfo();
 
		case  2: IConsoleSwitch();                 break;
 
		case  3: ShowAIDebugWindow();              break;
 
		case  4: MenuClickSmallScreenshot();       break;
 
		case  5: MenuClickLargeWorldScreenshot(SC_ZOOMEDIN);    break;
 
		case  6: MenuClickLargeWorldScreenshot(SC_DEFAULTZOOM); break;
 
		case  7: MenuClickLargeWorldScreenshot(SC_WORLD);       break;
 
		case  8: ShowAboutWindow();                break;
 
		case  9: ShowSpriteAlignerWindow();        break;
 
		case 10: ToggleBoundingBoxes();            break;
 
		case 11: ToggleDirtyBlocks();              break;
 
	}
 
	return CBF_NONE;
 
}
 

	
 
/* --- Switch toolbar button --- */
 

	
 
static CallBackFunction ToolbarSwitchClick(Window *w)
 
{
 
	if (_toolbar_mode != TB_LOWER) {
 
		_toolbar_mode = TB_LOWER;
 
	} else {
 
		_toolbar_mode = TB_UPPER;
 
	}
 

	
 
	w->ReInit();
 
	w->SetWidgetLoweredState(WID_TN_SWITCH_BAR, _toolbar_mode == TB_LOWER);
 
	if (_settings_client.sound.click_beep) SndPlayFx(SND_15_BEEP);
 
	return CBF_NONE;
 
}
 

	
 
/* --- Scenario editor specific handlers. */
 

	
 
/**
 
 * Called when clicking at the date panel of the scenario editor toolbar.
 
 */
 
static CallBackFunction ToolbarScenDatePanel(Window *w)
 
{
 
	SetDParam(0, _settings_game.game_creation.starting_year);
 
	ShowQueryString(STR_JUST_INT, STR_MAPGEN_START_DATE_QUERY_CAPT, 8, w, CS_NUMERAL, QSF_ENABLE_DEFAULT);
 
	_left_button_clicked = false;
 
	return CBF_NONE;
 
}
 

	
 
static CallBackFunction ToolbarScenDateBackward(Window *w)
 
{
 
	/* don't allow too fast scrolling */
 
	if (!(w->flags & WF_TIMEOUT) || w->timeout_timer <= 1) {
 
		w->HandleButtonClick(WID_TE_DATE_BACKWARD);
 
		w->SetDirty();
 

	
 
		_settings_game.game_creation.starting_year = Clamp(_settings_game.game_creation.starting_year - 1, MIN_YEAR, MAX_YEAR);
 
		SetDate(ConvertYMDToDate(_settings_game.game_creation.starting_year, 0, 1), 0);
 
	}
 
	_left_button_clicked = false;
 
	return CBF_NONE;
 
}
 

	
 
static CallBackFunction ToolbarScenDateForward(Window *w)
 
{
 
	/* don't allow too fast scrolling */
 
	if (!(w->flags & WF_TIMEOUT) || w->timeout_timer <= 1) {
 
		w->HandleButtonClick(WID_TE_DATE_FORWARD);
 
		w->SetDirty();
 

	
 
		_settings_game.game_creation.starting_year = Clamp(_settings_game.game_creation.starting_year + 1, MIN_YEAR, MAX_YEAR);
 
		SetDate(ConvertYMDToDate(_settings_game.game_creation.starting_year, 0, 1), 0);
 
	}
 
	_left_button_clicked = false;
 
	return CBF_NONE;
 
}
 

	
 
static CallBackFunction ToolbarScenGenLand(Window *w)
 
{
 
	w->HandleButtonClick(WID_TE_LAND_GENERATE);
 
	if (_settings_client.sound.click_beep) SndPlayFx(SND_15_BEEP);
 

	
 
	ShowEditorTerraformToolbar();
 
	return CBF_NONE;
 
}
 

	
 

	
 
static CallBackFunction ToolbarScenGenTown(Window *w)
 
{
 
	w->HandleButtonClick(WID_TE_TOWN_GENERATE);
 
	if (_settings_client.sound.click_beep) SndPlayFx(SND_15_BEEP);
 
	ShowFoundTownWindow();
 
	return CBF_NONE;
 
}
 

	
 
static CallBackFunction ToolbarScenGenIndustry(Window *w)
 
{
 
	w->HandleButtonClick(WID_TE_INDUSTRY);
 
	if (_settings_client.sound.click_beep) SndPlayFx(SND_15_BEEP);
 
	ShowBuildIndustryWindow();
 
	return CBF_NONE;
 
}
 

	
 
static CallBackFunction ToolbarScenBuildRoad(Window *w)
 
{
 
	w->HandleButtonClick(WID_TE_ROADS);
 
	if (_settings_client.sound.click_beep) SndPlayFx(SND_15_BEEP);
 
	ShowBuildRoadScenToolbar();
 
	return CBF_NONE;
 
}
 

	
 
static CallBackFunction ToolbarScenBuildDocks(Window *w)
 
{
 
	w->HandleButtonClick(WID_TE_WATER);
 
	if (_settings_client.sound.click_beep) SndPlayFx(SND_15_BEEP);
 
	ShowBuildDocksScenToolbar();
 
	return CBF_NONE;
 
}
 

	
 
static CallBackFunction ToolbarScenPlantTrees(Window *w)
 
{
 
	w->HandleButtonClick(WID_TE_TREES);
 
	if (_settings_client.sound.click_beep) SndPlayFx(SND_15_BEEP);
 
	ShowBuildTreesToolbar();
 
	return CBF_NONE;
 
}
 

	
 
static CallBackFunction ToolbarScenPlaceSign(Window *w)
 
{
 
	w->HandleButtonClick(WID_TE_SIGNS);
 
	if (_settings_client.sound.click_beep) SndPlayFx(SND_15_BEEP);
 
	return SelectSignTool();
 
}
 

	
 
static CallBackFunction ToolbarBtn_NULL(Window *w)
 
{
 
	return CBF_NONE;
 
}
 

	
 
typedef CallBackFunction MenuClickedProc(int index);
 

	
 
static MenuClickedProc * const _menu_clicked_procs[] = {
 
	NULL,                 // 0
 
	NULL,                 // 1
 
	MenuClickSettings,    // 2
 
	MenuClickSaveLoad,    // 3
 
	MenuClickMap,         // 4
 
	MenuClickTown,        // 5
 
	MenuClickSubsidies,   // 6
 
	MenuClickStations,    // 7
 
	MenuClickFinances,    // 8
 
	MenuClickCompany,     // 9
 
	MenuClickGraphs,      // 10
 
	MenuClickLeague,      // 11
 
	MenuClickIndustry,    // 12
 
	MenuClickShowTrains,  // 13
 
	MenuClickShowRoad,    // 14
 
	MenuClickShowShips,   // 15
 
	MenuClickShowAir,     // 16
 
	MenuClickMap,         // 17
 
	NULL,                 // 18
 
	MenuClickBuildRail,   // 19
 
	MenuClickBuildRoad,   // 20
 
	MenuClickBuildWater,  // 21
 
	MenuClickBuildAir,    // 22
 
	MenuClickForest,      // 23
 
	MenuClickMusicWindow, // 24
 
	MenuClickNewspaper,   // 25
 
	MenuClickHelp,        // 26
 
};
 

	
 
/** Full blown container to make it behave exactly as we want :) */
 
class NWidgetToolbarContainer : public NWidgetContainer {
 
	bool visible[WID_TN_END]; ///< The visible headers
 
protected:
 
	uint spacers;          ///< Number of spacer widgets in this toolbar
 

	
 
public:
 
	NWidgetToolbarContainer() : NWidgetContainer(NWID_HORIZONTAL)
0 comments (0 inline, 0 general)