Changeset - r12430:9d9c04f1354b
[Not reviewed]
master
0 1 0
frosch - 15 years ago 2009-07-18 17:38:18
frosch@openttd.org
(svn r16874) -Change: Give the number behind free wagon chains in depots the same meaning as for trains.
1 file changed with 27 insertions and 27 deletions:
0 comments (0 inline, 0 general)
src/depot_gui.cpp
Show inline comments
 
@@ -262,18 +262,22 @@ struct DepotWindow : Window {
 
	 */
 
	void DrawVehicleInDepot(Window *w, const Vehicle *v, int x, int y)
 
	{
 
		byte diff_x = 0, diff_y = 0;
 

	
 
		bool free_wagon = false;
 
		int sprite_y = y + this->resize.step_height - GetVehicleListHeight(v->type);
 

	
 
		switch (v->type) {
 
			case VEH_TRAIN:
 
				DrawTrainImage(Train::From(v), x + 21, sprite_y, this->sel, this->hscroll.cap + 4, this->hscroll.pos);
 
			case VEH_TRAIN: {
 
				const Train *u = Train::From(v);
 
				free_wagon = u->IsFreeWagon();
 

	
 
				uint x_space = free_wagon ? TRAININFO_DEFAULT_VEHICLE_WIDTH : 0;
 
				DrawTrainImage(u, x + 21 + x_space, sprite_y, this->sel, this->hscroll.cap + 4 - x_space, this->hscroll.pos);
 

	
 
				/* Number of wagons relative to a standard length wagon (rounded up) */
 
				SetDParam(0, (Train::From(v)->tcache.cached_total_length + 7) / 8);
 
				SetDParam(0, (u->tcache.cached_total_length + 7) / 8);
 
				DrawString(this->widget[DEPOT_WIDGET_MATRIX].left, this->widget[DEPOT_WIDGET_MATRIX].right - 1, y + 4, STR_TINY_BLACK, TC_FROMSTRING, SA_RIGHT); // Draw the counter
 
				break;
 
			}
 

	
 
			case VEH_ROAD:     DrawRoadVehImage( v, x + 24, sprite_y, this->sel, ROADVEHINFO_DEFAULT_VEHICLE_WIDTH); break;
 
			case VEH_SHIP:     DrawShipImage(    v, x + 19, sprite_y - 1, this->sel); break;
 
@@ -286,24 +290,30 @@ struct DepotWindow : Window {
 
			default: NOT_REACHED();
 
		}
 

	
 
		if (this->resize.step_height == 14) {
 
			/* VEH_TRAIN and VEH_ROAD, which are low */
 
			diff_x = 15;
 
		if (free_wagon) {
 
			DrawString(x, this->widget[DEPOT_WIDGET_MATRIX].right - 1, y + 2, STR_DEPOT_NO_ENGINE);
 
		} else {
 
			/* VEH_SHIP and VEH_AIRCRAFT, which are tall */
 
			diff_y = 12;
 
		}
 
			byte diff_x = 0, diff_y = 0;
 

	
 
		DrawSprite((v->vehstatus & VS_STOPPED) ? SPR_FLAG_VEH_STOPPED : SPR_FLAG_VEH_RUNNING, PAL_NONE, x + diff_x, y + diff_y);
 
			if (v->type == VEH_TRAIN || v->type == VEH_ROAD) {
 
				/* Arrange unitnumber and flag horizontally */
 
				diff_x = 15;
 
			} else {
 
				/* Arrange unitnumber and flag vertically */
 
				diff_y = 12;
 
			}
 

	
 
		SetDParam(0, v->unitnumber);
 
		DrawString(x, this->widget[DEPOT_WIDGET_MATRIX].right - 1, y + 2, (uint16)(v->max_age - DAYS_IN_LEAP_YEAR) >= v->age ? STR_BLACK_COMMA : STR_RED_COMMA);
 
			DrawSprite((v->vehstatus & VS_STOPPED) ? SPR_FLAG_VEH_STOPPED : SPR_FLAG_VEH_RUNNING, PAL_NONE, x + diff_x, y + diff_y);
 

	
 
			SetDParam(0, v->unitnumber);
 
			DrawString(x, this->widget[DEPOT_WIDGET_MATRIX].right - 1, y + 2, (uint16)(v->max_age - DAYS_IN_LEAP_YEAR) >= v->age ? STR_BLACK_COMMA : STR_RED_COMMA);
 
		}
 
	}
 

	
 
	void DrawDepotWindow(Window *w)
 
	{
 
		TileIndex tile = this->window_number;
 
		int x, y, i, maxval;
 
		int x, y, maxval;
 

	
 
		/* Set the row and number of boxes in each row based on the number of boxes drawn in the matrix */
 
		uint16 rows_in_display   = GB(this->widget[DEPOT_WIDGET_MATRIX].data, MAT_ROW_START, MAT_ROW_BITS);
 
@@ -367,18 +377,8 @@ struct DepotWindow : Window {
 

	
 
		/* draw the train wagons, that do not have an engine in front */
 
		for (; num < maxval; num++, y += 14) {
 
			const Train *v = Train::From(this->wagon_list[num - this->vehicle_list.Length()]);
 

	
 
			DrawTrainImage(v, x + 50, y, this->sel, this->hscroll.cap - 29, 0);
 
			DrawString(x, this->widget[DEPOT_WIDGET_MATRIX].right - 1, y + 2, STR_DEPOT_NO_ENGINE);
 

	
 
			/* Draw the train counter */
 
			i = 0;
 
			for (const Train *u = v; u != NULL; u = u->Next()) {
 
				i++;
 
			}
 
			SetDParam(0, i);                      // Set the counter
 
			DrawString(this->widget[DEPOT_WIDGET_MATRIX].left, this->widget[DEPOT_WIDGET_MATRIX].right - 1, y + 4, STR_TINY_BLACK, TC_FROMSTRING, SA_RIGHT); // Draw the counter
 
			const Vehicle *v = this->wagon_list[num - this->vehicle_list.Length()];
 
			DrawVehicleInDepot(w, v, x, y);
 
		}
 
	}
 

	
0 comments (0 inline, 0 general)