|
@@ -829,12 +829,14 @@ static void AddRearEngineToMultiheadedTr
|
|
|
|
|
|
/** Build a railroad vehicle.
|
|
|
* @param tile tile of the depot where rail-vehicle is built
|
|
|
* @param flags type of operation
|
|
|
* @param p1 engine type id
|
|
|
* @param p2 bit 1 prevents any free cars from being added to the train
|
|
|
* @param text unused
|
|
|
* @return the cost of this operation or an error
|
|
|
*/
|
|
|
CommandCost CmdBuildRailVehicle(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 p2, const char *text)
|
|
|
{
|
|
|
/* Check if the engine-type is valid (for the company) */
|
|
|
if (!IsEngineBuildable(p1, VEH_TRAIN, _current_company)) return_cmd_error(STR_ERROR_RAIL_VEHICLE_NOT_AVAILABLE);
|
|
|
|
|
@@ -1084,12 +1086,14 @@ static void NormaliseTrainConsist(Train
|
|
|
* @param flags type of operation
|
|
|
* Note: DC_AUTOREPLACE is set when autoreplace tries to undo its modifications or moves vehicles to temporary locations inside the depot.
|
|
|
* @param p1 various bitstuffed elements
|
|
|
* - p1 (bit 0 - 15) source vehicle index
|
|
|
* - p1 (bit 16 - 31) what wagon to put the source wagon AFTER, XXX - INVALID_VEHICLE to make a new line
|
|
|
* @param p2 (bit 0) move all vehicles following the source vehicle
|
|
|
* @param text unused
|
|
|
* @return the cost of this operation or an error
|
|
|
*/
|
|
|
CommandCost CmdMoveRailVehicle(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 p2, const char *text)
|
|
|
{
|
|
|
VehicleID s = GB(p1, 0, 16);
|
|
|
VehicleID d = GB(p1, 16, 16);
|
|
|
|
|
@@ -1437,12 +1441,14 @@ CommandCost CmdMoveRailVehicle(TileIndex
|
|
|
* @param flags type of operation
|
|
|
* @param p1 the wagon/engine index
|
|
|
* @param p2 the selling mode
|
|
|
* - p2 = 0: only sell the single dragged wagon/engine (and any belonging rear-engines)
|
|
|
* - p2 = 1: sell the vehicle and all vehicles following it in the chain
|
|
|
* if the wagon is dragged, don't delete the possibly belonging rear-engine to some front
|
|
|
* @param text unused
|
|
|
* @return the cost of this operation or an error
|
|
|
*/
|
|
|
CommandCost CmdSellRailWagon(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 p2, const char *text)
|
|
|
{
|
|
|
/* Check if we deleted a vehicle window */
|
|
|
Window *w = NULL;
|
|
|
|
|
@@ -1994,12 +2000,14 @@ static void ReverseTrainDirection(Train
|
|
|
|
|
|
/** Reverse train.
|
|
|
* @param tile unused
|
|
|
* @param flags type of operation
|
|
|
* @param p1 train to reverse
|
|
|
* @param p2 if true, reverse a unit in a train (needs to be in a depot)
|
|
|
* @param text unused
|
|
|
* @return the cost of this operation or an error
|
|
|
*/
|
|
|
CommandCost CmdReverseTrainDirection(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 p2, const char *text)
|
|
|
{
|
|
|
Train *v = Train::GetIfValid(p1);
|
|
|
if (v == NULL || !CheckOwnership(v->owner)) return CMD_ERROR;
|
|
|
|
|
@@ -2052,12 +2060,14 @@ CommandCost CmdReverseTrainDirection(Til
|
|
|
|
|
|
/** Force a train through a red signal
|
|
|
* @param tile unused
|
|
|
* @param flags type of operation
|
|
|
* @param p1 train to ignore the red signal
|
|
|
* @param p2 unused
|
|
|
* @param text unused
|
|
|
* @return the cost of this operation or an error
|
|
|
*/
|
|
|
CommandCost CmdForceTrainProceed(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 p2, const char *text)
|
|
|
{
|
|
|
Train *t = Train::GetIfValid(p1);
|
|
|
if (t == NULL || !CheckOwnership(t->owner)) return CMD_ERROR;
|
|
|
|
|
@@ -2067,17 +2077,18 @@ CommandCost CmdForceTrainProceed(TileInd
|
|
|
}
|
|
|
|
|
|
/** Refits a train to the specified cargo type.
|
|
|
* @param tile unused
|
|
|
* @param flags type of operation
|
|
|
* @param p1 vehicle ID of the train to refit
|
|
|
* param p2 various bitstuffed elements
|
|
|
* @param p2 various bitstuffed elements
|
|
|
* - p2 = (bit 0-7) - the new cargo type to refit to
|
|
|
* - p2 = (bit 8-15) - the new cargo subtype to refit to
|
|
|
* - p2 = (bit 16) - refit only this vehicle
|
|
|
* @return cost of refit or error
|
|
|
* @param text unused
|
|
|
* @return the cost of this operation or an error
|
|
|
*/
|
|
|
CommandCost CmdRefitRailVehicle(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 p2, const char *text)
|
|
|
{
|
|
|
CargoID new_cid = GB(p2, 0, 8);
|
|
|
byte new_subtype = GB(p2, 8, 8);
|
|
|
bool only_this = HasBit(p2, 16);
|
|
@@ -2274,12 +2285,14 @@ bool Train::FindClosestDepot(TileIndex *
|
|
|
* @param tile unused
|
|
|
* @param flags type of operation
|
|
|
* @param p1 train to send to the depot
|
|
|
* @param p2 various bitmasked elements
|
|
|
* - p2 bit 0-3 - DEPOT_ flags (see vehicle.h)
|
|
|
* - p2 bit 8-10 - VLW flag (for mass goto depot)
|
|
|
* @param text unused
|
|
|
* @return the cost of this operation or an error
|
|
|
*/
|
|
|
CommandCost CmdSendTrainToDepot(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 p2, const char *text)
|
|
|
{
|
|
|
if (p2 & DEPOT_MASS_SEND) {
|
|
|
/* Mass goto depot requested */
|
|
|
if (!ValidVLWFlags(p2 & VLW_MASK)) return CMD_ERROR;
|