Files @ r10116:be292ddefbc7
Branch filter:

Location: cpp/openttd-patchpack/source/src/autoreplace_base.h

translators
(svn r14300) -Update: WebTranslator2 update to 2008-09-12 17:41:59
brazilian_portuguese - 13 fixed by tucalipe (13)
catalan - 12 fixed by arnaullv (12)
danish - 9 fixed, 7 changed by ThomasA (16)
dutch - 1 changed by habell (1)
estonian - 5 fixed by kristjans (5)
galician - 98 fixed, 6 changed by Condex (104)
german - 7 fixed, 83 changed by sulai (69), dih (21)
korean - 12 fixed by leejaeuk5 (12)
romanian - 20 fixed by kneekoo (20)
slovenian - 5 fixed by Necrolyte (5)
/* $Id$ */

/** @file autoreplace_base.h Base class for autoreplaces/autorenews. */

#ifndef AUTOREPLACE_BASE_H
#define AUTOREPLACE_BASE_H

#include "oldpool.h"
#include "autoreplace_type.h"

/**
 * Memory pool for engine renew elements. DO NOT USE outside of engine.c. Is
 * placed here so the only exception to this rule, the saveload code, can use
 * it.
 */
DECLARE_OLD_POOL(EngineRenew, EngineRenew, 3, 8000)

/**
 * Struct to store engine replacements. DO NOT USE outside of engine.c. Is
 * placed here so the only exception to this rule, the saveload code, can use
 * it.
 */
struct EngineRenew : PoolItem<EngineRenew, EngineRenewID, &_EngineRenew_pool> {
	EngineID from;
	EngineID to;
	EngineRenew *next;
	GroupID group_id;

	EngineRenew(EngineID from = INVALID_ENGINE, EngineID to = INVALID_ENGINE) : from(from), to(to), next(NULL) {}
	~EngineRenew() { this->from = INVALID_ENGINE; }

	inline bool IsValid() const { return this->from != INVALID_ENGINE; }
};

#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())
#define FOR_ALL_ENGINE_RENEWS(er) FOR_ALL_ENGINE_RENEWS_FROM(er, 0)

#endif /* AUTOREPLACE_BASE_H */