Mercurial > hg > openttd
view src/roadveh.h @ 6740:a53e2be1aadc draft
(svn r9973) -Cleanup: removed some code that kept both ends of a dualheaded engine in the same train (when moving wagons in a depot)
NormaliseTrainConsist() is called later in the same command and it will take care of this issue
author | bjarni <bjarni@openttd.org> |
---|---|
date | Tue, 29 May 2007 10:35:52 +0000 |
parents | be38c076b3a5 |
children | 746c984c2dfe |
line wrap: on
line source
/* $Id$ */ /** @file src/roadveh.h Road vehicle states */ #ifndef ROADVEH_H #define ROADVEH_H #include "vehicle.h" static inline bool IsRoadVehInDepot(const Vehicle* v) { assert(v->type == VEH_ROAD); return v->u.road.state == 254; } static inline bool IsRoadVehInDepotStopped(const Vehicle* v) { return IsRoadVehInDepot(v) && v->vehstatus & VS_STOPPED; } void CcBuildRoadVeh(bool success, TileIndex tile, uint32 p1, uint32 p2); void CcCloneRoadVeh(bool success, TileIndex tile, uint32 p1, uint32 p2); /** * 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) RoadVehicle(); * * As side-effect the vehicle type is set correctly. */ struct RoadVehicle : public Vehicle { /** Initializes the Vehicle to a road vehicle */ RoadVehicle() { this->type = VEH_ROAD; } /** We want to 'destruct' the right class. */ virtual ~RoadVehicle() {} const char *GetTypeString() const { return "road vehicle"; } void MarkDirty(); void UpdateDeltaXY(Direction direction); ExpensesType GetExpenseType(bool income) const { return income ? EXPENSES_ROADVEH_INC : EXPENSES_ROADVEH_RUN; } WindowClass GetVehicleListWindowClass() const { return WC_ROADVEH_LIST; } }; #endif /* ROADVEH_H */