author | Tero Marttila <terom@fixme.fi> |
Fri, 18 Jul 2008 21:59:53 +0300 | |
changeset 11176 | 874f8008e6e5 |
parent 10757 | 7f002e778125 |
permissions | -rw-r--r-- |
2186 | 1 |
/* $Id$ */ |
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 | 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 | 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 |
} |