OpenTTD Source: src/autoreplace_gui.cpp File Reference

OpenTTD Source 12.0-beta1

Data Structures | Functions | Variables
autoreplace_gui.cpp File Reference
`#include "stdafx.h"`
`#include "command_func.h"`
`#include "vehicle_gui.h"`
`#include "newgrf_engine.h"`
`#include "rail.h"`
`#include "road.h"`
`#include "strings_func.h"`
`#include "window_func.h"`
`#include "autoreplace_func.h"`
`#include "company_func.h"`
`#include "engine_base.h"`
`#include "window_gui.h"`
`#include "engine_gui.h"`
`#include "settings_func.h"`
`#include "core/geometry_func.hpp"`
`#include "rail_gui.h"`
`#include "road_gui.h"`
`#include "widgets/dropdown_func.h"`
`#include "widgets/autoreplace_widget.h"`
`#include "safeguards.h"`

Go to the source code of this file.

## Data Structures
class | ReplaceVehicleWindow
| Window for the autoreplacing of vehicles. More...

## Functions
void | DrawEngineList (VehicleType type, int x, int r, int y, const GUIEngineList *eng_list, uint16 min, uint16 max, EngineID selected_id, bool show_count, GroupID selected_group)
| Engine drawing loop. More...
static bool | EngineNumberSorter (const EngineID &a, const EngineID &b)
void | InvalidateAutoreplaceWindow (EngineID e, GroupID id_g)
| Rebuild the left autoreplace list if an engine is removed or added. More...
void | AddRemoveEngineFromAutoreplaceAndBuildWindows (VehicleType type)
| When an engine is made buildable or is removed from being buildable, add/remove it from the build/autoreplace lists. More...
void | ShowReplaceGroupVehicleWindow (GroupID id_g, VehicleType vehicletype)
| Show the autoreplace configuration window for a particular group. More...

## Variables
static const StringID | _start_replace_dropdown []
static const NWidgetPart | _nested_replace_rail_vehicle_widgets []
static WindowDesc | _replace_rail_vehicle_desc (WDP_AUTO, "replace_vehicle_train", 500, 140, WC_REPLACE_VEHICLE, WC_NONE, WDF_CONSTRUCTION, _nested_replace_rail_vehicle_widgets, lengthof(_nested_replace_rail_vehicle_widgets))
static const NWidgetPart | _nested_replace_road_vehicle_widgets []
static WindowDesc | _replace_road_vehicle_desc (WDP_AUTO, "replace_vehicle_road", 500, 140, WC_REPLACE_VEHICLE, WC_NONE, WDF_CONSTRUCTION, _nested_replace_road_vehicle_widgets, lengthof(_nested_replace_road_vehicle_widgets))
static const NWidgetPart | _nested_replace_vehicle_widgets []
static WindowDesc | _replace_vehicle_desc (WDP_AUTO, "replace_vehicle", 456, 118, WC_REPLACE_VEHICLE, WC_NONE, WDF_CONSTRUCTION, _nested_replace_vehicle_widgets, lengthof(_nested_replace_vehicle_widgets))

## Detailed Description

GUI for autoreplace handling.

Definition in file autoreplace_gui.cpp.

## Function Documentation

## ◆ AddRemoveEngineFromAutoreplaceAndBuildWindows()

void AddRemoveEngineFromAutoreplaceAndBuildWindows | ( | VehicleType | type | ) |

When an engine is made buildable or is removed from being buildable, add/remove it from the build/autoreplace lists.

Parameters

  type | The type of engine

Definition at line 63 of file autoreplace_gui.cpp.

References InvalidateWindowClassesData(), InvalidateWindowData(), WC_BUILD_VEHICLE, and WC_REPLACE_VEHICLE.

Referenced by CalcEngineReliability(), CmdSetVehicleVisibility(), DisableEngineForCompany(), EnableEngineForCompany(), and NewVehicleAvailable().

## ◆ DrawEngineList()

void DrawEngineList | ( | VehicleType | type,
|  | int | l,
|  | int | r,
|  | int | y,
|  | const GUIEngineList * | eng_list,
|  | uint16 | min,
|  | uint16 | max,
|  | EngineID | selected_id,
|  | bool | show_count,
|  | GroupID | selected_group
| ) |  |

Engine drawing loop.

Parameters

  type | Type of vehicle (VEH_*)
  l | The left most location of the list
  r | The right most location of the list
  y | The top most location of the list
  eng_list | What engines to draw
  min | where to start in the list
  max | where in the list to end
  selected_id | what engine to highlight as selected, if any
  show_count | Whether to show the amount of engines or not
  selected_group | the group to list the engines of

Definition at line 963 of file build_vehicle_gui.cpp.

Referenced by BuildVehicleWindow::DrawWidget().

## ◆ InvalidateAutoreplaceWindow()

void InvalidateAutoreplaceWindow | ( | EngineID | e,
|  | GroupID | id_g
| ) |  |

Rebuild the left autoreplace list if an engine is removed or added.

Parameters

  e | Engine to check if it is removed or added
  id_g | The group the engine belongs to Note: this function only works if it is called either when a new vehicle is build, but before it's counted in num_engines when a vehicle is deleted and after it's subtracted from num_engines when not changing the count (used when changing replace orders)

Definition at line 49 of file autoreplace_gui.cpp.

References _local_company, ALL_GROUP, Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_engine_pool >::Get(), GetGroupNumEngines(), InvalidateWindowData(), and WC_REPLACE_VEHICLE.

## ◆ ShowReplaceGroupVehicleWindow()

void ShowReplaceGroupVehicleWindow | ( | GroupID | id_g,
|  | VehicleType | vehicletype
| ) |  |

Show the autoreplace configuration window for a particular group.

Parameters

  id_g | The group to replace the vehicles for.
  vehicletype | The type of vehicles in the group.

Definition at line 865 of file autoreplace_gui.cpp.

References CloseWindowById(), VEH_TRAIN, and WC_REPLACE_VEHICLE.

Referenced by VehicleGroupWindow::OnDropdownSelect(), and VehicleListWindow::OnDropdownSelect().

## Variable Documentation

## ◆ _start_replace_dropdown

const StringID _start_replace_dropdown[]
| static

Initial value:
= {
STR_REPLACE_VEHICLES_NOW,
STR_REPLACE_VEHICLES_WHEN_OLD,
INVALID_STRING_ID
}

Definition at line 69 of file autoreplace_gui.cpp.

INVALID_STRING_ID
static const StringID INVALID_STRING_ID
Constant representing an invalid string (16bit in case it is used in savegames)
Definition: strings_type.h:17