OpenTTD

- Main Page
- Related Pages
- Modules
- Namespaces
- Data Structures
- Files

- File List
- Globals

Functions
autoreplace_func.h File Reference

Functions related to autoreplacing. More...

`#include "command_type.h"`
`#include "company_base.h"`

Go to the source code of this file.

## Functions
void | RemoveAllEngineReplacement (EngineRenewList *erl)
| Remove all engine replacement settings for the company.
EngineID | EngineReplacement (EngineRenewList erl, EngineID engine, GroupID group, bool *replace_when_old=NULL)
| Retrieve the engine replacement in a given renewlist for an original engine type.
CommandCost | AddEngineReplacement (EngineRenewList *erl, EngineID old_engine, EngineID new_engine, GroupID group, bool replace_when_old, DoCommandFlag flags)
| Add an engine replacement to the given renewlist.
CommandCost | RemoveEngineReplacement (EngineRenewList *erl, EngineID engine, GroupID group, DoCommandFlag flags)
| Remove an engine replacement from a given renewlist.
static void | RemoveAllEngineReplacementForCompany (Company *c)
| Remove all engine replacement settings for the given company.
static EngineID | EngineReplacementForCompany (const Company *c, EngineID engine, GroupID group, bool *replace_when_old=NULL)
| Retrieve the engine replacement for the given company and original engine type.
static bool | EngineHasReplacementForCompany (const Company *c, EngineID engine, GroupID group)
| Check if a company has a replacement set up for the given engine.
static bool | EngineHasReplacementWhenOldForCompany (const Company *c, EngineID engine, GroupID group)
| Check if a company has a replacement set up for the given engine when it gets old.
static CommandCost | AddEngineReplacementForCompany (Company *c, EngineID old_engine, EngineID new_engine, GroupID group, bool replace_when_old, DoCommandFlag flags)
| Add an engine replacement for the company.
static CommandCost | RemoveEngineReplacementForCompany (Company *c, EngineID engine, GroupID group, DoCommandFlag flags)
| Remove an engine replacement for the company.
bool | CheckAutoreplaceValidity (EngineID from, EngineID to, CompanyID company)
| Checks some basic properties whether autoreplace is allowed.

## Detailed Description

Functions related to autoreplacing.

Definition in file autoreplace_func.h.

## Function Documentation

CommandCost AddEngineReplacement | ( | EngineRenewList * | erl,
|  | EngineID | old_engine,
|  | EngineID | new_engine,
|  | GroupID | group,
|  | bool | replace_when_old,
|  | DoCommandFlag | flags
| ) |  |

Add an engine replacement to the given renewlist.

Parameters

  erl | The renewlist to add to.
  old_engine | The original engine type.
  new_engine | The replacement engine type.
  group | The group related to this replacement.
  replace_when_old | Replace when old or always?
  flags | The calling command flags.

Returns
  0 on success, CMD_ERROR on failure.

Definition at line 87 of file autoreplace.cpp.

References Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_enginerenew_pool >::CanAllocateItem(), CMD_ERROR, DC_EXEC, GetEngineReplacement(), and EngineRenew::replace_when_old.

Referenced by AddEngineReplacementForCompany().

static CommandCost AddEngineReplacementForCompany | ( | Company * | c,
|  | EngineID | old_engine,
|  | EngineID | new_engine,
|  | GroupID | group,
|  | bool | replace_when_old,
|  | DoCommandFlag | flags
| ) |  |
| inline static

Add an engine replacement for the company.

Parameters

  c | Company.
  old_engine | The original engine type.
  new_engine | The replacement engine type.
  group | The group related to this replacement.
  replace_when_old | Replace when old or always?
  flags | The calling command flags.

Returns
  0 on success, CMD_ERROR on failure.

Definition at line 82 of file autoreplace_func.h.

References AddEngineReplacement(), and Company::engine_renew_list.

Referenced by CmdSetAutoReplace().

bool CheckAutoreplaceValidity | ( | EngineID | from,
|  | EngineID | to,
|  | CompanyID | company
| ) |  |

Checks some basic properties whether autoreplace is allowed.

Parameters

  from | Origin engine
  to | Destination engine
  company | Company to check for

Returns
  true if autoreplace is allowed

Definition at line 52 of file autoreplace_cmd.cpp.

References AIR_CTOL, RailtypeInfo::compatible_railtypes, EF_ROAD_TRAM, EnginesHaveCargoInCommon(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_engine_pool >::Get(), GetRailTypeInfo(), HasBit(), IsEngineBuildable(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_engine_pool >::IsValidID(), EngineInfo::misc_flags, RAILVEH_WAGON, AircraftVehicleInfo::subtype, Engine::type, VEH_AIRCRAFT, VEH_ROAD, and VEH_TRAIN.

Referenced by CmdSetAutoReplace(), and ReplaceVehicleWindow::GenerateReplaceVehList().

static bool EngineHasReplacementForCompany | ( | const Company * | c,
|  | EngineID | engine,
|  | GroupID | group
| ) |  |
| inline static

Check if a company has a replacement set up for the given engine.

Parameters

  c | Company.
  engine | Engine type to be replaced.
  group | The group related to this replacement.

Returns
  true if a replacement was set up, false otherwise.

Definition at line 53 of file autoreplace_func.h.

References EngineReplacementForCompany(), and INVALID_ENGINE.

Referenced by DrawEngineList(), ReplaceVehicleWindow::DrawWidget(), and ReplaceVehicleWindow::OnPaint().

static bool EngineHasReplacementWhenOldForCompany | ( | const Company * | c,
|  | EngineID | engine,
|  | GroupID | group
| ) |  |
| inline static

Check if a company has a replacement set up for the given engine when it gets old.

Parameters

  c | Company.
  engine | Engine type to be replaced.
  group | The group related to this replacement.

Returns
  True if a replacement when old was set up, false otherwise.

Definition at line 65 of file autoreplace_func.h.

References Company::engine_renew_list, and EngineReplacement().

Referenced by ReplaceVehicleWindow::OnClick().

EngineID EngineReplacement | ( | EngineRenewList | erl,
|  | EngineID | engine,
|  | GroupID | group,
|  | bool * | replace_when_old
| ) |  |

Retrieve the engine replacement in a given renewlist for an original engine type.

Parameters

  | erl | The renewlist to search in.
  | engine | Engine type to be replaced.
  | group | The group related to this replacement.
  [out] | replace_when_old | Set to true if the replacement should be done when old.

Returns
  The engine type to replace with, or INVALID_ENGINE if no replacement is in the list.

Definition at line 66 of file autoreplace.cpp.

References ALL_GROUP, DEFAULT_GROUP, Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_group_pool >::Get(), GetEngineReplacement(), INVALID_ENGINE, Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_group_pool >::IsValidID(), and EngineRenew::replace_when_old.

Referenced by EngineHasReplacementWhenOldForCompany(), and EngineReplacementForCompany().

static EngineID EngineReplacementForCompany | ( | const Company * | c,
|  | EngineID | engine,
|  | GroupID | group,
|  | bool * | replace_when_old = `NULL`
| ) |  |
| inline static

Retrieve the engine replacement for the given company and original engine type.

Parameters

  | c | company.
  | engine | Engine type.
  | group | The group related to this replacement.
  [out] | replace_when_old | Set to true if the replacement should be done when old.

Returns
  The engine type to replace with, or INVALID_ENGINE if no replacement is in the list.

Definition at line 41 of file autoreplace_func.h.

References Company::engine_renew_list, and EngineReplacement().

Referenced by ReplaceVehicleWindow::DrawWidget(), EngineHasReplacementForCompany(), ReplaceVehicleWindow::GenerateLists(), ReplaceVehicleWindow::GenerateReplaceVehList(), GetNewEngineType(), Vehicle::NeedsServicing(), and ReplaceVehicleWindow::OnPaint().

void RemoveAllEngineReplacement | ( | EngineRenewList * | erl | ) |

Remove all engine replacement settings for the company.

Parameters

  erl | The renewlist for a given company.

Returns
  The new renewlist for the company.

Definition at line 44 of file autoreplace.cpp.

Referenced by RemoveAllEngineReplacementForCompany().

static void RemoveAllEngineReplacementForCompany | ( | Company * | c | ) |
| inline static

Remove all engine replacement settings for the given company.

Parameters

  c | the company.

Definition at line 27 of file autoreplace_func.h.

References Company::engine_renew_list, and RemoveAllEngineReplacement().

Referenced by ChangeOwnershipOfCompanyItems().

CommandCost RemoveEngineReplacement | ( | EngineRenewList * | erl,
|  | EngineID | engine,
|  | GroupID | group,
|  | DoCommandFlag | flags
| ) |  |

Remove an engine replacement from a given renewlist.

Parameters

  erl | The renewlist from which to remove the replacement
  engine | The original engine type.
  group | The group related to this replacement.
  flags | The calling command flags.

Returns
  0 on success, CMD_ERROR on failure.

Definition at line 122 of file autoreplace.cpp.

References CMD_ERROR, and DC_EXEC.

Referenced by RemoveEngineReplacementForCompany().

static CommandCost RemoveEngineReplacementForCompany | ( | Company * | c,
|  | EngineID | engine,
|  | GroupID | group,
|  | DoCommandFlag | flags
| ) |  |
| inline static

Remove an engine replacement for the company.

Parameters

  c | Company.
  engine | The original engine type.
  group | The group related to this replacement.
  flags | The calling command flags.

Returns
  0 on success, CMD_ERROR on failure.

Definition at line 95 of file autoreplace_func.h.

References Company::engine_renew_list, and RemoveEngineReplacement().

Referenced by CmdDeleteGroup(), and CmdSetAutoReplace().