author | smatz |
Sat, 13 Dec 2008 15:59:25 +0000 | |
changeset 10416 | b35c0a4c73c5 |
parent 10238 | 5076964d81a1 |
permissions | -rw-r--r-- |
2186 | 1 |
/* $Id$ */ |
2 |
||
10238
5076964d81a1
(svn r14466) -Doc: remove some obsolete parameters, fix a few parameter names in comments and add a little more doxygen documentation.
rubidium
parents:
10207
diff
changeset
|
3 |
/** @file vehiclelist.cpp Lists of 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 | 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 | 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) |
10193
ae0dc7f699bf
(svn r14406) -Fix [FS#Eddi]: Autoreplace did not work for vehicles in free wagon chains.
frosch
parents:
9963
diff
changeset
|
21 |
* @param individual_wagons If true add every wagon to #wagons which is not attached to an engine. If false only add the first wagon of every row. |
9348
dc680f675138
(svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents:
9345
diff
changeset
|
22 |
*/ |
10193
ae0dc7f699bf
(svn r14406) -Fix [FS#Eddi]: Autoreplace did not work for vehicles in free wagon chains.
frosch
parents:
9963
diff
changeset
|
23 |
void BuildDepotVehicleList(VehicleType type, TileIndex tile, VehicleList *engines, VehicleList *wagons, bool individual_wagons) |
9348
dc680f675138
(svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents:
9345
diff
changeset
|
24 |
{ |
dc680f675138
(svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents:
9345
diff
changeset
|
25 |
engines->Clear(); |
dc680f675138
(svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents:
9345
diff
changeset
|
26 |
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
|
27 |
|
dc680f675138
(svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents:
9345
diff
changeset
|
28 |
const Vehicle *v; |
9340
7d09c355359a
(svn r13232) -Codechange: Simplify BuildDepotVehicleList()
peter1138
parents:
9297
diff
changeset
|
29 |
FOR_ALL_VEHICLES(v) { |
7d09c355359a
(svn r13232) -Codechange: Simplify BuildDepotVehicleList()
peter1138
parents:
9297
diff
changeset
|
30 |
/* General tests for all vehicle types */ |
7d09c355359a
(svn r13232) -Codechange: Simplify BuildDepotVehicleList()
peter1138
parents:
9297
diff
changeset
|
31 |
if (v->type != type) continue; |
7d09c355359a
(svn r13232) -Codechange: Simplify BuildDepotVehicleList()
peter1138
parents:
9297
diff
changeset
|
32 |
if (v->tile != tile) continue; |
7d09c355359a
(svn r13232) -Codechange: Simplify BuildDepotVehicleList()
peter1138
parents:
9297
diff
changeset
|
33 |
|
7d09c355359a
(svn r13232) -Codechange: Simplify BuildDepotVehicleList()
peter1138
parents:
9297
diff
changeset
|
34 |
switch (type) { |
7d09c355359a
(svn r13232) -Codechange: Simplify BuildDepotVehicleList()
peter1138
parents:
9297
diff
changeset
|
35 |
case VEH_TRAIN: |
10193
ae0dc7f699bf
(svn r14406) -Fix [FS#Eddi]: Autoreplace did not work for vehicles in free wagon chains.
frosch
parents:
9963
diff
changeset
|
36 |
if (IsArticulatedPart(v) || IsRearDualheaded(v)) continue; |
9340
7d09c355359a
(svn r13232) -Codechange: Simplify BuildDepotVehicleList()
peter1138
parents:
9297
diff
changeset
|
37 |
if (v->u.rail.track != TRACK_BIT_DEPOT) continue; |
10193
ae0dc7f699bf
(svn r14406) -Fix [FS#Eddi]: Autoreplace did not work for vehicles in free wagon chains.
frosch
parents:
9963
diff
changeset
|
38 |
if (wagons != NULL && IsFreeWagon(v->First())) { |
ae0dc7f699bf
(svn r14406) -Fix [FS#Eddi]: Autoreplace did not work for vehicles in free wagon chains.
frosch
parents:
9963
diff
changeset
|
39 |
if (individual_wagons || IsFreeWagon(v)) *wagons->Append() = v; |
9340
7d09c355359a
(svn r13232) -Codechange: Simplify BuildDepotVehicleList()
peter1138
parents:
9297
diff
changeset
|
40 |
continue; |
4635
1b35cdc018ee
(svn r6503) -Codechange: added a function to tell what vehicles a depot contains
bjarni
parents:
4616
diff
changeset
|
41 |
} |
9340
7d09c355359a
(svn r13232) -Codechange: Simplify BuildDepotVehicleList()
peter1138
parents:
9297
diff
changeset
|
42 |
break; |
7d09c355359a
(svn r13232) -Codechange: Simplify BuildDepotVehicleList()
peter1138
parents:
9297
diff
changeset
|
43 |
|
7d09c355359a
(svn r13232) -Codechange: Simplify BuildDepotVehicleList()
peter1138
parents:
9297
diff
changeset
|
44 |
default: |
7d09c355359a
(svn r13232) -Codechange: Simplify BuildDepotVehicleList()
peter1138
parents:
9297
diff
changeset
|
45 |
if (!v->IsInDepot()) continue; |
7d09c355359a
(svn r13232) -Codechange: Simplify BuildDepotVehicleList()
peter1138
parents:
9297
diff
changeset
|
46 |
break; |
7d09c355359a
(svn r13232) -Codechange: Simplify BuildDepotVehicleList()
peter1138
parents:
9297
diff
changeset
|
47 |
} |
7d09c355359a
(svn r13232) -Codechange: Simplify BuildDepotVehicleList()
peter1138
parents:
9297
diff
changeset
|
48 |
|
7d09c355359a
(svn r13232) -Codechange: Simplify BuildDepotVehicleList()
peter1138
parents:
9297
diff
changeset
|
49 |
if (!v->IsPrimaryVehicle()) continue; |
7d09c355359a
(svn r13232) -Codechange: Simplify BuildDepotVehicleList()
peter1138
parents:
9297
diff
changeset
|
50 |
|
9348
dc680f675138
(svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents:
9345
diff
changeset
|
51 |
*engines->Append() = v; |
4635
1b35cdc018ee
(svn r6503) -Codechange: added a function to tell what vehicles a depot contains
bjarni
parents:
4616
diff
changeset
|
52 |
} |
9348
dc680f675138
(svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents:
9345
diff
changeset
|
53 |
|
dc680f675138
(svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents:
9345
diff
changeset
|
54 |
/* 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
|
55 |
* (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
|
56 |
engines->Compact(); |
dc680f675138
(svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents:
9345
diff
changeset
|
57 |
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
|
58 |
} |
1b35cdc018ee
(svn r6503) -Codechange: added a function to tell what vehicles a depot contains
bjarni
parents:
4616
diff
changeset
|
59 |
|
4497
9d43f65d9e78
(svn r6282) -Codechange: made a function to create the vehicle list for vehicle list windows
bjarni
parents:
4495
diff
changeset
|
60 |
/** |
9348
dc680f675138
(svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents:
9345
diff
changeset
|
61 |
* 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
|
62 |
* @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
|
63 |
* @param type Type of vehicle |
10207
c291a21b304e
(svn r14421) -Codechange: rename all player variables/types to company *or* client so it is immediatelly clear which one you are working with.
rubidium
parents:
10193
diff
changeset
|
64 |
* @param owner Company to generate list for |
9348
dc680f675138
(svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents:
9345
diff
changeset
|
65 |
* @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
|
66 |
* <ul> |
dc680f675138
(svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents:
9345
diff
changeset
|
67 |
* <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
|
68 |
* <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
|
69 |
* <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
|
70 |
* <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
|
71 |
* <li>VLW_GROUP_LIST: index of group to generate a list for</li> |
9963
9823664dd4af
(svn r14118) -Fix(r14104): typos creeping like bugs
belugas
parents:
9949
diff
changeset
|
72 |
* <li>VLW_WAYPOINT_LIST: index of waypoint to generate a list for</li> |
9348
dc680f675138
(svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents:
9345
diff
changeset
|
73 |
* </ul> |
dc680f675138
(svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents:
9345
diff
changeset
|
74 |
* @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
|
75 |
*/ |
10207
c291a21b304e
(svn r14421) -Codechange: rename all player variables/types to company *or* client so it is immediatelly clear which one you are working with.
rubidium
parents:
10193
diff
changeset
|
76 |
void GenerateVehicleSortList(VehicleList *list, VehicleType type, Owner owner, uint32 index, uint16 window_type) |
9348
dc680f675138
(svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents:
9345
diff
changeset
|
77 |
{ |
dc680f675138
(svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents:
9345
diff
changeset
|
78 |
list->Clear(); |
dc680f675138
(svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents:
9345
diff
changeset
|
79 |
|
4497
9d43f65d9e78
(svn r6282) -Codechange: made a function to create the vehicle list for vehicle list windows
bjarni
parents:
4495
diff
changeset
|
80 |
const Vehicle *v; |
9d43f65d9e78
(svn r6282) -Codechange: made a function to create the vehicle list for vehicle list windows
bjarni
parents:
4495
diff
changeset
|
81 |
|
9d43f65d9e78
(svn r6282) -Codechange: made a function to create the vehicle list for vehicle list windows
bjarni
parents:
4495
diff
changeset
|
82 |
switch (window_type) { |
9348
dc680f675138
(svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents:
9345
diff
changeset
|
83 |
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
|
84 |
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
|
85 |
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
|
86 |
const Order *order; |
9d43f65d9e78
(svn r6282) -Codechange: made a function to create the vehicle list for vehicle list windows
bjarni
parents:
4495
diff
changeset
|
87 |
|
9d43f65d9e78
(svn r6282) -Codechange: made a function to create the vehicle list for vehicle list windows
bjarni
parents:
4495
diff
changeset
|
88 |
FOR_VEHICLE_ORDERS(v, order) { |
8840
332412c2e9c1
(svn r12588) -Codechange: do not access the destination of an order directly.
rubidium
parents:
8838
diff
changeset
|
89 |
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
|
90 |
*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
|
91 |
break; |
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 |
} |
9d43f65d9e78
(svn r6282) -Codechange: made a function to create the vehicle list for vehicle list windows
bjarni
parents:
4495
diff
changeset
|
94 |
} |
9d43f65d9e78
(svn r6282) -Codechange: made a function to create the vehicle list for vehicle list windows
bjarni
parents:
4495
diff
changeset
|
95 |
} |
9d43f65d9e78
(svn r6282) -Codechange: made a function to create the vehicle list for vehicle list windows
bjarni
parents:
4495
diff
changeset
|
96 |
break; |
9348
dc680f675138
(svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents:
9345
diff
changeset
|
97 |
|
dc680f675138
(svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents:
9345
diff
changeset
|
98 |
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
|
99 |
/* 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
|
100 |
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
|
101 |
*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
|
102 |
} |
9d43f65d9e78
(svn r6282) -Codechange: made a function to create the vehicle list for vehicle list windows
bjarni
parents:
4495
diff
changeset
|
103 |
break; |
9348
dc680f675138
(svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents:
9345
diff
changeset
|
104 |
|
dc680f675138
(svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents:
9345
diff
changeset
|
105 |
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
|
106 |
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
|
107 |
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
|
108 |
*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
|
109 |
} |
9d43f65d9e78
(svn r6282) -Codechange: made a function to create the vehicle list for vehicle list windows
bjarni
parents:
4495
diff
changeset
|
110 |
} |
9d43f65d9e78
(svn r6282) -Codechange: made a function to create the vehicle list for vehicle list windows
bjarni
parents:
4495
diff
changeset
|
111 |
break; |
9348
dc680f675138
(svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents:
9345
diff
changeset
|
112 |
|
dc680f675138
(svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents:
9345
diff
changeset
|
113 |
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
|
114 |
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
|
115 |
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
|
116 |
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
|
117 |
|
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 |
FOR_VEHICLE_ORDERS(v, order) { |
8840
332412c2e9c1
(svn r12588) -Codechange: do not access the destination of an order directly.
rubidium
parents:
8838
diff
changeset
|
119 |
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
|
120 |
*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
|
121 |
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
|
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 |
} |
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 |
} |
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
|
125 |
} |
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
|
126 |
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
|
127 |
|
9963
9823664dd4af
(svn r14118) -Fix(r14104): typos creeping like bugs
belugas
parents:
9949
diff
changeset
|
128 |
case VLW_WAYPOINT_LIST: |
9949
392998225bdd
(svn r14104) -Feature: Add a window for waypoints, allowing to view all the trains having the selected waypoint in their orders.
belugas
parents:
9942
diff
changeset
|
129 |
FOR_ALL_VEHICLES(v) { |
392998225bdd
(svn r14104) -Feature: Add a window for waypoints, allowing to view all the trains having the selected waypoint in their orders.
belugas
parents:
9942
diff
changeset
|
130 |
if (v->type == type && v->IsPrimaryVehicle()) { |
392998225bdd
(svn r14104) -Feature: Add a window for waypoints, allowing to view all the trains having the selected waypoint in their orders.
belugas
parents:
9942
diff
changeset
|
131 |
const Order *order; |
392998225bdd
(svn r14104) -Feature: Add a window for waypoints, allowing to view all the trains having the selected waypoint in their orders.
belugas
parents:
9942
diff
changeset
|
132 |
|
392998225bdd
(svn r14104) -Feature: Add a window for waypoints, allowing to view all the trains having the selected waypoint in their orders.
belugas
parents:
9942
diff
changeset
|
133 |
FOR_VEHICLE_ORDERS(v, order) { |
392998225bdd
(svn r14104) -Feature: Add a window for waypoints, allowing to view all the trains having the selected waypoint in their orders.
belugas
parents:
9942
diff
changeset
|
134 |
if (order->IsType(OT_GOTO_WAYPOINT) && order->GetDestination() == index) { |
392998225bdd
(svn r14104) -Feature: Add a window for waypoints, allowing to view all the trains having the selected waypoint in their orders.
belugas
parents:
9942
diff
changeset
|
135 |
*list->Append() = v; |
392998225bdd
(svn r14104) -Feature: Add a window for waypoints, allowing to view all the trains having the selected waypoint in their orders.
belugas
parents:
9942
diff
changeset
|
136 |
break; |
392998225bdd
(svn r14104) -Feature: Add a window for waypoints, allowing to view all the trains having the selected waypoint in their orders.
belugas
parents:
9942
diff
changeset
|
137 |
} |
392998225bdd
(svn r14104) -Feature: Add a window for waypoints, allowing to view all the trains having the selected waypoint in their orders.
belugas
parents:
9942
diff
changeset
|
138 |
} |
392998225bdd
(svn r14104) -Feature: Add a window for waypoints, allowing to view all the trains having the selected waypoint in their orders.
belugas
parents:
9942
diff
changeset
|
139 |
} |
392998225bdd
(svn r14104) -Feature: Add a window for waypoints, allowing to view all the trains having the selected waypoint in their orders.
belugas
parents:
9942
diff
changeset
|
140 |
} |
392998225bdd
(svn r14104) -Feature: Add a window for waypoints, allowing to view all the trains having the selected waypoint in their orders.
belugas
parents:
9942
diff
changeset
|
141 |
break; |
392998225bdd
(svn r14104) -Feature: Add a window for waypoints, allowing to view all the trains having the selected waypoint in their orders.
belugas
parents:
9942
diff
changeset
|
142 |
|
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
|
143 |
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
|
144 |
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
|
145 |
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
|
146 |
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
|
147 |
*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
|
148 |
} |
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
|
149 |
} |
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
|
150 |
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
|
151 |
|
4497
9d43f65d9e78
(svn r6282) -Codechange: made a function to create the vehicle list for vehicle list windows
bjarni
parents:
4495
diff
changeset
|
152 |
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
|
153 |
} |
9d43f65d9e78
(svn r6282) -Codechange: made a function to create the vehicle list for vehicle list windows
bjarni
parents:
4495
diff
changeset
|
154 |
|
9348
dc680f675138
(svn r13245) -Codechange: Use SmallVectors for generating vehicle lists, simplifying calling code somewhat.
peter1138
parents:
9345
diff
changeset
|
155 |
list->Compact(); |
4497
9d43f65d9e78
(svn r6282) -Codechange: made a function to create the vehicle list for vehicle list windows
bjarni
parents:
4495
diff
changeset
|
156 |
} |