author | Tero Marttila <terom@fixme.fi> |
Tue, 22 Jul 2008 23:20:33 +0300 | |
changeset 11184 | 88c967f1422b |
parent 10429 | 1b99254f9607 |
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:
10222
diff
changeset
|
3 |
/** @file depot_base.h Base for all depots (except hangars) */ |
6451
7baba06b4b85
(svn r8862) -Cleanup: doxygen changes, again. Mostly @files missing tags and a few comments style.
belugas
parents:
5726
diff
changeset
|
4 |
|
10222
b6919c94cc77
(svn r12754) -Codechange: split depot.h into depot_map.h, depot_func.h and depot_base.h and remove quite a lot of unneeded (before this) includes of depot.h.
rubidium
parents:
10213
diff
changeset
|
5 |
#ifndef DEPOT_BASE_H |
b6919c94cc77
(svn r12754) -Codechange: split depot.h into depot_map.h, depot_func.h and depot_base.h and remove quite a lot of unneeded (before this) includes of depot.h.
rubidium
parents:
10213
diff
changeset
|
6 |
#define DEPOT_BASE_H |
1313
bba6afb8a995
(svn r1817) -Codechange: Moved depot-functions to depot.c
truelight
parents:
diff
changeset
|
7 |
|
10222
b6919c94cc77
(svn r12754) -Codechange: split depot.h into depot_map.h, depot_func.h and depot_base.h and remove quite a lot of unneeded (before this) includes of depot.h.
rubidium
parents:
10213
diff
changeset
|
8 |
#include "tile_type.h" |
9264
31f5792aa96b
(svn r12467) -Codechange: move DepotID to a more logical location.
rubidium
parents:
9059
diff
changeset
|
9 |
#include "depot_type.h" |
5216
d581e4db95b6
(svn r7331) - Codechange: Rename all memory pool macro's and types to "old pool", so the new pool implementation can be committed alongside it.
matthijs
parents:
5081
diff
changeset
|
10 |
#include "oldpool.h" |
10222
b6919c94cc77
(svn r12754) -Codechange: split depot.h into depot_map.h, depot_func.h and depot_base.h and remove quite a lot of unneeded (before this) includes of depot.h.
rubidium
parents:
10213
diff
changeset
|
11 |
#include "town_type.h" |
1313
bba6afb8a995
(svn r1817) -Codechange: Moved depot-functions to depot.c
truelight
parents:
diff
changeset
|
12 |
|
5216
d581e4db95b6
(svn r7331) - Codechange: Rename all memory pool macro's and types to "old pool", so the new pool implementation can be committed alongside it.
matthijs
parents:
5081
diff
changeset
|
13 |
DECLARE_OLD_POOL(Depot, Depot, 3, 8000) |
1313
bba6afb8a995
(svn r1817) -Codechange: Moved depot-functions to depot.c
truelight
parents:
diff
changeset
|
14 |
|
7885
4eb9b01e37ff
(svn r10758) -Codechange: make the depot struct use the pool item class as super class.
rubidium
parents:
7866
diff
changeset
|
15 |
struct Depot : PoolItem<Depot, DepotID, &_Depot_pool> { |
4eb9b01e37ff
(svn r10758) -Codechange: make the depot struct use the pool item class as super class.
rubidium
parents:
7866
diff
changeset
|
16 |
TileIndex xy; |
4eb9b01e37ff
(svn r10758) -Codechange: make the depot struct use the pool item class as super class.
rubidium
parents:
7866
diff
changeset
|
17 |
TownID town_index; |
4346
3f00094f2670
(svn r6047) -Codechange: FOR_ALL now _only_ loops valid items, and skips invalid ones
truelight
parents:
4297
diff
changeset
|
18 |
|
7885
4eb9b01e37ff
(svn r10758) -Codechange: make the depot struct use the pool item class as super class.
rubidium
parents:
7866
diff
changeset
|
19 |
Depot(TileIndex xy = 0) : xy(xy) {} |
4eb9b01e37ff
(svn r10758) -Codechange: make the depot struct use the pool item class as super class.
rubidium
parents:
7866
diff
changeset
|
20 |
~Depot(); |
4352
8ddb01bc6075
(svn r6053) -Codechange: renamed all IsXXXIndex to IsValidXXXID
truelight
parents:
4347
diff
changeset
|
21 |
|
7992
8ac3fcd8d570
(svn r11009) -Codechange: unvirtualise IsValid as that isn't needed with templates. This gives up to 10% performance increase in games with lots of vehicles.
rubidium
parents:
7885
diff
changeset
|
22 |
inline bool IsValid() const { return this->xy != 0; } |
7885
4eb9b01e37ff
(svn r10758) -Codechange: make the depot struct use the pool item class as super class.
rubidium
parents:
7866
diff
changeset
|
23 |
}; |
4388
e5a166837162
(svn r6141) -Codechange: introduced DepotID and used it as much as possible
truelight
parents:
4352
diff
changeset
|
24 |
|
7885
4eb9b01e37ff
(svn r10758) -Codechange: make the depot struct use the pool item class as super class.
rubidium
parents:
7866
diff
changeset
|
25 |
static inline bool IsValidDepotID(DepotID index) |
4388
e5a166837162
(svn r6141) -Codechange: introduced DepotID and used it as much as possible
truelight
parents:
4352
diff
changeset
|
26 |
{ |
7885
4eb9b01e37ff
(svn r10758) -Codechange: make the depot struct use the pool item class as super class.
rubidium
parents:
7866
diff
changeset
|
27 |
return index < GetDepotPoolSize() && GetDepot(index)->IsValid(); |
4388
e5a166837162
(svn r6141) -Codechange: introduced DepotID and used it as much as possible
truelight
parents:
4352
diff
changeset
|
28 |
} |
e5a166837162
(svn r6141) -Codechange: introduced DepotID and used it as much as possible
truelight
parents:
4352
diff
changeset
|
29 |
|
10222
b6919c94cc77
(svn r12754) -Codechange: split depot.h into depot_map.h, depot_func.h and depot_base.h and remove quite a lot of unneeded (before this) includes of depot.h.
rubidium
parents:
10213
diff
changeset
|
30 |
Depot *GetDepotByTile(TileIndex tile); |
4638
8abe4f10b94b
(svn r6513) -Codechange: unified the code to draw depot windows
bjarni
parents:
4549
diff
changeset
|
31 |
|
7885
4eb9b01e37ff
(svn r10758) -Codechange: make the depot struct use the pool item class as super class.
rubidium
parents:
7866
diff
changeset
|
32 |
#define FOR_ALL_DEPOTS_FROM(d, start) for (d = GetDepot(start); d != NULL; d = (d->index + 1U < GetDepotPoolSize()) ? GetDepot(d->index + 1U) : NULL) if (d->IsValid()) |
1313
bba6afb8a995
(svn r1817) -Codechange: Moved depot-functions to depot.c
truelight
parents:
diff
changeset
|
33 |
#define FOR_ALL_DEPOTS(d) FOR_ALL_DEPOTS_FROM(d, 0) |
bba6afb8a995
(svn r1817) -Codechange: Moved depot-functions to depot.c
truelight
parents:
diff
changeset
|
34 |
|
10222
b6919c94cc77
(svn r12754) -Codechange: split depot.h into depot_map.h, depot_func.h and depot_base.h and remove quite a lot of unneeded (before this) includes of depot.h.
rubidium
parents:
10213
diff
changeset
|
35 |
#endif /* DEPOT_BASE_H */ |