OpenTTD Source 20241224-master-gf74b0cf984
autoreplace_gui.cpp File Reference

GUI for autoreplace handling. More...

#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 "dropdown_type.h"
#include "dropdown_func.h"
#include "autoreplace_cmd.h"
#include "group_cmd.h"
#include "settings_cmd.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

static bool EngineNumberSorter (const GUIEngineListItem &a, const GUIEngineListItem &b)
 
void InvalidateAutoreplaceWindow (EngineID e, GroupID id_g)
 Rebuild the left autoreplace list if an engine is removed or added.
 
void AddRemoveEngineFromAutoreplaceAndBuildWindows (VehicleType type)
 When an engine is made buildable or is removed from being buildable, add/remove it from the build/autoreplace lists.
 
void ShowReplaceGroupVehicleWindow (GroupID id_g, VehicleType vehicletype)
 Show the autoreplace configuration window for a particular group.
 

Variables

static const StringID _start_replace_dropdown []
 
static constexpr 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)
 
static constexpr 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)
 
static constexpr 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)
 

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
typeThe type of engine

Definition at line 65 of file autoreplace_gui.cpp.

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

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

◆ EngineNumberSorter()

static bool EngineNumberSorter ( const GUIEngineListItem a,
const GUIEngineListItem b 
)
static

Definition at line 37 of file autoreplace_gui.cpp.

◆ InvalidateAutoreplaceWindow()

void InvalidateAutoreplaceWindow ( EngineID  e,
GroupID  id_g 
)

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

Parameters
eEngine to check if it is removed or added
id_gThe 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 51 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.

Referenced by CmdBuildVehicle(), CmdSetAutoReplace(), and Vehicle::PreDestructor().

◆ ShowReplaceGroupVehicleWindow()

void ShowReplaceGroupVehicleWindow ( GroupID  id_g,
VehicleType  vehicletype 
)

Show the autoreplace configuration window for a particular group.

Parameters
id_gThe group to replace the vehicles for.
vehicletypeThe type of vehicles in the group.

Definition at line 889 of file autoreplace_gui.cpp.

References CloseWindowById(), VEH_ROAD, VEH_TRAIN, and WC_REPLACE_VEHICLE.

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

Variable Documentation

◆ _nested_replace_rail_vehicle_widgets

constexpr NWidgetPart _nested_replace_rail_vehicle_widgets[]
staticconstexpr

Definition at line 708 of file autoreplace_gui.cpp.

◆ _nested_replace_road_vehicle_widgets

constexpr NWidgetPart _nested_replace_road_vehicle_widgets[]
staticconstexpr

Definition at line 772 of file autoreplace_gui.cpp.

◆ _nested_replace_vehicle_widgets

constexpr NWidgetPart _nested_replace_vehicle_widgets[]
staticconstexpr

Definition at line 830 of file autoreplace_gui.cpp.

◆ _start_replace_dropdown

const StringID _start_replace_dropdown[]
static
Initial value:
= {
STR_REPLACE_VEHICLES_NOW,
STR_REPLACE_VEHICLES_WHEN_OLD,
}

Definition at line 71 of file autoreplace_gui.cpp.