summaryrefslogtreecommitdiff
path: root/src/effectvehicle.cpp
diff options
context:
space:
mode:
authorrubidium <rubidium@openttd.org>2009-01-09 14:59:02 +0000
committerrubidium <rubidium@openttd.org>2009-01-09 14:59:02 +0000
commitd19706013714c4b1f5b833ce7377118047f31a7c (patch)
treec50b9279882186f1767a0a6d05f3b4df148a5c93 /src/effectvehicle.cpp
parentde9413454ee70662e1309b49bfd894ca1cf19063 (diff)
downloadopenttd-d19706013714c4b1f5b833ce7377118047f31a7c.tar.xz
(svn r14933) -Codechange: check the whether a pool item can be constructed instead of trying to make it and check for NULL.
Diffstat (limited to 'src/effectvehicle.cpp')
-rw-r--r--src/effectvehicle.cpp27
1 files changed, 14 insertions, 13 deletions
diff --git a/src/effectvehicle.cpp b/src/effectvehicle.cpp
index 62337993c..e4371cf45 100644
--- a/src/effectvehicle.cpp
+++ b/src/effectvehicle.cpp
@@ -609,22 +609,23 @@ static EffectTickProc * const _effect_tick_procs[] = {
Vehicle *CreateEffectVehicle(int x, int y, int z, EffectVehicleType type)
{
+ if (!Vehicle::CanAllocateItem()) return NULL;
+
Vehicle *v = new EffectVehicle();
- if (v != NULL) {
- v->subtype = type;
- v->x_pos = x;
- v->y_pos = y;
- v->z_pos = z;
- v->tile = 0;
- v->UpdateDeltaXY(INVALID_DIR);
- v->vehstatus = VS_UNCLICKABLE;
+ v->subtype = type;
+ v->x_pos = x;
+ v->y_pos = y;
+ v->z_pos = z;
+ v->tile = 0;
+ v->UpdateDeltaXY(INVALID_DIR);
+ v->vehstatus = VS_UNCLICKABLE;
- _effect_init_procs[type](v);
+ _effect_init_procs[type](v);
+
+ VehiclePositionChanged(v);
+ BeginVehicleMove(v);
+ EndVehicleMove(v);
- VehiclePositionChanged(v);
- BeginVehicleMove(v);
- EndVehicleMove(v);
- }
return v;
}