src/effectvehicle_base.h
author glx
Mon, 21 Apr 2008 21:15:50 +0000
branchnoai
changeset 10294 7798ae816af8
permissions -rw-r--r--
(svn r12826) [NoAI] -Sync: with trunk r12780:12824
10294
7798ae816af8 (svn r12826) [NoAI] -Sync: with trunk r12780:12824
glx
parents:
diff changeset
     1
/* $Id$ */
7798ae816af8 (svn r12826) [NoAI] -Sync: with trunk r12780:12824
glx
parents:
diff changeset
     2
7798ae816af8 (svn r12826) [NoAI] -Sync: with trunk r12780:12824
glx
parents:
diff changeset
     3
/** @file effectvehicle_base.h Base class for all effect vehicles. */
7798ae816af8 (svn r12826) [NoAI] -Sync: with trunk r12780:12824
glx
parents:
diff changeset
     4
7798ae816af8 (svn r12826) [NoAI] -Sync: with trunk r12780:12824
glx
parents:
diff changeset
     5
#ifndef EFFECTVEHICLE_BASE_H
7798ae816af8 (svn r12826) [NoAI] -Sync: with trunk r12780:12824
glx
parents:
diff changeset
     6
#define EFFECTVEHICLE_BASE_H
7798ae816af8 (svn r12826) [NoAI] -Sync: with trunk r12780:12824
glx
parents:
diff changeset
     7
7798ae816af8 (svn r12826) [NoAI] -Sync: with trunk r12780:12824
glx
parents:
diff changeset
     8
#include "vehicle_base.h"
7798ae816af8 (svn r12826) [NoAI] -Sync: with trunk r12780:12824
glx
parents:
diff changeset
     9
7798ae816af8 (svn r12826) [NoAI] -Sync: with trunk r12780:12824
glx
parents:
diff changeset
    10
/**
7798ae816af8 (svn r12826) [NoAI] -Sync: with trunk r12780:12824
glx
parents:
diff changeset
    11
 * This class 'wraps' Vehicle; you do not actually instantiate this class.
7798ae816af8 (svn r12826) [NoAI] -Sync: with trunk r12780:12824
glx
parents:
diff changeset
    12
 * You create a Vehicle using AllocateVehicle, so it is added to the pool
7798ae816af8 (svn r12826) [NoAI] -Sync: with trunk r12780:12824
glx
parents:
diff changeset
    13
 * and you reinitialize that to a Train using:
7798ae816af8 (svn r12826) [NoAI] -Sync: with trunk r12780:12824
glx
parents:
diff changeset
    14
 *   v = new (v) Train();
7798ae816af8 (svn r12826) [NoAI] -Sync: with trunk r12780:12824
glx
parents:
diff changeset
    15
 *
7798ae816af8 (svn r12826) [NoAI] -Sync: with trunk r12780:12824
glx
parents:
diff changeset
    16
 * As side-effect the vehicle type is set correctly.
7798ae816af8 (svn r12826) [NoAI] -Sync: with trunk r12780:12824
glx
parents:
diff changeset
    17
 *
7798ae816af8 (svn r12826) [NoAI] -Sync: with trunk r12780:12824
glx
parents:
diff changeset
    18
 * A special vehicle is one of the following:
7798ae816af8 (svn r12826) [NoAI] -Sync: with trunk r12780:12824
glx
parents:
diff changeset
    19
 *  - smoke
7798ae816af8 (svn r12826) [NoAI] -Sync: with trunk r12780:12824
glx
parents:
diff changeset
    20
 *  - electric sparks for trains
7798ae816af8 (svn r12826) [NoAI] -Sync: with trunk r12780:12824
glx
parents:
diff changeset
    21
 *  - explosions
7798ae816af8 (svn r12826) [NoAI] -Sync: with trunk r12780:12824
glx
parents:
diff changeset
    22
 *  - bulldozer (road works)
7798ae816af8 (svn r12826) [NoAI] -Sync: with trunk r12780:12824
glx
parents:
diff changeset
    23
 *  - bubbles (industry)
7798ae816af8 (svn r12826) [NoAI] -Sync: with trunk r12780:12824
glx
parents:
diff changeset
    24
 */
7798ae816af8 (svn r12826) [NoAI] -Sync: with trunk r12780:12824
glx
parents:
diff changeset
    25
struct EffectVehicle : public Vehicle {
7798ae816af8 (svn r12826) [NoAI] -Sync: with trunk r12780:12824
glx
parents:
diff changeset
    26
	/** Initializes the Vehicle to a special vehicle */
7798ae816af8 (svn r12826) [NoAI] -Sync: with trunk r12780:12824
glx
parents:
diff changeset
    27
	EffectVehicle() { this->type = VEH_EFFECT; }
7798ae816af8 (svn r12826) [NoAI] -Sync: with trunk r12780:12824
glx
parents:
diff changeset
    28
7798ae816af8 (svn r12826) [NoAI] -Sync: with trunk r12780:12824
glx
parents:
diff changeset
    29
	/** We want to 'destruct' the right class. */
7798ae816af8 (svn r12826) [NoAI] -Sync: with trunk r12780:12824
glx
parents:
diff changeset
    30
	virtual ~EffectVehicle() {}
7798ae816af8 (svn r12826) [NoAI] -Sync: with trunk r12780:12824
glx
parents:
diff changeset
    31
7798ae816af8 (svn r12826) [NoAI] -Sync: with trunk r12780:12824
glx
parents:
diff changeset
    32
	const char *GetTypeString() const { return "special vehicle"; }
7798ae816af8 (svn r12826) [NoAI] -Sync: with trunk r12780:12824
glx
parents:
diff changeset
    33
	void UpdateDeltaXY(Direction direction);
7798ae816af8 (svn r12826) [NoAI] -Sync: with trunk r12780:12824
glx
parents:
diff changeset
    34
	void Tick();
7798ae816af8 (svn r12826) [NoAI] -Sync: with trunk r12780:12824
glx
parents:
diff changeset
    35
};
7798ae816af8 (svn r12826) [NoAI] -Sync: with trunk r12780:12824
glx
parents:
diff changeset
    36
7798ae816af8 (svn r12826) [NoAI] -Sync: with trunk r12780:12824
glx
parents:
diff changeset
    37
#endif /* EFFECTVEHICLE_BASE_H */