(svn r12804) -Codechange: move the effect vehicle handling out of vehicle.cpp

This commit is contained in:
rubidium
2008-04-20 11:12:07 +00:00
parent f55ffd14bd
commit b139756e2b
20 changed files with 793 additions and 664 deletions

37
src/effectvehicle_base.h Normal file
View File

@@ -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 */