(svn r16354) -Codechange: use 'new' pool accessors and methods for Engine too

This commit is contained in:
smatz 2009-05-18 19:32:16 +00:00
parent a0ff6363e6
commit 70aab8bf04
5 changed files with 15 additions and 22 deletions

View File

@ -15,7 +15,8 @@
/* static */ bool AIEngine::IsValidEngine(EngineID engine_id) /* static */ bool AIEngine::IsValidEngine(EngineID engine_id)
{ {
return ::IsEngineIndex(engine_id) && HasBit(::Engine::Get(engine_id)->company_avail, _current_company); const Engine *e = ::Engine::GetIfValid(engine_id);
return e != NULL && HasBit(e->company_avail, _current_company);
} }
/* static */ char *AIEngine::GetName(EngineID engine_id) /* static */ char *AIEngine::GetName(EngineID engine_id)

View File

@ -42,7 +42,7 @@ bool CheckAutoreplaceValidity(EngineID from, EngineID to, CompanyID company)
{ {
/* First we make sure that it's a valid type the user requested /* First we make sure that it's a valid type the user requested
* check that it's an engine that is in the engine array */ * check that it's an engine that is in the engine array */
if (!IsEngineIndex(from) || !IsEngineIndex(to)) return false; if (!Engine::IsValidID(from) || !Engine::IsValidID(to)) return false;
/* we can't replace an engine into itself (that would be autorenew) */ /* we can't replace an engine into itself (that would be autorenew) */
if (from == to) return false; if (from == to) return false;

View File

@ -620,11 +620,8 @@ void EnginesDailyLoop()
*/ */
CommandCost CmdWantEnginePreview(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 p2, const char *text) CommandCost CmdWantEnginePreview(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 p2, const char *text)
{ {
Engine *e; Engine *e = Engine::GetIfValid(p1);
if (e == NULL || GetBestCompany(e->preview_company_rank) != _current_company) return CMD_ERROR;
if (!IsEngineIndex(p1)) return CMD_ERROR;
e = Engine::Get(p1);
if (GetBestCompany(e->preview_company_rank) != _current_company) return CMD_ERROR;
if (flags & DC_EXEC) AcceptEnginePreview(p1, _current_company); if (flags & DC_EXEC) AcceptEnginePreview(p1, _current_company);
@ -734,7 +731,8 @@ static bool IsUniqueEngineName(const char *name)
*/ */
CommandCost CmdRenameEngine(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 p2, const char *text) CommandCost CmdRenameEngine(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 p2, const char *text)
{ {
if (!IsEngineIndex(p1)) return CMD_ERROR; Engine *e = Engine::GetIfValid(p1);
if (e == NULL) return CMD_ERROR;
bool reset = StrEmpty(text); bool reset = StrEmpty(text);
@ -744,7 +742,6 @@ CommandCost CmdRenameEngine(TileIndex tile, DoCommandFlag flags, uint32 p1, uint
} }
if (flags & DC_EXEC) { if (flags & DC_EXEC) {
Engine *e = Engine::Get(p1);
free(e->name); free(e->name);
if (reset) { if (reset) {
@ -769,10 +766,10 @@ CommandCost CmdRenameEngine(TileIndex tile, DoCommandFlag flags, uint32 p1, uint
*/ */
bool IsEngineBuildable(EngineID engine, VehicleType type, CompanyID company) bool IsEngineBuildable(EngineID engine, VehicleType type, CompanyID company)
{ {
/* check if it's an engine that is in the engine array */ const Engine *e = Engine::GetIfValid(engine);
if (!IsEngineIndex(engine)) return false;
const Engine *e = Engine::Get(engine); /* check if it's an engine that is in the engine array */
if (e == NULL) return false;
/* check if it's an engine of specified type */ /* check if it's an engine of specified type */
if (e->type != type) return false; if (e->type != type) return false;
@ -797,10 +794,10 @@ bool IsEngineBuildable(EngineID engine, VehicleType type, CompanyID company)
*/ */
bool IsEngineRefittable(EngineID engine) bool IsEngineRefittable(EngineID engine)
{ {
/* check if it's an engine that is in the engine array */ const Engine *e = Engine::GetIfValid(engine);
if (!IsEngineIndex(engine)) return false;
const Engine *e = Engine::Get(engine); /* check if it's an engine that is in the engine array */
if (e == NULL) return false;
if (e->type == VEH_SHIP && !e->u.ship.refittable) return false; if (e->type == VEH_SHIP && !e->u.ship.refittable) return false;

View File

@ -82,11 +82,6 @@ struct EngineOverrideManager : SmallVector<EngineIDMapping, 256> {
extern EngineOverrideManager _engine_mngr; extern EngineOverrideManager _engine_mngr;
static inline bool IsEngineIndex(uint index)
{
return index < Engine::GetPoolSize();
}
#define FOR_ALL_ENGINES_FROM(e, start) for (e = Engine::Get(start); e != NULL; e = (e->index + 1U < Engine::GetPoolSize()) ? Engine::Get(e->index + 1U) : NULL) if (e->IsValid()) #define FOR_ALL_ENGINES_FROM(e, start) for (e = Engine::Get(start); e != NULL; e = (e->index + 1U < Engine::GetPoolSize()) ? Engine::Get(e->index + 1U) : NULL) if (e->IsValid())
#define FOR_ALL_ENGINES(e) FOR_ALL_ENGINES_FROM(e, 0) #define FOR_ALL_ENGINES(e) FOR_ALL_ENGINES_FROM(e, 0)

View File

@ -1747,8 +1747,8 @@ void VehiclesYearlyLoop()
*/ */
bool CanVehicleUseStation(EngineID engine_type, const Station *st) bool CanVehicleUseStation(EngineID engine_type, const Station *st)
{ {
assert(IsEngineIndex(engine_type)); const Engine *e = Engine::GetIfValid(engine_type);
const Engine *e = Engine::Get(engine_type); assert(e != NULL);
switch (e->type) { switch (e->type) {
case VEH_TRAIN: case VEH_TRAIN: