src/vehiclelist.cpp
author Tero Marttila <terom@fixme.fi>
Fri, 18 Jul 2008 21:59:53 +0300
changeset 11176 874f8008e6e5
parent 10757 7f002e778125
permissions -rw-r--r--
have ShowNewGRFDownload make a copy of the GRFConfig list containg only the relevant GRFConfigs
2186
461a2aff3486 (svn r2701) Insert Id tags into all source files
tron
parents: 2163
diff changeset
     1
/* $Id$ */
461a2aff3486 (svn r2701) Insert Id tags into all source files
tron
parents: 2163
diff changeset
     2
10429
1b99254f9607 (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: 10398
diff changeset
     3
/** @file vehicle.cpp Base implementations of all vehicles. */
6919
339210ecccd3 (svn r9559) -Documentation: doxygen and comment changes: 'U' and 'V' now. Almost done. Yeah. I know, I've already said that...
belugas
parents: 6676
diff changeset
     4
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
     5
#include "stdafx.h"
1891
92a3b0aa0946 (svn r2397) - CodeChange: rename all "ttd" files to "openttd" files.
Darkvater
parents: 1881
diff changeset
     6
#include "openttd.h"
10757
7f002e778125 (svn r13307) -Codechange: Separate VehicleList and its two functions so only the 3 users include it, reducing dependencies on misc/smallvec.h
peter1138
parents: 10716
diff changeset
     7
#include "vehicle_type.h"
7f002e778125 (svn r13307) -Codechange: Separate VehicleList and its two functions so only the 3 users include it, reducing dependencies on misc/smallvec.h
peter1138
parents: 10716
diff changeset
     8
#include "vehicle_func.h"
7f002e778125 (svn r13307) -Codechange: Separate VehicleList and its two functions so only the 3 users include it, reducing dependencies on misc/smallvec.h
peter1138
parents: 10716
diff changeset
     9
#include "vehicle_base.h"
1752
cdbfb2f23e72 (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"
10697
9ec651be998d (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 10694
diff changeset
    11
#include "core/alloc_func.hpp"
10757
7f002e778125 (svn r13307) -Codechange: Separate VehicleList and its two functions so only the 3 users include it, reducing dependencies on misc/smallvec.h
peter1138
parents: 10716
diff changeset
    12
#include "train.h"
7f002e778125 (svn r13307) -Codechange: Separate VehicleList and its two functions so only the 3 users include it, reducing dependencies on misc/smallvec.h
peter1138
parents: 10716
diff changeset
    13
#include "vehiclelist.h"
2244
e6b5ef68406d (svn r2764) -Feature: Clone vehicles
bjarni
parents: 2186
diff changeset
    14
10697
9ec651be998d (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 10694
diff changeset
    15
/**
9ec651be998d (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 10694
diff changeset
    16
 * Generate a list of vehicles inside a depot.
9ec651be998d (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 10694
diff changeset
    17
 * @param type    Type of vehicle
9ec651be998d (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 10694
diff changeset
    18
 * @param tile    The tile the depot is located on
9ec651be998d (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 10694
diff changeset
    19
 * @param engines Pointer to list to add vehicles to
9ec651be998d (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 10694
diff changeset
    20
 * @param wagons  Pointer to list to add wagons to (can be NULL)
9ec651be998d (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 10694
diff changeset
    21
 */
9ec651be998d (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 10694
diff changeset
    22
void BuildDepotVehicleList(VehicleType type, TileIndex tile, VehicleList *engines, VehicleList *wagons)
9ec651be998d (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 10694
diff changeset
    23
{
9ec651be998d (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 10694
diff changeset
    24
	engines->Clear();
9ec651be998d (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 10694
diff changeset
    25
	if (wagons != NULL && wagons != engines) wagons->Clear();
9ec651be998d (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 10694
diff changeset
    26
9ec651be998d (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 10694
diff changeset
    27
	const Vehicle *v;
10688
6c9df9bf9b04 (svn r13232) -Codechange: Simplify BuildDepotVehicleList()
peter1138
parents: 10621
diff changeset
    28
	FOR_ALL_VEHICLES(v) {
6c9df9bf9b04 (svn r13232) -Codechange: Simplify BuildDepotVehicleList()
peter1138
parents: 10621
diff changeset
    29
		/* General tests for all vehicle types */
6c9df9bf9b04 (svn r13232) -Codechange: Simplify BuildDepotVehicleList()
peter1138
parents: 10621
diff changeset
    30
		if (v->type != type) continue;
6c9df9bf9b04 (svn r13232) -Codechange: Simplify BuildDepotVehicleList()
peter1138
parents: 10621
diff changeset
    31
		if (v->tile != tile) continue;
6c9df9bf9b04 (svn r13232) -Codechange: Simplify BuildDepotVehicleList()
peter1138
parents: 10621
diff changeset
    32
6c9df9bf9b04 (svn r13232) -Codechange: Simplify BuildDepotVehicleList()
peter1138
parents: 10621
diff changeset
    33
		switch (type) {
6c9df9bf9b04 (svn r13232) -Codechange: Simplify BuildDepotVehicleList()
peter1138
parents: 10621
diff changeset
    34
			case VEH_TRAIN:
6c9df9bf9b04 (svn r13232) -Codechange: Simplify BuildDepotVehicleList()
peter1138
parents: 10621
diff changeset
    35
				if (v->u.rail.track != TRACK_BIT_DEPOT) continue;
10697
9ec651be998d (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 10694
diff changeset
    36
				if (wagons != NULL && IsFreeWagon(v)) {
9ec651be998d (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 10694
diff changeset
    37
					*wagons->Append() = v;
10688
6c9df9bf9b04 (svn r13232) -Codechange: Simplify BuildDepotVehicleList()
peter1138
parents: 10621
diff changeset
    38
					continue;
4635
b9fb2f19eb64 (svn r6503) -Codechange: added a function to tell what vehicles a depot contains
bjarni
parents: 4616
diff changeset
    39
				}
10688
6c9df9bf9b04 (svn r13232) -Codechange: Simplify BuildDepotVehicleList()
peter1138
parents: 10621
diff changeset
    40
				break;
6c9df9bf9b04 (svn r13232) -Codechange: Simplify BuildDepotVehicleList()
peter1138
parents: 10621
diff changeset
    41
6c9df9bf9b04 (svn r13232) -Codechange: Simplify BuildDepotVehicleList()
peter1138
parents: 10621
diff changeset
    42
			default:
6c9df9bf9b04 (svn r13232) -Codechange: Simplify BuildDepotVehicleList()
peter1138
parents: 10621
diff changeset
    43
				if (!v->IsInDepot()) continue;
6c9df9bf9b04 (svn r13232) -Codechange: Simplify BuildDepotVehicleList()
peter1138
parents: 10621
diff changeset
    44
				break;
6c9df9bf9b04 (svn r13232) -Codechange: Simplify BuildDepotVehicleList()
peter1138
parents: 10621
diff changeset
    45
		}
6c9df9bf9b04 (svn r13232) -Codechange: Simplify BuildDepotVehicleList()
peter1138
parents: 10621
diff changeset
    46
6c9df9bf9b04 (svn r13232) -Codechange: Simplify BuildDepotVehicleList()
peter1138
parents: 10621
diff changeset
    47
		if (!v->IsPrimaryVehicle()) continue;
6c9df9bf9b04 (svn r13232) -Codechange: Simplify BuildDepotVehicleList()
peter1138
parents: 10621
diff changeset
    48
10697
9ec651be998d (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 10694
diff changeset
    49
		*engines->Append() = v;
4635
b9fb2f19eb64 (svn r6503) -Codechange: added a function to tell what vehicles a depot contains
bjarni
parents: 4616
diff changeset
    50
	}
10697
9ec651be998d (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 10694
diff changeset
    51
9ec651be998d (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 10694
diff changeset
    52
	/* Ensure the lists are not wasting too much space. If the lists are fresh
9ec651be998d (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 10694
diff changeset
    53
	 * (i.e. built within a command) then this will actually do nothing. */
9ec651be998d (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 10694
diff changeset
    54
	engines->Compact();
9ec651be998d (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 10694
diff changeset
    55
	if (wagons != NULL && wagons != engines) wagons->Compact();
4635
b9fb2f19eb64 (svn r6503) -Codechange: added a function to tell what vehicles a depot contains
bjarni
parents: 4616
diff changeset
    56
}
b9fb2f19eb64 (svn r6503) -Codechange: added a function to tell what vehicles a depot contains
bjarni
parents: 4616
diff changeset
    57
4497
7ef263b6c05c (svn r6282) -Codechange: made a function to create the vehicle list for vehicle list windows
bjarni
parents: 4495
diff changeset
    58
/**
10697
9ec651be998d (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 10694
diff changeset
    59
 * Generate a list of vehicles based on window type.
9ec651be998d (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 10694
diff changeset
    60
 * @param list        Pointer to list to add vehicles to
9ec651be998d (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 10694
diff changeset
    61
 * @param type        Type of vehicle
9ec651be998d (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 10694
diff changeset
    62
 * @param owner       Player to generate list for
9ec651be998d (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 10694
diff changeset
    63
 * @param index       This parameter has different meanings depending on window_type
9ec651be998d (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 10694
diff changeset
    64
 *    <ul>
9ec651be998d (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 10694
diff changeset
    65
 *      <li>VLW_STATION_LIST:  index of station to generate a list for</li>
9ec651be998d (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 10694
diff changeset
    66
 *      <li>VLW_SHARED_ORDERS: index of order to generate a list for<li>
9ec651be998d (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 10694
diff changeset
    67
 *      <li>VLW_STANDARD: not used<li>
9ec651be998d (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 10694
diff changeset
    68
 *      <li>VLW_DEPOT_LIST: TileIndex of the depot/hangar to make the list for</li>
9ec651be998d (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 10694
diff changeset
    69
 *      <li>VLW_GROUP_LIST: index of group to generate a list for</li>
9ec651be998d (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 10694
diff changeset
    70
 *    </ul>
9ec651be998d (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 10694
diff changeset
    71
 * @param window_type The type of window the list is for, using the VLW_ flags in vehicle_gui.h
9ec651be998d (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 10694
diff changeset
    72
 */
9ec651be998d (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 10694
diff changeset
    73
void GenerateVehicleSortList(VehicleList *list, VehicleType type, PlayerID owner, uint32 index, uint16 window_type)
9ec651be998d (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 10694
diff changeset
    74
{
9ec651be998d (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 10694
diff changeset
    75
	list->Clear();
9ec651be998d (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 10694
diff changeset
    76
4497
7ef263b6c05c (svn r6282) -Codechange: made a function to create the vehicle list for vehicle list windows
bjarni
parents: 4495
diff changeset
    77
	const Vehicle *v;
7ef263b6c05c (svn r6282) -Codechange: made a function to create the vehicle list for vehicle list windows
bjarni
parents: 4495
diff changeset
    78
7ef263b6c05c (svn r6282) -Codechange: made a function to create the vehicle list for vehicle list windows
bjarni
parents: 4495
diff changeset
    79
	switch (window_type) {
10697
9ec651be998d (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 10694
diff changeset
    80
		case VLW_STATION_LIST:
4497
7ef263b6c05c (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) {
7269
c7f39d91255e (svn r10009) -Codechange: Add and use Vehicle::IsPrimaryVehicle to replace individual checks depending on the vehicle type.
maedhros
parents: 7223
diff changeset
    82
				if (v->type == type && v->IsPrimaryVehicle()) {
4497
7ef263b6c05c (svn r6282) -Codechange: made a function to create the vehicle list for vehicle list windows
bjarni
parents: 4495
diff changeset
    83
					const Order *order;
7ef263b6c05c (svn r6282) -Codechange: made a function to create the vehicle list for vehicle list windows
bjarni
parents: 4495
diff changeset
    84
7ef263b6c05c (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) {
9336
3f75a2c5e0d3 (svn r12588) -Codechange: do not access the destination of an order directly.
rubidium
parents: 9334
diff changeset
    86
						if (order->IsType(OT_GOTO_STATION) && order->GetDestination() == index) {
10697
9ec651be998d (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 10694
diff changeset
    87
							*list->Append() = v;
4497
7ef263b6c05c (svn r6282) -Codechange: made a function to create the vehicle list for vehicle list windows
bjarni
parents: 4495
diff changeset
    88
							break;
7ef263b6c05c (svn r6282) -Codechange: made a function to create the vehicle list for vehicle list windows
bjarni
parents: 4495
diff changeset
    89
						}
7ef263b6c05c (svn r6282) -Codechange: made a function to create the vehicle list for vehicle list windows
bjarni
parents: 4495
diff changeset
    90
					}
7ef263b6c05c (svn r6282) -Codechange: made a function to create the vehicle list for vehicle list windows
bjarni
parents: 4495
diff changeset
    91
				}
7ef263b6c05c (svn r6282) -Codechange: made a function to create the vehicle list for vehicle list windows
bjarni
parents: 4495
diff changeset
    92
			}
7ef263b6c05c (svn r6282) -Codechange: made a function to create the vehicle list for vehicle list windows
bjarni
parents: 4495
diff changeset
    93
			break;
10697
9ec651be998d (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 10694
diff changeset
    94
9ec651be998d (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 10694
diff changeset
    95
		case VLW_SHARED_ORDERS:
4497
7ef263b6c05c (svn r6282) -Codechange: made a function to create the vehicle list for vehicle list windows
bjarni
parents: 4495
diff changeset
    96
			FOR_ALL_VEHICLES(v) {
7ef263b6c05c (svn r6282) -Codechange: made a function to create the vehicle list for vehicle list windows
bjarni
parents: 4495
diff changeset
    97
				/* Find a vehicle with the order in question */
10697
9ec651be998d (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 10694
diff changeset
    98
				if (v->orders != NULL && v->orders->index == index) {
9ec651be998d (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 10694
diff changeset
    99
					/* Add all vehicles from this vehicle's shared order list */
9ec651be998d (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 10694
diff changeset
   100
					for (v = GetFirstVehicleFromSharedList(v); v != NULL; v = v->next_shared) {
9ec651be998d (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 10694
diff changeset
   101
						*list->Append() = v;
9ec651be998d (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 10694
diff changeset
   102
					}
9ec651be998d (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 10694
diff changeset
   103
					break;
4497
7ef263b6c05c (svn r6282) -Codechange: made a function to create the vehicle list for vehicle list windows
bjarni
parents: 4495
diff changeset
   104
				}
7ef263b6c05c (svn r6282) -Codechange: made a function to create the vehicle list for vehicle list windows
bjarni
parents: 4495
diff changeset
   105
			}
7ef263b6c05c (svn r6282) -Codechange: made a function to create the vehicle list for vehicle list windows
bjarni
parents: 4495
diff changeset
   106
			break;
10697
9ec651be998d (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 10694
diff changeset
   107
9ec651be998d (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 10694
diff changeset
   108
		case VLW_STANDARD:
4497
7ef263b6c05c (svn r6282) -Codechange: made a function to create the vehicle list for vehicle list windows
bjarni
parents: 4495
diff changeset
   109
			FOR_ALL_VEHICLES(v) {
7269
c7f39d91255e (svn r10009) -Codechange: Add and use Vehicle::IsPrimaryVehicle to replace individual checks depending on the vehicle type.
maedhros
parents: 7223
diff changeset
   110
				if (v->type == type && v->owner == owner && v->IsPrimaryVehicle()) {
10697
9ec651be998d (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 10694
diff changeset
   111
					*list->Append() = v;
4497
7ef263b6c05c (svn r6282) -Codechange: made a function to create the vehicle list for vehicle list windows
bjarni
parents: 4495
diff changeset
   112
				}
7ef263b6c05c (svn r6282) -Codechange: made a function to create the vehicle list for vehicle list windows
bjarni
parents: 4495
diff changeset
   113
			}
7ef263b6c05c (svn r6282) -Codechange: made a function to create the vehicle list for vehicle list windows
bjarni
parents: 4495
diff changeset
   114
			break;
10697
9ec651be998d (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 10694
diff changeset
   115
9ec651be998d (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 10694
diff changeset
   116
		case VLW_DEPOT_LIST:
4681
7d7a89b32dd0 (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
   117
			FOR_ALL_VEHICLES(v) {
7269
c7f39d91255e (svn r10009) -Codechange: Add and use Vehicle::IsPrimaryVehicle to replace individual checks depending on the vehicle type.
maedhros
parents: 7223
diff changeset
   118
				if (v->type == type && v->IsPrimaryVehicle()) {
4681
7d7a89b32dd0 (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
					const Order *order;
7d7a89b32dd0 (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
7d7a89b32dd0 (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
					FOR_VEHICLE_ORDERS(v, order) {
9336
3f75a2c5e0d3 (svn r12588) -Codechange: do not access the destination of an order directly.
rubidium
parents: 9334
diff changeset
   122
						if (order->IsType(OT_GOTO_DEPOT) && order->GetDestination() == index) {
10697
9ec651be998d (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 10694
diff changeset
   123
							*list->Append() = v;
4681
7d7a89b32dd0 (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
							break;
7d7a89b32dd0 (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
   125
						}
7d7a89b32dd0 (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
   126
					}
7d7a89b32dd0 (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
   127
				}
7d7a89b32dd0 (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
   128
			}
7d7a89b32dd0 (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
   129
			break;
7d7a89b32dd0 (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
   130
10230
bf81856a1101 (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: 10222
diff changeset
   131
		case VLW_GROUP_LIST:
7139
4ae3ab180d05 (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: 7137
diff changeset
   132
			FOR_ALL_VEHICLES(v) {
7269
c7f39d91255e (svn r10009) -Codechange: Add and use Vehicle::IsPrimaryVehicle to replace individual checks depending on the vehicle type.
maedhros
parents: 7223
diff changeset
   133
				if (v->type == type && v->IsPrimaryVehicle() &&
c7f39d91255e (svn r10009) -Codechange: Add and use Vehicle::IsPrimaryVehicle to replace individual checks depending on the vehicle type.
maedhros
parents: 7223
diff changeset
   134
						v->owner == owner && v->group_id == index) {
10697
9ec651be998d (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 10694
diff changeset
   135
					*list->Append() = v;
7139
4ae3ab180d05 (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: 7137
diff changeset
   136
				}
4ae3ab180d05 (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: 7137
diff changeset
   137
			}
4ae3ab180d05 (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: 7137
diff changeset
   138
			break;
4ae3ab180d05 (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: 7137
diff changeset
   139
4497
7ef263b6c05c (svn r6282) -Codechange: made a function to create the vehicle list for vehicle list windows
bjarni
parents: 4495
diff changeset
   140
		default: NOT_REACHED(); break;
7ef263b6c05c (svn r6282) -Codechange: made a function to create the vehicle list for vehicle list windows
bjarni
parents: 4495
diff changeset
   141
	}
7ef263b6c05c (svn r6282) -Codechange: made a function to create the vehicle list for vehicle list windows
bjarni
parents: 4495
diff changeset
   142
10697
9ec651be998d (svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents: 10694
diff changeset
   143
	list->Compact();
4497
7ef263b6c05c (svn r6282) -Codechange: made a function to create the vehicle list for vehicle list windows
bjarni
parents: 4495
diff changeset
   144
}