Changeset - r10570:e200b86ce378
[Not reviewed]
master
0 5 0
rubidium - 15 years ago 2009-01-04 14:51:49
rubidium@openttd.org
(svn r14827) -Feature [FS#1984]: few (optional) optimisations to making (initial) orders (sulai)
5 files changed with 24 insertions and 2 deletions:
0 comments (0 inline, 0 general)
src/lang/english.txt
Show inline comments
 
@@ -1141,12 +1141,13 @@ STR_CONFIG_PATCHES_ADVANCED_VEHICLE_LIST
 
STR_CONFIG_PATCHES_LOADING_INDICATORS                           :{LTBLUE}Use loading indicators: {ORANGE}{STRING1}
 
STR_CONFIG_PATCHES_LOADING_INDICATORS_OFF                       :Off
 
STR_CONFIG_PATCHES_LOADING_INDICATORS_OWN                       :Own company
 
STR_CONFIG_PATCHES_LOADING_INDICATORS_ALL                       :All companies
 
STR_CONFIG_PATCHES_TIMETABLE_ALLOW                              :{LTBLUE}Enable timetabling for vehicles: {ORANGE}{STRING1}
 
STR_CONFIG_PATCHES_TIMETABLE_IN_TICKS                           :{LTBLUE}Show timetable in ticks rather than days: {ORANGE}{STRING1}
 
STR_CONFIG_PATCHES_QUICKGOTO                                    :{LTBLUE}Quick creation of vehicle orders: {ORANGE}{STRING1}
 
STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE                            :{LTBLUE}Default rail type (after new game/game load): {ORANGE}{STRING1}
 
STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_RAIL                       :Normal Rail
 
STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_ELRAIL                     :Electrified Rail
 
STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_MONORAIL                   :Monorail
 
STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_MAGLEV                     :Maglev
 
STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_FIRST                      :First available
src/order_gui.cpp
Show inline comments
 
@@ -302,40 +302,44 @@ static Order GetOrderCmdFromTile(const V
 
	if (_settings_game.order.gotodepot) {
 
		switch (GetTileType(tile)) {
 
			case MP_RAILWAY:
 
				if (v->type == VEH_TRAIN && IsTileOwner(tile, _local_company)) {
 
					if (IsRailDepot(tile)) {
 
						order.MakeGoToDepot(GetDepotByTile(tile)->index, ODTFB_PART_OF_ORDERS);
 
						if (_ctrl_pressed) order.SetDepotOrderType((OrderDepotTypeFlags)(order.GetDepotOrderType() ^ ODTFB_SERVICE));
 
						if (_settings_client.gui.new_nonstop) order.SetNonStopType(ONSF_NO_STOP_AT_INTERMEDIATE_STATIONS);
 
						return order;
 
					}
 
				}
 
				break;
 

	
 
			case MP_ROAD:
 
				if (IsRoadDepot(tile) && v->type == VEH_ROAD && IsTileOwner(tile, _local_company)) {
 
					order.MakeGoToDepot(GetDepotByTile(tile)->index, ODTFB_PART_OF_ORDERS);
 
					if (_ctrl_pressed) order.SetDepotOrderType((OrderDepotTypeFlags)(order.GetDepotOrderType() ^ ODTFB_SERVICE));
 
					if (_settings_client.gui.new_nonstop) order.SetNonStopType(ONSF_NO_STOP_AT_INTERMEDIATE_STATIONS);
 
					return order;
 
				}
 
				break;
 

	
 
			case MP_STATION:
 
				if (v->type != VEH_AIRCRAFT) break;
 
				if (IsHangar(tile) && IsTileOwner(tile, _local_company)) {
 
					order.MakeGoToDepot(GetStationIndex(tile), ODTFB_PART_OF_ORDERS);
 
					if (_ctrl_pressed) order.SetDepotOrderType((OrderDepotTypeFlags)(order.GetDepotOrderType() ^ ODTFB_SERVICE));
 
					return order;
 
				}
 
				break;
 

	
 
			case MP_WATER:
 
				if (v->type != VEH_SHIP) break;
 
				if (IsShipDepot(tile) && IsTileOwner(tile, _local_company)) {
 
					TileIndex tile2 = GetOtherShipDepotTile(tile);
 

	
 
					order.MakeGoToDepot(GetDepotByTile(tile < tile2 ? tile : tile2)->index, ODTFB_PART_OF_ORDERS);
 
					if (_ctrl_pressed) order.SetDepotOrderType((OrderDepotTypeFlags)(order.GetDepotOrderType() ^ ODTFB_SERVICE));
 
					return order;
 
				}
 

	
 
			default:
 
				break;
 
		}
 
@@ -343,13 +347,13 @@ static Order GetOrderCmdFromTile(const V
 

	
 
	/* check waypoint */
 
	if (IsRailWaypointTile(tile) &&
 
			v->type == VEH_TRAIN &&
 
			IsTileOwner(tile, _local_company)) {
 
		order.MakeGoToWaypoint(GetWaypointByTile(tile)->index);
 
		if (_settings_client.gui.new_nonstop) order.SetNonStopType(ONSF_NO_STOP_AT_INTERMEDIATE_STATIONS);
 
		if (_settings_client.gui.new_nonstop != _ctrl_pressed) order.SetNonStopType(ONSF_NO_STOP_AT_ANY_STATION);
 
		return order;
 
	}
 

	
 
	if (IsTileType(tile, MP_STATION)) {
 
		StationID st_index = GetStationIndex(tile);
 
		const Station *st = GetStation(st_index);
 
@@ -360,12 +364,13 @@ static Order GetOrderCmdFromTile(const V
 
			(facil = FACIL_TRAIN, v->type == VEH_TRAIN) ||
 
			(facil = FACIL_AIRPORT, v->type == VEH_AIRCRAFT) ||
 
			(facil = FACIL_BUS_STOP, v->type == VEH_ROAD && IsCargoInClass(v->cargo_type, CC_PASSENGERS)) ||
 
			(facil = FACIL_TRUCK_STOP, 1);
 
			if (st->facilities & facil) {
 
				order.MakeGoToStation(st_index);
 
				if (_ctrl_pressed) order.SetLoadType(OLF_FULL_LOAD_ANY);
 
				if (_settings_client.gui.new_nonstop && (v->type == VEH_TRAIN || v->type == VEH_ROAD)) order.SetNonStopType(ONSF_NO_STOP_AT_INTERMEDIATE_STATIONS);
 
				return order;
 
			}
 
		}
 
	}
 

	
 
@@ -628,12 +633,24 @@ public:
 
	{
 
		this->caption_color = v->owner;
 
		this->vscroll.cap = 6;
 
		this->resize.step_height = 10;
 
		this->selected_order = -1;
 
		this->vehicle = v;
 

	
 
		if (_settings_client.gui.quick_goto) {
 
			/* If there are less than 2 station, make Go To active. */
 
			int station_orders = 0;
 
			const Order *order;
 
			FOR_VEHICLE_ORDERS(v, order) {
 
				if (order->IsType(OT_GOTO_STATION)) station_orders++;
 
			}
 

	
 
			if (station_orders < 2) OrderClick_Goto(this, 0);
 
		}
 

	
 
		if (_settings_game.order.timetabling) {
 
			this->widget[ORDER_WIDGET_CAPTION].right -= 61;
 
		} else {
 
			this->HideWidget(ORDER_WIDGET_TIMETABLE_VIEW);
 
		}
 
		this->FindWindowPlacementAndResize(desc);
 
@@ -1068,13 +1085,14 @@ public:
 
			if (v != NULL && this->HandleOrderVehClick(v)) return;
 

	
 
			const Order cmd = GetOrderCmdFromTile(this->vehicle, tile);
 
			if (!cmd.IsValid()) return;
 

	
 
			if (DoCommandP(this->vehicle->tile, this->vehicle->index + (this->OrderGetSel() << 16), cmd.Pack(), CMD_INSERT_ORDER | CMD_MSG(STR_8833_CAN_T_INSERT_NEW_ORDER))) {
 
				ResetObjectToPlace();
 
				/* With quick goto the Go To button stays active */
 
				if (!_settings_client.gui.quick_goto) ResetObjectToPlace();
 
			}
 
		}
 
	}
 

	
 
	virtual void OnPlaceObjectAbort()
 
	{
src/settings.cpp
Show inline comments
 
@@ -1436,12 +1436,13 @@ const SettingDesc _patch_settings[] = {
 
	 SDTC_BOOL(gui.prefer_teamchat,                      S,  0, false,                        STR_CONFIG_PATCHES_PREFER_TEAMCHAT,             NULL),
 
	  SDTC_VAR(gui.scrollwheel_scrolling,     SLE_UINT8, S, MS,     0,        0,        2, 0, STR_CONFIG_PATCHES_SCROLLWHEEL_SCROLLING,       NULL),
 
	  SDTC_VAR(gui.scrollwheel_multiplier,    SLE_UINT8, S,  0,     5,        1,       15, 1, STR_CONFIG_PATCHES_SCROLLWHEEL_MULTIPLIER,      NULL),
 
	 SDTC_BOOL(gui.pause_on_newgame,                     S,  0, false,                        STR_CONFIG_PATCHES_PAUSE_ON_NEW_GAME,           NULL),
 
	  SDTC_VAR(gui.advanced_vehicle_list,     SLE_UINT8, S, MS,     1,        0,        2, 0, STR_CONFIG_PATCHES_ADVANCED_VEHICLE_LISTS,      NULL),
 
	 SDTC_BOOL(gui.timetable_in_ticks,                   S,  0, false,                        STR_CONFIG_PATCHES_TIMETABLE_IN_TICKS,          NULL),
 
	 SDTC_BOOL(gui.quick_goto,                           S,  0, false,                        STR_CONFIG_PATCHES_QUICKGOTO,                   NULL),
 
	  SDTC_VAR(gui.loading_indicators,        SLE_UINT8, S, MS,     1,        0,        2, 0, STR_CONFIG_PATCHES_LOADING_INDICATORS,          RedrawScreen),
 
	  SDTC_VAR(gui.default_rail_type,         SLE_UINT8, S, MS,     4,        0,        6, 0, STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE,           NULL),
 
	 SDTC_BOOL(gui.enable_signal_gui,                    S,  0, false,                        STR_CONFIG_PATCHES_ENABLE_SIGNAL_GUI,           CloseSignalGUI),
 
	  SDTC_VAR(gui.drag_signals_density,      SLE_UINT8, S,  0,     4,        1,       20, 0, STR_CONFIG_PATCHES_DRAG_SIGNALS_DENSITY,        DragSignalsDensityChanged),
 
	  SDTC_VAR(gui.semaphore_build_before,    SLE_INT32, S, NC,  1975, MIN_YEAR, MAX_YEAR, 1, STR_CONFIG_PATCHES_SEMAPHORE_BUILD_BEFORE_DATE, ResetSignalVariant),
 
	 SDTC_BOOL(gui.train_income_warn,                    S,  0,  true,                        STR_CONFIG_PATCHES_WARN_INCOME_LESS,            NULL),
src/settings_gui.cpp
Show inline comments
 
@@ -632,12 +632,13 @@ static const char *_patches_ui[] = {
 
	"gui.right_mouse_btn_emulation",
 
#endif
 
	"gui.pause_on_newgame",
 
	"gui.advanced_vehicle_list",
 
	"gui.loading_indicators",
 
	"gui.timetable_in_ticks",
 
	"gui.quick_goto",
 
	"gui.default_rail_type",
 
	"gui.always_build_infrastructure",
 
	"gui.show_track_reservation",
 
	"gui.left_mouse_btn_scrolling",
 
};
 

	
src/settings_type.h
Show inline comments
 
@@ -69,12 +69,13 @@ struct GUISettings {
 
	uint8  scrollwheel_multiplier;           ///< how much 'wheel' per incoming event from the OS?
 
	bool   left_mouse_btn_scrolling;         ///< left mouse button scroll
 
	bool   pause_on_newgame;                 ///< whether to start new games paused or not
 
	bool   enable_signal_gui;                ///< show the signal GUI when the signal button is pressed
 
	Year   colored_news_year;                ///< when does newspaper become colored?
 
	bool   timetable_in_ticks;               ///< whether to show the timetable in ticks rather than days
 
	bool   quick_goto;                       ///< Allow quick access to 'goto button' in vehicle orders window
 
	bool   bridge_pillars;                   ///< show bridge pillars for high bridges
 
	bool   auto_euro;                        ///< automatically switch to euro in 2002
 
	byte   drag_signals_density;             ///< many signals density
 
	Year   semaphore_build_before;           ///< build semaphore signals automatically before this year
 
	bool   autorenew;                        ///< should autorenew be enabled for new companies?
 
	int16  autorenew_months;                 ///< how many months from EOL of vehicles should autorenew trigger for new companies?
0 comments (0 inline, 0 general)