#include "stdafx.h"
#include "command_func.h"
#include "group.h"
#include "train.h"
#include "engine_base.h"
#include "vehicle_gui.h"
#include "window_func.h"
#include "vehicle_func.h"
#include "autoreplace_base.h"
#include "autoreplace_func.h"
#include "string_func.h"
#include "company_func.h"
#include "core/pool_func.hpp"
#include "table/strings.h"
Go to the source code of this file.
Functions | |
static void | UpdateNumEngineGroup (EngineID i, GroupID old_g, GroupID new_g) |
Update the num engines of a groupID. | |
void | InitializeGroup () |
CommandCost | CmdCreateGroup (TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 p2, const char *text) |
Create a new vehicle group. | |
CommandCost | CmdDeleteGroup (TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 p2, const char *text) |
Add all vehicles in the given group to the default group and then deletes the group. | |
static bool | IsUniqueGroupName (const char *name) |
CommandCost | CmdRenameGroup (TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 p2, const char *text) |
Rename a group. | |
CommandCost | CmdAddVehicleGroup (TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 p2, const char *text) |
Add a vehicle to a group. | |
CommandCost | CmdAddSharedVehicleGroup (TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 p2, const char *text) |
Add all shared vehicles of all vehicles from a group. | |
CommandCost | CmdRemoveAllVehiclesGroup (TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 p2, const char *text) |
Remove all vehicles from a group. | |
CommandCost | CmdSetGroupReplaceProtection (TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 p2, const char *text) |
(Un)set global replace protection from a group | |
void | RemoveVehicleFromGroup (const Vehicle *v) |
Decrease the num_vehicle variable before delete an front engine from a group. | |
void | SetTrainGroupID (Train *v, GroupID new_g) |
Affect the groupID of a train to new_g. | |
void | UpdateTrainGroupID (Train *v) |
Recalculates the groupID of a train. | |
uint | GetGroupNumEngines (CompanyID company, GroupID id_g, EngineID id_e) |
Get the number of engines with EngineID id_e in the group with GroupID id_g. | |
void | RemoveAllGroupsForCompany (const CompanyID company) |
Variables | |
GroupID | _new_group_id |
GroupPool | _group_pool ("Group") |
Definition in file group_cmd.cpp.
CommandCost CmdAddSharedVehicleGroup | ( | TileIndex | tile, | |
DoCommandFlag | flags, | |||
uint32 | p1, | |||
uint32 | p2, | |||
const char * | text | |||
) |
Add all shared vehicles of all vehicles from a group.
tile | unused | |
flags | type of operation | |
p1 | index of group array
| |
p2 | type of vehicles | |
text | unused |
Definition at line 259 of file group_cmd.cpp.
References CMD_ERROR, CmdAddVehicleGroup(), DC_EXEC, GetWindowClassForVehicleType(), and InvalidateWindowData().
CommandCost CmdAddVehicleGroup | ( | TileIndex | tile, | |
DoCommandFlag | flags, | |||
uint32 | p1, | |||
uint32 | p2, | |||
const char * | text | |||
) |
Add a vehicle to a group.
tile | unused | |
flags | type of operation | |
p1 | index of array group
| |
p2 | vehicle to add to a group
| |
text | unused |
Definition at line 210 of file group_cmd.cpp.
References CMD_ERROR, DC_EXEC, SpecializedVehicle< Train, VEH_TRAIN >::From(), GetWindowClassForVehicleType(), InvalidateWindowData(), SetTrainGroupID(), SetWindowDirty(), UpdateNumEngineGroup(), VEH_AIRCRAFT, VEH_ROAD, VEH_SHIP, and VEH_TRAIN.
Referenced by CmdAddSharedVehicleGroup(), and CmdRemoveAllVehiclesGroup().
CommandCost CmdCreateGroup | ( | TileIndex | tile, | |
DoCommandFlag | flags, | |||
uint32 | p1, | |||
uint32 | p2, | |||
const char * | text | |||
) |
Create a new vehicle group.
tile | unused | |
flags | type of operation | |
p1 | vehicle type | |
p2 | unused | |
text | unused |
Definition at line 83 of file group_cmd.cpp.
References CMD_ERROR, DC_EXEC, GetWindowClassForVehicleType(), and InvalidateWindowData().
CommandCost CmdDeleteGroup | ( | TileIndex | tile, | |
DoCommandFlag | flags, | |||
uint32 | p1, | |||
uint32 | p2, | |||
const char * | text | |||
) |
Add all vehicles in the given group to the default group and then deletes the group.
tile | unused | |
flags | type of operation | |
p1 | index of array group
| |
p2 | unused | |
text | unused |
Definition at line 114 of file group_cmd.cpp.
References CMD_ERROR, DC_EXEC, DEFAULT_GROUP, DeleteWindowById(), EngineRenew::from, GetWindowClassForVehicleType(), EngineRenew::group_id, InvalidateWindowData(), MAX_COMPANIES, and RemoveEngineReplacementForCompany().
CommandCost CmdRemoveAllVehiclesGroup | ( | TileIndex | tile, | |
DoCommandFlag | flags, | |||
uint32 | p1, | |||
uint32 | p2, | |||
const char * | text | |||
) |
Remove all vehicles from a group.
tile | unused | |
flags | type of operation | |
p1 | index of group array
| |
p2 | type of vehicles | |
text | unused |
Definition at line 299 of file group_cmd.cpp.
References CMD_ERROR, CmdAddVehicleGroup(), DC_EXEC, DEFAULT_GROUP, GetWindowClassForVehicleType(), and InvalidateWindowData().
CommandCost CmdRenameGroup | ( | TileIndex | tile, | |
DoCommandFlag | flags, | |||
uint32 | p1, | |||
uint32 | p2, | |||
const char * | text | |||
) |
Rename a group.
tile | unused | |
flags | type of operation | |
p1 | index of array group
| |
p2 | unused | |
text | the new name or an empty string when resetting to the default |
Definition at line 174 of file group_cmd.cpp.
References CMD_ERROR, DC_EXEC, GetWindowClassForVehicleType(), InvalidateWindowData(), MAX_LENGTH_GROUP_NAME_BYTES, return_cmd_error, and StrEmpty().
CommandCost CmdSetGroupReplaceProtection | ( | TileIndex | tile, | |
DoCommandFlag | flags, | |||
uint32 | p1, | |||
uint32 | p2, | |||
const char * | text | |||
) |
(Un)set global replace protection from a group
tile | unused | |
flags | type of operation | |
p1 | index of group array
| |
p2 |
| |
text | unused |
Definition at line 338 of file group_cmd.cpp.
References CMD_ERROR, DC_EXEC, GetWindowClassForVehicleType(), HasBit(), and InvalidateWindowData().
Get the number of engines with EngineID id_e in the group with GroupID id_g.
company | The company the group belongs to | |
id_g | The GroupID of the group used | |
id_e | The EngineID of the engine to count |
Definition at line 411 of file group_cmd.cpp.
Referenced by DrawEngineList(), ReplaceVehicleWindow::GenerateReplaceVehList(), AIGroup::GetNumEngines(), and InvalidateAutoreplaceWindow().
void RemoveVehicleFromGroup | ( | const Vehicle * | v | ) |
Decrease the num_vehicle variable before delete an front engine from a group.
v | FrontEngine of the train we want to remove. |
Definition at line 358 of file group_cmd.cpp.
Referenced by CmdMoveRailVehicle().
Affect the groupID of a train to new_g.
v | First vehicle of the chain. | |
new_g | index of array group |
Definition at line 372 of file group_cmd.cpp.
References Train::IsFrontEngine(), SpecializedVehicle< T, Type >::Next(), SetWindowDirty(), UpdateNumEngineGroup(), and VEH_TRAIN.
Referenced by CmdAddVehicleGroup(), and CmdMoveRailVehicle().
Update the num engines of a groupID.
Decrease the old one and increase the new one
i | EngineID we have to update | |
old_g | index of the old group | |
new_g | index of the new group |
Definition at line 40 of file group_cmd.cpp.
Referenced by CmdAddVehicleGroup(), SetTrainGroupID(), and UpdateTrainGroupID().
void UpdateTrainGroupID | ( | Train * | v | ) |
Recalculates the groupID of a train.
Should be called each time a vehicle is added to/removed from the chain,.
Called in CmdBuildRailVehicle, CmdBuildRailWagon, CmdMoveRailVehicle, CmdSellRailWagon
v | First vehicle of the chain. |
Definition at line 396 of file group_cmd.cpp.
References DEFAULT_GROUP, Train::IsFreeWagon(), Train::IsFrontEngine(), SpecializedVehicle< T, Type >::Next(), SetWindowDirty(), UpdateNumEngineGroup(), and VEH_TRAIN.
Referenced by CmdBuildRailVehicle(), and NormaliseTrainHead().