OpenTTD Source: src/autoreplace.cpp File Reference

OpenTTD Source 15.0-beta1

Functions | Variables
autoreplace.cpp File Reference

Management of replacement lists. More...

`#include "stdafx.h"`
`#include "command_func.h"`
`#include "group.h"`
`#include "autoreplace_base.h"`
`#include "core/bitmath_func.hpp"`
`#include "core/pool_func.hpp"`
`#include "safeguards.h"`

Go to the source code of this file.

## Functions
static EngineRenew * | GetEngineReplacement (EngineRenewList erl, EngineID engine, GroupID group)
| Retrieves the EngineRenew that specifies the replacement of the given engine type from the given renewlist.
void | RemoveAllEngineReplacement (EngineRenewList *erl)
| Remove all engine replacement settings for the company.
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.
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.

## Variables
EngineRenewPool | _enginerenew_pool ("EngineRenew")
| The pool of autoreplace "orders".

## Detailed Description

Management of replacement lists.

Definition in file autoreplace.cpp.

## Function Documentation

## ◆ AddEngineReplacement()

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 97 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().

## ◆ EngineReplacement()

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 65 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(), GF_REPLACE_PROTECTION, HasBit(), 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().

## ◆ GetEngineReplacement()

static EngineRenew * GetEngineReplacement | ( | EngineRenewList | erl,
|  | EngineID | engine,
|  | GroupID | group
| ) |  |
| static

Retrieves the EngineRenew that specifies the replacement of the given engine type from the given renewlist.

Definition at line 27 of file autoreplace.cpp.

References GroupIsInGroup().

Referenced by AddEngineReplacement(), and EngineReplacement().

## ◆ RemoveAllEngineReplacement()

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 43 of file autoreplace.cpp.

Referenced by RemoveAllEngineReplacementForCompany().

## ◆ RemoveEngineReplacement()

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 132 of file autoreplace.cpp.

References CMD_ERROR, and DC_EXEC.

Referenced by RemoveEngineReplacementForCompany().