author | rubidium |
Wed, 23 Apr 2008 20:56:08 +0000 | |
changeset 10314 | 9cfcdd5b5ddb |
parent 8708 | 0c29fbc79be4 |
permissions | -rw-r--r-- |
2186 | 1 |
/* $Id$ */ |
2 |
||
8708
0c29fbc79be4
(svn r11775) -Codechange: move all autoreplace/autorenew functions to a single location.
rubidium
parents:
8653
diff
changeset
|
3 |
/** @file autoreplace_base.h Base class for autoreplaces/autorenews. */ |
6451
7baba06b4b85
(svn r8862) -Cleanup: doxygen changes, again. Mostly @files missing tags and a few comments style.
belugas
parents:
6206
diff
changeset
|
4 |
|
8708
0c29fbc79be4
(svn r11775) -Codechange: move all autoreplace/autorenew functions to a single location.
rubidium
parents:
8653
diff
changeset
|
5 |
#ifndef AUTOREPLACE_BASE_H |
0c29fbc79be4
(svn r11775) -Codechange: move all autoreplace/autorenew functions to a single location.
rubidium
parents:
8653
diff
changeset
|
6 |
#define AUTOREPLACE_BASE_H |
0 | 7 |
|
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:
5215
diff
changeset
|
8 |
#include "oldpool.h" |
8708
0c29fbc79be4
(svn r11775) -Codechange: move all autoreplace/autorenew functions to a single location.
rubidium
parents:
8653
diff
changeset
|
9 |
#include "autoreplace_type.h" |
0 | 10 |
|
3113
c0f312f22238
(svn r3717) - [2cc] Add 2cc colour maps and use for newgrf engines requiring them. Currently the second colour is fixed to be the player's colour.
peter1138
parents:
3095
diff
changeset
|
11 |
/** |
2848 | 12 |
* Memory pool for engine renew elements. DO NOT USE outside of engine.c. Is |
13 |
* placed here so the only exception to this rule, the saveload code, can use |
|
14 |
* it. |
|
15 |
*/ |
|
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:
5215
diff
changeset
|
16 |
DECLARE_OLD_POOL(EngineRenew, EngineRenew, 3, 8000) |
4348
95ba9ff1612e
(svn r6049) -Codechange: forgot EngineRenew in r6047
truelight
parents:
4344
diff
changeset
|
17 |
|
95ba9ff1612e
(svn r6049) -Codechange: forgot EngineRenew in r6047
truelight
parents:
4344
diff
changeset
|
18 |
/** |
7884
79fa68c2a6ae
(svn r10757) -Codechange: make the engine renew struct use the pool item class as super class.
rubidium
parents:
7814
diff
changeset
|
19 |
* Struct to store engine replacements. DO NOT USE outside of engine.c. Is |
79fa68c2a6ae
(svn r10757) -Codechange: make the engine renew struct use the pool item class as super class.
rubidium
parents:
7814
diff
changeset
|
20 |
* placed here so the only exception to this rule, the saveload code, can use |
79fa68c2a6ae
(svn r10757) -Codechange: make the engine renew struct use the pool item class as super class.
rubidium
parents:
7814
diff
changeset
|
21 |
* it. |
4348
95ba9ff1612e
(svn r6049) -Codechange: forgot EngineRenew in r6047
truelight
parents:
4344
diff
changeset
|
22 |
*/ |
7884
79fa68c2a6ae
(svn r10757) -Codechange: make the engine renew struct use the pool item class as super class.
rubidium
parents:
7814
diff
changeset
|
23 |
struct EngineRenew : PoolItem<EngineRenew, EngineRenewID, &_EngineRenew_pool> { |
79fa68c2a6ae
(svn r10757) -Codechange: make the engine renew struct use the pool item class as super class.
rubidium
parents:
7814
diff
changeset
|
24 |
EngineID from; |
79fa68c2a6ae
(svn r10757) -Codechange: make the engine renew struct use the pool item class as super class.
rubidium
parents:
7814
diff
changeset
|
25 |
EngineID to; |
79fa68c2a6ae
(svn r10757) -Codechange: make the engine renew struct use the pool item class as super class.
rubidium
parents:
7814
diff
changeset
|
26 |
EngineRenew *next; |
79fa68c2a6ae
(svn r10757) -Codechange: make the engine renew struct use the pool item class as super class.
rubidium
parents:
7814
diff
changeset
|
27 |
GroupID group_id; |
4348
95ba9ff1612e
(svn r6049) -Codechange: forgot EngineRenew in r6047
truelight
parents:
4344
diff
changeset
|
28 |
|
7884
79fa68c2a6ae
(svn r10757) -Codechange: make the engine renew struct use the pool item class as super class.
rubidium
parents:
7814
diff
changeset
|
29 |
EngineRenew(EngineID from = INVALID_ENGINE, EngineID to = INVALID_ENGINE) : from(from), to(to), next(NULL) {} |
79fa68c2a6ae
(svn r10757) -Codechange: make the engine renew struct use the pool item class as super class.
rubidium
parents:
7814
diff
changeset
|
30 |
~EngineRenew() { this->from = INVALID_ENGINE; } |
4384
293c0d26294c
(svn r6137) -Codechange: some very minor cleanups:
truelight
parents:
4348
diff
changeset
|
31 |
|
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:
7884
diff
changeset
|
32 |
inline bool IsValid() const { return this->from != INVALID_ENGINE; } |
7884
79fa68c2a6ae
(svn r10757) -Codechange: make the engine renew struct use the pool item class as super class.
rubidium
parents:
7814
diff
changeset
|
33 |
}; |
79fa68c2a6ae
(svn r10757) -Codechange: make the engine renew struct use the pool item class as super class.
rubidium
parents:
7814
diff
changeset
|
34 |
|
79fa68c2a6ae
(svn r10757) -Codechange: make the engine renew struct use the pool item class as super class.
rubidium
parents:
7814
diff
changeset
|
35 |
#define FOR_ALL_ENGINE_RENEWS_FROM(er, start) for (er = GetEngineRenew(start); er != NULL; er = (er->index + 1U < GetEngineRenewPoolSize()) ? GetEngineRenew(er->index + 1U) : NULL) if (er->IsValid()) |
4348
95ba9ff1612e
(svn r6049) -Codechange: forgot EngineRenew in r6047
truelight
parents:
4344
diff
changeset
|
36 |
#define FOR_ALL_ENGINE_RENEWS(er) FOR_ALL_ENGINE_RENEWS_FROM(er, 0) |
95ba9ff1612e
(svn r6049) -Codechange: forgot EngineRenew in r6047
truelight
parents:
4344
diff
changeset
|
37 |
|
8708
0c29fbc79be4
(svn r11775) -Codechange: move all autoreplace/autorenew functions to a single location.
rubidium
parents:
8653
diff
changeset
|
38 |
#endif /* AUTOREPLACE_BASE_H */ |