src/vehiclelist.cpp
author rubidium
Sun, 17 Aug 2008 21:07:09 +0000
changeset 9942 c3677fa5563f
parent 9941 8549448b55fa
child 9949 392998225bdd
permissions -rw-r--r--
(svn r14097) -Fix [FS#2085]: one couldn't get a list of vehicles sharing an order when the number of orders was 0; you could see that the vehicles had a shared order though.
2186
db48cf29b983 (svn r2701) Insert Id tags into all source files
tron
parents: 2163
diff changeset
     1
/* $Id$ */
db48cf29b983 (svn r2701) Insert Id tags into all source files
tron
parents: 2163
diff changeset
     2
9111
48ce04029fe4 (svn r12971) -Documentation: add @file in files that missed them and add something more than whitespace as description of files that don't have a description.
rubidium
parents: 9081
diff changeset
     3
/** @file vehicle.cpp Base implementations of all vehicles. */
6423
8e10e79e0fd1 (svn r9559) -Documentation: doxygen and comment changes: 'U' and 'V' now. Almost done. Yeah. I know, I've already said that...
belugas
parents: 6350
diff changeset
     4
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
     5
#include "stdafx.h"
1891
862800791170 (svn r2397) - CodeChange: rename all "ttd" files to "openttd" files.
Darkvater
parents: 1881
diff changeset
     6
#include "openttd.h"
9396
3f70b1b8642c (svn r13307) -Codechange: Separate VehicleList and its two functions so only the 3 users include it, reducing dependencies on misc/smallvec.h
peter1138
parents: 9365
diff changeset
     7
#include "vehicle_type.h"
3f70b1b8642c (svn r13307) -Codechange: Separate VehicleList and its two functions so only the 3 users include it, reducing dependencies on misc/smallvec.h
peter1138
parents: 9365
diff changeset
     8
#include "vehicle_func.h"
3f70b1b8642c (svn r13307) -Codechange: Separate VehicleList and its two functions so only the 3 users include it, reducing dependencies on misc/smallvec.h
peter1138
parents: 9365
diff changeset
     9
#include "vehicle_base.h"
1752
d65cd19f7117 (svn r2256) - Fix: Trains cannot find a depot when they are in a tunnel. (glx)
matthijs
parents: 1735
diff changeset
    10
#include "vehicle_gui.h"
9348
dc680f675138 (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 9345
diff changeset
    11
#include "core/alloc_func.hpp"
9396
3f70b1b8642c (svn r13307) -Codechange: Separate VehicleList and its two functions so only the 3 users include it, reducing dependencies on misc/smallvec.h
peter1138
parents: 9365
diff changeset
    12
#include "train.h"
3f70b1b8642c (svn r13307) -Codechange: Separate VehicleList and its two functions so only the 3 users include it, reducing dependencies on misc/smallvec.h
peter1138
parents: 9365
diff changeset
    13
#include "vehiclelist.h"
2244
417a472e7cb5 (svn r2764) -Feature: Clone vehicles
bjarni
parents: 2186
diff changeset
    14
9348
dc680f675138 (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 9345
diff changeset
    15
/**
dc680f675138 (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 9345
diff changeset
    16
 * Generate a list of vehicles inside a depot.
dc680f675138 (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 9345
diff changeset
    17
 * @param type    Type of vehicle
dc680f675138 (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 9345
diff changeset
    18
 * @param tile    The tile the depot is located on
dc680f675138 (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 9345
diff changeset
    19
 * @param engines Pointer to list to add vehicles to
dc680f675138 (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 9345
diff changeset
    20
 * @param wagons  Pointer to list to add wagons to (can be NULL)
dc680f675138 (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 9345
diff changeset
    21
 */
dc680f675138 (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 9345
diff changeset
    22
void BuildDepotVehicleList(VehicleType type, TileIndex tile, VehicleList *engines, VehicleList *wagons)
dc680f675138 (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 9345
diff changeset
    23
{
dc680f675138 (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 9345
diff changeset
    24
	engines->Clear();
dc680f675138 (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 9345
diff changeset
    25
	if (wagons != NULL && wagons != engines) wagons->Clear();
dc680f675138 (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 9345
diff changeset
    26
dc680f675138 (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 9345
diff changeset
    27
	const Vehicle *v;
9340
7d09c355359a (svn r13232) -Codechange: Simplify BuildDepotVehicleList()
peter1138
parents: 9297
diff changeset
    28
	FOR_ALL_VEHICLES(v) {
7d09c355359a (svn r13232) -Codechange: Simplify BuildDepotVehicleList()
peter1138
parents: 9297
diff changeset
    29
		/* General tests for all vehicle types */
7d09c355359a (svn r13232) -Codechange: Simplify BuildDepotVehicleList()
peter1138
parents: 9297
diff changeset
    30
		if (v->type != type) continue;
7d09c355359a (svn r13232) -Codechange: Simplify BuildDepotVehicleList()
peter1138
parents: 9297
diff changeset
    31
		if (v->tile != tile) continue;
7d09c355359a (svn r13232) -Codechange: Simplify BuildDepotVehicleList()
peter1138
parents: 9297
diff changeset
    32
7d09c355359a (svn r13232) -Codechange: Simplify BuildDepotVehicleList()
peter1138
parents: 9297
diff changeset
    33
		switch (type) {
7d09c355359a (svn r13232) -Codechange: Simplify BuildDepotVehicleList()
peter1138
parents: 9297
diff changeset
    34
			case VEH_TRAIN:
7d09c355359a (svn r13232) -Codechange: Simplify BuildDepotVehicleList()
peter1138
parents: 9297
diff changeset
    35
				if (v->u.rail.track != TRACK_BIT_DEPOT) continue;
9348
dc680f675138 (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 9345
diff changeset
    36
				if (wagons != NULL && IsFreeWagon(v)) {
dc680f675138 (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 9345
diff changeset
    37
					*wagons->Append() = v;
9340
7d09c355359a (svn r13232) -Codechange: Simplify BuildDepotVehicleList()
peter1138
parents: 9297
diff changeset
    38
					continue;
4635
1b35cdc018ee (svn r6503) -Codechange: added a function to tell what vehicles a depot contains
bjarni
parents: 4616
diff changeset
    39
				}
9340
7d09c355359a (svn r13232) -Codechange: Simplify BuildDepotVehicleList()
peter1138
parents: 9297
diff changeset
    40
				break;
7d09c355359a (svn r13232) -Codechange: Simplify BuildDepotVehicleList()
peter1138
parents: 9297
diff changeset
    41
7d09c355359a (svn r13232) -Codechange: Simplify BuildDepotVehicleList()
peter1138
parents: 9297
diff changeset
    42
			default:
7d09c355359a (svn r13232) -Codechange: Simplify BuildDepotVehicleList()
peter1138
parents: 9297
diff changeset
    43
				if (!v->IsInDepot()) continue;
7d09c355359a (svn r13232) -Codechange: Simplify BuildDepotVehicleList()
peter1138
parents: 9297
diff changeset
    44
				break;
7d09c355359a (svn r13232) -Codechange: Simplify BuildDepotVehicleList()
peter1138
parents: 9297
diff changeset
    45
		}
7d09c355359a (svn r13232) -Codechange: Simplify BuildDepotVehicleList()
peter1138
parents: 9297
diff changeset
    46
7d09c355359a (svn r13232) -Codechange: Simplify BuildDepotVehicleList()
peter1138
parents: 9297
diff changeset
    47
		if (!v->IsPrimaryVehicle()) continue;
7d09c355359a (svn r13232) -Codechange: Simplify BuildDepotVehicleList()
peter1138
parents: 9297
diff changeset
    48
9348
dc680f675138 (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 9345
diff changeset
    49
		*engines->Append() = v;
4635
1b35cdc018ee (svn r6503) -Codechange: added a function to tell what vehicles a depot contains
bjarni
parents: 4616
diff changeset
    50
	}
9348
dc680f675138 (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 9345
diff changeset
    51
dc680f675138 (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 9345
diff changeset
    52
	/* Ensure the lists are not wasting too much space. If the lists are fresh
dc680f675138 (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 9345
diff changeset
    53
	 * (i.e. built within a command) then this will actually do nothing. */
dc680f675138 (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 9345
diff changeset
    54
	engines->Compact();
dc680f675138 (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 9345
diff changeset
    55
	if (wagons != NULL && wagons != engines) wagons->Compact();
4635
1b35cdc018ee (svn r6503) -Codechange: added a function to tell what vehicles a depot contains
bjarni
parents: 4616
diff changeset
    56
}
1b35cdc018ee (svn r6503) -Codechange: added a function to tell what vehicles a depot contains
bjarni
parents: 4616
diff changeset
    57
4497
9d43f65d9e78 (svn r6282) -Codechange: made a function to create the vehicle list for vehicle list windows
bjarni
parents: 4495
diff changeset
    58
/**
9348
dc680f675138 (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 9345
diff changeset
    59
 * Generate a list of vehicles based on window type.
dc680f675138 (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 9345
diff changeset
    60
 * @param list        Pointer to list to add vehicles to
dc680f675138 (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 9345
diff changeset
    61
 * @param type        Type of vehicle
dc680f675138 (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 9345
diff changeset
    62
 * @param owner       Player to generate list for
dc680f675138 (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 9345
diff changeset
    63
 * @param index       This parameter has different meanings depending on window_type
dc680f675138 (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 9345
diff changeset
    64
 *    <ul>
dc680f675138 (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 9345
diff changeset
    65
 *      <li>VLW_STATION_LIST:  index of station to generate a list for</li>
dc680f675138 (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 9345
diff changeset
    66
 *      <li>VLW_SHARED_ORDERS: index of order to generate a list for<li>
dc680f675138 (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 9345
diff changeset
    67
 *      <li>VLW_STANDARD: not used<li>
dc680f675138 (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 9345
diff changeset
    68
 *      <li>VLW_DEPOT_LIST: TileIndex of the depot/hangar to make the list for</li>
dc680f675138 (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 9345
diff changeset
    69
 *      <li>VLW_GROUP_LIST: index of group to generate a list for</li>
dc680f675138 (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 9345
diff changeset
    70
 *    </ul>
dc680f675138 (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 9345
diff changeset
    71
 * @param window_type The type of window the list is for, using the VLW_ flags in vehicle_gui.h
dc680f675138 (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 9345
diff changeset
    72
 */
dc680f675138 (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 9345
diff changeset
    73
void GenerateVehicleSortList(VehicleList *list, VehicleType type, PlayerID owner, uint32 index, uint16 window_type)
dc680f675138 (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 9345
diff changeset
    74
{
dc680f675138 (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 9345
diff changeset
    75
	list->Clear();
dc680f675138 (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 9345
diff changeset
    76
4497
9d43f65d9e78 (svn r6282) -Codechange: made a function to create the vehicle list for vehicle list windows
bjarni
parents: 4495
diff changeset
    77
	const Vehicle *v;
9d43f65d9e78 (svn r6282) -Codechange: made a function to create the vehicle list for vehicle list windows
bjarni
parents: 4495
diff changeset
    78
9d43f65d9e78 (svn r6282) -Codechange: made a function to create the vehicle list for vehicle list windows
bjarni
parents: 4495
diff changeset
    79
	switch (window_type) {
9348
dc680f675138 (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 9345
diff changeset
    80
		case VLW_STATION_LIST:
4497
9d43f65d9e78 (svn r6282) -Codechange: made a function to create the vehicle list for vehicle list windows
bjarni
parents: 4495
diff changeset
    81
			FOR_ALL_VEHICLES(v) {
6773
bc98b0b16ec4 (svn r10009) -Codechange: Add and use Vehicle::IsPrimaryVehicle to replace individual checks depending on the vehicle type.
maedhros
parents: 6727
diff changeset
    82
				if (v->type == type && v->IsPrimaryVehicle()) {
4497
9d43f65d9e78 (svn r6282) -Codechange: made a function to create the vehicle list for vehicle list windows
bjarni
parents: 4495
diff changeset
    83
					const Order *order;
9d43f65d9e78 (svn r6282) -Codechange: made a function to create the vehicle list for vehicle list windows
bjarni
parents: 4495
diff changeset
    84
9d43f65d9e78 (svn r6282) -Codechange: made a function to create the vehicle list for vehicle list windows
bjarni
parents: 4495
diff changeset
    85
					FOR_VEHICLE_ORDERS(v, order) {
8840
332412c2e9c1 (svn r12588) -Codechange: do not access the destination of an order directly.
rubidium
parents: 8838
diff changeset
    86
						if (order->IsType(OT_GOTO_STATION) && order->GetDestination() == index) {
9348
dc680f675138 (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 9345
diff changeset
    87
							*list->Append() = v;
4497
9d43f65d9e78 (svn r6282) -Codechange: made a function to create the vehicle list for vehicle list windows
bjarni
parents: 4495
diff changeset
    88
							break;
9d43f65d9e78 (svn r6282) -Codechange: made a function to create the vehicle list for vehicle list windows
bjarni
parents: 4495
diff changeset
    89
						}
9d43f65d9e78 (svn r6282) -Codechange: made a function to create the vehicle list for vehicle list windows
bjarni
parents: 4495
diff changeset
    90
					}
9d43f65d9e78 (svn r6282) -Codechange: made a function to create the vehicle list for vehicle list windows
bjarni
parents: 4495
diff changeset
    91
				}
9d43f65d9e78 (svn r6282) -Codechange: made a function to create the vehicle list for vehicle list windows
bjarni
parents: 4495
diff changeset
    92
			}
9d43f65d9e78 (svn r6282) -Codechange: made a function to create the vehicle list for vehicle list windows
bjarni
parents: 4495
diff changeset
    93
			break;
9348
dc680f675138 (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 9345
diff changeset
    94
dc680f675138 (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 9345
diff changeset
    95
		case VLW_SHARED_ORDERS:
9942
c3677fa5563f (svn r14097) -Fix [FS#2085]: one couldn't get a list of vehicles sharing an order when the number of orders was 0; you could see that the vehicles had a shared order though.
rubidium
parents: 9941
diff changeset
    96
			/* Add all vehicles from this vehicle's shared order list */
c3677fa5563f (svn r14097) -Fix [FS#2085]: one couldn't get a list of vehicles sharing an order when the number of orders was 0; you could see that the vehicles had a shared order though.
rubidium
parents: 9941
diff changeset
    97
			for (v = GetVehicle(index); v != NULL; v = v->NextShared()) {
c3677fa5563f (svn r14097) -Fix [FS#2085]: one couldn't get a list of vehicles sharing an order when the number of orders was 0; you could see that the vehicles had a shared order though.
rubidium
parents: 9941
diff changeset
    98
				*list->Append() = v;
4497
9d43f65d9e78 (svn r6282) -Codechange: made a function to create the vehicle list for vehicle list windows
bjarni
parents: 4495
diff changeset
    99
			}
9d43f65d9e78 (svn r6282) -Codechange: made a function to create the vehicle list for vehicle list windows
bjarni
parents: 4495
diff changeset
   100
			break;
9348
dc680f675138 (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 9345
diff changeset
   101
dc680f675138 (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 9345
diff changeset
   102
		case VLW_STANDARD:
4497
9d43f65d9e78 (svn r6282) -Codechange: made a function to create the vehicle list for vehicle list windows
bjarni
parents: 4495
diff changeset
   103
			FOR_ALL_VEHICLES(v) {
6773
bc98b0b16ec4 (svn r10009) -Codechange: Add and use Vehicle::IsPrimaryVehicle to replace individual checks depending on the vehicle type.
maedhros
parents: 6727
diff changeset
   104
				if (v->type == type && v->owner == owner && v->IsPrimaryVehicle()) {
9348
dc680f675138 (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 9345
diff changeset
   105
					*list->Append() = v;
4497
9d43f65d9e78 (svn r6282) -Codechange: made a function to create the vehicle list for vehicle list windows
bjarni
parents: 4495
diff changeset
   106
				}
9d43f65d9e78 (svn r6282) -Codechange: made a function to create the vehicle list for vehicle list windows
bjarni
parents: 4495
diff changeset
   107
			}
9d43f65d9e78 (svn r6282) -Codechange: made a function to create the vehicle list for vehicle list windows
bjarni
parents: 4495
diff changeset
   108
			break;
9348
dc680f675138 (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 9345
diff changeset
   109
dc680f675138 (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 9345
diff changeset
   110
		case VLW_DEPOT_LIST:
4681
bc077405e9a8 (svn r6586) -Feature: [depot window] added a vehicle list window with all vehicles having a certain depot in their orders
bjarni
parents: 4678
diff changeset
   111
			FOR_ALL_VEHICLES(v) {
6773
bc98b0b16ec4 (svn r10009) -Codechange: Add and use Vehicle::IsPrimaryVehicle to replace individual checks depending on the vehicle type.
maedhros
parents: 6727
diff changeset
   112
				if (v->type == type && v->IsPrimaryVehicle()) {
4681
bc077405e9a8 (svn r6586) -Feature: [depot window] added a vehicle list window with all vehicles having a certain depot in their orders
bjarni
parents: 4678
diff changeset
   113
					const Order *order;
bc077405e9a8 (svn r6586) -Feature: [depot window] added a vehicle list window with all vehicles having a certain depot in their orders
bjarni
parents: 4678
diff changeset
   114
bc077405e9a8 (svn r6586) -Feature: [depot window] added a vehicle list window with all vehicles having a certain depot in their orders
bjarni
parents: 4678
diff changeset
   115
					FOR_VEHICLE_ORDERS(v, order) {
8840
332412c2e9c1 (svn r12588) -Codechange: do not access the destination of an order directly.
rubidium
parents: 8838
diff changeset
   116
						if (order->IsType(OT_GOTO_DEPOT) && order->GetDestination() == index) {
9348
dc680f675138 (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 9345
diff changeset
   117
							*list->Append() = v;
4681
bc077405e9a8 (svn r6586) -Feature: [depot window] added a vehicle list window with all vehicles having a certain depot in their orders
bjarni
parents: 4678
diff changeset
   118
							break;
bc077405e9a8 (svn r6586) -Feature: [depot window] added a vehicle list window with all vehicles having a certain depot in their orders
bjarni
parents: 4678
diff changeset
   119
						}
bc077405e9a8 (svn r6586) -Feature: [depot window] added a vehicle list window with all vehicles having a certain depot in their orders
bjarni
parents: 4678
diff changeset
   120
					}
bc077405e9a8 (svn r6586) -Feature: [depot window] added a vehicle list window with all vehicles having a certain depot in their orders
bjarni
parents: 4678
diff changeset
   121
				}
bc077405e9a8 (svn r6586) -Feature: [depot window] added a vehicle list window with all vehicles having a certain depot in their orders
bjarni
parents: 4678
diff changeset
   122
			}
bc077405e9a8 (svn r6586) -Feature: [depot window] added a vehicle list window with all vehicles having a certain depot in their orders
bjarni
parents: 4678
diff changeset
   123
			break;
bc077405e9a8 (svn r6586) -Feature: [depot window] added a vehicle list window with all vehicles having a certain depot in their orders
bjarni
parents: 4678
diff changeset
   124
8970
da7261f48b7e (svn r12762) -Fix: tabs after the first non-tab character are generally not okay (or lines starting with a space and then tabs).
rubidium
parents: 8962
diff changeset
   125
		case VLW_GROUP_LIST:
6643
f81bee57bc09 (svn r9874) -Feature: advanced vehicle lists a.k.a. group interface. Now you can make groups of vehicles and perform all kinds of tasks on that given group. Original code by nycom and graphics by skidd13.
rubidium
parents: 6641
diff changeset
   126
			FOR_ALL_VEHICLES(v) {
6773
bc98b0b16ec4 (svn r10009) -Codechange: Add and use Vehicle::IsPrimaryVehicle to replace individual checks depending on the vehicle type.
maedhros
parents: 6727
diff changeset
   127
				if (v->type == type && v->IsPrimaryVehicle() &&
bc98b0b16ec4 (svn r10009) -Codechange: Add and use Vehicle::IsPrimaryVehicle to replace individual checks depending on the vehicle type.
maedhros
parents: 6727
diff changeset
   128
						v->owner == owner && v->group_id == index) {
9348
dc680f675138 (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 9345
diff changeset
   129
					*list->Append() = v;
6643
f81bee57bc09 (svn r9874) -Feature: advanced vehicle lists a.k.a. group interface. Now you can make groups of vehicles and perform all kinds of tasks on that given group. Original code by nycom and graphics by skidd13.
rubidium
parents: 6641
diff changeset
   130
				}
f81bee57bc09 (svn r9874) -Feature: advanced vehicle lists a.k.a. group interface. Now you can make groups of vehicles and perform all kinds of tasks on that given group. Original code by nycom and graphics by skidd13.
rubidium
parents: 6641
diff changeset
   131
			}
f81bee57bc09 (svn r9874) -Feature: advanced vehicle lists a.k.a. group interface. Now you can make groups of vehicles and perform all kinds of tasks on that given group. Original code by nycom and graphics by skidd13.
rubidium
parents: 6641
diff changeset
   132
			break;
f81bee57bc09 (svn r9874) -Feature: advanced vehicle lists a.k.a. group interface. Now you can make groups of vehicles and perform all kinds of tasks on that given group. Original code by nycom and graphics by skidd13.
rubidium
parents: 6641
diff changeset
   133
4497
9d43f65d9e78 (svn r6282) -Codechange: made a function to create the vehicle list for vehicle list windows
bjarni
parents: 4495
diff changeset
   134
		default: NOT_REACHED(); break;
9d43f65d9e78 (svn r6282) -Codechange: made a function to create the vehicle list for vehicle list windows
bjarni
parents: 4495
diff changeset
   135
	}
9d43f65d9e78 (svn r6282) -Codechange: made a function to create the vehicle list for vehicle list windows
bjarni
parents: 4495
diff changeset
   136
9348
dc680f675138 (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 9345
diff changeset
   137
	list->Compact();
4497
9d43f65d9e78 (svn r6282) -Codechange: made a function to create the vehicle list for vehicle list windows
bjarni
parents: 4495
diff changeset
   138
}