group_cmd.cpp File Reference

Handling of the engine groups. More...

#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 "oldpool_func.h"
#include "core/alloc_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 (void)
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 (Vehicle *v, GroupID new_g)
 Affect the groupID of a train to new_g.
void UpdateTrainGroupID (Vehicle *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


Detailed Description

Handling of the engine groups.

Definition in file group_cmd.cpp.


Function Documentation

CommandCost CmdAddSharedVehicleGroup ( TileIndex  tile,
DoCommandFlag  flags,
uint32  p1,
uint32  p2,
const char *  text 
)

Add all shared vehicles of all vehicles from a group.

Parameters:
tile unused
p1 index of group array
  • p1 bit 0-15 : GroupID
p2 type of vehicles

Definition at line 247 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.

Parameters:
tile unused
p1 index of array group
  • p1 bit 0-15 : GroupID
p2 vehicle to add to a group
  • p2 bit 0-15 : VehicleID

Definition at line 200 of file group_cmd.cpp.

References CMD_ERROR, DC_EXEC, GetWindowClassForVehicleType(), InvalidateWindow(), InvalidateWindowData(), IsEngineCountable(), IsValidVehicleID(), SetTrainGroupID(), and UpdateNumEngineGroup().

Referenced by CmdAddSharedVehicleGroup(), and CmdRemoveAllVehiclesGroup().

CommandCost CmdCreateGroup ( TileIndex  tile,
DoCommandFlag  flags,
uint32  p1,
uint32  p2,
const char *  text 
)

Create a new vehicle group.

Parameters:
tile unused
p1 vehicle type
p2 unused

Definition at line 78 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.

Parameters:
tile unused
p1 index of array group
  • p1 bit 0-15 : GroupID
p2 unused

Definition at line 106 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.

Parameters:
tile unused
p1 index of group array
  • p1 bit 0-15 : GroupID
p2 type of vehicles

Definition at line 284 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.

Parameters:
tile unused
p1 index of array group
  • p1 bit 0-15 : GroupID
p2 unused

Definition at line 165 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

Parameters:
tile unused
p1 index of group array
  • p1 bit 0-15 : GroupID
p2 
  • p2 bit 0 : 1 to set or 0 to clear protection.

Definition at line 321 of file group_cmd.cpp.

References CMD_ERROR, DC_EXEC, GetWindowClassForVehicleType(), HasBit(), and InvalidateWindowData().

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.

Parameters:
id_g The GroupID of the group used
id_e The EngineID of the engine to count
Returns:
The number of engines with EngineID id_e in the group

Definition at line 396 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.

Note:
Called in CmdSellRailWagon and DeleteLasWagon,
Parameters:
v FrontEngine of the train we want to remove.

Definition at line 343 of file group_cmd.cpp.

Referenced by CmdMoveRailVehicle().

void SetTrainGroupID ( Vehicle *  v,
GroupID  new_g 
)

Affect the groupID of a train to new_g.

Note:
called in CmdAddVehicleGroup and CmdMoveRailVehicle
Parameters:
v First vehicle of the chain.
new_g index of array group

Definition at line 357 of file group_cmd.cpp.

References InvalidateWindow(), IsEngineCountable(), IsFrontEngine(), and UpdateNumEngineGroup().

Referenced by CmdAddVehicleGroup(), and CmdMoveRailVehicle().

static void UpdateNumEngineGroup ( EngineID  i,
GroupID  old_g,
GroupID  new_g 
) [inline, static]

Update the num engines of a groupID.

Decrease the old one and increase the new one

Note:
called in SetTrainGroupID and UpdateTrainGroupID
Parameters:
i EngineID we have to update
old_g index of the old group
new_g index of the new group

Definition at line 31 of file group_cmd.cpp.

Referenced by CmdAddVehicleGroup(), SetTrainGroupID(), and UpdateTrainGroupID().

void UpdateTrainGroupID ( Vehicle *  v  ) 

Recalculates the groupID of a train.

Should be called each time a vehicle is added to/removed from the chain,.

Note:
this needs to be called too for 'wagon chains' (in the depot, without an engine)

Called in CmdBuildRailVehicle, CmdBuildRailWagon, CmdMoveRailVehicle, CmdSellRailWagon

Parameters:
v First vehicle of the chain.

Definition at line 381 of file group_cmd.cpp.

References DEFAULT_GROUP, InvalidateWindow(), IsEngineCountable(), IsFreeWagon(), IsFrontEngine(), and UpdateNumEngineGroup().

Referenced by CmdBuildRailVehicle(), CmdBuildRailWagon(), CmdMoveRailVehicle(), and CmdSellRailWagon().


Generated on Mon Dec 14 21:00:07 2009 for OpenTTD by  doxygen 1.5.6