src/rail_cmd.cpp
branch0.6
changeset 10323 57d8fd25473e
parent 9208 f376b12acb1b
child 11129 72b8e47f86d8
--- a/src/rail_cmd.cpp	Mon Mar 31 22:09:27 2008 +0000
+++ b/src/rail_cmd.cpp	Thu Apr 24 11:48:09 2008 +0000
@@ -30,7 +30,6 @@
 #include "newgrf_callbacks.h"
 #include "newgrf_station.h"
 #include "train.h"
-#include "misc/autoptr.hpp"
 #include "variables.h"
 #include "autoslope.h"
 #include "transparency.h"
@@ -763,12 +762,10 @@
 
 	if (MayHaveBridgeAbove(tile) && IsBridgeAbove(tile)) return_cmd_error(STR_5007_MUST_DEMOLISH_BRIDGE_FIRST);
 
-	Depot *d = new Depot(tile);
-
-	if (d == NULL) return CMD_ERROR;
-	AutoPtrT<Depot> d_auto_delete = d;
+	if (!Depot::CanAllocateItem()) return CMD_ERROR;
 
 	if (flags & DC_EXEC) {
+		Depot *d = new Depot(tile);
 		MakeRailDepot(tile, _current_player, dir, (RailType)p1);
 		MarkTileDirtyByTile(tile);
 
@@ -776,7 +773,6 @@
 
 		AddSideToSignalBuffer(tile, INVALID_DIAGDIR, _current_player);
 		YapfNotifyTrackLayoutChange(tile, TrackdirToTrack(DiagdirToDiagTrackdir(dir)));
-		d_auto_delete.Detach();
 	}
 
 	return cost.AddCost(_price.build_train_depot);