Changeset - r9782:0e74244f8073
[Not reviewed]
master
0 2 0
frosch - 16 years ago 2008-08-02 12:43:45
frosch@openttd.org
(svn r13923) -Feature: Show [total-]cargo info in depot when [ctrl-]right-clicking on vehicle.
2 files changed with 70 insertions and 4 deletions:
0 comments (0 inline, 0 general)
src/depot_gui.cpp
Show inline comments
 
@@ -606,13 +606,12 @@ struct DepotWindow : Window {
 
			case VEH_TRAIN:
 
				this->widget[DEPOT_WIDGET_CAPTION].data      = STR_8800_TRAIN_DEPOT;
 
				this->widget[DEPOT_WIDGET_STOP_ALL].tooltips = STR_MASS_STOP_DEPOT_TRAIN_TIP;
 
				this->widget[DEPOT_WIDGET_START_ALL].tooltips= STR_MASS_START_DEPOT_TRAIN_TIP;
 
				this->widget[DEPOT_WIDGET_SELL].tooltips     = STR_8841_DRAG_TRAIN_VEHICLE_TO_HERE;
 
				this->widget[DEPOT_WIDGET_SELL_ALL].tooltips = STR_DEPOT_SELL_ALL_BUTTON_TRAIN_TIP;
 
				this->widget[DEPOT_WIDGET_MATRIX].tooltips   = STR_883F_TRAINS_CLICK_ON_TRAIN_FOR;
 

	
 
				this->widget[DEPOT_WIDGET_BUILD].data        = STR_8815_NEW_VEHICLES;
 
				this->widget[DEPOT_WIDGET_BUILD].tooltips    = STR_8840_BUILD_NEW_TRAIN_VEHICLE;
 
				this->widget[DEPOT_WIDGET_CLONE].data        = STR_CLONE_TRAIN;
 
				this->widget[DEPOT_WIDGET_CLONE].tooltips    = STR_CLONE_TRAIN_DEPOT_INFO;
 

	
 
@@ -630,13 +629,12 @@ struct DepotWindow : Window {
 
			case VEH_ROAD:
 
				this->widget[DEPOT_WIDGET_CAPTION].data      = STR_9003_ROAD_VEHICLE_DEPOT;
 
				this->widget[DEPOT_WIDGET_STOP_ALL].tooltips = STR_MASS_STOP_DEPOT_ROADVEH_TIP;
 
				this->widget[DEPOT_WIDGET_START_ALL].tooltips= STR_MASS_START_DEPOT_ROADVEH_TIP;
 
				this->widget[DEPOT_WIDGET_SELL].tooltips     = STR_9024_DRAG_ROAD_VEHICLE_TO_HERE;
 
				this->widget[DEPOT_WIDGET_SELL_ALL].tooltips = STR_DEPOT_SELL_ALL_BUTTON_ROADVEH_TIP;
 
				this->widget[DEPOT_WIDGET_MATRIX].tooltips   = STR_9022_VEHICLES_CLICK_ON_VEHICLE;
 

	
 
				this->widget[DEPOT_WIDGET_BUILD].data        = STR_9004_NEW_VEHICLES;
 
				this->widget[DEPOT_WIDGET_BUILD].tooltips    = STR_9023_BUILD_NEW_ROAD_VEHICLE;
 
				this->widget[DEPOT_WIDGET_CLONE].data        = STR_CLONE_ROAD_VEHICLE;
 
				this->widget[DEPOT_WIDGET_CLONE].tooltips    = STR_CLONE_ROAD_VEHICLE_DEPOT_INFO;
 

	
 
@@ -654,13 +652,12 @@ struct DepotWindow : Window {
 
			case VEH_SHIP:
 
				this->widget[DEPOT_WIDGET_CAPTION].data      = STR_9803_SHIP_DEPOT;
 
				this->widget[DEPOT_WIDGET_STOP_ALL].tooltips = STR_MASS_STOP_DEPOT_SHIP_TIP;
 
				this->widget[DEPOT_WIDGET_START_ALL].tooltips= STR_MASS_START_DEPOT_SHIP_TIP;
 
				this->widget[DEPOT_WIDGET_SELL].tooltips     = STR_9821_DRAG_SHIP_TO_HERE_TO_SELL;
 
				this->widget[DEPOT_WIDGET_SELL_ALL].tooltips = STR_DEPOT_SELL_ALL_BUTTON_SHIP_TIP;
 
				this->widget[DEPOT_WIDGET_MATRIX].tooltips   = STR_981F_SHIPS_CLICK_ON_SHIP_FOR;
 

	
 
				this->widget[DEPOT_WIDGET_BUILD].data        = STR_9804_NEW_SHIPS;
 
				this->widget[DEPOT_WIDGET_BUILD].tooltips    = STR_9820_BUILD_NEW_SHIP;
 
				this->widget[DEPOT_WIDGET_CLONE].data        = STR_CLONE_SHIP;
 
				this->widget[DEPOT_WIDGET_CLONE].tooltips    = STR_CLONE_SHIP_DEPOT_INFO;
 

	
 
@@ -678,13 +675,12 @@ struct DepotWindow : Window {
 
			case VEH_AIRCRAFT:
 
				this->widget[DEPOT_WIDGET_CAPTION].data      = STR_A002_AIRCRAFT_HANGAR;
 
				this->widget[DEPOT_WIDGET_STOP_ALL].tooltips = STR_MASS_STOP_HANGAR_TIP;
 
				this->widget[DEPOT_WIDGET_START_ALL].tooltips= STR_MASS_START_HANGAR_TIP;
 
				this->widget[DEPOT_WIDGET_SELL].tooltips     = STR_A023_DRAG_AIRCRAFT_TO_HERE_TO;
 
				this->widget[DEPOT_WIDGET_SELL_ALL].tooltips = STR_DEPOT_SELL_ALL_BUTTON_AIRCRAFT_TIP;
 
				this->widget[DEPOT_WIDGET_MATRIX].tooltips   = STR_A021_AIRCRAFT_CLICK_ON_AIRCRAFT;
 

	
 
				this->widget[DEPOT_WIDGET_BUILD].data        = STR_A003_NEW_AIRCRAFT;
 
				this->widget[DEPOT_WIDGET_BUILD].tooltips    = STR_A022_BUILD_NEW_AIRCRAFT;
 
				this->widget[DEPOT_WIDGET_CLONE].data        = STR_CLONE_AIRCRAFT;
 
				this->widget[DEPOT_WIDGET_CLONE].tooltips    = STR_CLONE_AIRCRAFT_INFO_HANGAR_WINDOW;
 

	
 
@@ -839,12 +835,79 @@ struct DepotWindow : Window {
 
				DoCommandP(this->window_number, this->type, 0, NULL, CMD_DEPOT_MASS_AUTOREPLACE);
 
				break;
 

	
 
		}
 
	}
 

	
 
	virtual void OnRightClick(Point pt, int widget)
 
	{
 
		if (widget != DEPOT_WIDGET_MATRIX) return;
 

	
 
		GetDepotVehiclePtData gdvp = { NULL, NULL };
 
		const Vehicle *v = NULL;
 
		DepotGUIAction mode = this->GetVehicleFromDepotWndPt(pt.x, pt.y, &v, &gdvp);
 

	
 
		if (this->type == VEH_TRAIN) v = gdvp.wagon;
 

	
 
		if (v != NULL && mode == MODE_DRAG_VEHICLE) {
 
			AcceptedCargo capacity, loaded;
 
			memset(capacity, 0, sizeof(capacity));
 
			memset(loaded, 0, sizeof(loaded));
 

	
 
			/* Display info for single (articulated) vehicle, or for whole chain starting with selected vehicle */
 
			bool whole_chain = (this->type == VEH_TRAIN && _ctrl_pressed);
 

	
 
			/* loop through vehicle chain and collect cargos */
 
			uint num = 0;
 
			for (const Vehicle *w = v; w != NULL; w = w->Next()) {
 
				if (w->cargo_cap > 0 && w->cargo_type < NUM_CARGO) {
 
					capacity[w->cargo_type] += w->cargo_cap;
 
					loaded  [w->cargo_type] += w->cargo.Count();
 
				}
 

	
 
				if (w->type == VEH_TRAIN && !EngineHasArticPart(w)) {
 
					num++;
 
					if (!whole_chain) break;
 
				}
 
			}
 

	
 
			/* Build tooltipstring */
 
			static char details[1024];
 
			details[0] = '\0';
 
			char *pos = details;
 

	
 
			for (CargoID cargo_type = 0; cargo_type < NUM_CARGO; cargo_type++) {
 
				if (capacity[cargo_type] == 0) continue;
 

	
 
				SetDParam(0, cargo_type);           // {CARGO} #1
 
				SetDParam(1, loaded[cargo_type]);   // {CARGO} #2
 
				SetDParam(2, cargo_type);           // {SHORTCARGO} #1
 
				SetDParam(3, capacity[cargo_type]); // {SHORTCARGO} #2
 
				pos = GetString(pos, STR_DEPOT_VEHICLE_TOOLTIP_CARGO, lastof(details));
 
			}
 

	
 
			/* Show tooltip window */
 
			uint64 args[2];
 
			args[0] = (whole_chain ? num : v->engine_type);
 
			args[1] = (uint64)details;
 
			GuiShowTooltips(whole_chain ? STR_DEPOT_VEHICLE_TOOLTIP_CHAIN : STR_DEPOT_VEHICLE_TOOLTIP, 2, args);
 
		} else {
 
			/* Show tooltip help */
 
			StringID tooltip = INVALID_STRING_ID;
 
			switch (this->type) {
 
				case VEH_TRAIN:    tooltip = STR_883F_TRAINS_CLICK_ON_TRAIN_FOR; break;
 
				case VEH_ROAD:     tooltip = STR_9022_VEHICLES_CLICK_ON_VEHICLE; break;
 
				case VEH_SHIP:     tooltip = STR_981F_SHIPS_CLICK_ON_SHIP_FOR;   break;
 
				case VEH_AIRCRAFT: tooltip = STR_A021_AIRCRAFT_CLICK_ON_AIRCRAFT;break;
 
				default: NOT_REACHED();
 
			}
 
			GuiShowTooltips(tooltip);
 
		}
 
	}
 

	
 

	
 
	virtual void OnPlaceObject(Point pt, TileIndex tile)
 
	{
 
		const Vehicle *v = CheckMouseOverVehicle();
 

	
 
		if (v != NULL) HandleCloneVehClick(v, this);
 
	}
src/lang/english.txt
Show inline comments
 
@@ -2945,12 +2945,15 @@ STR_9024_DRAG_ROAD_VEHICLE_TO_HERE      
 
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_DEPOT_VEHICLE_TOOLTIP                                       :{BLACK}{ENGINE}{RAW_STRING}
 
STR_DEPOT_VEHICLE_TOOLTIP_CHAIN                                 :{BLACK}{NUM} vehicle{P "" s}{RAW_STRING}
 
STR_DEPOT_VEHICLE_TOOLTIP_CARGO                                 :{}{CARGO} ({SHORTCARGO})
 

	
 
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}!
0 comments (0 inline, 0 general)