forked from mirror/OpenTTD
(svn r21986) -Codechange: Add helper function to test whether an engine is still associated to a GRF.
This commit is contained in:
@@ -144,6 +144,15 @@ Engine::~Engine()
|
|||||||
free(this->name);
|
free(this->name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Checks whether the engine spec is properly initialised.
|
||||||
|
* @return true if enabled
|
||||||
|
*/
|
||||||
|
bool Engine::IsEnabled() const
|
||||||
|
{
|
||||||
|
return this->info.string_id != STR_NEWGRF_INVALID_ENGINE;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Determines whether an engine can carry something.
|
* Determines whether an engine can carry something.
|
||||||
* A vehicle cannot carry anything if its capacity is zero, or none of the possible cargos is available in the climate.
|
* A vehicle cannot carry anything if its capacity is zero, or none of the possible cargos is available in the climate.
|
||||||
@@ -935,7 +944,7 @@ bool IsEngineBuildable(EngineID engine, VehicleType type, CompanyID company)
|
|||||||
/* check if it's available */
|
/* check if it's available */
|
||||||
if (!HasBit(e->company_avail, company)) return false;
|
if (!HasBit(e->company_avail, company)) return false;
|
||||||
|
|
||||||
if (e->info.string_id == STR_NEWGRF_INVALID_ENGINE) return false;
|
if (!e->IsEnabled()) return false;
|
||||||
|
|
||||||
if (type == VEH_TRAIN) {
|
if (type == VEH_TRAIN) {
|
||||||
/* Check if the rail type is available to this company */
|
/* Check if the rail type is available to this company */
|
||||||
|
@@ -61,6 +61,7 @@ struct Engine : EnginePool::PoolItem<&_engine_pool> {
|
|||||||
Engine();
|
Engine();
|
||||||
Engine(VehicleType type, EngineID base);
|
Engine(VehicleType type, EngineID base);
|
||||||
~Engine();
|
~Engine();
|
||||||
|
bool IsEnabled() const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Determines the default cargo type of an engine.
|
* Determines the default cargo type of an engine.
|
||||||
|
@@ -1110,7 +1110,7 @@ static char *FormatString(char *buff, const char *str_arg, int64 *argv, const in
|
|||||||
|
|
||||||
assert(e != NULL);
|
assert(e != NULL);
|
||||||
|
|
||||||
if (e->name != NULL && e->info.string_id != STR_NEWGRF_INVALID_ENGINE) {
|
if (e->name != NULL && e->IsEnabled()) {
|
||||||
buff = strecpy(buff, e->name, last);
|
buff = strecpy(buff, e->name, last);
|
||||||
} else {
|
} else {
|
||||||
buff = GetStringWithArgs(buff, e->info.string_id, NULL, NULL, last);
|
buff = GetStringWithArgs(buff, e->info.string_id, NULL, NULL, last);
|
||||||
|
Reference in New Issue
Block a user