Changeset - r8424:8ec8538eb70c
[Not reviewed]
master
0 15 0
maedhros - 17 years ago 2008-01-27 17:32:12
maedhros@openttd.org
(svn r11994) -Codechange: Remove numbers from string names where the strings aren't present in TTD, since they don't correspond to either TTD's TextIDs or OpenTTD's StringIDs.
15 files changed with 133 insertions and 133 deletions:
0 comments (0 inline, 0 general)
src/economy.cpp
Show inline comments
 
@@ -1850,49 +1850,49 @@ static void DoAcquireCompany(Player *p)
 

	
 
extern int GetAmountOwnedBy(const Player *p, PlayerID owner);
 

	
 
/** Acquire shares in an opposing company.
 
 * @param tile unused
 
 * @param flags type of operation
 
 * @param p1 player to buy the shares from
 
 * @param p2 unused
 
 */
 
CommandCost CmdBuyShareInCompany(TileIndex tile, uint32 flags, uint32 p1, uint32 p2)
 
{
 
	Player *p;
 
	CommandCost cost(EXPENSES_OTHER);
 

	
 
	/* Check if buying shares is allowed (protection against modified clients) */
 
	/* Cannot buy own shares */
 
	if (!IsValidPlayer((PlayerID)p1) || !_patches.allow_shares || _current_player == (PlayerID)p1) return CMD_ERROR;
 

	
 
	p = GetPlayer((PlayerID)p1);
 

	
 
	/* Cannot buy shares of non-existent nor bankrupted company */
 
	if (!p->is_active) return CMD_ERROR;
 

	
 
	/* Protect new companies from hostile takeovers */
 
	if (_cur_year - p->inaugurated_year < 6) return_cmd_error(STR_7080_PROTECTED);
 
	if (_cur_year - p->inaugurated_year < 6) return_cmd_error(STR_PROTECTED);
 

	
 
	/* Those lines are here for network-protection (clients can be slow) */
 
	if (GetAmountOwnedBy(p, PLAYER_SPECTATOR) == 0) return cost;
 

	
 
	/* We can not buy out a real player (temporarily). TODO: well, enable it obviously */
 
	if (GetAmountOwnedBy(p, PLAYER_SPECTATOR) == 1 && !p->is_ai) return cost;
 

	
 
	cost.AddCost(CalculateCompanyValue(p) >> 2);
 
	if (flags & DC_EXEC) {
 
		PlayerByte* b = p->share_owners;
 
		int i;
 

	
 
		while (*b != PLAYER_SPECTATOR) b++; /* share owners is guaranteed to contain at least one PLAYER_SPECTATOR */
 
		*b = _current_player;
 

	
 
		for (i = 0; p->share_owners[i] == _current_player;) {
 
			if (++i == 4) {
 
				p->bankrupt_value = 0;
 
				DoAcquireCompany(p);
 
				break;
 
			}
 
		}
 
		InvalidateWindow(WC_COMPANY, p1);
 
	}
src/genworld_gui.cpp
Show inline comments
 
@@ -229,49 +229,49 @@ static void LandscapeGenerationCallback(
 
}
 

	
 
static DropDownList *BuildMapsizeDropDown()
 
{
 
	DropDownList *list = new DropDownList();
 

	
 
	for (uint i = 6; i <= 11; i++) {
 
		DropDownListParamStringItem *item = new DropDownListParamStringItem(STR_JUST_INT, i, false);
 
		item->SetParam(0, 1 << i);
 
		list->push_back(item);
 
	}
 

	
 
	return list;
 
}
 

	
 
static void GenerateLandscapeWndProc(Window *w, WindowEvent *e)
 
{
 
	static const StringID elevations[]  = {STR_682A_VERY_FLAT, STR_682B_FLAT, STR_682C_HILLY, STR_682D_MOUNTAINOUS, INVALID_STRING_ID};
 
	static const StringID sea_lakes[]   = {STR_VERY_LOW, STR_6820_LOW, STR_6821_MEDIUM, STR_6822_HIGH, INVALID_STRING_ID};
 
	static const StringID smoothness[]  = {STR_CONFIG_PATCHES_ROUGHNESS_OF_TERRAIN_VERY_SMOOTH, STR_CONFIG_PATCHES_ROUGHNESS_OF_TERRAIN_SMOOTH, STR_CONFIG_PATCHES_ROUGHNESS_OF_TERRAIN_ROUGH, STR_CONFIG_PATCHES_ROUGHNESS_OF_TERRAIN_VERY_ROUGH, INVALID_STRING_ID};
 
	static const StringID tree_placer[] = {STR_CONFIG_PATCHES_TREE_PLACER_NONE, STR_CONFIG_PATCHES_TREE_PLACER_ORIGINAL, STR_CONFIG_PATCHES_TREE_PLACER_IMPROVED, INVALID_STRING_ID};
 
	static const StringID rotation[]    = {STR_CONFIG_PATCHES_HEIGHTMAP_ROTATION_COUNTER_CLOCKWISE, STR_CONFIG_PATCHES_HEIGHTMAP_ROTATION_CLOCKWISE, INVALID_STRING_ID};
 
	static const StringID landscape[]   = {STR_CONFIG_PATCHES_LAND_GENERATOR_ORIGINAL, STR_CONFIG_PATCHES_LAND_GENERATOR_TERRA_GENESIS, INVALID_STRING_ID};
 
	static const StringID num_towns[]   = {STR_NUM_VERY_LOW, STR_6816_LOW, STR_6817_NORMAL, STR_6818_HIGH, INVALID_STRING_ID};
 
	static const StringID num_inds[]    = {STR_26816_NONE, STR_NUM_VERY_LOW, STR_6816_LOW, STR_6817_NORMAL, STR_6818_HIGH, INVALID_STRING_ID};
 
	static const StringID num_inds[]    = {STR_NONE, STR_NUM_VERY_LOW, STR_6816_LOW, STR_6817_NORMAL, STR_6818_HIGH, INVALID_STRING_ID};
 

	
 
	/* Data used for the generate seed edit box */
 
	static querystr_d _genseed_query;
 
	static char _genseed_buffer[11];
 

	
 
	glwp_modes mode = (glwp_modes)w->window_number;
 

	
 
	switch (e->event) {
 
		case WE_CREATE:
 
			w->LowerWidget(_opt_newgame.landscape + GLAND_TEMPERATE);
 

	
 
			snprintf(_genseed_buffer, sizeof(_genseed_buffer), "%u", _patches_newgame.generation_seed);
 
			InitializeTextBuffer(&_genseed_query.text, _genseed_buffer, lengthof(_genseed_buffer), 120);
 
			_genseed_query.caption = STR_NULL;
 
			_genseed_query.afilter = CS_NUMERAL;
 
			break;
 

	
 
		case WE_PAINT:
 
			/* You can't select smoothness if not terragenesis */
 
			if (mode == GLWP_GENERATE) {
 
				w->SetWidgetDisabledState(GLAND_SMOOTHNESS_PULLDOWN, _patches_newgame.land_generator == 0);
 
			}
 
			/* Disable snowline if not hilly */
 
			w->SetWidgetDisabledState(GLAND_SNOW_LEVEL_TEXT, _opt_newgame.landscape != LT_ARCTIC);
src/intro_gui.cpp
Show inline comments
 
@@ -122,63 +122,63 @@ static void SelectGameWndProc(Window *w,
 
	}
 
}
 

	
 
static const WindowDesc _select_game_desc = {
 
	WDP_CENTER, WDP_CENTER, 336, 195, 336, 195,
 
	WC_SELECT_GAME, WC_NONE,
 
	WDF_STD_TOOLTIPS | WDF_DEF_WIDGET | WDF_UNCLICK_BUTTONS,
 
	_select_game_widgets,
 
	SelectGameWndProc
 
};
 

	
 
void ShowSelectGameWindow()
 
{
 
	AllocateWindowDesc(&_select_game_desc);
 
}
 

	
 
static void AskExitGameCallback(Window *w, bool confirmed)
 
{
 
	if (confirmed) _exit_game = true;
 
}
 

	
 
void AskExitGame()
 
{
 
#if defined(_WIN32)
 
		SetDParam(0, STR_0133_WINDOWS);
 
		SetDParam(0, STR_OSNAME_WINDOWS);
 
#elif defined(__APPLE__)
 
		SetDParam(0, STR_0135_OSX);
 
		SetDParam(0, STR_OSNAME_OSX);
 
#elif defined(__BEOS__)
 
		SetDParam(0, STR_OSNAME_BEOS);
 
#elif defined(__MORPHOS__)
 
		SetDParam(0, STR_OSNAME_MORPHOS);
 
#elif defined(__AMIGA__)
 
		SetDParam(0, STR_OSNAME_AMIGAOS);
 
#elif defined(__OS2__)
 
		SetDParam(0, STR_OSNAME_OS2);
 
#elif defined(SUNOS)
 
		SetDParam(0, STR_OSNAME_SUNOS);
 
#else
 
		SetDParam(0, STR_0134_UNIX);
 
		SetDParam(0, STR_OSNAME_UNIX);
 
#endif
 
	ShowQuery(
 
		STR_00C7_QUIT,
 
		STR_00CA_ARE_YOU_SURE_YOU_WANT_TO,
 
		NULL,
 
		AskExitGameCallback
 
	);
 
}
 

	
 

	
 
static void AskExitToGameMenuCallback(Window *w, bool confirmed)
 
{
 
	if (confirmed) _switch_mode = SM_MENU;
 
}
 

	
 
void AskExitToGameMenu()
 
{
 
	ShowQuery(
 
		STR_0161_QUIT_GAME,
 
		(_game_mode != GM_EDITOR) ? STR_ABANDON_GAME_QUERY : STR_QUIT_SCENARIO_QUERY,
 
		NULL,
 
		AskExitToGameMenuCallback
 
	);
 
}
src/lang/english.txt
Show inline comments
 
@@ -252,66 +252,66 @@ STR_011B_RAILROAD_STATION               
 
STR_011C_TRUCK_LOADING_BAY                                      :{BLACK}{TINYFONT}Lorry Loading Bay
 
STR_011D_BUS_STATION                                            :{BLACK}{TINYFONT}Bus Station
 
STR_011E_AIRPORT_HELIPORT                                       :{BLACK}{TINYFONT}Airport/Heliport
 
STR_011F_DOCK                                                   :{BLACK}{TINYFONT}Dock
 
STR_0120_ROUGH_LAND                                             :{BLACK}{TINYFONT}Rough Land
 
STR_0121_GRASS_LAND                                             :{BLACK}{TINYFONT}Grass Land
 
STR_0122_BARE_LAND                                              :{BLACK}{TINYFONT}Bare Land
 
STR_0123_FIELDS                                                 :{BLACK}{TINYFONT}Fields
 
STR_0124_TREES                                                  :{BLACK}{TINYFONT}Trees
 
STR_0125_ROCKS                                                  :{BLACK}{TINYFONT}Rocks
 
STR_0126_WATER                                                  :{BLACK}{TINYFONT}Water
 
STR_0127_NO_OWNER                                               :{BLACK}{TINYFONT}No Owner
 
STR_0128_TOWNS                                                  :{BLACK}{TINYFONT}Towns
 
STR_0129_INDUSTRIES                                             :{BLACK}{TINYFONT}Industries
 
STR_012A_DESERT                                                 :{BLACK}{TINYFONT}Desert
 
STR_012B_SNOW                                                   :{BLACK}{TINYFONT}Snow
 
STR_012C_MESSAGE                                                :{WHITE}Message
 
STR_012D                                                        :{WHITE}{STRING}
 
STR_012E_CANCEL                                                 :{BLACK}Cancel
 
STR_012F_OK                                                     :{BLACK}OK
 
STR_0130_RENAME                                                 :{BLACK}Rename
 
STR_0131_TOO_MANY_NAMES_DEFINED                                 :{WHITE}Too many names defined
 
STR_0132_CHOSEN_NAME_IN_USE_ALREADY                             :{WHITE}Chosen name already in use
 

	
 
STR_0133_WINDOWS                                                :Windows
 
STR_0134_UNIX                                                   :Unix
 
STR_0135_OSX                                                    :OS X
 
STR_OSNAME_WINDOWS                                              :Windows
 
STR_OSNAME_UNIX                                                 :Unix
 
STR_OSNAME_OSX                                                  :OS X
 
STR_OSNAME_BEOS                                                 :BeOS
 
STR_OSNAME_MORPHOS                                              :MorphOS
 
STR_OSNAME_AMIGAOS                                              :AmigaOS
 
STR_OSNAME_OS2                                                  :OS/2
 
STR_OSNAME_SUNOS                                                :SunOS
 

	
 
STR_013B_OWNED_BY                                               :{WHITE}...owned by {STRING2}
 
STR_013C_CARGO                                                  :{BLACK}Cargo
 
STR_013D_INFORMATION                                            :{BLACK}Information
 
STR_013E_CAPACITIES                                             :{BLACK}Capacities
 
STR_013E_TOTAL_CARGO                                            :{BLACK}Total Cargo
 
STR_TOTAL_CARGO                                                 :{BLACK}Total Cargo
 
STR_013F_CAPACITY                                               :{BLACK}Capacity: {LTBLUE}{CARGO}
 
STR_CAPACITY_MULT                                               :{BLACK}Capacity: {LTBLUE}{CARGO} (x{NUM})
 
STR_013F_TOTAL_CAPACITY_TEXT                                    :{BLACK}Total cargo capacity of this train:
 
STR_013F_TOTAL_CAPACITY                                         :{LTBLUE}- {CARGO} ({SHORTCARGO})
 
STR_TOTAL_CAPACITY_TEXT                                         :{BLACK}Total cargo capacity of this train:
 
STR_TOTAL_CAPACITY                                              :{LTBLUE}- {CARGO} ({SHORTCARGO})
 
STR_TOTAL_CAPACITY_MULT                                         :{LTBLUE}- {CARGO} ({SHORTCARGO}) (x{NUM})
 
STR_0140_NEW_GAME                                               :{BLACK}New Game
 
STR_0141_LOAD_GAME                                              :{BLACK}Load Game
 
STR_SINGLE_PLAYER                                               :{BLACK}Single player
 
STR_MULTIPLAYER                                                 :{BLACK}Multiplayer
 
STR_SCENARIO_EDITOR                                             :{BLACK}Scenario Editor
 

	
 
STR_MAPSIZE                                                     :{BLACK}Map size:
 
STR_BY                                                          :{BLACK}*
 
STR_0148_GAME_OPTIONS                                           :{BLACK}Game Options
 

	
 
STR_0150_SOMEONE                                                :someone{SKIP}{SKIP}
 
STR_0151_MAP_OF_WORLD                                           :Map of world
 
STR_0152_TOWN_DIRECTORY                                         :Town directory
 
STR_0153_SUBSIDIES                                              :Subsidies
 

	
 
STR_UNITS_IMPERIAL                                              :Imperial
 
STR_UNITS_METRIC                                                :Metric
 
STR_UNITS_SI                                                    :SI
 

	
 
STR_UNITS_VELOCITY_IMPERIAL                                     :{COMMA} mph
 
STR_UNITS_VELOCITY_METRIC                                       :{COMMA} km/h
 
STR_UNITS_VELOCITY_SI                                           :{COMMA} m/s
 

	
 
@@ -709,91 +709,91 @@ STR_027D_CONSTRUCT_COLA_WELLS           
 
STR_027E_CONSTRUCT_TOY_SHOP                                     :{BLACK}Construct Toy Shop
 
STR_027F_CONSTRUCT_TOY_FACTORY                                  :{BLACK}Construct Toy Factory
 
STR_0280_CONSTRUCT_PLASTIC_FOUNTAINS                            :{BLACK}Construct Plastic Fountains
 
STR_0281_CONSTRUCT_FIZZY_DRINK_FACTORY                          :{BLACK}Construct Fizzy Drink Factory
 
STR_0282_CONSTRUCT_BUBBLE_GENERATOR                             :{BLACK}Construct Bubble Generator
 
STR_0283_CONSTRUCT_TOFFEE_QUARRY                                :{BLACK}Construct Toffee Quarry
 
STR_0284_CONSTRUCT_SUGAR_MINE                                   :{BLACK}Construct Sugar Mine
 
STR_0285_CAN_T_BUILD_HERE                                       :{WHITE}Can't build {STRING} here...
 
STR_0286_MUST_BUILD_TOWN_FIRST                                  :{WHITE}...must build town first
 
STR_0287_ONLY_ONE_ALLOWED_PER_TOWN                              :{WHITE}...only one allowed per town
 
STR_0288_PLANT_TREES                                            :{BLACK}Plant trees
 
STR_0289_PLACE_SIGN                                             :{BLACK}Place sign
 
STR_028A_RANDOM_TREES                                           :{BLACK}Random Trees
 
STR_028B_PLANT_TREES_RANDOMLY_OVER                              :{BLACK}Plant trees randomly over landscape
 
STR_028C_PLACE_ROCKY_AREAS_ON_LANDSCAPE                         :{BLACK}Place rocky areas on landscape
 
STR_028D_PLACE_LIGHTHOUSE                                       :{BLACK}Place lighthouse
 
STR_028E_PLACE_TRANSMITTER                                      :{BLACK}Place transmitter
 
STR_028F_DEFINE_DESERT_AREA                                     :{BLACK}Define desert area.{}Press and hold CTRL to remove it
 
STR_CREATE_LAKE                                                 :{BLACK}Define water area.{}Make a canal, unless CTRL is held down at sea level, when it will flood the surroundings instead
 
STR_CREATE_RIVER                                                :{BLACK}Place rivers.
 
STR_0290_DELETE                                                 :{BLACK}Delete
 
STR_0291_DELETE_THIS_TOWN_COMPLETELY                            :{BLACK}Delete this town completely
 
STR_0292_SAVE_SCENARIO                                          :Save scenario
 
STR_0293_LOAD_SCENARIO                                          :Load scenario
 
STR_LOAD_HEIGHTMAP                                              :Load heightmap
 
STR_MENU_LOAD_HEIGHTMAP                                         :Load heightmap
 
STR_0294_QUIT_EDITOR                                            :Quit editor
 
STR_0295                                                        :
 
STR_0296_QUIT                                                   :Quit
 
STR_0297_SAVE_SCENARIO_LOAD_SCENARIO                            :{BLACK}Save scenario, load scenario, abandon scenario editor, quit
 
STR_0298_LOAD_SCENARIO                                          :{WHITE}Load Scenario
 
STR_0299_SAVE_SCENARIO                                          :{WHITE}Save Scenario
 
STR_029A_PLAY_SCENARIO                                          :{BLACK}Play Scenario
 
STR_PLAY_HEIGHTMAP                                              :{BLACK}Play Heightmap
 
STR_PLAY_HEIGHTMAP_HINT                                         :{BLACK}Start a new game, using a heightmap as landscape
 
STR_QUIT_SCENARIO_QUERY                                         :{YELLOW}Are you sure you want to quit this scenario ?
 
STR_029C_QUIT_EDITOR                                            :{WHITE}Quit Editor
 
STR_029D_CAN_ONLY_BE_BUILT_IN_TOWNS                             :{WHITE}...can only be built in towns with a population of at least 1200
 
STR_029E_MOVE_THE_STARTING_DATE                                 :{BLACK}Move the starting date backward 1 year
 
STR_029F_MOVE_THE_STARTING_DATE                                 :{BLACK}Move the starting date forward 1 year
 
STR_02A0_ENDS_OF_BRIDGE_MUST_BOTH                               :{WHITE}...ends of bridge must both be on land
 
STR_02A1_SMALL                                                  :{BLACK}Small
 
STR_02A2_MEDIUM                                                 :{BLACK}Medium
 
STR_02A3_LARGE                                                  :{BLACK}Large
 
STR_SCENARIO_EDITOR_CITY                                        :{BLACK}City
 
STR_02A4_SELECT_TOWN_SIZE                                       :{BLACK}Select town size
 
STR_02A5_TOWN_SIZE                                              :{YELLOW}Town size:
 

	
 
STR_02B6                                                        :{STRING}  -  {STRING5}
 
STR_02B7_SHOW_LAST_MESSAGE_OR_NEWS                              :{BLACK}Show last message or news report
 
STR_OFF                                                         :Off
 
STR_SUMMARY                                                     :Summary
 
STR_FULL                                                        :Full
 
STR_02BA                                                        :{SILVER}- -  {COMPANY}  - -
 
STR_02BB_TOWN_DIRECTORY                                         :Town directory
 
STR_02BC_VEHICLE_DESIGN_NAMES                                   :{BLACK}Vehicle design names
 
STR_02BD                                                        :{BLACK}{STRING}
 
STR_02BE_DEFAULT                                                :Default
 
STR_02BF_CUSTOM                                                 :Custom
 
STR_02C0_SAVE_CUSTOM_NAMES                                      :{BLACK}Save custom names
 
STR_02C1_VEHICLE_DESIGN_NAMES_SELECTION                         :{BLACK}Vehicle design names selection
 
STR_02C2_SAVE_CUSTOMIZED_VEHICLE                                :{BLACK}Save customised vehicle design names
 

	
 
STR_CHECKMARK                                                   :{CHECKMARK}
 
############ range for menu starts
 
STR_02C3_GAME_OPTIONS                                           :Game options
 
STR_02C5_DIFFICULTY_SETTINGS                                    :Difficulty settings
 
STR_02C7_CONFIG_PATCHES                                         :Configure patches
 
STR_02C4_GAME_OPTIONS                                           :Game options
 
STR_02C6_DIFFICULTY_SETTINGS                                    :Difficulty settings
 
STR_MENU_CONFIG_PATCHES                                         :Configure patches
 
STR_NEWGRF_SETTINGS                                             :NewGRF settings
 
STR_TRANSPARENCY_OPTIONS                                        :Transparency options
 
STR_GAMEOPTMENU_0A                                              :
 
STR_02CA_TOWN_NAMES_DISPLAYED                                   :{SETX 12}Town names displayed
 
STR_02CC_STATION_NAMES_DISPLAYED                                :{SETX 12}Station names displayed
 
STR_02CE_SIGNS_DISPLAYED                                        :{SETX 12}Signs displayed
 
STR_WAYPOINTS_DISPLAYED2                                        :{SETX 12}Waypoints displayed
 
STR_02D0_FULL_ANIMATION                                         :{SETX 12}Full animation
 
STR_02D2_FULL_DETAIL                                            :{SETX 12}Full detail
 
STR_02D4_TRANSPARENT_BUILDINGS                                  :{SETX 12}Transparent buildings
 
STR_TRANSPARENT_SIGNS                                           :{SETX 12}Transparent station signs
 
############ range ends here
 

	
 
############ range for menu starts
 
STR_02D5_LAND_BLOCK_INFO                                        :Land area information
 
STR_02D6                                                        :
 
STR_CONSOLE_SETTING                                             :Toggle Console
 
STR_02D7_SCREENSHOT_CTRL_S                                      :Screenshot (Ctrl-S)
 
STR_02D8_GIANT_SCREENSHOT_CTRL_G                                :Giant Screenshot (Ctrl-G)
 
STR_02D9_ABOUT_OPENTTD                                          :About 'OpenTTD'
 
############ range ends here
 

	
 
STR_02DB_OFF                                                    :{BLACK}Off
 
STR_02DA_ON                                                     :{BLACK}On
 
@@ -851,50 +851,50 @@ STR_0311_SELECT_TOYLAND_LANDSCAPE       
 
STR_0312_FUND_CONSTRUCTION_OF_NEW                               :{BLACK}Fund construction of new industry or list all industries
 

	
 
############ range for menu starts
 
STR_INDUSTRY_DIR                                                :Industry Directory
 
STR_0313_FUND_NEW_INDUSTRY                                      :Fund new industry
 
############ range ends here
 

	
 
STR_0314_FUND_NEW_INDUSTRY                                      :{WHITE}Fund new industry
 
STR_JUST_STRING                                                 :{STRING}
 
STR_JUST_INT                                                    :{NUM}
 
STR_0316_CAN_ONLY_BE_BUILT_IN_TOWNS                             :{WHITE}...can only be built in towns
 
STR_0317_CAN_ONLY_BE_BUILT_IN_RAINFOREST                        :{WHITE}...can only be built in rainforest areas
 
STR_0318_CAN_ONLY_BE_BUILT_IN_DESERT                            :{WHITE}...can only be built in desert areas
 
STR_0319_PAUSED                                                 :{YELLOW}* *  PAUSED  *  *
 

	
 
STR_031B_SCREENSHOT_SUCCESSFULLY                                :{WHITE}Screenshot successfully saved as '{STRING}'
 
STR_031C_SCREENSHOT_FAILED                                      :{WHITE}Screenshot failed!
 

	
 
STR_0329_PURCHASE_LAND_FOR_FUTURE                               :{BLACK}Purchase land for future use
 
STR_032F_AUTOSAVE                                               :{RED}AUTOSAVE
 
STR_SAVING_GAME                                                 :{RED}*  *  SAVING GAME  *  *
 
STR_SAVE_STILL_IN_PROGRESS                                      :{WHITE}Saving still in progress,{}please wait until it is finished!
 
STR_0330_SELECT_EZY_STREET_STYLE                                :{BLACK}Select 'Ezy Street style music' programme
 

	
 
STR_0335_6                                                      :{BLACK}6
 
STR_0336_7                                                      :{BLACK}7
 
STR_6                                                           :{BLACK}6
 
STR_7                                                           :{BLACK}7
 

	
 
############ start of townname region
 
STR_TOWNNAME_ORIGINAL_ENGLISH                                   :English (Original)
 
STR_TOWNNAME_FRENCH                                             :French
 
STR_TOWNNAME_GERMAN                                             :German
 
STR_TOWNNAME_ADDITIONAL_ENGLISH                                 :English (Additional)
 
STR_TOWNNAME_LATIN_AMERICAN                                     :Latin-American
 
STR_TOWNNAME_SILLY                                              :Silly
 
STR_TOWNNAME_SWEDISH                                            :Swedish
 
STR_TOWNNAME_DUTCH                                              :Dutch
 
STR_TOWNNAME_FINNISH                                            :Finnish
 
STR_TOWNNAME_POLISH                                             :Polish
 
STR_TOWNNAME_SLOVAKISH                                          :Slovakish
 
STR_TOWNNAME_NORWEGIAN                                          :Norwegian
 
STR_TOWNNAME_HUNGARIAN                                          :Hungarian
 
STR_TOWNNAME_AUSTRIAN                                           :Austrian
 
STR_TOWNNAME_ROMANIAN                                           :Romanian
 
STR_TOWNNAME_CZECH                                              :Czech
 
STR_TOWNNAME_SWISS                                              :Swiss
 
STR_TOWNNAME_DANISH                                             :Danish
 
STR_TOWNNAME_TURKISH                                            :Turkish
 
STR_TOWNNAME_ITALIAN                                            :Italian
 
STR_TOWNNAME_CATALAN                                            :Catalan
 
############ end of townname region
 
@@ -1627,84 +1627,84 @@ STR_101D_BUILD_RAILROAD_TUNNEL          
 
STR_101E_TOGGLE_BUILD_REMOVE_FOR                                :{BLACK}Toggle build/remove for railway track and signals
 
STR_101F_BRIDGE_SELECTION_CLICK                                 :{BLACK}Bridge selection - click on your prefered bridge to build it
 
STR_1020_SELECT_RAILROAD_DEPOT_ORIENTATIO                       :{BLACK}Select railway depot orientation
 
STR_1021_RAILROAD_TRACK                                         :Railway track
 
STR_1023_RAILROAD_TRAIN_DEPOT                                   :Railway train depot
 
STR_1024_AREA_IS_OWNED_BY_ANOTHER                               :{WHITE}...area is owned by another company
 
STR_RAILROAD_TRACK_WITH_NORMAL_SIGNALS                          :Railway track with normal signals
 
STR_RAILROAD_TRACK_WITH_PRESIGNALS                              :Railway track with pre-signals
 
STR_RAILROAD_TRACK_WITH_EXITSIGNALS                             :Railway track with exit-signals
 
STR_RAILROAD_TRACK_WITH_COMBOSIGNALS                            :Railway track with combo-signals
 
STR_RAILROAD_TRACK_WITH_NORMAL_PRESIGNALS                       :Railway track with normal and pre-signals
 
STR_RAILROAD_TRACK_WITH_NORMAL_EXITSIGNALS                      :Railway track with normal and exit-signals
 
STR_RAILROAD_TRACK_WITH_NORMAL_COMBOSIGNALS                     :Railway track with normal and combo-signals
 
STR_RAILROAD_TRACK_WITH_PRE_EXITSIGNALS                         :Railway track with pre- and exit-signals
 
STR_RAILROAD_TRACK_WITH_PRE_COMBOSIGNALS                        :Railway track with pre- and combo-signals
 
STR_RAILROAD_TRACK_WITH_EXIT_COMBOSIGNALS                       :Railway track with exit- and combo-signals
 
STR_MUST_REMOVE_RAILWAY_STATION_FIRST                           :{WHITE}Must remove railway station first
 

	
 

	
 

	
 
##id 0x1800
 
STR_1801_MUST_REMOVE_ROAD_FIRST                                 :{WHITE}Must remove road first
 
STR_ROAD_WORKS_IN_PROGRESS                                      :{WHITE}Road works in progress
 
STR_1802_ROAD_CONSTRUCTION                                      :{WHITE}Road Construction
 
STR_1802_TRAMWAY_CONSTRUCTION                                   :{WHITE}Tramway Construction
 
STR_WHITE_TRAMWAY_CONSTRUCTION                                  :{WHITE}Tramway Construction
 
STR_1803_SELECT_ROAD_BRIDGE                                     :{WHITE}Select Road Bridge
 
STR_ERR_ONEWAY_ROADS_CAN_T_HAVE_JUNCTION                        :{WHITE}... one way roads can't have junctions
 
STR_1804_CAN_T_BUILD_ROAD_HERE                                  :{WHITE}Can't build road here...
 
STR_1804_CAN_T_BUILD_TRAMWAY_HERE                               :{WHITE}Can't build tramway here...
 
STR_CAN_T_BUILD_TRAMWAY_HERE                                    :{WHITE}Can't build tramway here...
 
STR_1805_CAN_T_REMOVE_ROAD_FROM                                 :{WHITE}Can't remove road from here...
 
STR_1805_CAN_T_REMOVE_TRAMWAY_FROM                              :{WHITE}Can't remove tramway from here...
 
STR_CAN_T_REMOVE_TRAMWAY_FROM                                   :{WHITE}Can't remove tramway from here...
 
STR_1806_ROAD_DEPOT_ORIENTATION                                 :{WHITE}Road Depot Orientation
 
STR_1806_TRAM_DEPOT_ORIENTATION                                 :{WHITE}Tram Depot Orientation
 
STR_TRAM_DEPOT_ORIENTATION                                      :{WHITE}Tram Depot Orientation
 
STR_1807_CAN_T_BUILD_ROAD_VEHICLE                               :{WHITE}Can't build road vehicle depot here...
 
STR_1807_CAN_T_BUILD_TRAM_VEHICLE                               :{WHITE}Can't build tram vehicle depot here...
 
STR_CAN_T_BUILD_TRAM_VEHICLE                                    :{WHITE}Can't build tram vehicle depot here...
 
STR_1808_CAN_T_BUILD_BUS_STATION                                :{WHITE}Can't build bus station...
 
STR_1809_CAN_T_BUILD_TRUCK_STATION                              :{WHITE}Can't build lorry station...
 
STR_1808_CAN_T_BUILD_PASSENGER_TRAM_STATION                     :{WHITE}Can't build passenger tram station...
 
STR_1809_CAN_T_BUILD_CARGO_TRAM_STATION                         :{WHITE}Can't build freight tram station...
 
STR_CAN_T_BUILD_PASSENGER_TRAM_STATION                          :{WHITE}Can't build passenger tram station...
 
STR_CAN_T_BUILD_CARGO_TRAM_STATION                              :{WHITE}Can't build freight tram station...
 
STR_180A_ROAD_CONSTRUCTION                                      :Road construction
 
STR_180A_TRAMWAY_CONSTRUCTION                                   :Tramway construction
 
STR_TRAMWAY_CONSTRUCTION                                        :Tramway construction
 
STR_180B_BUILD_ROAD_SECTION                                     :{BLACK}Build road section
 
STR_BUILD_AUTOROAD_TIP                                          :{BLACK}Build road section using the Autoroad mode
 
STR_180B_BUILD_TRAMWAY_SECTION                                  :{BLACK}Build tramway section
 
STR_BUILD_TRAMWAY_SECTION                                       :{BLACK}Build tramway section
 
STR_BUILD_AUTOTRAM_TIP                                          :{BLACK}Build tramway section using the Autotram mode
 
STR_180C_BUILD_ROAD_VEHICLE_DEPOT                               :{BLACK}Build road vehicle depot (for building and servicing vehicles)
 
STR_180C_BUILD_TRAM_VEHICLE_DEPOT                               :{BLACK}Build tram vehicle depot (for building and servicing vehicles)
 
STR_BUILD_TRAM_VEHICLE_DEPOT                                    :{BLACK}Build tram vehicle depot (for building and servicing vehicles)
 
STR_180D_BUILD_BUS_STATION                                      :{BLACK}Build bus station
 
STR_180E_BUILD_TRUCK_LOADING_BAY                                :{BLACK}Build lorry loading bay
 
STR_180D_BUILD_PASSENGER_TRAM_STATION                           :{BLACK}Build passenger tram station
 
STR_180E_BUILD_CARGO_TRAM_STATION                               :{BLACK}Build freight tram station
 
STR_BUILD_PASSENGER_TRAM_STATION                                :{BLACK}Build passenger tram station
 
STR_BUILD_CARGO_TRAM_STATION                                    :{BLACK}Build freight tram station
 
STR_180F_BUILD_ROAD_BRIDGE                                      :{BLACK}Build road bridge
 
STR_180F_BUILD_TRAMWAY_BRIDGE                                   :{BLACK}Build tramway bridge
 
STR_BUILD_TRAMWAY_BRIDGE                                        :{BLACK}Build tramway bridge
 
STR_1810_BUILD_ROAD_TUNNEL                                      :{BLACK}Build road tunnel
 
STR_1810_BUILD_TRAMWAY_TUNNEL                                   :{BLACK}Build tramway tunnel
 
STR_BUILD_TRAMWAY_TUNNEL                                        :{BLACK}Build tramway tunnel
 
STR_TOGGLE_ONE_WAY_ROAD                                         :{BLACK}Activate/Deactivate one way roads
 
STR_1811_TOGGLE_BUILD_REMOVE_FOR                                :{BLACK}Toggle build/remove for road construction
 
STR_1811_TOGGLE_BUILD_REMOVE_FOR_TRAMWAYS                       :{BLACK}Toggle build/remove for tramway construction
 
STR_TOGGLE_BUILD_REMOVE_FOR_TRAMWAYS                            :{BLACK}Toggle build/remove for tramway construction
 
STR_1813_SELECT_ROAD_VEHICLE_DEPOT                              :{BLACK}Select road vehicle depot orientation
 
STR_1813_SELECT_TRAM_VEHICLE_DEPOT                              :{BLACK}Select tram vehicle depot orientation
 
STR_SELECT_TRAM_VEHICLE_DEPOT                                   :{BLACK}Select tram vehicle depot orientation
 
STR_1814_ROAD                                                   :Road
 
STR_1815_ROAD_WITH_STREETLIGHTS                                 :Road with streetlights
 
STR_1816_TREE_LINED_ROAD                                        :Tree-lined road
 
STR_1817_ROAD_VEHICLE_DEPOT                                     :Road vehicle depot
 
STR_1818_ROAD_RAIL_LEVEL_CROSSING                               :Road/rail level crossing
 
STR_CAN_T_REMOVE_BUS_STATION                                    :{WHITE}Can't remove bus station...
 
STR_CAN_T_REMOVE_TRUCK_STATION                                  :{WHITE}Can't remove lorry station...
 
STR_CAN_T_REMOVE_PASSENGER_TRAM_STATION                         :{WHITE}Can't remove passenger tram station...
 
STR_CAN_T_REMOVE_CARGO_TRAM_STATION                             :{WHITE}Can't remove freight tram station...
 

	
 
##id 0x2000
 
STR_2000_TOWNS                                                  :{WHITE}Towns
 
STR_TOWN_LABEL_POP                                              :{WHITE}{TOWN} ({COMMA})
 
STR_TOWN_LABEL                                                  :{WHITE}{TOWN}
 
STR_TOWN_LABEL_TINY_BLACK                                       :{TINYFONT}{BLACK}{TOWN}
 
STR_TOWN_LABEL_TINY_WHITE                                       :{TINYFONT}{WHITE}{TOWN}
 
STR_2002                                                        :{TINYFONT}{BLACK}{SIGN}
 
STR_2002_WHITE                                                  :{TINYFONT}{WHITE}{SIGN}
 
STR_2004_BUILDING_MUST_BE_DEMOLISHED                            :{WHITE}Building must be demolished first
 
STR_2005                                                        :{WHITE}{TOWN}
 
STR_2006_POPULATION                                             :{BLACK}Population: {ORANGE}{COMMA}{BLACK}  Houses: {ORANGE}{COMMA}
 
STR_2007_RENAME_TOWN                                            :Rename Town
 
STR_2008_CAN_T_RENAME_TOWN                                      :{WHITE}Can't rename town...
 
STR_2009_LOCAL_AUTHORITY_REFUSES                                :{WHITE}{TOWN} local authority refuses to allow this
 
@@ -1805,162 +1805,162 @@ STR_2802_TREES                          
 
STR_2803_TREE_ALREADY_HERE                                      :{WHITE}...tree already here
 
STR_2804_SITE_UNSUITABLE                                        :{WHITE}...site unsuitable
 
STR_2805_CAN_T_PLANT_TREE_HERE                                  :{WHITE}Can't plant tree here...
 
STR_2806                                                        :{WHITE}{SIGN}
 
STR_2808_TOO_MANY_SIGNS                                         :{WHITE}...too many signs
 
STR_2809_CAN_T_PLACE_SIGN_HERE                                  :{WHITE}Can't place sign here...
 
STR_280A_SIGN                                                   :Sign
 
STR_280B_EDIT_SIGN_TEXT                                         :{WHITE}Edit sign text
 
STR_280C_CAN_T_CHANGE_SIGN_NAME                                 :{WHITE}Can't change sign name...
 
STR_280D_SELECT_TREE_TYPE_TO_PLANT                              :{BLACK}Select tree type to plant
 
STR_280E_TREES                                                  :Trees
 
STR_280F_RAINFOREST                                             :Rainforest
 
STR_2810_CACTUS_PLANTS                                          :Cactus Plants
 

	
 
##id 0x3000
 
STR_3000_RAIL_STATION_SELECTION                                 :{WHITE}Rail Station Selection
 
STR_3001_AIRPORT_SELECTION                                      :{WHITE}Airport Selection
 
STR_3002_ORIENTATION                                            :{BLACK}Orientation
 
STR_3003_NUMBER_OF_TRACKS                                       :{BLACK}Number of tracks
 
STR_3004_PLATFORM_LENGTH                                        :{BLACK}Platform length
 
STR_3005_TOO_CLOSE_TO_ANOTHER_RAILROAD                          :{WHITE}Too close to another railway station
 
STR_3006_ADJOINS_MORE_THAN_ONE_EXISTING                         :{WHITE}Adjoins more than one existing station/loading area
 
STR_3007_TOO_MANY_STATIONS_LOADING                              :{WHITE}Too many stations/loading areas in this town
 
STR_3008_TOO_MANY_STATIONS_LOADING                              :{WHITE}Too many stations/loading areas
 
STR_3008A_TOO_MANY_BUS_STOPS                                    :{WHITE}Too many bus stops
 
STR_3008B_TOO_MANY_TRUCK_STOPS                                  :{WHITE}Too many lorry stations
 
STR_TOO_MANY_BUS_STOPS                                          :{WHITE}Too many bus stops
 
STR_TOO_MANY_TRUCK_STOPS                                        :{WHITE}Too many lorry stations
 
STR_3009_TOO_CLOSE_TO_ANOTHER_STATION                           :{WHITE}Too close to another station/loading area
 
STR_300A_0                                                      :{WHITE}{STATION} {STATIONFEATURES}
 
STR_300B_MUST_DEMOLISH_RAILROAD                                 :{WHITE}Must demolish railway station first
 
STR_300D_TOO_CLOSE_TO_ANOTHER_AIRPORT                           :{WHITE}Too close to another airport
 
STR_300E_MUST_DEMOLISH_AIRPORT_FIRST                            :{WHITE}Must demolish airport first
 

	
 
STR_3030_RENAME_STATION_LOADING                                 :Rename station/loading area
 
STR_3031_CAN_T_RENAME_STATION                                   :{WHITE}Can't rename station...
 
STR_3032_RATINGS                                                :{BLACK}Ratings
 
STR_3033_ACCEPTS                                                :{BLACK}Accepts
 
STR_3034_LOCAL_RATING_OF_TRANSPORT                              :{BLACK}Local rating of transport service:
 

	
 
############ range for rating starts
 
STR_3035_APPALLING                                              :Appalling
 
STR_3036_VERY_POOR                                              :Very Poor
 
STR_3037_POOR                                                   :Poor
 
STR_3038_MEDIOCRE                                               :Mediocre
 
STR_3039_GOOD                                                   :Good
 
STR_303A_VERY_GOOD                                              :Very Good
 
STR_303B_EXCELLENT                                              :Excellent
 
STR_303C_OUTSTANDING                                            :Outstanding
 
############ range for rating ends
 

	
 
STR_303D                                                        :{WHITE}{STRING}: {YELLOW}{STRING} ({COMMA}%)
 
STR_303E_NO_LONGER_ACCEPTS                                      :{WHITE}{STATION} no longer accepts {STRING}
 
STR_303F_NO_LONGER_ACCEPTS_OR                                   :{WHITE}{STATION} no longer accepts {STRING} or {STRING}
 
STR_3040_NOW_ACCEPTS                                            :{WHITE}{STATION} now accepts {STRING}
 
STR_3041_NOW_ACCEPTS_AND                                        :{WHITE}{STATION} now accepts {STRING} and {STRING}
 
STR_3042_BUS_STATION_ORIENTATION                                :{WHITE}Bus Station Orientation
 
STR_3043_TRUCK_STATION_ORIENT                                   :{WHITE}Lorry Station Orientation
 
STR_3042_PASSENGER_TRAM_STATION_ORIENTATION                     :{WHITE}Passenger Tram Orientation
 
STR_3043_CARGO_TRAM_STATION_ORIENT                              :{WHITE}Freight Tram Orientation
 
STR_PASSENGER_TRAM_STATION_ORIENTATION                          :{WHITE}Passenger Tram Orientation
 
STR_CARGO_TRAM_STATION_ORIENT                                   :{WHITE}Freight Tram Orientation
 
STR_3046_MUST_DEMOLISH_BUS_STATION                              :{WHITE}Must demolish bus station first
 
STR_3047_MUST_DEMOLISH_TRUCK_STATION                            :{WHITE}Must demolish lorry station first
 
STR_3046_MUST_DEMOLISH_PASSENGER_TRAM_STATION                   :{WHITE}Must demolish passenger tram station first
 
STR_3047_MUST_DEMOLISH_CARGO_TRAM_STATION                       :{WHITE}Must demolish freight tram station first
 
STR_MUST_DEMOLISH_PASSENGER_TRAM_STATION                        :{WHITE}Must demolish passenger tram station first
 
STR_MUST_DEMOLISH_CARGO_TRAM_STATION                            :{WHITE}Must demolish freight tram station first
 
STR_3048_STATIONS                                               :{WHITE}{COMPANY} - {COMMA} Station{P "" s}
 
STR_3049_0                                                      :{YELLOW}{STATION} {STATIONFEATURES}
 
STR_304A_NONE                                                   :{YELLOW}- None -
 
STR_304B_SITE_UNSUITABLE                                        :{WHITE}...site unsuitable
 
STR_304C_TOO_CLOSE_TO_ANOTHER_DOCK                              :{WHITE}Too close to another dock
 
STR_304D_MUST_DEMOLISH_DOCK_FIRST                               :{WHITE}Must demolish dock first
 
STR_304E_SELECT_RAILROAD_STATION                                :{BLACK}Select railway station orientation
 
STR_304F_SELECT_NUMBER_OF_PLATFORMS                             :{BLACK}Select number of platforms for railway station
 
STR_3050_SELECT_LENGTH_OF_RAILROAD                              :{BLACK}Select length of railway station
 
STR_3051_SELECT_BUS_STATION_ORIENTATION                         :{BLACK}Select bus station orientation
 
STR_3052_SELECT_TRUCK_LOADING_BAY                               :{BLACK}Select lorry loading bay orientation
 
STR_3051_SELECT_PASSENGER_TRAM_STATION_ORIENTATION              :{BLACK}Select passenger tram station orientation
 
STR_3052_SELECT_CARGO_TRAM_STATION_ORIENTATION                  :{BLACK}Select freight tram station orientation
 
STR_SELECT_PASSENGER_TRAM_STATION_ORIENTATION                   :{BLACK}Select passenger tram station orientation
 
STR_SELECT_CARGO_TRAM_STATION_ORIENTATION                       :{BLACK}Select freight tram station orientation
 
STR_3053_CENTER_MAIN_VIEW_ON_STATION                            :{BLACK}Centre main view on station location
 
STR_3054_SHOW_STATION_RATINGS                                   :{BLACK}Show station ratings
 
STR_3055_CHANGE_NAME_OF_STATION                                 :{BLACK}Change name of station
 
STR_3056_SHOW_LIST_OF_ACCEPTED_CARGO                            :{BLACK}Show list of accepted cargo
 
STR_3057_STATION_NAMES_CLICK_ON                                 :{BLACK}Station names - click on name to centre main view on station
 
STR_3058_SELECT_SIZE_TYPE_OF_AIRPORT                            :{BLACK}Select size/type of airport
 
STR_305C_0                                                      :{STATION} {STATIONFEATURES}
 
STR_STATION_SIGN_TINY                                           :{TINYFONT}{STATION}
 
STR_305E_RAILROAD_STATION                                       :Railway station
 
STR_305F_AIRCRAFT_HANGAR                                        :Aircraft hangar
 
STR_3060_AIRPORT                                                :Airport
 
STR_3061_TRUCK_LOADING_AREA                                     :Lorry loading area
 
STR_3062_BUS_STATION                                            :Bus station
 
STR_3063_SHIP_DOCK                                              :Ship dock
 
STR_3064_HIGHLIGHT_COVERAGE_AREA                                :{BLACK}Highlight coverage area of proposed site
 
STR_3065_DON_T_HIGHLIGHT_COVERAGE                               :{BLACK}Don't highlight coverage area of proposed site
 
STR_3066_COVERAGE_AREA_HIGHLIGHT                                :{BLACK}Coverage area highlight
 
STR_3068_DOCK                                                   :{WHITE}Dock
 
STR_3069_BUOY                                                   :Buoy
 
STR_306A_BUOY_IN_THE_WAY                                        :{WHITE}...buoy in the way
 
STR_306C_STATION_TOO_SPREAD_OUT                                 :{WHITE}...station too spread out
 
STR_306D_NONUNIFORM_STATIONS_DISALLOWED                         :{WHITE}...nonuniform stations disabled
 
STR_NONUNIFORM_STATIONS_DISALLOWED                              :{WHITE}...nonuniform stations disabled
 
STR_USE_CTRL_TO_SELECT_MORE                                     :{BLACK}Hold down CTRL to select more than one item
 

	
 
STR_UNDEFINED                                                   :(undefined string)
 
STR_STAT_CLASS_DFLT                                             :Default station
 
STR_STAT_CLASS_WAYP                                             :Waypoints
 

	
 
##id 0x3800
 
STR_3800_SHIP_DEPOT_ORIENTATION                                 :{WHITE}Ship Depot Orientation
 
STR_3801_MUST_BE_BUILT_ON_WATER                                 :{WHITE}...must be built on water
 
STR_3802_CAN_T_BUILD_SHIP_DEPOT                                 :{WHITE}Can't build ship depot here...
 
STR_3803_SELECT_SHIP_DEPOT_ORIENTATION                          :{BLACK}Select ship depot orientation
 
STR_3804_WATER                                                  :Water
 
STR_3805_COAST_OR_RIVERBANK                                     :Coast or riverbank
 
STR_3806_SHIP_DEPOT                                             :Ship depot
 
STR_3807_CAN_T_BUILD_ON_WATER                                   :{WHITE}...Can't build on water
 
STR_MUST_DEMOLISH_CANAL_FIRST                                   :{WHITE}Must demolish canal first
 

	
 
##id 0x4000
 
STR_4000_SAVE_GAME                                              :{WHITE}Save Game
 
STR_4001_LOAD_GAME                                              :{WHITE}Load Game
 
STR_4002_SAVE                                                   :{BLACK}Save
 
STR_4003_DELETE                                                 :{BLACK}Delete
 
STR_4004                                                        :{COMPANY}, {DATE_LONG}
 
STR_4005_BYTES_FREE                                             :{BLACK}{COMMA} megabyte{P "" s} free
 
STR_4006_UNABLE_TO_READ_DRIVE                                   :{BLACK}Unable to read drive
 
STR_4007_GAME_SAVE_FAILED                                       :{WHITE}Game Save Failed{}{STRING}
 
STR_4008_UNABLE_TO_DELETE_FILE                                  :{WHITE}Unable to delete file
 
STR_4009_GAME_LOAD_FAILED                                       :{WHITE}Game Load Failed{}{STRING}
 
STR_GAME_SAVELOAD_ERROR_BROKEN_INTERNAL_ERROR                   :Internal error: {STRING}
 
STR_GAME_SAVELOAD_ERROR_BROKEN_SAVEGAME                         :Broken savegame - {STRING}
 
STR_GAME_SAVELOAD_ERROR_TOO_NEW_SAVEGAME                        :Savegame is made with newer version
 
STR_GAME_SAVELOAD_ERROR_FILE_NOT_READABLE                       :File not readable
 
STR_GAME_SAVELOAD_ERROR_FILE_NOT_WRITEABLE                      :File not writeable
 
STR_400A_LIST_OF_DRIVES_DIRECTORIES                             :{BLACK}List of drives, directories and saved-game files
 
STR_400B_CURRENTLY_SELECTED_NAME                                :{BLACK}Currently selected name for saved-game
 
STR_400C_DELETE_THE_CURRENTLY_SELECTED                          :{BLACK}Delete the currently selected saved-game
 
STR_400D_SAVE_THE_CURRENT_GAME_USING                            :{BLACK}Save the current game, using the selected name
 
STR_400E_SELECT_NEW_GAME_TYPE                                   :{WHITE}Select New Game Type
 
STR_400F_SELECT_SCENARIO_GREEN_PRE                              :{BLACK}Select scenario (green), pre-set game (blue), or random new game
 
STR_4010_GENERATE_RANDOM_NEW_GAME                               :Generate random new game
 
STR_4011_LOAD_HEIGHTMAP                                         :{WHITE}Load Heightmap
 
STR_LOAD_HEIGHTMAP                                              :{WHITE}Load Heightmap
 

	
 
##id 0x4800
 
STR_4800_IN_THE_WAY                                             :{WHITE}{STRING} in the way
 
STR_4801                                                        :{WHITE}{INDUSTRY}
 
STR_4802_COAL_MINE                                              :Coal Mine
 
STR_4803_POWER_STATION                                          :Power Station
 
STR_4804_SAWMILL                                                :Sawmill
 
STR_4805_FOREST                                                 :Forest
 
STR_4806_OIL_REFINERY                                           :Oil Refinery
 
STR_4807_OIL_RIG                                                :Oil Rig
 
STR_4808_FACTORY                                                :Factory
 
STR_4809_PRINTING_WORKS                                         :Printing Works
 
STR_480A_STEEL_MILL                                             :Steel Mill
 
STR_480B_FARM                                                   :Farm
 
STR_480C_COPPER_ORE_MINE                                        :Copper Ore Mine
 
STR_480D_OIL_WELLS                                              :Oil Wells
 
STR_480E_BANK                                                   :Bank
 
STR_480F_FOOD_PROCESSING_PLANT                                  :Food Processing Plant
 
STR_4810_PAPER_MILL                                             :Paper Mill
 
STR_4811_GOLD_MINE                                              :Gold Mine
 
STR_4812_BANK                                                   :Bank
 
STR_4813_DIAMOND_MINE                                           :Diamond Mine
 
STR_4814_IRON_ORE_MINE                                          :Iron Ore Mine
 
STR_4815_FRUIT_PLANTATION                                       :Fruit Plantation
 
@@ -2122,92 +2122,92 @@ STR_OPTIONS_SAVE_CHANGES                
 
STR_6801_EASY                                                   :{BLACK}Easy
 
STR_6802_MEDIUM                                                 :{BLACK}Medium
 
STR_6803_HARD                                                   :{BLACK}Hard
 
STR_6804_CUSTOM                                                 :{BLACK}Custom
 
############ range for difficulty levels ends
 

	
 
############ range for difficulty settings starts
 
STR_6805_MAXIMUM_NO_COMPETITORS                                 :{LTBLUE}Maximum no. competitors: {ORANGE}{COMMA}
 
STR_6806_COMPETITOR_START_TIME                                  :{LTBLUE}Competitor start time: {ORANGE}{STRING}
 
STR_6807_NO_OF_TOWNS                                            :{LTBLUE}No. of towns: {ORANGE}{STRING}
 
STR_6808_NO_OF_INDUSTRIES                                       :{LTBLUE}No. of industries: {ORANGE}{STRING}
 
STR_6809_MAXIMUM_INITIAL_LOAN_000                               :{LTBLUE}Maximum initial loan: {ORANGE}{CURRENCY}
 
STR_680A_INITIAL_INTEREST_RATE                                  :{LTBLUE}Initial interest rate: {ORANGE}{COMMA}%
 
STR_680B_VEHICLE_RUNNING_COSTS                                  :{LTBLUE}Vehicle running costs: {ORANGE}{STRING}
 
STR_680C_CONSTRUCTION_SPEED_OF_COMPETITOR                       :{LTBLUE}Construction speed of competitors: {ORANGE}{STRING}
 
STR_680D_INTELLIGENCE_OF_COMPETITORS                            :{LTBLUE}Intelligence of competitors: {ORANGE}{STRING}
 
STR_680E_VEHICLE_BREAKDOWNS                                     :{LTBLUE}Vehicle breakdowns: {ORANGE}{STRING}
 
STR_680F_SUBSIDY_MULTIPLIER                                     :{LTBLUE}Subsidy multiplier: {ORANGE}{STRING}
 
STR_6810_COST_OF_CONSTRUCTION                                   :{LTBLUE}Cost of construction: {ORANGE}{STRING}
 
STR_6811_TERRAIN_TYPE                                           :{LTBLUE}Terrain type: {ORANGE}{STRING}
 
STR_6812_QUANTITY_OF_SEA_LAKES                                  :{LTBLUE}Quantity of sea/lakes: {ORANGE}{STRING}
 
STR_6813_ECONOMY                                                :{LTBLUE}Economy: {ORANGE}{STRING}
 
STR_6814_TRAIN_REVERSING                                        :{LTBLUE}Train reversing: {ORANGE}{STRING}
 
STR_6815_DISASTERS                                              :{LTBLUE}Disasters: {ORANGE}{STRING}
 
STR_16816_CITY_APPROVAL                                         :{LTBLUE}City council's attitude towards area restructuring: {ORANGE}{STRING}
 
STR_CITY_APPROVAL                                               :{LTBLUE}City council's attitude towards area restructuring: {ORANGE}{STRING}
 
############ range for difficulty settings ends
 

	
 
STR_26816_NONE                                                  :None
 
STR_NONE                                                        :None
 
STR_NUM_VERY_LOW                                                :Very low
 
STR_6816_LOW                                                    :Low
 
STR_6817_NORMAL                                                 :Normal
 
STR_6818_HIGH                                                   :High
 
STR_6819                                                        :{BLACK}{SMALLLEFTARROW}
 
STR_681A                                                        :{BLACK}{SMALLRIGHTARROW}
 
STR_681B_VERY_SLOW                                              :Very Slow
 
STR_681C_SLOW                                                   :Slow
 
STR_681D_MEDIUM                                                 :Medium
 
STR_681E_FAST                                                   :Fast
 
STR_681F_VERY_FAST                                              :Very Fast
 
STR_VERY_LOW                                                    :Very Low
 
STR_6820_LOW                                                    :Low
 
STR_6821_MEDIUM                                                 :Medium
 
STR_6822_HIGH                                                   :High
 
STR_6823_NONE                                                   :None
 
STR_6824_REDUCED                                                :Reduced
 
STR_6825_NORMAL                                                 :Normal
 
STR_6826_X1_5                                                   :x1.5
 
STR_6827_X2                                                     :x2
 
STR_6828_X3                                                     :x3
 
STR_6829_X4                                                     :x4
 
STR_682A_VERY_FLAT                                              :Very Flat
 
STR_682B_FLAT                                                   :Flat
 
STR_682C_HILLY                                                  :Hilly
 
STR_682D_MOUNTAINOUS                                            :Mountainous
 
STR_682E_STEADY                                                 :Steady
 
STR_682F_FLUCTUATING                                            :Fluctuating
 
STR_6830_IMMEDIATE                                              :Immediate
 
STR_6831_3_MONTHS_AFTER_PLAYER                                  :3 months after player
 
STR_6832_6_MONTHS_AFTER_PLAYER                                  :6 months after player
 
STR_6833_9_MONTHS_AFTER_PLAYER                                  :9 months after player
 
STR_6834_AT_END_OF_LINE_AND_AT_STATIONS                         :At end of line, and at stations
 
STR_6835_AT_END_OF_LINE_ONLY                                    :At end of line only
 
STR_6836_OFF                                                    :Off
 
STR_6837_ON                                                     :On
 
STR_6838_SHOW_HI_SCORE_CHART                                    :{BLACK}Show hi-score chart
 
STR_6839_PERMISSIVE                                             :Permissive
 
STR_683A_TOLERANT                                               :Tolerant
 
STR_683B_HOSTILE                                                :Hostile
 
STR_PERMISSIVE                                                  :Permissive
 
STR_TOLERANT                                                    :Tolerant
 
STR_HOSTILE                                                     :Hostile
 

	
 
##id 0x7000
 
STR_7000                                                        :
 
STR_7001                                                        :{WHITE}{COMPANY} {BLACK}{COMPANYNUM}
 
STR_7002_PLAYER                                                 :(Player {COMMA})
 
STR_7004_NEW_FACE                                               :{BLACK}New Face
 
STR_7005_COLOR_SCHEME                                           :{BLACK}Colour Scheme
 
STR_7006_COLOR_SCHEME                                           :{GOLD}Colour Scheme:
 
STR_7007_NEW_COLOR_SCHEME                                       :{WHITE}New Colour Scheme
 
STR_7008_COMPANY_NAME                                           :{BLACK}Company Name
 
STR_7009_PRESIDENT_NAME                                         :{BLACK}Manager Name
 
STR_700A_COMPANY_NAME                                           :Company Name
 
STR_700B_PRESIDENT_S_NAME                                       :Manager's Name
 
STR_700C_CAN_T_CHANGE_COMPANY_NAME                              :{WHITE}Can't change company name...
 
STR_700D_CAN_T_CHANGE_PRESIDENT                                 :{WHITE}Can't change manager's name...
 
STR_700E_FINANCES                                               :{WHITE}{COMPANY} Finances {BLACK}{COMPANYNUM}
 
STR_700F_EXPENDITURE_INCOME                                     :{WHITE}Expenditure/Income
 
STR_7010                                                        :{WHITE}{NUM}
 
STR_7011_CONSTRUCTION                                           :{GOLD}Construction
 
STR_7012_NEW_VEHICLES                                           :{GOLD}New Vehicles
 
STR_7013_TRAIN_RUNNING_COSTS                                    :{GOLD}Train Running Costs
 
STR_7014_ROAD_VEH_RUNNING_COSTS                                 :{GOLD}Road Veh. Running Costs
 
STR_7015_AIRCRAFT_RUNNING_COSTS                                 :{GOLD}Aircraft Running Costs
 
STR_7016_SHIP_RUNNING_COSTS                                     :{GOLD}Ship Running Costs
 
@@ -2302,49 +2302,49 @@ STR_7070_BUILD_COMPANY_HEADQUARTERS     
 
STR_RELOCATE_COMPANY_HEADQUARTERS                               :{BLACK}Rebuild company headquarters elsewhere for 1% cost of company value
 
STR_7071_CAN_T_BUILD_COMPANY_HEADQUARTERS                       :{WHITE}Can't build company headquarters...
 
STR_7072_VIEW_HQ                                                :{BLACK}View HQ
 
STR_RELOCATE_HQ                                                 :{BLACK}Relocate HQ
 
STR_COMPANY_PASSWORD                                            :{BLACK}Password
 
STR_COMPANY_PASSWORD_TOOLTIP                                    :{BLACK}Password-protect your company to prevent unauthorised users from joining.
 
STR_SET_COMPANY_PASSWORD                                        :{BLACK}Set company password
 
STR_COMPANY_PASSWORD_CANCEL                                     :{BLACK}Do not save the entered password
 
STR_COMPANY_PASSWORD_OK                                         :{BLACK}Give the company the new password
 
STR_COMPANY_PASSWORD_CAPTION                                    :{WHITE}Company password
 
STR_MAKE_DEFAULT_COMPANY_PASSWORD                               :{BLACK}Default company password
 
STR_MAKE_DEFAULT_COMPANY_PASSWORD_TIP                           :{BLACK}Use this company password as default for new companies
 
STR_7073_WORLD_RECESSION_FINANCIAL                              :{BIGFONT}{BLACK}World Recession!{}{}Financial experts fear worst as economy slumps!
 
STR_7074_RECESSION_OVER_UPTURN_IN                               :{BIGFONT}{BLACK}Recession Over!{}{}Upturn in trade gives confidence to industries as economy strengthens!
 
STR_7075_TOGGLE_LARGE_SMALL_WINDOW                              :{BLACK}Toggle large/small window size
 
STR_7076_COMPANY_VALUE                                          :{GOLD}Company value: {WHITE}{CURRENCY}
 
STR_7077_BUY_25_SHARE_IN_COMPANY                                :{BLACK}Buy 25% share in company
 
STR_7078_SELL_25_SHARE_IN_COMPANY                               :{BLACK}Sell 25% share in company
 
STR_7079_BUY_25_SHARE_IN_THIS_COMPANY                           :{BLACK}Buy 25% share in this company
 
STR_707A_SELL_25_SHARE_IN_THIS_COMPANY                          :{BLACK}Sell 25% share in this company
 
STR_707B_CAN_T_BUY_25_SHARE_IN_THIS                             :{WHITE}Can't buy 25% share in this company...
 
STR_707C_CAN_T_SELL_25_SHARE_IN                                 :{WHITE}Can't sell 25% share in this company...
 
STR_707D_OWNED_BY                                               :{WHITE}({COMMA}% owned by {COMPANY})
 
STR_707F_HAS_BEEN_TAKEN_OVER_BY                                 :{BLACK}{BIGFONT}{COMPANY} has been taken over by {COMPANY}!
 
STR_7080_PROTECTED                                              :{WHITE}This company is not old enough to trade shares yet...
 
STR_PROTECTED                                                   :{WHITE}This company is not old enough to trade shares yet...
 

	
 
STR_LIVERY_DEFAULT                                              :Standard Livery
 
STR_LIVERY_STEAM                                                :Steam Engine
 
STR_LIVERY_DIESEL                                               :Diesel Engine
 
STR_LIVERY_ELECTRIC                                             :Electric Engine
 
STR_LIVERY_MONORAIL                                             :Monorail Engine
 
STR_LIVERY_MAGLEV                                               :Maglev Engine
 
STR_LIVERY_DMU                                                  :DMU
 
STR_LIVERY_EMU                                                  :EMU
 
STR_LIVERY_PASSENGER_WAGON_STEAM                                :Passenger Coach (Steam)
 
STR_LIVERY_PASSENGER_WAGON_DIESEL                               :Passenger Coach (Diesel)
 
STR_LIVERY_PASSENGER_WAGON_ELECTRIC                             :Passenger Coach (Electric)
 
STR_LIVERY_PASSENGER_WAGON_MONORAIL                             :Passenger Coach (Monorail)
 
STR_LIVERY_PASSENGER_WAGON_MAGLEV                               :Passenger Coach (Maglev)
 
STR_LIVERY_FREIGHT_WAGON                                        :Freight Wagon
 
STR_LIVERY_BUS                                                  :Bus
 
STR_LIVERY_TRUCK                                                :Lorry
 
STR_LIVERY_PASSENGER_SHIP                                       :Passenger Ferry
 
STR_LIVERY_FREIGHT_SHIP                                         :Freight Ship
 
STR_LIVERY_HELICOPTER                                           :Helicopter
 
STR_LIVERY_SMALL_PLANE                                          :Small Aeroplane
 
STR_LIVERY_LARGE_PLANE                                          :Large Aeroplane
 
STR_LIVERY_PASSENGER_TRAM                                       :Passenger Tram
 
STR_LIVERY_FREIGHT_TRAM                                         :Freight Tram
 
@@ -2611,59 +2611,59 @@ STR_80F8_PLODDYPHUT_100                 
 
STR_80F9_PLODDYPHUT_500                                         :Ploddyphut 500
 
STR_80FA_FLASHBANG_X1                                           :Flashbang X1
 
STR_80FB_JUGGERPLANE_M1                                         :Juggerplane M1
 
STR_80FC_FLASHBANG_WIZZER                                       :Flashbang Wizzer
 
STR_80FD_TRICARIO_HELICOPTER                                    :Tricario Helicopter
 
STR_80FE_GURU_X2_HELICOPTER                                     :Guru X2 Helicopter
 
STR_80FF_POWERNAUT_HELICOPTER                                   :Powernaut Helicopter
 
STR_8100_MESSAGE_FROM_VEHICLE_MANUFACTURE                       :{WHITE}Message from vehicle manufacturer
 
STR_8101_WE_HAVE_JUST_DESIGNED_A                                :{GOLD}We have just designed a new {STRING} - would you be interested in a year's exclusive use of this vehicle, so we can see how it performs before making it universally available?
 
STR_8102_RAILROAD_LOCOMOTIVE                                    :railway locomotive
 
STR_8103_ROAD_VEHICLE                                           :road vehicle
 
STR_8104_AIRCRAFT                                               :aircraft
 
STR_8105_SHIP                                                   :ship
 
STR_8106_MONORAIL_LOCOMOTIVE                                    :monorail locomotive
 
STR_8107_MAGLEV_LOCOMOTIVE                                      :maglev locomotive
 

	
 
##id 0x8800
 
STR_8800_TRAIN_DEPOT                                            :{WHITE}{TOWN} Train Depot
 
STR_8801_CITIZENS_CELEBRATE_FIRST                               :{BLACK}{BIGFONT}Citizens celebrate . . .{}First train arrives at {STATION}!
 
STR_8802_DETAILS                                                :{WHITE}{VEHICLE} (Details)
 
STR_8803_TRAIN_IN_THE_WAY                                       :{WHITE}Train in the way
 
STR_8804                                                        :{SETX 10}{COMMA}: {STRING1} {STRING1}
 
STR_8805                                                        :{RIGHTARROW}{SETX 10}{COMMA}: {STRING1} {STRING1}
 
STR_8806_GO_TO                                                  :Go to {STATION}
 
STR_8807_GO_TO_TRANSFER                                         :Go to {STATION} (Transfer and take cargo)
 
STR_8808_GO_TO_UNLOAD                                           :Go to {STATION} (Unload)
 
STR_8809_GO_TO_TRANSFER_UNLOAD                                  :Go to {STATION} (Transfer and leave empty)
 
STR_880A_GO_TO_LOAD                                             :Go to {STATION} (Load)
 
STR_880B_GO_TO_TRANSFER_LOAD                                    :Go to {STATION} (Transfer and wait for full load)
 
STR_880C_GO_NON_STOP_TO                                         :Go non-stop to {STATION}
 
STR_880D_GO_TO_NON_STOP_TRANSFER                                :Go non-stop to {STATION} (Transfer and take cargo)
 
STR_880E_GO_NON_STOP_TO_UNLOAD                                  :Go non-stop to {STATION} (Unload)
 
STR_880F_GO_TO_NON_STOP_TRANSFER_UNLOAD                         :Go non-stop to {STATION} (Transfer and leave empty)
 
STR_8810_GO_NON_STOP_TO_LOAD                                    :Go non-stop to {STATION} (Load)
 
STR_8811_GO_TO_NON_STOP_TRANSFER_LOAD                           :Go non-stop to {STATION} (Transfer and wait for full load)
 
STR_GO_TO_TRANSFER                                              :Go to {STATION} (Transfer and take cargo)
 
STR_8807_GO_TO_UNLOAD                                           :Go to {STATION} (Unload)
 
STR_GO_TO_TRANSFER_UNLOAD                                       :Go to {STATION} (Transfer and leave empty)
 
STR_8808_GO_TO_LOAD                                             :Go to {STATION} (Load)
 
STR_GO_TO_TRANSFER_LOAD                                         :Go to {STATION} (Transfer and wait for full load)
 
STR_880A_GO_NON_STOP_TO                                         :Go non-stop to {STATION}
 
STR_GO_TO_NON_STOP_TRANSFER                                     :Go non-stop to {STATION} (Transfer and take cargo)
 
STR_880B_GO_NON_STOP_TO_UNLOAD                                  :Go non-stop to {STATION} (Unload)
 
STR_GO_TO_NON_STOP_TRANSFER_UNLOAD                              :Go non-stop to {STATION} (Transfer and leave empty)
 
STR_880C_GO_NON_STOP_TO_LOAD                                    :Go non-stop to {STATION} (Load)
 
STR_GO_TO_NON_STOP_TRANSFER_LOAD                                :Go non-stop to {STATION} (Transfer and wait for full load)
 
STR_GO_TO_TRAIN_DEPOT                                           :Go to {TOWN} Train Depot
 
STR_SERVICE_AT_TRAIN_DEPOT                                      :Service at {TOWN} Train Depot
 
STR_880F_GO_NON_STOP_TO_TRAIN_DEPOT                             :Go non-stop to {TOWN} Train Depot
 
STR_SERVICE_NON_STOP_AT_TRAIN_DEPOT                             :Service non-stop at {TOWN} Train Depot
 

	
 
STR_TIMETABLE_GO_TO                                             :{STRING1} {STRING2}
 
STR_TIMETABLE_TRAVEL_NOT_TIMETABLED                             :Travel (not timetabled)
 
STR_TIMETABLE_TRAVEL_FOR                                        :Travel for {STRING1}
 
STR_TIMETABLE_STAY_FOR                                          :and stay for {STRING1}
 
STR_TIMETABLE_DAYS                                              :{COMMA} day{P "" s}
 
STR_TIMETABLE_TICKS                                             :{COMMA} tick{P "" s}
 

	
 
STR_HEADING_FOR_TRAIN_DEPOT                                     :{ORANGE}Heading for {TOWN} Train Depot
 
STR_HEADING_FOR_TRAIN_DEPOT_VEL                                 :{ORANGE}Heading for {TOWN} Train Depot, {VELOCITY}
 
STR_HEADING_FOR_TRAIN_DEPOT_SERVICE                             :{LTBLUE}Service at {TOWN} Train Depot
 
STR_HEADING_FOR_TRAIN_DEPOT_SERVICE_VEL                         :{LTBLUE}Service at {TOWN} Train Depot, {VELOCITY}
 

	
 
STR_INVALID_ORDER                                               :{RED} (Invalid Order)
 

	
 
STR_UNKNOWN_DESTINATION                                         :unknown destination
 
STR_8812_EMPTY                                                  :{LTBLUE}Empty
 
STR_8813_FROM                                                   :{LTBLUE}{CARGO} from {STATION}
 
STR_FROM_MULT                                                   :{LTBLUE}{CARGO} from {STATION} (x{NUM})
 
STR_8814_TRAIN_IS_WAITING_IN_DEPOT                              :{WHITE}Train {COMMA} is waiting in depot
 
@@ -2725,81 +2725,81 @@ STR_883A_UNABLE_TO_FIND_ROUTE_TO        
 
STR_883B_CAN_T_STOP_START_TRAIN                                 :{WHITE}Can't stop/start train...
 
STR_883C_SERVICING_INTERVAL_DAYS                                :{BLACK}Servicing interval: {LTBLUE}{COMMA}days{BLACK}   Last service: {LTBLUE}{DATE_LONG}
 
STR_SERVICING_INTERVAL_PERCENT                                  :{BLACK}Servicing interval: {LTBLUE}{COMMA}%{BLACK}   Last service: {LTBLUE}{DATE_LONG}
 
STR_883D_TRAINS_CLICK_ON_TRAIN_FOR                              :{BLACK}Trains - click on train for information
 
STR_883E_BUILD_NEW_TRAINS_REQUIRES                              :{BLACK}Build new trains (requires train depot)
 
STR_883F_TRAINS_CLICK_ON_TRAIN_FOR                              :{BLACK}Trains - click on train for info., drag vehicle to add/remove from train
 
STR_8840_BUILD_NEW_TRAIN_VEHICLE                                :{BLACK}Build new train vehicle
 
STR_8841_DRAG_TRAIN_VEHICLE_TO_HERE                             :{BLACK}Drag train vehicle to here to sell it
 
STR_8842_CENTER_MAIN_VIEW_ON_TRAIN                              :{BLACK}Centre main view on train depot location
 
STR_8843_TRAIN_VEHICLE_SELECTION                                :{BLACK}Train vehicle selection list - click on vehicle for information
 
STR_8844_BUILD_THE_HIGHLIGHTED_TRAIN                            :{BLACK}Build the highlighted train vehicle
 
STR_8845_RENAME_TRAIN_VEHICLE_TYPE                              :{BLACK}Rename train vehicle type
 
STR_8846_CURRENT_TRAIN_ACTION_CLICK                             :{BLACK}Current train action - click here to stop/start train
 
STR_8847_SHOW_TRAIN_S_ORDERS                                    :{BLACK}Show train's orders
 
STR_8848_CENTER_MAIN_VIEW_ON_TRAIN                              :{BLACK}Centre main view on train's location
 
STR_8849_SEND_TRAIN_TO_DEPOT                                    :{BLACK}Send train to depot. CTRL+click will only service
 
STR_884A_FORCE_TRAIN_TO_PROCEED                                 :{BLACK}Force train to proceed without waiting for signal to clear it
 
STR_884B_REVERSE_DIRECTION_OF_TRAIN                             :{BLACK}Reverse direction of train
 
STR_884C_SHOW_TRAIN_DETAILS                                     :{BLACK}Show train details
 
STR_884D_INCREASE_SERVICING_INTERVAL                            :{BLACK}Increase servicing interval
 
STR_884E_DECREASE_SERVICING_INTERVAL                            :{BLACK}Decrease servicing interval
 
STR_884F_SHOW_DETAILS_OF_CARGO_CARRIED                          :{BLACK}Show details of cargo carried
 
STR_8850_SHOW_DETAILS_OF_TRAIN_VEHICLES                         :{BLACK}Show details of train vehicles
 
STR_8851_SHOW_CAPACITIES_OF_EACH                                :{BLACK}Show capacities of each vehicle
 
STR_8852_SHOW_TOTAL_CARGO                                       :{BLACK}Show total capacity of train, split by cargo type
 
STR_SHOW_TOTAL_CARGO                                            :{BLACK}Show total capacity of train, split by cargo type
 
STR_8852_ORDERS_LIST_CLICK_ON_ORDER                             :{BLACK}Orders list - click on an order to highlight it. CTRL + click scrolls to the station
 
STR_8853_SKIP_THE_CURRENT_ORDER                                 :{BLACK}Skip the current order, and start the next. CTRL + click skips to the selected order
 
STR_8854_DELETE_THE_HIGHLIGHTED                                 :{BLACK}Delete the highlighted order
 
STR_8855_MAKE_THE_HIGHLIGHTED_ORDER                             :{BLACK}Make the highlighted order non-stop
 
STR_8856_INSERT_A_NEW_ORDER_BEFORE                              :{BLACK}Insert a new order before the highlighted order, or add to end of list
 
STR_8857_MAKE_THE_HIGHLIGHTED_ORDER                             :{BLACK}Make the highlighted order force the vehicle to wait for a full load
 
STR_8858_MAKE_THE_HIGHLIGHTED_ORDER                             :{BLACK}Make the highlighted order force the vehicle to unload
 
STR_TIMETABLE_TOOLTIP                                           :{BLACK}Timetable - click on an order to highlight it.
 
STR_TIMETABLE_WAIT_TIME_TOOLTIP                                 :{BLACK}Change the amount of time that the highlighted order should take
 
STR_TIMETABLE_CLEAR_TIME_TOOLTIP                                :{BLACK}Clear the amount of time for the highlighted order
 
STR_TIMETABLE_RESET_LATENESS_TOOLTIP                            :{BLACK}Reset the lateness counter, so the vehicle will be on time
 
STR_SERVICE_HINT                                                :{BLACK}Skip this order unless a service is needed
 
STR_VEHICLE_INFO_COST_WEIGHT_SPEED_POWER                        :{BLACK}Cost: {CURRENCY} Weight: {WEIGHT_S}{}Speed: {VELOCITY}  Power: {POWER}{}Running Cost: {CURRENCY}/yr{}Capacity: {CARGO}
 
STR_885C_BROKEN_DOWN                                            :{RED}Broken down
 
STR_885D_AGE_RUNNING_COST_YR                                    :{BLACK}Age: {LTBLUE}{STRING2}{BLACK}   Running Cost: {LTBLUE}{CURRENCY}/yr
 
STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED                         :{BLACK}Weight: {LTBLUE}{WEIGHT_S}  {BLACK}Power: {LTBLUE}{POWER}{BLACK} Max. speed: {LTBLUE}{VELOCITY}
 
STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE                  :{BLACK}Weight: {LTBLUE}{WEIGHT_S} {BLACK}Power: {LTBLUE}{POWER}{BLACK} Max. speed: {LTBLUE}{VELOCITY} {BLACK}Max. T.E.: {LTBLUE}{FORCE}
 
STR_885F_PROFIT_THIS_YEAR_LAST_YEAR                             :{BLACK}Profit this year: {LTBLUE}{CURRENCY}  (last year: {CURRENCY})
 
STR_8860_RELIABILITY_BREAKDOWNS                                 :{BLACK}Reliability: {LTBLUE}{COMMA}%  {BLACK}Breakdowns since last service: {LTBLUE}{COMMA}
 
STR_8861_STOPPED                                                :{RED}Stopped
 
STR_8862_CAN_T_MAKE_TRAIN_PASS_SIGNAL                           :{WHITE}Can't make train pass signal at danger...
 
STR_8863_CRASHED                                                :{RED}Crashed!
 

	
 
STR_8865_NAME_TRAIN                                             :{WHITE}Name train
 
STR_8866_CAN_T_NAME_TRAIN                                       :{WHITE}Can't name train...
 
STR_8867_NAME_TRAIN                                             :{BLACK}Name train
 
STR_8868_TRAIN_CRASH_DIE_IN_FIREBALL                            :{BLACK}{BIGFONT}Train Crash!{}{COMMA} die in fireball after collision
 
STR_8869_CAN_T_REVERSE_DIRECTION                                :{WHITE}Can't reverse direction of train...
 
STR_886A_RENAME_TRAIN_VEHICLE_TYPE                              :{WHITE}Rename train vehicle type
 
STR_886B_CAN_T_RENAME_TRAIN_VEHICLE                             :{WHITE}Can't rename train vehicle type...
 
STR_886D_MAKE_THE_HIGHLIGHTED_ORDER                             :{BLACK}Make the highlighted order force the vehicle to dump cargo
 
STR_886F_TRANSFER                                               :{BLACK}Transfer
 
STR_MAKE_THE_HIGHLIGHTED_ORDER                                  :{BLACK}Make the highlighted order force the vehicle to dump cargo
 
STR_TRANSFER                                                    :{BLACK}Transfer
 
STR_CLEAR_TIME                                                  :{BLACK}Clear Time
 
STR_RESET_LATENESS                                              :{BLACK}Reset Late Counter
 

	
 
STR_TRAIN_STOPPING                                              :{RED}Stopping
 
STR_TRAIN_STOPPING_VEL                                          :{RED}Stopping, {VELOCITY}
 
STR_INCOMPATIBLE_RAIL_TYPES                                     :Incompatible rail types
 
STR_TRAIN_NO_POWER                                              :{RED}No power
 
STR_TRAIN_START_NO_CATENARY                                     :This track lacks catenary, so the train can't start
 

	
 
STR_NEW_VEHICLE_NOW_AVAILABLE                                   :{BLACK}{BIGFONT}New {STRING} now available!
 
STR_NEW_VEHICLE_TYPE                                            :{BLACK}{BIGFONT}{ENGINE}
 
STR_NEW_VEHICLE_NOW_AVAILABLE_WITH_TYPE                         :{BLACK}New {STRING} now available!  -  {ENGINE}
 

	
 
STR_CAN_T_SELL_DESTROYED_VEHICLE                                :{WHITE}Can't sell destroyed vehicle...
 
STR_CAN_T_REFIT_DESTROYED_VEHICLE                               :{WHITE}Can't refit destroyed vehicle...
 

	
 
STR_CAN_T_TIMETABLE_VEHICLE                                     :{WHITE}Can't timetable vehicle...
 
STR_TIMETABLE_ONLY_WAIT_AT_STATIONS                             :{WHITE}Vehicles can only wait at stations.
 
STR_TIMETABLE_NOT_STOPPING_HERE                                 :{WHITE}This vehicle is not stopping at this station.
 
STR_TIMETABLE_CHANGE_TIME                                       :{BLACK}Change Time
 
STR_TIMETABLE_STATUS_ON_TIME                                    :This vehicle is currently running on time
 
STR_TIMETABLE_STATUS_LATE                                       :This vehicle is currently running {STRING1} late
 
STR_TIMETABLE_STATUS_EARLY                                      :This vehicle is currently running {STRING1} early
 
STR_TIMETABLE_TOTAL_TIME                                        :This timetable will take {STRING1} to complete
 
@@ -2835,59 +2835,59 @@ STR_9018_CAN_T_SEND_VEHICLE_TO_DEPOT    
 
STR_9019_UNABLE_TO_FIND_LOCAL_DEPOT                             :{WHITE}Unable to find local depot
 
STR_901A_ROAD_VEHICLES_CLICK_ON                                 :{BLACK}Road vehicles - click on vehicle for information
 
STR_901B_BUILD_NEW_ROAD_VEHICLES                                :{BLACK}Build new road vehicles (requires road vehicle depot)
 
STR_901C_CURRENT_VEHICLE_ACTION                                 :{BLACK}Current vehicle action - click here to stop/start vehicle
 
STR_901D_SHOW_VEHICLE_S_ORDERS                                  :{BLACK}Show vehicle's orders
 
STR_901E_CENTER_MAIN_VIEW_ON_VEHICLE                            :{BLACK}Centre main view on vehicle's location
 
STR_901F_SEND_VEHICLE_TO_DEPOT                                  :{BLACK}Send vehicle to depot. CTRL+click will only service
 
STR_9020_FORCE_VEHICLE_TO_TURN_AROUND                           :{BLACK}Force vehicle to turn around
 
STR_9021_SHOW_ROAD_VEHICLE_DETAILS                              :{BLACK}Show road vehicle details
 
STR_9022_VEHICLES_CLICK_ON_VEHICLE                              :{BLACK}Vehicles - click on vehicle for information
 
STR_9023_BUILD_NEW_ROAD_VEHICLE                                 :{BLACK}Build new road vehicle
 
STR_9024_DRAG_ROAD_VEHICLE_TO_HERE                              :{BLACK}Drag road vehicle to here to sell it
 
STR_9025_CENTER_MAIN_VIEW_ON_ROAD                               :{BLACK}Centre main view on road vehicle depot location
 
STR_9026_ROAD_VEHICLE_SELECTION                                 :{BLACK}Road vehicle selection list - click on vehicle for information
 
STR_9027_BUILD_THE_HIGHLIGHTED_ROAD                             :{BLACK}Build the highlighted road vehicle
 
STR_902A_COST_SPEED_RUNNING_COST                                :{BLACK}Cost: {CURRENCY}{}Speed: {VELOCITY}{}Running Cost: {CURRENCY}/yr{}Capacity: {CARGO}
 
STR_ARTICULATED_RV_CAPACITY                                     :{BLACK}Capacity: {LTBLUE}
 
STR_BARE_CARGO                                                  :{CARGO}
 

	
 
STR_902C_NAME_ROAD_VEHICLE                                      :{WHITE}Name road vehicle
 
STR_902D_CAN_T_NAME_ROAD_VEHICLE                                :{WHITE}Can't name road vehicle...
 
STR_902E_NAME_ROAD_VEHICLE                                      :{BLACK}Name road vehicle
 
STR_902F_CITIZENS_CELEBRATE_FIRST                               :{BLACK}{BIGFONT}Citizens celebrate . . .{}First bus arrives at {STATION}!
 
STR_9030_CITIZENS_CELEBRATE_FIRST                               :{BLACK}{BIGFONT}Citizens celebrate . . .{}First truck arrives at {STATION}!
 
STR_902F_CITIZENS_CELEBRATE_FIRST_TRAM                          :{BLACK}{BIGFONT}Citizens celebrate . . .{}First passenger tram arrives at {STATION}!
 
STR_9030_CITIZENS_CELEBRATE_FIRST_TRAM                          :{BLACK}{BIGFONT}Citizens celebrate . . .{}First freight tram arrives at {STATION}!
 
STR_CITIZENS_CELEBRATE_FIRST_PASSENGER_TRAM                     :{BLACK}{BIGFONT}Citizens celebrate . . .{}First passenger tram arrives at {STATION}!
 
STR_CITIZENS_CELEBRATE_FIRST_CARGO_TRAM                         :{BLACK}{BIGFONT}Citizens celebrate . . .{}First freight tram arrives at {STATION}!
 
STR_9031_ROAD_VEHICLE_CRASH_DRIVER                              :{BLACK}{BIGFONT}Road Vehicle Crash!{}Driver dies in fireball after collision with train
 
STR_9032_ROAD_VEHICLE_CRASH_DIE                                 :{BLACK}{BIGFONT}Road Vehicle Crash!{}{COMMA} die in fireball after collision with train
 
STR_9033_CAN_T_MAKE_VEHICLE_TURN                                :{WHITE}Can't make vehicle turn around...
 
STR_ONLY_TURN_SINGLE_UNIT                                       :{WHITE}Can't turn vehicles consisting of multiple units
 
STR_9034_RENAME                                                 :{BLACK}Rename
 
STR_9035_RENAME_ROAD_VEHICLE_TYPE                               :{BLACK}Rename road vehicle type
 
STR_9036_RENAME_ROAD_VEHICLE_TYPE                               :{WHITE}Rename road vehicle type
 
STR_9037_CAN_T_RENAME_ROAD_VEHICLE                              :{WHITE}Can't rename road vehicle type...
 
STR_9038_GO_TO_ROADVEH_DEPOT                                    :Go to {TOWN} Road Vehicle Depot
 
STR_GO_TO_ROADVEH_DEPOT                                         :Go to {TOWN} Road Vehicle Depot
 
STR_SERVICE_AT_ROADVEH_DEPOT                                    :Service at {TOWN} Road Vehicle Depot
 

	
 
STR_REFIT_ROAD_VEHICLE_TO_CARRY                                 :{BLACK}Refit road vehicle to carry a different cargo type
 
STR_REFIT_ROAD_VEHICLE                                          :{BLACK}Refit road vehicle
 
STR_REFIT_ROAD_VEHICLE_TO_CARRY_HIGHLIGHTED                     :{BLACK}Refit road vehicle to carry highlighted cargo type
 
STR_REFIT_ROAD_VEHICLE_CAN_T                                    :{WHITE}Can't refit road vehicle...
 
STR_ROAD_SELECT_TYPE_OF_CARGO_FOR                               :{BLACK}Select type of cargo for road vehicle to carry
 

	
 
##id 0x9800
 
STR_9800_DOCK_CONSTRUCTION                                      :Dock construction
 
STR_9801_DOCK_CONSTRUCTION                                      :{WHITE}Dock construction
 
STR_9802_CAN_T_BUILD_DOCK_HERE                                  :{WHITE}Can't build dock here...
 
STR_9803_SHIP_DEPOT                                             :{WHITE}{TOWN} Ship Depot
 
STR_9804_NEW_SHIPS                                              :{BLACK}New Ships
 
STR_9805_SHIPS                                                  :{WHITE}{COMPANY} - {COMMA} Ship{P "" s}
 
STR_9808_NEW_SHIPS                                              :{WHITE}New Ships
 
STR_9809_BUILD_SHIP                                             :{BLACK}Build Ship
 
STR_CLONE_SHIP                                                  :{BLACK}Clone Ship
 
STR_CLONE_SHIP_INFO                                             :{BLACK}This will build a copy of the ship. Control-click will share the orders
 
STR_CLONE_SHIP_DEPOT_INFO                                       :{BLACK}This will build a copy of a ship. Click this button and then on a ship inside or outside the depot. Control-click will share the orders
 
STR_980B_SHIP_MUST_BE_STOPPED_IN                                :{WHITE}Ship must be stopped in depot
 
STR_980C_CAN_T_SELL_SHIP                                        :{WHITE}Can't sell ship...
 
STR_980D_CAN_T_BUILD_SHIP                                       :{WHITE}Can't build ship...
 
STR_980E_SHIP_IN_THE_WAY                                        :{WHITE}Ship in the way
src/main_gui.cpp
Show inline comments
 
@@ -951,49 +951,49 @@ static void ToolbarBuildAirClick(Window 
 
static void ToolbarForestClick(Window *w)
 
{
 
	PopupMainToolbMenu(w, 23, STR_LANDSCAPING, 3, 0);
 
}
 

	
 
static void ToolbarMusicClick(Window *w)
 
{
 
	PopupMainToolbMenu(w, 24, STR_01D3_SOUND_MUSIC, 1, 0);
 
}
 

	
 
static void ToolbarNewspaperClick(Window *w)
 
{
 
	PopupMainToolbMenu(w, 25, STR_0200_LAST_MESSAGE_NEWS_REPORT, 3, 0);
 
}
 

	
 
static void ToolbarHelpClick(Window *w)
 
{
 
	PopupMainToolbMenu(w, 26, STR_02D5_LAND_BLOCK_INFO, 6, 0);
 
}
 

	
 
static void ToolbarOptionsClick(Window *w)
 
{
 
	uint16 x = 0;
 

	
 
	w = PopupMainToolbMenu(w, 2, STR_02C3_GAME_OPTIONS, 14, 0);
 
	w = PopupMainToolbMenu(w, 2, STR_02C4_GAME_OPTIONS, 14, 0);
 

	
 
	if (HasBit(_display_opt, DO_SHOW_TOWN_NAMES))    SetBit(x,  6);
 
	if (HasBit(_display_opt, DO_SHOW_STATION_NAMES)) SetBit(x,  7);
 
	if (HasBit(_display_opt, DO_SHOW_SIGNS))         SetBit(x,  8);
 
	if (HasBit(_display_opt, DO_WAYPOINTS))          SetBit(x,  9);
 
	if (HasBit(_display_opt, DO_FULL_ANIMATION))     SetBit(x, 10);
 
	if (HasBit(_display_opt, DO_FULL_DETAIL))        SetBit(x, 11);
 
	if (IsTransparencySet(TO_HOUSES) && IsTransparencySet(TO_TREES)) SetBit(x, 12);
 
	if (IsTransparencySet(TO_SIGNS))                     SetBit(x, 13);
 
	WP(w, menu_d).checked_items = x;
 
}
 

	
 

	
 
static void ToolbarScenSaveOrLoad(Window *w)
 
{
 
	PopupMainToolbMenu(w, 3, STR_0292_SAVE_SCENARIO, 6, 0);
 
}
 

	
 
static void ToolbarScenDateBackward(Window *w)
 
{
 
	/* don't allow too fast scrolling */
 
	if ((w->flags4 & WF_TIMEOUT_MASK) <= 2 << WF_TIMEOUT_SHL) {
 
		w->HandleButtonClick(6);
 
		SetWindowDirty(w);
src/misc_gui.cpp
Show inline comments
 
@@ -1670,49 +1670,49 @@ static const WindowDesc _save_dialog_des
 
	WC_SAVELOAD, WC_NONE,
 
	WDF_STD_TOOLTIPS | WDF_DEF_WIDGET | WDF_STD_BTN | WDF_UNCLICK_BUTTONS | WDF_RESIZABLE,
 
	_save_dialog_widgets,
 
	SaveLoadDlgWndProc,
 
};
 

	
 
/** These values are used to convert the file/operations mode into a corresponding file type.
 
 * So each entry, as expressed by the related comment, is based on the enum   */
 
static const FileType _file_modetotype[] = {
 
	FT_SAVEGAME,  ///< used for SLD_LOAD_GAME
 
	FT_SCENARIO,  ///< used for SLD_LOAD_SCENARIO
 
	FT_SAVEGAME,  ///< used for SLD_SAVE_GAME
 
	FT_SCENARIO,  ///< used for SLD_SAVE_SCENARIO
 
	FT_HEIGHTMAP, ///< used for SLD_LOAD_HEIGHTMAP
 
	FT_SAVEGAME,  ///< SLD_NEW_GAME
 
};
 

	
 
void ShowSaveLoadDialog(SaveLoadDialogMode mode)
 
{
 
	static const StringID saveload_captions[] = {
 
		STR_4001_LOAD_GAME,
 
		STR_0298_LOAD_SCENARIO,
 
		STR_4000_SAVE_GAME,
 
		STR_0299_SAVE_SCENARIO,
 
		STR_4011_LOAD_HEIGHTMAP,
 
		STR_LOAD_HEIGHTMAP,
 
	};
 

	
 
	Window *w;
 
	const WindowDesc *sld = &_save_dialog_desc;
 

	
 

	
 
	SetObjectToPlace(SPR_CURSOR_ZZZ, PAL_NONE, VHM_NONE, WC_MAIN_WINDOW, 0);
 
	DeleteWindowById(WC_QUERY_STRING, 0);
 
	DeleteWindowById(WC_SAVELOAD, 0);
 

	
 
	_saveload_mode = mode;
 
	SetBit(_no_scroll, SCROLL_SAVE);
 

	
 
	/* Use an array to define what will be the current file type being handled
 
	 * by current file mode */
 
	_file_to_saveload.filetype = _file_modetotype[mode];
 
	switch (mode) {
 
		case SLD_SAVE_GAME:     GenerateFileName(); break;
 
		case SLD_SAVE_SCENARIO: strcpy(_edit_str_buf, "UNNAMED"); break;
 
		default:                sld = &_load_dialog_desc; break;
 
	}
 

	
 
	assert((uint)mode < lengthof(saveload_captions));
 
	w = AllocateWindowDesc(sld);
src/order_gui.cpp
Show inline comments
 
@@ -72,61 +72,61 @@ static int OrderGetSel(const Window *w)
 
 * @param w current window
 
 * @param y Y-value of the click relative to the window origin
 
 * @param v current vehicle
 
 * @return the new selected order if the order is valid else return that
 
 *  an invalid one has been selected.
 
 */
 
static int GetOrderFromOrderWndPt(Window *w, int y, const Vehicle *v)
 
{
 
	/*
 
	 * Calculation description:
 
	 * 15 = 14 (w->widget[ORDER_WIDGET_ORDER_LIST].top) + 1 (frame-line)
 
	 * 10 = order text hight
 
	 */
 
	int sel = (y - 15) / 10;
 

	
 
	if ((uint)sel >= w->vscroll.cap) return INVALID_ORDER;
 

	
 
	sel += w->vscroll.pos;
 

	
 
	return (sel <= v->num_orders && sel >= 0) ? sel : INVALID_ORDER;
 
}
 

	
 
static StringID StationOrderStrings[] = {
 
	STR_8806_GO_TO,
 
	STR_8807_GO_TO_TRANSFER,
 
	STR_8808_GO_TO_UNLOAD,
 
	STR_8809_GO_TO_TRANSFER_UNLOAD,
 
	STR_880A_GO_TO_LOAD,
 
	STR_880B_GO_TO_TRANSFER_LOAD,
 
	STR_GO_TO_TRANSFER,
 
	STR_8807_GO_TO_UNLOAD,
 
	STR_GO_TO_TRANSFER_UNLOAD,
 
	STR_8808_GO_TO_LOAD,
 
	STR_GO_TO_TRANSFER_LOAD,
 
	STR_NULL,
 
	STR_NULL,
 
	STR_880C_GO_NON_STOP_TO,
 
	STR_880D_GO_TO_NON_STOP_TRANSFER,
 
	STR_880E_GO_NON_STOP_TO_UNLOAD,
 
	STR_880F_GO_TO_NON_STOP_TRANSFER_UNLOAD,
 
	STR_8810_GO_NON_STOP_TO_LOAD,
 
	STR_8811_GO_TO_NON_STOP_TRANSFER_LOAD,
 
	STR_880A_GO_NON_STOP_TO,
 
	STR_GO_TO_NON_STOP_TRANSFER,
 
	STR_880B_GO_NON_STOP_TO_UNLOAD,
 
	STR_GO_TO_NON_STOP_TRANSFER_UNLOAD,
 
	STR_880C_GO_NON_STOP_TO_LOAD,
 
	STR_GO_TO_NON_STOP_TRANSFER_LOAD,
 
	STR_NULL
 
};
 

	
 
static void DrawOrdersWindow(Window *w)
 
{
 
	const Vehicle *v;
 
	const Order *order;
 
	StringID str;
 
	int sel;
 
	int y, i;
 
	bool shared_orders;
 

	
 
	v = GetVehicle(w->window_number);
 

	
 
	shared_orders = IsOrderListShared(v);
 

	
 
	SetVScrollCount(w, v->num_orders + 1);
 

	
 
	sel = OrderGetSel(w);
 
	SetDParam(2, STR_8827_FULL_LOAD);
 

	
 
	order = GetVehicleOrder(v, sel);
 

	
 
	if (v->owner == _local_player) {
 
@@ -195,49 +195,49 @@ static void DrawOrdersWindow(Window *w)
 
			SetDParam(1, 6);
 

	
 
			switch (order->type) {
 
				case OT_DUMMY:
 
					SetDParam(1, STR_INVALID_ORDER);
 
					SetDParam(2, order->dest);
 
					break;
 

	
 
				case OT_GOTO_STATION:
 
					SetDParam(1, StationOrderStrings[order->flags]);
 
					SetDParam(2, order->dest);
 
					break;
 

	
 
				case OT_GOTO_DEPOT: {
 
					StringID s = STR_NULL;
 

	
 
					if (v->type == VEH_AIRCRAFT) {
 
						s = STR_GO_TO_AIRPORT_HANGAR;
 
						SetDParam(2, order->dest);
 
					} else {
 
						SetDParam(2, GetDepot(order->dest)->town_index);
 

	
 
						switch (v->type) {
 
							case VEH_TRAIN: s = (order->flags & OFB_NON_STOP) ? STR_880F_GO_NON_STOP_TO_TRAIN_DEPOT : STR_GO_TO_TRAIN_DEPOT; break;
 
							case VEH_ROAD:  s = STR_9038_GO_TO_ROADVEH_DEPOT; break;
 
							case VEH_ROAD:  s = STR_GO_TO_ROADVEH_DEPOT; break;
 
							case VEH_SHIP:  s = STR_GO_TO_SHIP_DEPOT; break;
 
							default: break;
 
						}
 
					}
 

	
 
					if (order->flags & OFB_FULL_LOAD) s++; /* service at */
 

	
 
					SetDParam(1, s);
 
					if (order->refit_cargo < NUM_CARGO) {
 
						SetDParam(3, STR_REFIT_ORDER);
 
						SetDParam(4, GetCargo(order->refit_cargo)->name);
 
					} else {
 
						SetDParam(3, STR_EMPTY);
 
					}
 
					break;
 
				}
 

	
 
				case OT_GOTO_WAYPOINT:
 
					SetDParam(1, (order->flags & OFB_NON_STOP) ? STR_GO_NON_STOP_TO_WAYPOINT : STR_GO_TO_WAYPOINT);
 
					SetDParam(2, order->dest);
 
					break;
 

	
 
				default: break;
 
			}
 
@@ -740,86 +740,86 @@ static void OrdersWndProc(Window *w, Win
 
		}
 
	} break;
 
	}
 
}
 

	
 
/**
 
 * Widget definition for player train orders
 
 */
 
static const Widget _orders_train_widgets[] = {
 
	{   WWT_CLOSEBOX,   RESIZE_NONE,    14,     0,    10,     0,    13, STR_00C5,                STR_018B_CLOSE_WINDOW},               // ORDER_WIDGET_CLOSEBOX
 
	{    WWT_CAPTION,   RESIZE_RIGHT,   14,    11,   398,     0,    13, STR_8829_ORDERS,         STR_018C_WINDOW_TITLE_DRAG_THIS},     // ORDER_WIDGET_CAPTION
 
	{ WWT_PUSHTXTBTN,   RESIZE_LR,      14,   338,   398,     0,    13, STR_TIMETABLE_VIEW,      STR_TIMETABLE_VIEW_TOOLTIP},          // ORDER_WIDGET_TIMETABLE_VIEW
 

	
 
	{      WWT_PANEL,   RESIZE_RB,      14,     0,   386,    14,    75, 0x0,                     STR_8852_ORDERS_LIST_CLICK_ON_ORDER}, // ORDER_WIDGET_ORDER_LIST
 

	
 
	{  WWT_SCROLLBAR,   RESIZE_LRB,     14,   387,   398,    14,    75, 0x0,                     STR_0190_SCROLL_BAR_SCROLLS_LIST},    // ORDER_WIDGET_SCROLLBAR
 

	
 
	{ WWT_PUSHTXTBTN,   RESIZE_TB,      14,     0,    52,    76,    87, STR_8823_SKIP,           STR_8853_SKIP_THE_CURRENT_ORDER},     // ORDER_WIDGET_SKIP
 
	{ WWT_PUSHTXTBTN,   RESIZE_TB,      14,    53,   105,    76,    87, STR_8824_DELETE,         STR_8854_DELETE_THE_HIGHLIGHTED},     // ORDER_WIDGET_DELETE
 
	{ WWT_PUSHTXTBTN,   RESIZE_TB,      14,   106,   158,    76,    87, STR_8825_NON_STOP,       STR_8855_MAKE_THE_HIGHLIGHTED_ORDER}, // ORDER_WIDGET_NON_STOP
 
	{    WWT_TEXTBTN,   RESIZE_TB,      14,   159,   211,    76,    87, STR_8826_GO_TO,          STR_8856_INSERT_A_NEW_ORDER_BEFORE},  // ORDER_WIDGET_GOTO
 
	{ WWT_PUSHTXTBTN,   RESIZE_TB,      14,   212,   264,    76,    87, STR_FULLLOAD_OR_SERVICE, STR_NULL},                            // ORDER_WIDGET_FULL_LOAD
 
	{ WWT_PUSHTXTBTN,   RESIZE_TB,      14,   265,   319,    76,    87, STR_8828_UNLOAD,         STR_8858_MAKE_THE_HIGHLIGHTED_ORDER}, // ORDER_WIDGET_UNLOAD
 
	{ WWT_PUSHTXTBTN,   RESIZE_TB,      14,   265,   319,    76,    87, STR_REFIT,               STR_REFIT_TIP},                       // ORDER_WIDGET_REFIT
 
	{ WWT_PUSHTXTBTN,   RESIZE_TB,      14,   320,   372,    76,    87, STR_886F_TRANSFER,       STR_886D_MAKE_THE_HIGHLIGHTED_ORDER}, // ORDER_WIDGET_TRANSFER
 
	{ WWT_PUSHTXTBTN,   RESIZE_TB,      14,   320,   372,    76,    87, STR_TRANSFER,            STR_MAKE_THE_HIGHLIGHTED_ORDER},      // ORDER_WIDGET_TRANSFER
 

	
 
	{ WWT_PUSHIMGBTN,   RESIZE_TB,      14,   373,   386,    76,    87, SPR_SHARED_ORDERS_ICON,  STR_VEH_WITH_SHARED_ORDERS_LIST_TIP}, // ORDER_WIDGET_SHARED_ORDER_LIST
 

	
 
	{      WWT_PANEL,   RESIZE_RTB,     14,   387,   386,    76,    87, 0x0,                     STR_NULL},                            // ORDER_WIDGET_RESIZE_BAR
 

	
 
	{  WWT_RESIZEBOX,   RESIZE_LRTB,    14,   387,   398,    76,    87, 0x0,                     STR_RESIZE_BUTTON},                   // ORDER_WIDGET_RESIZE
 
	{   WIDGETS_END},
 
};
 

	
 
static const WindowDesc _orders_train_desc = {
 
	WDP_AUTO, WDP_AUTO, 399, 88, 399, 88,
 
	WC_VEHICLE_ORDERS,WC_VEHICLE_VIEW,
 
	WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_RESIZABLE,
 
	_orders_train_widgets,
 
	OrdersWndProc
 
};
 

	
 
/**
 
 * Widget definition for player orders (!train)
 
 */
 
static const Widget _orders_widgets[] = {
 
	{   WWT_CLOSEBOX,   RESIZE_NONE,    14,     0,    10,     0,    13, STR_00C5,                STR_018B_CLOSE_WINDOW},               // ORDER_WIDGET_CLOSEBOX
 
	{    WWT_CAPTION,   RESIZE_RIGHT,   14,    11,   409,     0,    13, STR_8829_ORDERS,         STR_018C_WINDOW_TITLE_DRAG_THIS},     // ORDER_WIDGET_CAPTION
 
	{ WWT_PUSHTXTBTN,   RESIZE_LR,      14,   349,   409,     0,    13, STR_TIMETABLE_VIEW,      STR_TIMETABLE_VIEW_TOOLTIP},          // ORDER_WIDGET_TIMETABLE_VIEW
 

	
 
	{      WWT_PANEL,   RESIZE_RB,      14,     0,   397,    14,    75, 0x0,                     STR_8852_ORDERS_LIST_CLICK_ON_ORDER}, // ORDER_WIDGET_ORDER_LIST
 

	
 
	{  WWT_SCROLLBAR,   RESIZE_LRB,     14,   398,   409,    14,    75, 0x0,                     STR_0190_SCROLL_BAR_SCROLLS_LIST},    // ORDER_WIDGET_SCROLLBAR
 

	
 
	{ WWT_PUSHTXTBTN,   RESIZE_TB,      14,     0,    63,    76,    87, STR_8823_SKIP,           STR_8853_SKIP_THE_CURRENT_ORDER},     // ORDER_WIDGET_SKIP
 
	{ WWT_PUSHTXTBTN,   RESIZE_TB,      14,    64,   128,    76,    87, STR_8824_DELETE,         STR_8854_DELETE_THE_HIGHLIGHTED},     // ORDER_WIDGET_DELETE
 
	{      WWT_EMPTY,   RESIZE_TB,      14,     0,     0,    76,    87, 0x0,                     0x0},                                 // ORDER_WIDGET_NON_STOP
 
	{    WWT_TEXTBTN,   RESIZE_TB,      14,   129,   192,    76,    87, STR_8826_GO_TO,          STR_8856_INSERT_A_NEW_ORDER_BEFORE},  // ORDER_WIDGET_GOTO
 
	{ WWT_PUSHTXTBTN,   RESIZE_TB,      14,   193,   256,    76,    87, STR_FULLLOAD_OR_SERVICE, STR_NULL},                            // ORDER_WIDGET_FULL_LOAD
 
	{ WWT_PUSHTXTBTN,   RESIZE_TB,      14,   257,   319,    76,    87, STR_8828_UNLOAD,         STR_8858_MAKE_THE_HIGHLIGHTED_ORDER}, // ORDER_WIDGET_UNLOAD
 
	{ WWT_PUSHTXTBTN,   RESIZE_TB,      14,   257,   319,    76,    87, STR_REFIT,               STR_REFIT_TIP},                       // ORDER_WIDGET_REFIT
 
	{ WWT_PUSHTXTBTN,   RESIZE_TB,      14,   320,   383,    76,    87, STR_886F_TRANSFER,       STR_886D_MAKE_THE_HIGHLIGHTED_ORDER}, // ORDER_WIDGET_TRANSFER
 
	{ WWT_PUSHTXTBTN,   RESIZE_TB,      14,   320,   383,    76,    87, STR_TRANSFER,            STR_MAKE_THE_HIGHLIGHTED_ORDER},      // ORDER_WIDGET_TRANSFER
 

	
 
	{ WWT_PUSHIMGBTN,   RESIZE_TB,      14,   384,   397,    76,    87, SPR_SHARED_ORDERS_ICON,  STR_VEH_WITH_SHARED_ORDERS_LIST_TIP}, // ORDER_WIDGET_SHARED_ORDER_LIST
 

	
 
	{      WWT_PANEL,   RESIZE_RTB,     14,   397,   396,    76,    87, 0x0,                     STR_NULL},                            // ORDER_WIDGET_RESIZE_BAR
 

	
 
	{  WWT_RESIZEBOX,   RESIZE_LRTB,    14,   398,   409,    76,    87, 0x0,                     STR_RESIZE_BUTTON},                   // ORDER_WIDGET_RESIZE
 
	{   WIDGETS_END},
 
};
 

	
 
static const WindowDesc _orders_desc = {
 
	WDP_AUTO, WDP_AUTO, 410, 88, 410, 88,
 
	WC_VEHICLE_ORDERS,WC_VEHICLE_VIEW,
 
	WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_RESIZABLE,
 
	_orders_widgets,
 
	OrdersWndProc
 
};
 

	
 
/**
 
 * Widget definition for competitor orders
 
 */
 
static const Widget _other_orders_widgets[] = {
 
	{   WWT_CLOSEBOX,   RESIZE_NONE,    14,     0,    10,     0,    13, STR_00C5,           STR_018B_CLOSE_WINDOW},               // ORDER_WIDGET_CLOSEBOX
 
	{    WWT_CAPTION,   RESIZE_RIGHT,   14,    11,   331,     0,    13, STR_A00B_ORDERS,    STR_018C_WINDOW_TITLE_DRAG_THIS},     // ORDER_WIDGET_CAPTION
 
	{ WWT_PUSHTXTBTN,   RESIZE_LR,      14,   271,   331,     0,    13, STR_TIMETABLE_VIEW, STR_TIMETABLE_VIEW_TOOLTIP},          // ORDER_WIDGET_TIMETABLE_VIEW
src/rail_gui.cpp
Show inline comments
 
@@ -1058,88 +1058,88 @@ static void StationBuildWndProc(Window *
 
			return;
 
		}
 
		CheckRedrawStationCoverage(w);
 
		break;
 

	
 
	case WE_DESTROY:
 
		if (!WP(w, def_d).close) ResetObjectToPlace();
 
		break;
 
	}
 
}
 

	
 
/** Widget definition of the standard build rail station window */
 
static const Widget _station_builder_widgets[] = {
 
{   WWT_CLOSEBOX,   RESIZE_NONE,     7,     0,    10,     0,    13, STR_00C5,                        STR_018B_CLOSE_WINDOW},               // BRSW_CLOSEBOX
 
{    WWT_CAPTION,   RESIZE_NONE,     7,    11,   147,     0,    13, STR_3000_RAIL_STATION_SELECTION, STR_018C_WINDOW_TITLE_DRAG_THIS},     // BRSW_CAPTION
 
{      WWT_PANEL,   RESIZE_NONE,     7,     0,   147,    14,   199, 0x0,                             STR_NULL},                            // BRSW_BACKGROUND
 
{      WWT_PANEL,   RESIZE_NONE,    14,     7,    72,    26,    73, 0x0,                             STR_304E_SELECT_RAILROAD_STATION},    // BRSW_PLATFORM_DIR_X
 
{      WWT_PANEL,   RESIZE_NONE,    14,    75,   140,    26,    73, 0x0,                             STR_304E_SELECT_RAILROAD_STATION},    // BRSW_PLATFORM_DIR_Y
 

	
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,    22,    36,    87,    98, STR_00CB_1,                      STR_304F_SELECT_NUMBER_OF_PLATFORMS}, // BRSW_PLATFORM_NUM_1
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,    37,    51,    87,    98, STR_00CC_2,                      STR_304F_SELECT_NUMBER_OF_PLATFORMS}, // BRSW_PLATFORM_NUM_2
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,    52,    66,    87,    98, STR_00CD_3,                      STR_304F_SELECT_NUMBER_OF_PLATFORMS}, // BRSW_PLATFORM_NUM_3
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,    67,    81,    87,    98, STR_00CE_4,                      STR_304F_SELECT_NUMBER_OF_PLATFORMS}, // BRSW_PLATFORM_NUM_4
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,    82,    96,    87,    98, STR_00CF_5,                      STR_304F_SELECT_NUMBER_OF_PLATFORMS}, // BRSW_PLATFORM_NUM_5
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,    97,   111,    87,    98, STR_0335_6,                      STR_304F_SELECT_NUMBER_OF_PLATFORMS}, // BRSW_PLATFORM_NUM_6
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,   112,   126,    87,    98, STR_0336_7,                      STR_304F_SELECT_NUMBER_OF_PLATFORMS}, // BRSW_PLATFORM_NUM_7
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,    97,   111,    87,    98, STR_6,                           STR_304F_SELECT_NUMBER_OF_PLATFORMS}, // BRSW_PLATFORM_NUM_6
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,   112,   126,    87,    98, STR_7,                           STR_304F_SELECT_NUMBER_OF_PLATFORMS}, // BRSW_PLATFORM_NUM_7
 

	
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,    22,    36,   112,   123, STR_00CB_1,                      STR_3050_SELECT_LENGTH_OF_RAILROAD},  // BRSW_PLATFORM_LEN_1
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,    37,    51,   112,   123, STR_00CC_2,                      STR_3050_SELECT_LENGTH_OF_RAILROAD},  // BRSW_PLATFORM_LEN_2
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,    52,    66,   112,   123, STR_00CD_3,                      STR_3050_SELECT_LENGTH_OF_RAILROAD},  // BRSW_PLATFORM_LEN_3
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,    67,    81,   112,   123, STR_00CE_4,                      STR_3050_SELECT_LENGTH_OF_RAILROAD},  // BRSW_PLATFORM_LEN_4
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,    82,    96,   112,   123, STR_00CF_5,                      STR_3050_SELECT_LENGTH_OF_RAILROAD},  // BRSW_PLATFORM_LEN_5
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,    97,   111,   112,   123, STR_0335_6,                      STR_3050_SELECT_LENGTH_OF_RAILROAD},  // BRSW_PLATFORM_LEN_6
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,   112,   126,   112,   123, STR_0336_7,                      STR_3050_SELECT_LENGTH_OF_RAILROAD},  // BRSW_PLATFORM_LEN_7
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,    97,   111,   112,   123, STR_6,                           STR_3050_SELECT_LENGTH_OF_RAILROAD},  // BRSW_PLATFORM_LEN_6
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,   112,   126,   112,   123, STR_7,                           STR_3050_SELECT_LENGTH_OF_RAILROAD},  // BRSW_PLATFORM_LEN_7
 

	
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,    37,   111,   126,   137, STR_DRAG_DROP,                   STR_STATION_DRAG_DROP},               // BRSW_PLATFORM_DRAG_N_DROP
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,    14,    73,   152,   163, STR_02DB_OFF,                    STR_3065_DON_T_HIGHLIGHT_COVERAGE},   // BRSW_HIGHLIGHT_OFF
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,    74,   133,   152,   163, STR_02DA_ON,                     STR_3064_HIGHLIGHT_COVERAGE_AREA},    // BRSW_HIGHLIGHT_ON
 
{   WIDGETS_END},
 
};
 

	
 
/** Widget definition of the build NewGRF rail station window */
 
static const Widget _newstation_builder_widgets[] = {
 
{   WWT_CLOSEBOX,   RESIZE_NONE,     7,     0,    10,     0,    13, STR_00C5,                        STR_018B_CLOSE_WINDOW},               // BRSW_CLOSEBOX
 
{    WWT_CAPTION,   RESIZE_NONE,     7,    11,   147,     0,    13, STR_3000_RAIL_STATION_SELECTION, STR_018C_WINDOW_TITLE_DRAG_THIS},     // BRSW_CAPTION
 
{      WWT_PANEL,   RESIZE_NONE,     7,     0,   147,    14,   289, 0x0,                             STR_NULL},                            // BRSW_BACKGROUND
 
{      WWT_PANEL,   RESIZE_NONE,    14,     7,    72,   116,   163, 0x0,                             STR_304E_SELECT_RAILROAD_STATION},    // BRSW_PLATFORM_DIR_X
 
{      WWT_PANEL,   RESIZE_NONE,    14,    75,   140,   116,   163, 0x0,                             STR_304E_SELECT_RAILROAD_STATION},    // BRSW_PLATFORM_DIR_Y
 

	
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,    22,    36,   177,   188, STR_00CB_1,                      STR_304F_SELECT_NUMBER_OF_PLATFORMS}, // BRSW_PLATFORM_NUM_1
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,    37,    51,   177,   188, STR_00CC_2,                      STR_304F_SELECT_NUMBER_OF_PLATFORMS}, // BRSW_PLATFORM_NUM_2
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,    52,    66,   177,   188, STR_00CD_3,                      STR_304F_SELECT_NUMBER_OF_PLATFORMS}, // BRSW_PLATFORM_NUM_3
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,    67,    81,   177,   188, STR_00CE_4,                      STR_304F_SELECT_NUMBER_OF_PLATFORMS}, // BRSW_PLATFORM_NUM_4
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,    82,    96,   177,   188, STR_00CF_5,                      STR_304F_SELECT_NUMBER_OF_PLATFORMS}, // BRSW_PLATFORM_NUM_5
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,    97,   111,   177,   188, STR_0335_6,                      STR_304F_SELECT_NUMBER_OF_PLATFORMS}, // BRSW_PLATFORM_NUM_6
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,   112,   126,   177,   188, STR_0336_7,                      STR_304F_SELECT_NUMBER_OF_PLATFORMS}, // BRSW_PLATFORM_NUM_7
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,    97,   111,   177,   188, STR_6,                           STR_304F_SELECT_NUMBER_OF_PLATFORMS}, // BRSW_PLATFORM_NUM_6
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,   112,   126,   177,   188, STR_7,                           STR_304F_SELECT_NUMBER_OF_PLATFORMS}, // BRSW_PLATFORM_NUM_7
 

	
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,    22,    36,   202,   213, STR_00CB_1,                      STR_3050_SELECT_LENGTH_OF_RAILROAD},  // BRSW_PLATFORM_LEN_1
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,    37,    51,   202,   213, STR_00CC_2,                      STR_3050_SELECT_LENGTH_OF_RAILROAD},  // BRSW_PLATFORM_LEN_2
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,    52,    66,   202,   213, STR_00CD_3,                      STR_3050_SELECT_LENGTH_OF_RAILROAD},  // BRSW_PLATFORM_LEN_3
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,    67,    81,   202,   213, STR_00CE_4,                      STR_3050_SELECT_LENGTH_OF_RAILROAD},  // BRSW_PLATFORM_LEN_4
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,    82,    96,   202,   213, STR_00CF_5,                      STR_3050_SELECT_LENGTH_OF_RAILROAD},  // BRSW_PLATFORM_LEN_5
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,    97,   111,   202,   213, STR_0335_6,                      STR_3050_SELECT_LENGTH_OF_RAILROAD},  // BRSW_PLATFORM_LEN_6
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,   112,   126,   202,   213, STR_0336_7,                      STR_3050_SELECT_LENGTH_OF_RAILROAD},  // BRSW_PLATFORM_LEN_7
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,    97,   111,   202,   213, STR_6,                           STR_3050_SELECT_LENGTH_OF_RAILROAD},  // BRSW_PLATFORM_LEN_6
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,   112,   126,   202,   213, STR_7,                           STR_3050_SELECT_LENGTH_OF_RAILROAD},  // BRSW_PLATFORM_LEN_7
 

	
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,    37,   111,   216,   227, STR_DRAG_DROP,                   STR_STATION_DRAG_DROP},               // BRSW_PLATFORM_DRAG_N_DROP
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,    14,    73,   242,   253, STR_02DB_OFF,                    STR_3065_DON_T_HIGHLIGHT_COVERAGE},   // BRSW_HIGHLIGHT_OFF
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,    74,   133,   242,   253, STR_02DA_ON,                     STR_3064_HIGHLIGHT_COVERAGE_AREA},    // BRSW_HIGHLIGHT_ON
 

	
 
/* newstations gui additions */
 
{ WWT_DROPDOWNIN,   RESIZE_NONE,    14,     7,   140,    17,    28, STR_02BD,                        STR_SELECT_STATION_CLASS_TIP},        // BRSW_NEWST_DROPDOWN
 
{     WWT_MATRIX,   RESIZE_NONE,    14,     7,   128,    32,   102, 0x501,                           STR_SELECT_STATION_TYPE_TIP},         // BRSW_NEWST_LIST
 
{  WWT_SCROLLBAR,   RESIZE_NONE,    14,   129,   140,    32,   102, 0x0,                             STR_0190_SCROLL_BAR_SCROLLS_LIST},    // BRSW_NEWST_SCROLL
 
{   WIDGETS_END},
 
};
 

	
 
static const WindowDesc _station_builder_desc = {
 
	WDP_AUTO, WDP_AUTO, 148, 200, 148, 200,
 
	WC_BUILD_STATION, WC_BUILD_TOOLBAR,
 
	WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET,
 
	_station_builder_widgets,
 
	StationBuildWndProc
 
};
 

	
 
static const WindowDesc _newstation_builder_desc = {
 
	WDP_AUTO, WDP_AUTO, 148, 290, 148, 290,
 
	WC_BUILD_STATION, WC_BUILD_TOOLBAR,
 
	WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET,
src/road_gui.cpp
Show inline comments
 
@@ -133,55 +133,55 @@ struct RoadTypeInfo {
 
	StringID picker_title[2];       ///< Title for the station picker for bus or truck stations
 
	StringID picker_tooltip[2];     ///< Tooltip for the station picker for bus or truck stations
 

	
 
	SpriteID cursor_nesw;           ///< Cursor for building NE and SW bits
 
	SpriteID cursor_nwse;           ///< Cursor for building NW and SE bits
 
	SpriteID cursor_autoroad;       ///< Cursor for building autoroad
 
};
 

	
 
/** What errors/cursors must be shown for several types of roads */
 
static const RoadTypeInfo _road_type_infos[] = {
 
	{
 
		STR_1804_CAN_T_BUILD_ROAD_HERE,
 
		STR_1805_CAN_T_REMOVE_ROAD_FROM,
 
		STR_1807_CAN_T_BUILD_ROAD_VEHICLE,
 
		{ STR_1808_CAN_T_BUILD_BUS_STATION,        STR_1809_CAN_T_BUILD_TRUCK_STATION },
 
		{ STR_CAN_T_REMOVE_BUS_STATION,            STR_CAN_T_REMOVE_TRUCK_STATION     },
 
		{ STR_3042_BUS_STATION_ORIENTATION,        STR_3043_TRUCK_STATION_ORIENT      },
 
		{ STR_3051_SELECT_BUS_STATION_ORIENTATION, STR_3052_SELECT_TRUCK_LOADING_BAY  },
 

	
 
		SPR_CURSOR_ROAD_NESW,
 
		SPR_CURSOR_ROAD_NWSE,
 
		SPR_CURSOR_AUTOROAD,
 
	},
 
	{
 
		STR_1804_CAN_T_BUILD_TRAMWAY_HERE,
 
		STR_1805_CAN_T_REMOVE_TRAMWAY_FROM,
 
		STR_1807_CAN_T_BUILD_TRAM_VEHICLE,
 
		{ STR_1808_CAN_T_BUILD_PASSENGER_TRAM_STATION,        STR_1809_CAN_T_BUILD_CARGO_TRAM_STATION        },
 
		{ STR_CAN_T_REMOVE_PASSENGER_TRAM_STATION,            STR_CAN_T_REMOVE_CARGO_TRAM_STATION            },
 
		{ STR_3042_PASSENGER_TRAM_STATION_ORIENTATION,        STR_3043_CARGO_TRAM_STATION_ORIENT             },
 
		{ STR_3051_SELECT_PASSENGER_TRAM_STATION_ORIENTATION, STR_3052_SELECT_CARGO_TRAM_STATION_ORIENTATION },
 
		STR_CAN_T_BUILD_TRAMWAY_HERE,
 
		STR_CAN_T_REMOVE_TRAMWAY_FROM,
 
		STR_CAN_T_BUILD_TRAM_VEHICLE,
 
		{ STR_CAN_T_BUILD_PASSENGER_TRAM_STATION,        STR_CAN_T_BUILD_CARGO_TRAM_STATION        },
 
		{ STR_CAN_T_REMOVE_PASSENGER_TRAM_STATION,       STR_CAN_T_REMOVE_CARGO_TRAM_STATION       },
 
		{ STR_PASSENGER_TRAM_STATION_ORIENTATION,        STR_CARGO_TRAM_STATION_ORIENT             },
 
		{ STR_SELECT_PASSENGER_TRAM_STATION_ORIENTATION, STR_SELECT_CARGO_TRAM_STATION_ORIENTATION },
 

	
 
		SPR_CURSOR_TRAMWAY_NESW,
 
		SPR_CURSOR_TRAMWAY_NWSE,
 
		SPR_CURSOR_AUTOTRAM,
 
	},
 
};
 

	
 
static void PlaceRoad_Tunnel(TileIndex tile)
 
{
 
	DoCommandP(tile, 0x200 | RoadTypeToRoadTypes(_cur_roadtype), 0, CcBuildRoadTunnel, CMD_BUILD_TUNNEL | CMD_MSG(STR_5016_CAN_T_BUILD_TUNNEL_HERE));
 
}
 

	
 
static void BuildRoadOutsideStation(TileIndex tile, DiagDirection direction)
 
{
 
	tile += TileOffsByDiagDir(direction);
 
	// if there is a roadpiece just outside of the station entrance, build a connecting route
 
	if (IsTileType(tile, MP_ROAD) && GetRoadTileType(tile) == ROAD_TILE_NORMAL) {
 
		if (GetRoadBits(tile, _cur_roadtype) != ROAD_NONE) {
 
			DoCommandP(tile, _cur_roadtype << 4 | DiagDirToRoadBits(ReverseDiagDir(direction)), 0, NULL, CMD_BUILD_ROAD);
 
		}
 
	}
 
}
 

	
 
void CcRoadDepot(bool success, TileIndex tile, uint32 p1, uint32 p2)
 
@@ -581,63 +581,63 @@ static const Widget _build_road_widgets[
 
{     WWT_IMGBTN,   RESIZE_NONE,     7,    22,    43,    14,    35, SPR_IMG_ROAD_Y_DIR,         STR_180B_BUILD_ROAD_SECTION},       // RTW_ROAD_Y
 
{     WWT_IMGBTN,   RESIZE_NONE,     7,    44,    65,    14,    35, SPR_IMG_AUTOROAD,           STR_BUILD_AUTOROAD_TIP},            // RTW_AUTOROAD
 
{     WWT_IMGBTN,   RESIZE_NONE,     7,    66,    87,    14,    35, SPR_IMG_DYNAMITE,           STR_018D_DEMOLISH_BUILDINGS_ETC},   // RTW_DEMOLISH
 
{     WWT_IMGBTN,   RESIZE_NONE,     7,    88,   109,    14,    35, SPR_IMG_ROAD_DEPOT,         STR_180C_BUILD_ROAD_VEHICLE_DEPOT}, // RTW_DEPOT
 
{     WWT_IMGBTN,   RESIZE_NONE,     7,   110,   131,    14,    35, SPR_IMG_BUS_STATION,        STR_180D_BUILD_BUS_STATION},        // RTW_BUS_STATION
 
{     WWT_IMGBTN,   RESIZE_NONE,     7,   132,   153,    14,    35, SPR_IMG_TRUCK_BAY,          STR_180E_BUILD_TRUCK_LOADING_BAY},  // RTW_TRUCK_STATION
 
{     WWT_IMGBTN,   RESIZE_NONE,     7,   154,   175,    14,    35, SPR_IMG_ROAD_ONE_WAY,       STR_TOGGLE_ONE_WAY_ROAD},           // RTW_ONE_WAY
 
{     WWT_IMGBTN,   RESIZE_NONE,     7,   176,   218,    14,    35, SPR_IMG_BRIDGE,             STR_180F_BUILD_ROAD_BRIDGE},        // RTW_BUILD_BRIDGE
 
{     WWT_IMGBTN,   RESIZE_NONE,     7,   219,   240,    14,    35, SPR_IMG_ROAD_TUNNEL,        STR_1810_BUILD_ROAD_TUNNEL},        // RTW_BUILD_TUNNEL
 
{     WWT_IMGBTN,   RESIZE_NONE,     7,   241,   262,    14,    35, SPR_IMG_REMOVE,             STR_1811_TOGGLE_BUILD_REMOVE_FOR},  // RTW_REMOVE
 

	
 
{   WIDGETS_END},
 
};
 

	
 
static const WindowDesc _build_road_desc = {
 
	WDP_ALIGN_TBR, 22, 263, 36, 263, 36,
 
	WC_BUILD_TOOLBAR, WC_NONE,
 
	WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_STICKY_BUTTON,
 
	_build_road_widgets,
 
	BuildRoadToolbWndProc
 
};
 

	
 
/** Widget definition of the build tram toolbar */
 
static const Widget _build_tramway_widgets[] = {
 
{   WWT_CLOSEBOX,   RESIZE_NONE,     7,     0,    10,     0,    13, STR_00C5,                   STR_018B_CLOSE_WINDOW},                     // RTW_CLOSEBOX
 
{    WWT_CAPTION,   RESIZE_NONE,     7,    11,   228,     0,    13, STR_1802_TRAMWAY_CONSTRUCTION, STR_018C_WINDOW_TITLE_DRAG_THIS},        // RTW_CAPTION
 
{  WWT_STICKYBOX,   RESIZE_NONE,     7,   229,   240,     0,    13, 0x0,                        STR_STICKY_BUTTON},                         // RTW_STICKY
 
{   WWT_CLOSEBOX,   RESIZE_NONE,     7,     0,    10,     0,    13, STR_00C5,                   STR_018B_CLOSE_WINDOW},                // RTW_CLOSEBOX
 
{    WWT_CAPTION,   RESIZE_NONE,     7,    11,   228,     0,    13, STR_TRAMWAY_CONSTRUCTION,   STR_018C_WINDOW_TITLE_DRAG_THIS},      // RTW_CAPTION
 
{  WWT_STICKYBOX,   RESIZE_NONE,     7,   229,   240,     0,    13, 0x0,                        STR_STICKY_BUTTON},                    // RTW_STICKY
 

	
 
{     WWT_IMGBTN,   RESIZE_NONE,     7,     0,    21,    14,    35, SPR_IMG_TRAMWAY_X_DIR,      STR_180B_BUILD_TRAMWAY_SECTION},            // RTW_ROAD_X
 
{     WWT_IMGBTN,   RESIZE_NONE,     7,    22,    43,    14,    35, SPR_IMG_TRAMWAY_Y_DIR,      STR_180B_BUILD_TRAMWAY_SECTION},            // RTW_ROAD_Y
 
{     WWT_IMGBTN,   RESIZE_NONE,     7,    44,    65,    14,    35, SPR_IMG_AUTOTRAM,           STR_BUILD_AUTOTRAM_TIP},                    // RTW_AUTOROAD
 
{     WWT_IMGBTN,   RESIZE_NONE,     7,    66,    87,    14,    35, SPR_IMG_DYNAMITE,           STR_018D_DEMOLISH_BUILDINGS_ETC},           // RTW_DEMOLISH
 
{     WWT_IMGBTN,   RESIZE_NONE,     7,    88,   109,    14,    35, SPR_IMG_ROAD_DEPOT,         STR_180C_BUILD_TRAM_VEHICLE_DEPOT},         // RTW_DEPOT
 
{     WWT_IMGBTN,   RESIZE_NONE,     7,   110,   131,    14,    35, SPR_IMG_BUS_STATION,        STR_180D_BUILD_PASSENGER_TRAM_STATION},     // RTW_BUS_STATION
 
{     WWT_IMGBTN,   RESIZE_NONE,     7,   132,   153,    14,    35, SPR_IMG_TRUCK_BAY,          STR_180E_BUILD_CARGO_TRAM_STATION},         // RTW_TRUCK_STATION
 
{      WWT_EMPTY,   RESIZE_NONE,     0,     0,     0,     0,     0, 0x0,                        STR_NULL},                                  // RTW_ONE_WAY
 
{     WWT_IMGBTN,   RESIZE_NONE,     7,   154,   196,    14,    35, SPR_IMG_BRIDGE,             STR_180F_BUILD_TRAMWAY_BRIDGE},             // RTW_BUILD_BRIDGE
 
{     WWT_IMGBTN,   RESIZE_NONE,     7,   197,   218,    14,    35, SPR_IMG_ROAD_TUNNEL,        STR_1810_BUILD_TRAMWAY_TUNNEL},             // RTW_BUILD_TUNNEL
 
{     WWT_IMGBTN,   RESIZE_NONE,     7,   219,   240,    14,    35, SPR_IMG_REMOVE,             STR_1811_TOGGLE_BUILD_REMOVE_FOR_TRAMWAYS}, // RTW_REMOVE
 
{     WWT_IMGBTN,   RESIZE_NONE,     7,     0,    21,    14,    35, SPR_IMG_TRAMWAY_X_DIR,      STR_BUILD_TRAMWAY_SECTION},            // RTW_ROAD_X
 
{     WWT_IMGBTN,   RESIZE_NONE,     7,    22,    43,    14,    35, SPR_IMG_TRAMWAY_Y_DIR,      STR_BUILD_TRAMWAY_SECTION},            // RTW_ROAD_Y
 
{     WWT_IMGBTN,   RESIZE_NONE,     7,    44,    65,    14,    35, SPR_IMG_AUTOTRAM,           STR_BUILD_AUTOTRAM_TIP},               // RTW_AUTOROAD
 
{     WWT_IMGBTN,   RESIZE_NONE,     7,    66,    87,    14,    35, SPR_IMG_DYNAMITE,           STR_018D_DEMOLISH_BUILDINGS_ETC},      // RTW_DEMOLISH
 
{     WWT_IMGBTN,   RESIZE_NONE,     7,    88,   109,    14,    35, SPR_IMG_ROAD_DEPOT,         STR_BUILD_TRAM_VEHICLE_DEPOT},         // RTW_DEPOT
 
{     WWT_IMGBTN,   RESIZE_NONE,     7,   110,   131,    14,    35, SPR_IMG_BUS_STATION,        STR_BUILD_PASSENGER_TRAM_STATION},     // RTW_BUS_STATION
 
{     WWT_IMGBTN,   RESIZE_NONE,     7,   132,   153,    14,    35, SPR_IMG_TRUCK_BAY,          STR_BUILD_CARGO_TRAM_STATION},         // RTW_TRUCK_STATION
 
{      WWT_EMPTY,   RESIZE_NONE,     0,     0,     0,     0,     0, 0x0,                        STR_NULL},                             // RTW_ONE_WAY
 
{     WWT_IMGBTN,   RESIZE_NONE,     7,   154,   196,    14,    35, SPR_IMG_BRIDGE,             STR_BUILD_TRAMWAY_BRIDGE},             // RTW_BUILD_BRIDGE
 
{     WWT_IMGBTN,   RESIZE_NONE,     7,   197,   218,    14,    35, SPR_IMG_ROAD_TUNNEL,        STR_BUILD_TRAMWAY_TUNNEL},             // RTW_BUILD_TUNNEL
 
{     WWT_IMGBTN,   RESIZE_NONE,     7,   219,   240,    14,    35, SPR_IMG_REMOVE,             STR_TOGGLE_BUILD_REMOVE_FOR_TRAMWAYS}, // RTW_REMOVE
 

	
 
{   WIDGETS_END},
 
};
 

	
 
static const WindowDesc _build_tramway_desc = {
 
	WDP_ALIGN_TBR, 22, 241, 36, 241, 36,
 
	WC_BUILD_TOOLBAR, WC_NONE,
 
	WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_STICKY_BUTTON,
 
	_build_tramway_widgets,
 
	BuildRoadToolbWndProc
 
};
 

	
 
void ShowBuildRoadToolbar(RoadType roadtype)
 
{
 
	if (!IsValidPlayer(_current_player)) return;
 
	_cur_roadtype = roadtype;
 

	
 
	DeleteWindowById(WC_BUILD_TOOLBAR, 0);
 
	Window *w = AllocateWindowDesc(roadtype == ROADTYPE_ROAD ? &_build_road_desc : &_build_tramway_desc);
 
	if (_patches.link_terraform_toolbar) ShowTerraformToolbar(w);
 
}
 

	
 
/** Widget definition of the build road toolbar in the scenario editor */
 
static const Widget _build_road_scen_widgets[] = {
 
@@ -717,54 +717,54 @@ static void BuildRoadDepotWndProc(Window
 
		if (WP(w, def_d).close) DeleteWindow(w);
 
		break;
 

	
 
	case WE_DESTROY:
 
		if (!WP(w, def_d).close) ResetObjectToPlace();
 
		break;
 
	}
 
}
 

	
 
/** Widget definition of the build road depot window */
 
static const Widget _build_road_depot_widgets[] = {
 
{   WWT_CLOSEBOX,   RESIZE_NONE,     7,     0,    10,     0,    13, STR_00C5,                        STR_018B_CLOSE_WINDOW},              // BRDW_CLOSEBOX
 
{    WWT_CAPTION,   RESIZE_NONE,     7,    11,   139,     0,    13, STR_1806_ROAD_DEPOT_ORIENTATION, STR_018C_WINDOW_TITLE_DRAG_THIS},    // BRDW_CAPTION
 
{      WWT_PANEL,   RESIZE_NONE,     7,     0,   139,    14,   121, 0x0,                             STR_NULL},                           // BRDW_BACKGROUND
 
{      WWT_PANEL,   RESIZE_NONE,    14,    71,   136,    17,    66, 0x0,                             STR_1813_SELECT_ROAD_VEHICLE_DEPOT}, // BRDW_DEPOT_NE
 
{      WWT_PANEL,   RESIZE_NONE,    14,    71,   136,    69,   118, 0x0,                             STR_1813_SELECT_ROAD_VEHICLE_DEPOT}, // BRDW_DEPOT_SE
 
{      WWT_PANEL,   RESIZE_NONE,    14,     3,    68,    69,   118, 0x0,                             STR_1813_SELECT_ROAD_VEHICLE_DEPOT}, // BRDW_DEPOT_SW
 
{      WWT_PANEL,   RESIZE_NONE,    14,     3,    68,    17,    66, 0x0,                             STR_1813_SELECT_ROAD_VEHICLE_DEPOT}, // BRDW_DEPOT_NW
 
{   WIDGETS_END},
 
};
 

	
 
/** Widget definition of the build tram depot window */
 
static const Widget _build_tram_depot_widgets[] = {
 
{   WWT_CLOSEBOX,   RESIZE_NONE,     7,     0,    10,     0,    13, STR_00C5,                        STR_018B_CLOSE_WINDOW},              // BRDW_CLOSEBOX
 
{    WWT_CAPTION,   RESIZE_NONE,     7,    11,   139,     0,    13, STR_1806_TRAM_DEPOT_ORIENTATION, STR_018C_WINDOW_TITLE_DRAG_THIS},    // BRDW_CAPTION
 
{    WWT_CAPTION,   RESIZE_NONE,     7,    11,   139,     0,    13, STR_TRAM_DEPOT_ORIENTATION,      STR_018C_WINDOW_TITLE_DRAG_THIS},    // BRDW_CAPTION
 
{      WWT_PANEL,   RESIZE_NONE,     7,     0,   139,    14,   121, 0x0,                             STR_NULL},                           // BRDW_BACKGROUND
 
{      WWT_PANEL,   RESIZE_NONE,    14,    71,   136,    17,    66, 0x0,                             STR_1813_SELECT_TRAM_VEHICLE_DEPOT}, // BRDW_DEPOT_NE
 
{      WWT_PANEL,   RESIZE_NONE,    14,    71,   136,    69,   118, 0x0,                             STR_1813_SELECT_TRAM_VEHICLE_DEPOT}, // BRDW_DEPOT_SE
 
{      WWT_PANEL,   RESIZE_NONE,    14,     3,    68,    69,   118, 0x0,                             STR_1813_SELECT_TRAM_VEHICLE_DEPOT}, // BRDW_DEPOT_SW
 
{      WWT_PANEL,   RESIZE_NONE,    14,     3,    68,    17,    66, 0x0,                             STR_1813_SELECT_TRAM_VEHICLE_DEPOT}, // BRDW_DEPOT_NW
 
{      WWT_PANEL,   RESIZE_NONE,    14,    71,   136,    17,    66, 0x0,                             STR_SELECT_TRAM_VEHICLE_DEPOT},      // BRDW_DEPOT_NE
 
{      WWT_PANEL,   RESIZE_NONE,    14,    71,   136,    69,   118, 0x0,                             STR_SELECT_TRAM_VEHICLE_DEPOT},      // BRDW_DEPOT_SE
 
{      WWT_PANEL,   RESIZE_NONE,    14,     3,    68,    69,   118, 0x0,                             STR_SELECT_TRAM_VEHICLE_DEPOT},      // BRDW_DEPOT_SW
 
{      WWT_PANEL,   RESIZE_NONE,    14,     3,    68,    17,    66, 0x0,                             STR_SELECT_TRAM_VEHICLE_DEPOT},      // BRDW_DEPOT_NW
 
{   WIDGETS_END},
 
};
 

	
 
static const WindowDesc _build_road_depot_desc = {
 
	WDP_AUTO, WDP_AUTO, 140, 122, 140, 122,
 
	WC_BUILD_DEPOT, WC_BUILD_TOOLBAR,
 
	WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET,
 
	_build_road_depot_widgets,
 
	BuildRoadDepotWndProc
 
};
 

	
 
static const WindowDesc _build_tram_depot_desc = {
 
	WDP_AUTO, WDP_AUTO, 140, 122, 140, 122,
 
	WC_BUILD_DEPOT, WC_BUILD_TOOLBAR,
 
	WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET,
 
	_build_tram_depot_widgets,
 
	BuildRoadDepotWndProc
 
};
 

	
 
static void ShowRoadDepotPicker()
 
{
 
	AllocateWindowDesc(_cur_roadtype == ROADTYPE_ROAD ? &_build_road_depot_desc : &_build_tram_depot_desc);
 
}
 

	
src/roadveh_cmd.cpp
Show inline comments
 
@@ -904,63 +904,63 @@ static Vehicle* RoadVehFindCloseTo(Vehic
 
	 * If more than 1480 / 74 days a road vehicle is blocked, it will
 
	 * drive just through it. The ultimate backup-code of TTD.
 
	 * It can be disabled. */
 
	if (u == NULL) {
 
		front->u.road.blocked_ctr = 0;
 
		return NULL;
 
	}
 

	
 
	if (++front->u.road.blocked_ctr > 1480) return NULL;
 

	
 
	return u;
 
}
 

	
 
static void RoadVehArrivesAt(const Vehicle* v, Station* st)
 
{
 
	if (IsCargoInClass(v->cargo_type, CC_PASSENGERS)) {
 
		/* Check if station was ever visited before */
 
		if (!(st->had_vehicle_of_type & HVOT_BUS)) {
 
			uint32 flags;
 

	
 
			st->had_vehicle_of_type |= HVOT_BUS;
 
			SetDParam(0, st->index);
 
			flags = (v->owner == _local_player) ? NEWS_FLAGS(NM_THIN, NF_VIEWPORT|NF_VEHICLE, NT_ARRIVAL_PLAYER, 0) : NEWS_FLAGS(NM_THIN, NF_VIEWPORT|NF_VEHICLE, NT_ARRIVAL_OTHER, 0);
 
			AddNewsItem(
 
				v->u.road.roadtype == ROADTYPE_ROAD ? STR_902F_CITIZENS_CELEBRATE_FIRST : STR_902F_CITIZENS_CELEBRATE_FIRST_TRAM,
 
				v->u.road.roadtype == ROADTYPE_ROAD ? STR_902F_CITIZENS_CELEBRATE_FIRST : STR_CITIZENS_CELEBRATE_FIRST_PASSENGER_TRAM,
 
				flags,
 
				v->index,
 
				0);
 
		}
 
	} else {
 
		/* Check if station was ever visited before */
 
		if (!(st->had_vehicle_of_type & HVOT_TRUCK)) {
 
			uint32 flags;
 

	
 
			st->had_vehicle_of_type |= HVOT_TRUCK;
 
			SetDParam(0, st->index);
 
			flags = (v->owner == _local_player) ? NEWS_FLAGS(NM_THIN, NF_VIEWPORT|NF_VEHICLE, NT_ARRIVAL_PLAYER, 0) : NEWS_FLAGS(NM_THIN, NF_VIEWPORT|NF_VEHICLE, NT_ARRIVAL_OTHER, 0);
 
			AddNewsItem(
 
				v->u.road.roadtype == ROADTYPE_ROAD ? STR_9030_CITIZENS_CELEBRATE_FIRST : STR_9030_CITIZENS_CELEBRATE_FIRST_TRAM,
 
				v->u.road.roadtype == ROADTYPE_ROAD ? STR_9030_CITIZENS_CELEBRATE_FIRST : STR_CITIZENS_CELEBRATE_FIRST_CARGO_TRAM,
 
				flags,
 
				v->index,
 
				0
 
			);
 
		}
 
	}
 
}
 

	
 
static bool RoadVehAccelerate(Vehicle *v)
 
{
 
	uint spd = v->cur_speed + 1 + (v->u.road.overtaking != 0 ? 1 : 0);
 
	byte t;
 

	
 
	/* Clamp */
 
	spd = min(spd, v->max_speed);
 
	if (v->u.road.state == RVSB_WORMHOLE && !(v->vehstatus & VS_HIDDEN)) {
 
		spd = min(spd, GetBridge(GetBridgeType(v->tile))->speed * 2);
 
	}
 

	
 
	/* updates statusbar only if speed have changed to save CPU time */
 
	if (spd != v->cur_speed) {
 
		v->cur_speed = spd;
 
		if (_patches.vehicle_speed) {
 
			InvalidateWindowWidget(WC_VEHICLE_VIEW, v->index, VVW_WIDGET_START_STOP_VEH);
src/settings_gui.cpp
Show inline comments
 
@@ -379,63 +379,63 @@ static const WindowDesc _game_options_de
 
	WC_GAME_OPTIONS, WC_NONE,
 
	WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_UNCLICK_BUTTONS,
 
	_game_options_widgets,
 
	GameOptionsWndProc
 
};
 

	
 

	
 
void ShowGameOptions()
 
{
 
	DeleteWindowById(WC_GAME_OPTIONS, 0);
 
	AllocateWindowDesc(&_game_options_desc);
 
}
 

	
 
struct GameSettingData {
 
	int16 min;
 
	int16 max;
 
	int16 step;
 
	StringID str;
 
};
 

	
 
static const GameSettingData _game_setting_info[] = {
 
	{  0,   7,  1, STR_NULL},
 
	{  0,   3,  1, STR_6830_IMMEDIATE},
 
	{  0,   3,  1, STR_NUM_VERY_LOW},
 
	{  0,   4,  1, STR_26816_NONE},
 
	{  0,   4,  1, STR_NONE},
 
	{100, 500, 50, STR_NULL},
 
	{  2,   4,  1, STR_NULL},
 
	{  0,   2,  1, STR_6820_LOW},
 
	{  0,   4,  1, STR_681B_VERY_SLOW},
 
	{  0,   2,  1, STR_6820_LOW},
 
	{  0,   2,  1, STR_6823_NONE},
 
	{  0,   3,  1, STR_6826_X1_5},
 
	{  0,   2,  1, STR_6820_LOW},
 
	{  0,   3,  1, STR_682A_VERY_FLAT},
 
	{  0,   3,  1, STR_VERY_LOW},
 
	{  0,   1,  1, STR_682E_STEADY},
 
	{  0,   1,  1, STR_6834_AT_END_OF_LINE_AND_AT_STATIONS},
 
	{  0,   1,  1, STR_6836_OFF},
 
	{  0,   2,  1, STR_6839_PERMISSIVE},
 
	{  0,   2,  1, STR_PERMISSIVE},
 
};
 

	
 
/*
 
 * A: competitors
 
 * B: start time in months / 3
 
 * C: town count (2 = high, 0 = very low)
 
 * D: industry count (4 = high, 0 = none)
 
 * E: inital loan / 1000 (in GBP)
 
 * F: interest rate
 
 * G: running costs (0 = low, 2 = high)
 
 * H: construction speed of competitors (0 = very slow, 4 = very fast)
 
 * I: intelligence (0-2)
 
 * J: breakdowns (0 = off, 2 = normal)
 
 * K: subsidy multiplier (0 = 1.5, 3 = 4.0)
 
 * L: construction cost (0-2)
 
 * M: terrain type (0 = very flat, 3 = mountainous)
 
 * N: amount of water (0 = very low, 3 = high)
 
 * O: economy (0 = steady, 1 = fluctuating)
 
 * P: Train reversing (0 = end of line + stations, 1 = end of line)
 
 * Q: disasters
 
 * R: area restructuring (0 = permissive, 2 = hostile)
 
 */
 
static const GDType _default_game_diff[3][GAME_DIFFICULTY_NUM] = { /*
 
	 A, B, C, D,   E, F, G, H, I, J, K, L, M, N, O, P, Q, R*/
src/station_cmd.cpp
Show inline comments
 
@@ -777,76 +777,76 @@ CommandCost CheckFlatLandBelow(TileIndex
 

	
 
	return cost;
 
}
 

	
 
static bool CanExpandRailroadStation(const Station* st, uint* fin, Axis axis)
 
{
 
	uint curw = st->trainst_w;
 
	uint curh = st->trainst_h;
 
	TileIndex tile = fin[0];
 
	uint w = fin[1];
 
	uint h = fin[2];
 

	
 
	if (_patches.nonuniform_stations) {
 
		/* determine new size of train station region.. */
 
		int x = min(TileX(st->train_tile), TileX(tile));
 
		int y = min(TileY(st->train_tile), TileY(tile));
 
		curw = max(TileX(st->train_tile) + curw, TileX(tile) + w) - x;
 
		curh = max(TileY(st->train_tile) + curh, TileY(tile) + h) - y;
 
		tile = TileXY(x, y);
 
	} else {
 
		/* do not allow modifying non-uniform stations,
 
		 * the uniform-stations code wouldn't handle it well */
 
		BEGIN_TILE_LOOP(t, st->trainst_w, st->trainst_h, st->train_tile)
 
			if (!st->TileBelongsToRailStation(t)) { // there may be adjoined station
 
				_error_message = STR_306D_NONUNIFORM_STATIONS_DISALLOWED;
 
				_error_message = STR_NONUNIFORM_STATIONS_DISALLOWED;
 
				return false;
 
			}
 
		END_TILE_LOOP(t, st->trainst_w, st->trainst_h, st->train_tile)
 

	
 
		/* check so the orientation is the same */
 
		if (GetRailStationAxis(st->train_tile) != axis) {
 
			_error_message = STR_306D_NONUNIFORM_STATIONS_DISALLOWED;
 
			_error_message = STR_NONUNIFORM_STATIONS_DISALLOWED;
 
			return false;
 
		}
 

	
 
		/* check if the new station adjoins the old station in either direction */
 
		if (curw == w && st->train_tile == tile + TileDiffXY(0, h)) {
 
			/* above */
 
			curh += h;
 
		} else if (curw == w && st->train_tile == tile - TileDiffXY(0, curh)) {
 
			/* below */
 
			tile -= TileDiffXY(0, curh);
 
			curh += h;
 
		} else if (curh == h && st->train_tile == tile + TileDiffXY(w, 0)) {
 
			/* to the left */
 
			curw += w;
 
		} else if (curh == h && st->train_tile == tile - TileDiffXY(curw, 0)) {
 
			/* to the right */
 
			tile -= TileDiffXY(curw, 0);
 
			curw += w;
 
		} else {
 
			_error_message = STR_306D_NONUNIFORM_STATIONS_DISALLOWED;
 
			_error_message = STR_NONUNIFORM_STATIONS_DISALLOWED;
 
			return false;
 
		}
 
	}
 
	/* make sure the final size is not too big. */
 
	if (curw > _patches.station_spread || curh > _patches.station_spread) {
 
		_error_message = STR_306C_STATION_TOO_SPREAD_OUT;
 
		return false;
 
	}
 

	
 
	/* now tile contains the new value for st->train_tile
 
	 * curw, curh contain the new value for width and height */
 
	fin[0] = tile;
 
	fin[1] = curw;
 
	fin[2] = curh;
 
	return true;
 
}
 

	
 
static inline byte *CreateSingle(byte *layout, int n)
 
{
 
	int i = n;
 
	do *layout++ = 0; while (--i);
 
	layout[((n - 1) >> 1) - n] = 2;
 
	return layout;
 
}
 
@@ -1175,49 +1175,49 @@ CommandCost CmdRemoveFromRailroadStation
 
	int size_x = ex - sx + 1;
 
	int size_y = ey - sy + 1;
 

	
 
	/* Do the action for every tile into the area */
 
	BEGIN_TILE_LOOP(tile2, size_x, size_y, tile) {
 
		/* Make sure the specified tile is a railroad station */
 
		if (!IsTileType(tile2, MP_STATION) || !IsRailwayStation(tile2)) {
 
			continue;
 
		}
 

	
 
		/* If there is a vehicle on ground, do not allow to remove (flood) the tile */
 
		if (!EnsureNoVehicleOnGround(tile2)) {
 
			continue;
 
		}
 

	
 
		/* Check ownership of station */
 
		Station *st = GetStationByTile(tile2);
 
		if (_current_player != OWNER_WATER && !CheckOwnership(st->owner)) {
 
			continue;
 
		}
 

	
 
		/* Do not allow removing from stations if non-uniform stations are not enabled
 
		 * The check must be here to give correct error message
 
 		 */
 
		if (!_patches.nonuniform_stations) return_cmd_error(STR_306D_NONUNIFORM_STATIONS_DISALLOWED);
 
		if (!_patches.nonuniform_stations) return_cmd_error(STR_NONUNIFORM_STATIONS_DISALLOWED);
 

	
 
		/* If we reached here, the tile is valid so increase the quantity of tiles we will remove */
 
		quantity++;
 

	
 
		if (flags & DC_EXEC) {
 
			/* read variables before the station tile is removed */
 
			uint specindex = GetCustomStationSpecIndex(tile2);
 
			Track track = GetRailStationTrack(tile2);
 
			Owner owner = GetTileOwner(tile2);
 

	
 
			DoClearSquare(tile2);
 
			st->rect.AfterRemoveTile(st, tile2);
 
			AddTrackToSignalBuffer(tile2, track, owner);
 
			YapfNotifyTrackLayoutChange(tile2, track);
 

	
 
			DeallocateSpecFromStation(st, specindex);
 

	
 
			/* now we need to make the "spanned" area of the railway station smaller
 
			 * if we deleted something at the edges.
 
			 * we also need to adjust train_tile. */
 
			MakeRailwayStationAreaSmaller(st);
 
			st->MarkTilesDirty(false);
 
			UpdateStationSignCoord(st);
 

	
 
@@ -1372,57 +1372,57 @@ CommandCost CmdBuildRoadStop(TileIndex t
 
		}
 

	
 
		/* Don't allow building the roadstop when vehicles are already driving on it */
 
		if (!EnsureNoVehicleOnGround(tile)) return CMD_ERROR;
 

	
 
		/* Do not remove roadtypes! */
 
		rts |= cur_rts;
 
	}
 
	cost = CheckFlatLandBelow(tile, 1, 1, flags, is_drive_through ? 5 << p1 : 1 << p1, NULL, !build_over_road);
 
	if (CmdFailed(cost)) return cost;
 

	
 
	Station *st = NULL;
 

	
 
	if (!_patches.adjacent_stations || !HasBit(p2, 5)) {
 
		st = GetStationAround(tile, 1, 1, INVALID_STATION);
 
		if (st == CHECK_STATIONS_ERR) return CMD_ERROR;
 
	}
 

	
 
	/* Find a station close to us */
 
	if (st == NULL) st = GetClosestStationFromTile(tile);
 

	
 
	/* give us a road stop in the list, and check if something went wrong */
 
	RoadStop *road_stop = new RoadStop(tile);
 
	if (road_stop == NULL) {
 
		return_cmd_error(type ? STR_3008B_TOO_MANY_TRUCK_STOPS : STR_3008A_TOO_MANY_BUS_STOPS);
 
		return_cmd_error(type ? STR_TOO_MANY_TRUCK_STOPS : STR_TOO_MANY_BUS_STOPS);
 
	}
 

	
 
	/* ensure that in case of error (or no DC_EXEC) the new road stop gets deleted upon return */
 
	AutoPtrT<RoadStop> rs_auto_delete(road_stop);
 

	
 
	if (st != NULL &&
 
			GetNumRoadStopsInStation(st, RoadStop::BUS) + GetNumRoadStopsInStation(st, RoadStop::TRUCK) >= RoadStop::LIMIT) {
 
		return_cmd_error(type ? STR_3008B_TOO_MANY_TRUCK_STOPS : STR_3008A_TOO_MANY_BUS_STOPS);
 
		return_cmd_error(type ? STR_TOO_MANY_TRUCK_STOPS : STR_TOO_MANY_BUS_STOPS);
 
	}
 

	
 
	/* In case of new station if DC_EXEC is NOT set we still need to create the station
 
	 * to test if everything is OK. In this case we need to delete it before return. */
 
	AutoPtrT<Station> st_auto_delete;
 

	
 
	if (st != NULL) {
 
		if (st->owner != _current_player) {
 
			return_cmd_error(STR_3009_TOO_CLOSE_TO_ANOTHER_STATION);
 
		}
 

	
 
		if (!st->rect.BeforeAddTile(tile, StationRect::ADD_TEST)) return CMD_ERROR;
 
	} else {
 
		/* allocate and initialize new station */
 
		st = new Station(tile);
 
		if (st == NULL) return_cmd_error(STR_3008_TOO_MANY_STATIONS_LOADING);
 

	
 
		/* ensure that in case of error (or no DC_EXEC) the new station gets deleted upon return */
 
		st_auto_delete = st;
 

	
 

	
 
		Town *t = st->town = ClosestTownFromTile(tile, (uint)-1);
 
		if (!GenerateStationName(st, tile, STATIONNAMING_ROAD)) return CMD_ERROR;
 

	
 
@@ -2882,50 +2882,50 @@ static void ChangeTileOwner_Station(Tile
 

	
 
/**
 
 * Check if a drive-through road stop tile can be cleared.
 
 * Road stops built on town-owned roads check the conditions
 
 * that would allow clearing of the original road.
 
 * @param tile road stop tile to check
 
 * @return true if the road can be cleared
 
 */
 
static bool CanRemoveRoadWithStop(TileIndex tile)
 
{
 
	/* The road can always be cleared if it was not a town-owned road */
 
	if (!GetStopBuiltOnTownRoad(tile)) return true;
 

	
 
	bool edge_road;
 
	return CheckAllowRemoveRoad(tile, GetAnyRoadBits(tile, ROADTYPE_ROAD), OWNER_TOWN, &edge_road, ROADTYPE_ROAD) &&
 
				CheckAllowRemoveRoad(tile, GetAnyRoadBits(tile, ROADTYPE_TRAM), OWNER_TOWN, &edge_road, ROADTYPE_TRAM);
 
}
 

	
 
static CommandCost ClearTile_Station(TileIndex tile, byte flags)
 
{
 
	if (flags & DC_AUTO) {
 
		switch (GetStationType(tile)) {
 
			case STATION_RAIL:    return_cmd_error(STR_300B_MUST_DEMOLISH_RAILROAD);
 
			case STATION_AIRPORT: return_cmd_error(STR_300E_MUST_DEMOLISH_AIRPORT_FIRST);
 
			case STATION_TRUCK:   return_cmd_error(HasBit(GetRoadTypes(tile), ROADTYPE_TRAM) ? STR_3047_MUST_DEMOLISH_CARGO_TRAM_STATION : STR_3047_MUST_DEMOLISH_TRUCK_STATION);
 
			case STATION_BUS:     return_cmd_error(HasBit(GetRoadTypes(tile), ROADTYPE_TRAM) ? STR_3046_MUST_DEMOLISH_PASSENGER_TRAM_STATION : STR_3046_MUST_DEMOLISH_BUS_STATION);
 
			case STATION_TRUCK:   return_cmd_error(HasBit(GetRoadTypes(tile), ROADTYPE_TRAM) ? STR_MUST_DEMOLISH_CARGO_TRAM_STATION : STR_3047_MUST_DEMOLISH_TRUCK_STATION);
 
			case STATION_BUS:     return_cmd_error(HasBit(GetRoadTypes(tile), ROADTYPE_TRAM) ? STR_MUST_DEMOLISH_PASSENGER_TRAM_STATION : STR_3046_MUST_DEMOLISH_BUS_STATION);
 
			case STATION_BUOY:    return_cmd_error(STR_306A_BUOY_IN_THE_WAY);
 
			case STATION_DOCK:    return_cmd_error(STR_304D_MUST_DEMOLISH_DOCK_FIRST);
 
			case STATION_OILRIG:
 
				SetDParam(0, STR_4807_OIL_RIG);
 
				return_cmd_error(STR_4800_IN_THE_WAY);
 
		}
 
	}
 

	
 
	Station *st = GetStationByTile(tile);
 

	
 
	switch (GetStationType(tile)) {
 
		case STATION_RAIL:    return RemoveRailroadStation(st, tile, flags);
 
		case STATION_AIRPORT: return RemoveAirport(st, flags);
 
		case STATION_TRUCK:
 
			if (IsDriveThroughStopTile(tile) && !CanRemoveRoadWithStop(tile))
 
				return_cmd_error(STR_3047_MUST_DEMOLISH_TRUCK_STATION);
 
			return RemoveRoadStop(st, flags, tile);
 
		case STATION_BUS:
 
			if (IsDriveThroughStopTile(tile) && !CanRemoveRoadWithStop(tile))
 
				return_cmd_error(STR_3046_MUST_DEMOLISH_BUS_STATION);
 
			return RemoveRoadStop(st, flags, tile);
 
		case STATION_BUOY:    return RemoveBuoy(st, flags);
 
		case STATION_DOCK:    return RemoveDock(st, flags);
 
		default: break;
src/timetable_gui.cpp
Show inline comments
 
@@ -83,70 +83,70 @@ static void DrawTimetableWindow(Window *
 

	
 
	SetDParam(0, v->index);
 
	DrawWindowWidgets(w);
 

	
 
	int y = 15;
 
	int i = w->vscroll.pos;
 
	VehicleOrderID order_id = (i + 1) / 2;
 
	bool final_order = false;
 

	
 
	const Order *order = GetVehicleOrder(v, order_id);
 

	
 
	while (order != NULL) {
 
		/* Don't draw anything if it extends past the end of the window. */
 
		if (i - w->vscroll.pos >= w->vscroll.cap) break;
 

	
 
		if (i % 2 == 0) {
 
			SetDParam(2, STR_EMPTY);
 

	
 
			switch (order->type) {
 
				case OT_DUMMY:
 
					SetDParam(0, STR_INVALID_ORDER);
 
					break;
 

	
 
				case OT_GOTO_STATION:
 
					SetDParam(0, (order->flags & OFB_NON_STOP) ? STR_880C_GO_NON_STOP_TO : STR_8806_GO_TO);
 
					SetDParam(0, (order->flags & OFB_NON_STOP) ? STR_880A_GO_NON_STOP_TO : STR_8806_GO_TO);
 
					SetDParam(1, order->dest);
 

	
 
					if (order->wait_time > 0) {
 
						SetDParam(2, STR_TIMETABLE_STAY_FOR);
 
						SetTimetableParams(3, 4, order->wait_time);
 
					}
 

	
 
					break;
 

	
 
				case OT_GOTO_DEPOT: {
 
					StringID string = STR_EMPTY;
 

	
 
					if (v->type == VEH_AIRCRAFT) {
 
						string = STR_GO_TO_AIRPORT_HANGAR;
 
						SetDParam(1, order->dest);
 
					} else {
 
						SetDParam(1, GetDepot(order->dest)->town_index);
 

	
 
						switch (v->type) {
 
							case VEH_TRAIN: string = (order->flags & OFB_NON_STOP) ? STR_880F_GO_NON_STOP_TO_TRAIN_DEPOT : STR_GO_TO_TRAIN_DEPOT; break;
 
							case VEH_ROAD:  string = STR_9038_GO_TO_ROADVEH_DEPOT; break;
 
							case VEH_ROAD:  string = STR_GO_TO_ROADVEH_DEPOT; break;
 
							case VEH_SHIP:  string = STR_GO_TO_SHIP_DEPOT; break;
 
							default: break;
 
						}
 
					}
 

	
 
					if (order->flags & OFB_FULL_LOAD) string++; // Service at orders
 

	
 
					SetDParam(0, string);
 
				} break;
 

	
 
				case OT_GOTO_WAYPOINT:
 
					SetDParam(0, (order->flags & OFB_NON_STOP) ? STR_GO_NON_STOP_TO_WAYPOINT : STR_GO_TO_WAYPOINT);
 
					SetDParam(1, order->dest);
 
					break;
 

	
 
				default: break;
 
			}
 

	
 
			DrawString(2, y, STR_TIMETABLE_GO_TO, (i == selected) ? TC_WHITE : TC_BLACK);
 

	
 
			order_id++;
 

	
 
			if (order_id >= v->num_orders) {
 
				order = GetVehicleOrder(v, 0);
src/train_gui.cpp
Show inline comments
 
@@ -220,40 +220,40 @@ void DrawTrainDetails(const Vehicle *v, 
 
				y += 14;
 

	
 
				v = u;
 
			} else {
 
				/* Move to the next line */
 
				do {
 
					v = v->Next();
 
				} while (v != NULL && IsArticulatedPart(v) && v->cargo_cap == 0);
 
			}
 
			if (v == NULL) return;
 
		}
 
	} else {
 
		AcceptedCargo act_cargo;
 
		AcceptedCargo max_cargo;
 

	
 
		memset(max_cargo, 0, sizeof(max_cargo));
 
		memset(act_cargo, 0, sizeof(act_cargo));
 

	
 
		for (const Vehicle *u = v; u != NULL ; u = u->Next()) {
 
			act_cargo[u->cargo_type] += u->cargo.Count();
 
			max_cargo[u->cargo_type] += u->cargo_cap;
 
		}
 

	
 
		/* draw total cargo tab */
 
		DrawString(x, y + 2, STR_013F_TOTAL_CAPACITY_TEXT, TC_FROMSTRING);
 
		DrawString(x, y + 2, STR_TOTAL_CAPACITY_TEXT, TC_FROMSTRING);
 
		for (CargoID i = 0; i < NUM_CARGO; i++) {
 
			if (max_cargo[i] > 0 && --vscroll_pos < 0 && vscroll_pos > -vscroll_cap) {
 
				y += 14;
 
				SetDParam(0, i);            // {CARGO} #1
 
				SetDParam(1, act_cargo[i]); // {CARGO} #2
 
				SetDParam(2, i);            // {SHORTCARGO} #1
 
				SetDParam(3, max_cargo[i]); // {SHORTCARGO} #2
 
				SetDParam(4, _patches.freight_trains);
 
				DrawString(x, y + 2, FreightWagonMult(i) > 1 ? STR_TOTAL_CAPACITY_MULT : STR_013F_TOTAL_CAPACITY, TC_FROMSTRING);
 
				DrawString(x, y + 2, FreightWagonMult(i) > 1 ? STR_TOTAL_CAPACITY_MULT : STR_TOTAL_CAPACITY, TC_FROMSTRING);
 
			}
 
		}
 
		SetDParam(0, v->cargo.FeederShare());
 
		DrawString(x, y + 15, STR_FEEDER_CARGO_VALUE, TC_FROMSTRING);
 
	}
 
}
src/vehicle_gui.cpp
Show inline comments
 
@@ -1287,49 +1287,49 @@ enum VehicleDetailsWindowWidgets {
 
	VLD_WIDGET_BOTTOM_RIGHT,
 
	VLD_WIDGET_MIDDLE_DETAILS,
 
	VLD_WIDGET_SCROLLBAR,
 
	VLD_WIDGET_DETAILS_CARGO_CARRIED,
 
	VLD_WIDGET_DETAILS_TRAIN_VEHICLES,
 
	VLD_WIDGET_DETAILS_CAPACITY_OF_EACH,
 
	VLD_WIDGET_DETAILS_TOTAL_CARGO,
 
	VLD_WIDGET_RESIZE,
 
};
 

	
 
/** Vehicle details widgets. */
 
static const Widget _vehicle_details_widgets[] = {
 
	{   WWT_CLOSEBOX,   RESIZE_NONE, 14,   0,  10,   0,  13, STR_00C5,             STR_018B_CLOSE_WINDOW},                  // VLD_WIDGET_CLOSEBOX
 
	{    WWT_CAPTION,  RESIZE_RIGHT, 14,  11, 364,   0,  13, 0x0,                  STR_018C_WINDOW_TITLE_DRAG_THIS},        // VLD_WIDGET_CAPTION
 
	{ WWT_PUSHTXTBTN,     RESIZE_LR, 14, 365, 404,   0,  13, STR_01AA_NAME,        STR_NULL /* filled in later */},         // VLD_WIDGET_RENAME_VEHICLE
 
	{      WWT_PANEL,  RESIZE_RIGHT, 14,   0, 404,  14,  55, 0x0,                  STR_NULL},                               // VLD_WIDGET_TOP_DETAILS
 
	{ WWT_PUSHTXTBTN,     RESIZE_TB, 14,   0,  10, 101, 106, STR_0188,             STR_884D_INCREASE_SERVICING_INTERVAL},   // VLD_WIDGET_INCREASE_SERVICING_INTERVAL
 
	{ WWT_PUSHTXTBTN,     RESIZE_TB, 14,   0,  10, 107, 112, STR_0189,             STR_884E_DECREASE_SERVICING_INTERVAL},   // VLD_WIDGET_DECREASE_SERVICING_INTERVAL
 
	{      WWT_PANEL,    RESIZE_RTB, 14,  11, 404, 101, 112, 0x0,                  STR_NULL},                               // VLD_WIDGET_BOTTOM_RIGHT
 
	{     WWT_MATRIX,     RESIZE_RB, 14,   0, 392,  56, 100, 0x701,                STR_NULL},                               // VLD_WIDGET_MIDDLE_DETAILS
 
	{  WWT_SCROLLBAR,    RESIZE_LRB, 14, 393, 404,  56, 100, 0x0,                  STR_0190_SCROLL_BAR_SCROLLS_LIST},       // VLD_WIDGET_SCROLLBAR
 
	{ WWT_PUSHTXTBTN,     RESIZE_TB, 14,   0,  95, 113, 124, STR_013C_CARGO,       STR_884F_SHOW_DETAILS_OF_CARGO_CARRIED}, // VLD_WIDGET_DETAILS_CARGO_CARRIED
 
	{ WWT_PUSHTXTBTN,     RESIZE_TB, 14,  96, 194, 113, 124, STR_013D_INFORMATION, STR_8850_SHOW_DETAILS_OF_TRAIN_VEHICLES},// VLD_WIDGET_DETAILS_TRAIN_VEHICLES
 
	{ WWT_PUSHTXTBTN,     RESIZE_TB, 14, 195, 293, 113, 124, STR_013E_CAPACITIES,  STR_8851_SHOW_CAPACITIES_OF_EACH},       // VLD_WIDGET_DETAILS_CAPACITY_OF_EACH
 
	{ WWT_PUSHTXTBTN,    RESIZE_RTB, 14, 294, 392, 113, 124, STR_013E_TOTAL_CARGO, STR_8852_SHOW_TOTAL_CARGO},              // VLD_WIDGET_DETAILS_TOTAL_CARGO
 
	{ WWT_PUSHTXTBTN,    RESIZE_RTB, 14, 294, 392, 113, 124, STR_TOTAL_CARGO,      STR_SHOW_TOTAL_CARGO},                   // VLD_WIDGET_DETAILS_TOTAL_CARGO
 
	{  WWT_RESIZEBOX,   RESIZE_LRTB, 14, 393, 404, 113, 124, 0x0,                  STR_RESIZE_BUTTON},                      // VLD_RESIZE
 
	{   WIDGETS_END},
 
};
 

	
 

	
 
/** Command indices for the _vehicle_command_translation_table. */
 
enum VehicleStringTranslation {
 
	VST_VEHICLE_AGE_RUNNING_COST_YR,
 
	VST_VEHICLE_MAX_SPEED,
 
	VST_VEHICLE_PROFIT_THIS_YEAR_LAST_YEAR,
 
	VST_VEHICLE_RELIABILITY_BREAKDOWNS,
 
};
 

	
 
/** Command codes for the shared buttons indexed by VehicleCommandTranslation and vehicle type. */
 
static const StringID _vehicle_translation_table[][4] = {
 
	{ // VST_VEHICLE_AGE_RUNNING_COST_YR
 
		STR_885D_AGE_RUNNING_COST_YR,
 
		STR_900D_AGE_RUNNING_COST_YR,
 
		STR_9812_AGE_RUNNING_COST_YR,
 
		STR_A00D_AGE_RUNNING_COST_YR,
 
	},
 
	{ // VST_VEHICLE_MAX_SPEED
 
		STR_NULL,
 
		STR_900E_MAX_SPEED,
0 comments (0 inline, 0 general)