File diff r7996:5a693b9539fb → r7997:7eff37796679
src/station_gui.cpp
Show inline comments
 
@@ -290,11 +290,11 @@ static void PlayerStationsWndProc(Window
 
			if (_cargo_filter == _cargo_filter_max) _cargo_filter = _cargo_mask;
 

	
 
			for (uint i = 0; i < 5; i++) {
 
				if (HasBit(facilities, i)) LowerWindowWidget(w, i + STATIONLIST_WIDGET_TRAIN);
 
				if (HasBit(facilities, i)) w->LowerWidget(i + STATIONLIST_WIDGET_TRAIN);
 
			}
 
			SetWindowWidgetLoweredState(w, STATIONLIST_WIDGET_FACILALL, facilities == (FACIL_TRAIN | FACIL_TRUCK_STOP | FACIL_BUS_STOP | FACIL_AIRPORT | FACIL_DOCK));
 
			SetWindowWidgetLoweredState(w, STATIONLIST_WIDGET_CARGOALL, _cargo_filter == _cargo_mask && include_empty);
 
			SetWindowWidgetLoweredState(w, STATIONLIST_WIDGET_NOCARGOWAITING, include_empty);
 
			w->SetWidgetLoweredState(STATIONLIST_WIDGET_FACILALL, facilities == (FACIL_TRAIN | FACIL_TRUCK_STOP | FACIL_BUS_STOP | FACIL_AIRPORT | FACIL_DOCK));
 
			w->SetWidgetLoweredState(STATIONLIST_WIDGET_CARGOALL, _cargo_filter == _cargo_mask && include_empty);
 
			w->SetWidgetLoweredState(STATIONLIST_WIDGET_NOCARGOWAITING, include_empty);
 

	
 
			sl->sort_list = NULL;
 
			sl->flags = SL_REBUILD;
 
@@ -337,13 +337,13 @@ static void PlayerStationsWndProc(Window
 
			}
 

	
 
			x += 6;
 
			cg_ofst = IsWindowWidgetLowered(w, STATIONLIST_WIDGET_NOCARGOWAITING) ? 2 : 1;
 
			cg_ofst = w->IsWidgetLowered(STATIONLIST_WIDGET_NOCARGOWAITING) ? 2 : 1;
 
			DrawStringCentered(x + cg_ofst, y + cg_ofst, STR_ABBREV_NONE, TC_BLACK);
 
			x += 14;
 
			cg_ofst = IsWindowWidgetLowered(w, STATIONLIST_WIDGET_CARGOALL) ? 2 : 1;
 
			cg_ofst = w->IsWidgetLowered(STATIONLIST_WIDGET_CARGOALL) ? 2 : 1;
 
			DrawStringCentered(x + cg_ofst, y + cg_ofst, STR_ABBREV_ALL, TC_BLACK);
 

	
 
			cg_ofst = IsWindowWidgetLowered(w, STATIONLIST_WIDGET_FACILALL) ? 2 : 1;
 
			cg_ofst = w->IsWidgetLowered(STATIONLIST_WIDGET_FACILALL) ? 2 : 1;
 
			DrawString(71 + cg_ofst, y + cg_ofst, STR_ABBREV_ALL, TC_BLACK);
 

	
 
			if (w->vscroll.count == 0) { // player has no stations
 
@@ -401,24 +401,24 @@ static void PlayerStationsWndProc(Window
 
				case STATIONLIST_WIDGET_SHIP:
 
					if (_ctrl_pressed) {
 
						ToggleBit(facilities, e->we.click.widget - STATIONLIST_WIDGET_TRAIN);
 
						ToggleWidgetLoweredState(w, e->we.click.widget);
 
						w->ToggleWidgetLoweredState(e->we.click.widget);
 
					} else {
 
						for (uint i = 0; facilities != 0; i++, facilities >>= 1) {
 
							if (HasBit(facilities, 0)) RaiseWindowWidget(w, i + STATIONLIST_WIDGET_TRAIN);
 
							if (HasBit(facilities, 0)) w->RaiseWidget(i + STATIONLIST_WIDGET_TRAIN);
 
						}
 
						SetBit(facilities, e->we.click.widget - STATIONLIST_WIDGET_TRAIN);
 
						LowerWindowWidget(w, e->we.click.widget);
 
						w->LowerWidget(e->we.click.widget);
 
					}
 
					SetWindowWidgetLoweredState(w, STATIONLIST_WIDGET_FACILALL, facilities == (FACIL_TRAIN | FACIL_TRUCK_STOP | FACIL_BUS_STOP | FACIL_AIRPORT | FACIL_DOCK));
 
					w->SetWidgetLoweredState(STATIONLIST_WIDGET_FACILALL, facilities == (FACIL_TRAIN | FACIL_TRUCK_STOP | FACIL_BUS_STOP | FACIL_AIRPORT | FACIL_DOCK));
 
					sl->flags |= SL_REBUILD;
 
					SetWindowDirty(w);
 
					break;
 

	
 
				case STATIONLIST_WIDGET_FACILALL:
 
					for (uint i = 0; i < 5; i++) {
 
						LowerWindowWidget(w, i + STATIONLIST_WIDGET_TRAIN);
 
						w->LowerWidget(i + STATIONLIST_WIDGET_TRAIN);
 
					}
 
					LowerWindowWidget(w, STATIONLIST_WIDGET_FACILALL);
 
					w->LowerWidget(STATIONLIST_WIDGET_FACILALL);
 

	
 
					facilities = FACIL_TRAIN | FACIL_TRUCK_STOP | FACIL_BUS_STOP | FACIL_AIRPORT | FACIL_DOCK;
 
					sl->flags |= SL_REBUILD;
 
@@ -429,11 +429,11 @@ static void PlayerStationsWndProc(Window
 
					uint i = 0;
 
					for (CargoID c = 0; c < NUM_CARGO; c++) {
 
						if (!GetCargo(c)->IsValid()) continue;
 
						LowerWindowWidget(w, i + STATIONLIST_WIDGET_CARGOSTART);
 
						w->LowerWidget(i + STATIONLIST_WIDGET_CARGOSTART);
 
						i++;
 
					}
 
					LowerWindowWidget(w, STATIONLIST_WIDGET_NOCARGOWAITING);
 
					LowerWindowWidget(w, STATIONLIST_WIDGET_CARGOALL);
 
					w->LowerWidget(STATIONLIST_WIDGET_NOCARGOWAITING);
 
					w->LowerWidget(STATIONLIST_WIDGET_CARGOALL);
 

	
 
					_cargo_filter = _cargo_mask;
 
					include_empty = true;
 
@@ -447,7 +447,7 @@ static void PlayerStationsWndProc(Window
 
					station_sort.order = HasBit(sl->flags, 0);
 
					sl->flags |= SL_RESORT;
 
					w->flags4 |= 5 << WF_TIMEOUT_SHL;
 
					LowerWindowWidget(w, STATIONLIST_WIDGET_SORTBY);
 
					w->LowerWidget(STATIONLIST_WIDGET_SORTBY);
 
					SetWindowDirty(w);
 
					break;
 

	
 
@@ -459,19 +459,19 @@ static void PlayerStationsWndProc(Window
 
				case STATIONLIST_WIDGET_NOCARGOWAITING:
 
					if (_ctrl_pressed) {
 
						include_empty = !include_empty;
 
						ToggleWidgetLoweredState(w, STATIONLIST_WIDGET_NOCARGOWAITING);
 
						w->ToggleWidgetLoweredState(STATIONLIST_WIDGET_NOCARGOWAITING);
 
					} else {
 
						for (uint i = STATIONLIST_WIDGET_CARGOSTART; i < w->widget_count; i++) {
 
							RaiseWindowWidget(w, i);
 
							w->RaiseWidget(i);
 
						}
 

	
 
						_cargo_filter = 0;
 
						include_empty = true;
 

	
 
						LowerWindowWidget(w, STATIONLIST_WIDGET_NOCARGOWAITING);
 
						w->LowerWidget(STATIONLIST_WIDGET_NOCARGOWAITING);
 
					}
 
					sl->flags |= SL_REBUILD;
 
					SetWindowWidgetLoweredState(w, STATIONLIST_WIDGET_CARGOALL, _cargo_filter == _cargo_mask && include_empty);
 
					w->SetWidgetLoweredState(STATIONLIST_WIDGET_CARGOALL, _cargo_filter == _cargo_mask && include_empty);
 
					SetWindowDirty(w);
 
					break;
 

	
 
@@ -488,21 +488,21 @@ static void PlayerStationsWndProc(Window
 

	
 
						if (_ctrl_pressed) {
 
							ToggleBit(_cargo_filter, c);
 
							ToggleWidgetLoweredState(w, e->we.click.widget);
 
							w->ToggleWidgetLoweredState(e->we.click.widget);
 
						} else {
 
							for (uint i = STATIONLIST_WIDGET_CARGOSTART; i < w->widget_count; i++) {
 
								RaiseWindowWidget(w, i);
 
								w->RaiseWidget(i);
 
							}
 
							RaiseWindowWidget(w, STATIONLIST_WIDGET_NOCARGOWAITING);
 
							w->RaiseWidget(STATIONLIST_WIDGET_NOCARGOWAITING);
 

	
 
							_cargo_filter = 0;
 
							include_empty = false;
 

	
 
							SetBit(_cargo_filter, c);
 
							LowerWindowWidget(w, e->we.click.widget);
 
							w->LowerWidget(e->we.click.widget);
 
						}
 
						sl->flags |= SL_REBUILD;
 
						SetWindowWidgetLoweredState(w, STATIONLIST_WIDGET_CARGOALL, _cargo_filter == _cargo_mask && include_empty);
 
						w->SetWidgetLoweredState(STATIONLIST_WIDGET_CARGOALL, _cargo_filter == _cargo_mask && include_empty);
 
						SetWindowDirty(w);
 
					}
 
					break;
 
@@ -529,7 +529,7 @@ static void PlayerStationsWndProc(Window
 
			break;
 

	
 
		case WE_TIMEOUT:
 
			RaiseWindowWidget(w, STATIONLIST_WIDGET_SORTBY);
 
			w->RaiseWidget(STATIONLIST_WIDGET_SORTBY);
 
			SetWindowDirty(w);
 
			break;
 

	
 
@@ -615,7 +615,7 @@ void ShowPlayerStations(PlayerID player)
 
		wi->data     = 0;
 
		wi->tooltips = STR_USE_CTRL_TO_SELECT_MORE;
 

	
 
		if (HasBit(_cargo_filter, c)) LowerWindowWidget(w, STATIONLIST_WIDGET_CARGOSTART + i);
 
		if (HasBit(_cargo_filter, c)) w->LowerWidget(STATIONLIST_WIDGET_CARGOSTART + i);
 
		i++;
 
	}
 

	
 
@@ -710,11 +710,11 @@ static void DrawStationViewWindow(Window
 
	}
 
	SetVScrollCount(w, num);
 

	
 
	SetWindowWidgetDisabledState(w,  9, st->owner != _local_player);
 
	SetWindowWidgetDisabledState(w, 10, !(st->facilities & FACIL_TRAIN));
 
	SetWindowWidgetDisabledState(w, 11, !(st->facilities & FACIL_TRUCK_STOP) && !(st->facilities & FACIL_BUS_STOP));
 
	SetWindowWidgetDisabledState(w, 12, !(st->facilities & FACIL_AIRPORT));
 
	SetWindowWidgetDisabledState(w, 13, !(st->facilities & FACIL_DOCK));
 
	w->SetWidgetDisabledState( 9, st->owner != _local_player);
 
	w->SetWidgetDisabledState(10, !(st->facilities & FACIL_TRAIN));
 
	w->SetWidgetDisabledState(11, !(st->facilities & FACIL_TRUCK_STOP) && !(st->facilities & FACIL_BUS_STOP));
 
	w->SetWidgetDisabledState(12, !(st->facilities & FACIL_AIRPORT));
 
	w->SetWidgetDisabledState(13, !(st->facilities & FACIL_DOCK));
 

	
 
	SetDParam(0, st->index);
 
	SetDParam(1, st->facilities);