File diff r9035:c3efe4bc9f40 → r9036:e33a0264e0c3
src/waypoint.cpp
Show inline comments
 
@@ -18,7 +18,6 @@
 
#include "variables.h"
 
#include "yapf/yapf.h"
 
#include "newgrf.h"
 
#include "misc/autoptr.hpp"
 
#include "strings_func.h"
 
#include "gfx_func.h"
 
#include "functions.h"
 
@@ -191,7 +190,6 @@ void AfterLoadWaypoints()
 
CommandCost CmdBuildTrainWaypoint(TileIndex tile, uint32 flags, uint32 p1, uint32 p2)
 
{
 
	Waypoint *wp;
 
	AutoPtrT<Waypoint> wp_auto_delete;
 
	Slope tileh;
 
	Axis axis;
 

	
 
@@ -219,35 +217,35 @@ CommandCost CmdBuildTrainWaypoint(TileIn
 

	
 
	/* Check if there is an already existing, deleted, waypoint close to us that we can reuse. */
 
	wp = FindDeletedWaypointCloseTo(tile);
 
	if (wp == NULL) {
 
		wp = new Waypoint(tile);
 
		if (wp == NULL) return CMD_ERROR;
 
	if (wp == NULL && !Waypoint::CanAllocateItem()) return CMD_ERROR;
 

	
 
		wp_auto_delete = wp;
 
	if (flags & DC_EXEC) {
 
		if (wp == NULL) {
 
			wp = new Waypoint(tile);
 
			if (wp == NULL) return CMD_ERROR;
 

	
 
			wp->town_index = INVALID_TOWN;
 
			wp->name = NULL;
 
			wp->town_cn = 0;
 
		} else {
 
			/* Move existing (recently deleted) waypoint to the new location */
 

	
 
		wp->town_index = INVALID_TOWN;
 
		wp->name = NULL;
 
		wp->town_cn = 0;
 
	} else if (flags & DC_EXEC) {
 
		/* Move existing (recently deleted) waypoint to the new location */
 
			/* First we update the destination for all vehicles that
 
			* have the old waypoint in their orders. */
 
			Vehicle *v;
 
			FOR_ALL_VEHICLES(v) {
 
				if (v->type == VEH_TRAIN &&
 
						v->First() == v &&
 
						v->current_order.IsType(OT_GOTO_WAYPOINT) &&
 
						v->dest_tile == wp->xy) {
 
					v->dest_tile = tile;
 
				}
 
			}
 

	
 
		/* First we update the destination for all vehicles that
 
		 * have the old waypoint in their orders. */
 
		Vehicle *v;
 
		FOR_ALL_VEHICLES(v) {
 
			if (v->type == VEH_TRAIN &&
 
					v->First() == v &&
 
					v->current_order.IsType(OT_GOTO_WAYPOINT) &&
 
					v->dest_tile == wp->xy) {
 
				v->dest_tile = tile;
 
			}
 
			RedrawWaypointSign(wp);
 
			wp->xy = tile;
 
		}
 

	
 
		RedrawWaypointSign(wp);
 
		wp->xy = tile;
 
	}
 

	
 
	if (flags & DC_EXEC) {
 
		const StationSpec* statspec;
 

	
 
		MakeRailWaypoint(tile, GetTileOwner(tile), axis, GetRailType(tile), wp->index);
 
@@ -274,7 +272,6 @@ CommandCost CmdBuildTrainWaypoint(TileIn
 
		UpdateWaypointSign(wp);
 
		RedrawWaypointSign(wp);
 
		YapfNotifyTrackLayoutChange(tile, AxisToTrack(axis));
 
		wp_auto_delete.Detach();
 
	}
 

	
 
	return CommandCost(EXPENSES_CONSTRUCTION, _price.build_train_depot);