mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2025-02-01 20:03:26 +00:00
(svn r16354) -Codechange: use 'new' pool accessors and methods for Engine too
This commit is contained in:
parent
a0ff6363e6
commit
70aab8bf04
@ -15,7 +15,8 @@
|
||||
|
||||
/* 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)
|
||||
|
@ -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
|
||||
* 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) */
|
||||
if (from == to) return false;
|
||||
|
@ -620,11 +620,8 @@ void EnginesDailyLoop()
|
||||
*/
|
||||
CommandCost CmdWantEnginePreview(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 p2, const char *text)
|
||||
{
|
||||
Engine *e;
|
||||
|
||||
if (!IsEngineIndex(p1)) return CMD_ERROR;
|
||||
e = Engine::Get(p1);
|
||||
if (GetBestCompany(e->preview_company_rank) != _current_company) return CMD_ERROR;
|
||||
Engine *e = Engine::GetIfValid(p1);
|
||||
if (e == NULL || GetBestCompany(e->preview_company_rank) != _current_company) return CMD_ERROR;
|
||||
|
||||
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)
|
||||
{
|
||||
if (!IsEngineIndex(p1)) return CMD_ERROR;
|
||||
Engine *e = Engine::GetIfValid(p1);
|
||||
if (e == NULL) return CMD_ERROR;
|
||||
|
||||
bool reset = StrEmpty(text);
|
||||
|
||||
@ -744,7 +742,6 @@ CommandCost CmdRenameEngine(TileIndex tile, DoCommandFlag flags, uint32 p1, uint
|
||||
}
|
||||
|
||||
if (flags & DC_EXEC) {
|
||||
Engine *e = Engine::Get(p1);
|
||||
free(e->name);
|
||||
|
||||
if (reset) {
|
||||
@ -769,10 +766,10 @@ CommandCost CmdRenameEngine(TileIndex tile, DoCommandFlag flags, uint32 p1, uint
|
||||
*/
|
||||
bool IsEngineBuildable(EngineID engine, VehicleType type, CompanyID company)
|
||||
{
|
||||
/* check if it's an engine that is in the engine array */
|
||||
if (!IsEngineIndex(engine)) return false;
|
||||
const Engine *e = Engine::GetIfValid(engine);
|
||||
|
||||
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 */
|
||||
if (e->type != type) return false;
|
||||
@ -797,10 +794,10 @@ bool IsEngineBuildable(EngineID engine, VehicleType type, CompanyID company)
|
||||
*/
|
||||
bool IsEngineRefittable(EngineID engine)
|
||||
{
|
||||
/* check if it's an engine that is in the engine array */
|
||||
if (!IsEngineIndex(engine)) return false;
|
||||
const Engine *e = Engine::GetIfValid(engine);
|
||||
|
||||
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;
|
||||
|
||||
|
@ -82,11 +82,6 @@ struct EngineOverrideManager : SmallVector<EngineIDMapping, 256> {
|
||||
|
||||
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(e) FOR_ALL_ENGINES_FROM(e, 0)
|
||||
|
||||
|
@ -1747,8 +1747,8 @@ void VehiclesYearlyLoop()
|
||||
*/
|
||||
bool CanVehicleUseStation(EngineID engine_type, const Station *st)
|
||||
{
|
||||
assert(IsEngineIndex(engine_type));
|
||||
const Engine *e = Engine::Get(engine_type);
|
||||
const Engine *e = Engine::GetIfValid(engine_type);
|
||||
assert(e != NULL);
|
||||
|
||||
switch (e->type) {
|
||||
case VEH_TRAIN:
|
||||
|
Loading…
Reference in New Issue
Block a user