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
 
@@ -609,7 +609,6 @@ struct DepotWindow : Window {
 
				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;
 
@@ -633,7 +632,6 @@ struct DepotWindow : Window {
 
				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;
 
@@ -657,7 +655,6 @@ struct DepotWindow : Window {
 
				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;
 
@@ -681,7 +678,6 @@ struct DepotWindow : Window {
 
				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;
 
@@ -842,6 +838,73 @@ struct DepotWindow : Window {
 
		}
 
	}
 

	
 
	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();
src/lang/english.txt
Show inline comments
 
@@ -2948,6 +2948,9 @@ STR_9027_BUILD_THE_HIGHLIGHTED_ROAD     
 
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...
0 comments (0 inline, 0 general)