diff options
author | rubidium <rubidium@openttd.org> | 2008-04-20 11:12:07 +0000 |
---|---|---|
committer | rubidium <rubidium@openttd.org> | 2008-04-20 11:12:07 +0000 |
commit | 8186344628fb4d1c76c7e6d9994d1f18277a2412 (patch) | |
tree | dd68b4e6a0cf26c8d4091dc8be264021cfb88c35 /src/effectvehicle_base.h | |
parent | 40b19f39975731990f1c6687f99e2593f345e4f9 (diff) | |
download | openttd-8186344628fb4d1c76c7e6d9994d1f18277a2412.tar.xz |
(svn r12804) -Codechange: move the effect vehicle handling out of vehicle.cpp
Diffstat (limited to 'src/effectvehicle_base.h')
-rw-r--r-- | src/effectvehicle_base.h | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/src/effectvehicle_base.h b/src/effectvehicle_base.h new file mode 100644 index 000000000..92742cf90 --- /dev/null +++ b/src/effectvehicle_base.h @@ -0,0 +1,37 @@ +/* $Id$ */ + +/** @file effectvehicle_base.h Base class for all effect vehicles. */ + +#ifndef EFFECTVEHICLE_BASE_H +#define EFFECTVEHICLE_BASE_H + +#include "vehicle_base.h" + +/** + * This class 'wraps' Vehicle; you do not actually instantiate this class. + * You create a Vehicle using AllocateVehicle, so it is added to the pool + * and you reinitialize that to a Train using: + * v = new (v) Train(); + * + * As side-effect the vehicle type is set correctly. + * + * A special vehicle is one of the following: + * - smoke + * - electric sparks for trains + * - explosions + * - bulldozer (road works) + * - bubbles (industry) + */ +struct EffectVehicle : public Vehicle { + /** Initializes the Vehicle to a special vehicle */ + EffectVehicle() { this->type = VEH_EFFECT; } + + /** We want to 'destruct' the right class. */ + virtual ~EffectVehicle() {} + + const char *GetTypeString() const { return "special vehicle"; } + void UpdateDeltaXY(Direction direction); + void Tick(); +}; + +#endif /* EFFECTVEHICLE_BASE_H */ |