changeset 17122:2c811c4c5af1 draft

(svn r21859) -Codechange: Move train subtype flags to GroundVehicle.
author terkhen <terkhen@openttd.org>
date Wed, 19 Jan 2011 18:42:54 +0000
parents 325d6c9a9817
children a18c14f0bb2b
files src/ground_vehicle.hpp src/train.h
diffstat 2 files changed, 31 insertions(+), 32 deletions(-) [+]
line wrap: on
line diff
--- a/src/ground_vehicle.hpp
+++ b/src/ground_vehicle.hpp
@@ -149,6 +149,19 @@
 		this->UpdateViewport(true, turned);
 		return old_z;
 	}
+
+	/**
+	 * Enum to handle ground vehicle subtypes.
+	 * Do not access it directly unless you have to. Use the subtype access functions.
+	 */
+	enum GroundVehicleSubtypeFlags {
+		GVSF_FRONT            = 0, ///< Leading engine of a consist.
+		GVSF_ARTICULATED_PART = 1, ///< Articulated part of an engine.
+		GVSF_WAGON            = 2, ///< Wagon (not used for road vehicles).
+		GVSF_ENGINE           = 3, ///< Engine that can be front engine, but might be placed behind another engine (not used for road vehicles).
+		GVSF_FREE_WAGON       = 4, ///< First in a wagon chain (in depot) (not used for road vehicles).
+		GVSF_MULTIHEADED      = 5, ///< Engine is multiheaded (not used for road vehicles).
+	};
 };
 
 #endif /* GROUND_VEHICLE_HPP */
--- a/src/train.h
+++ b/src/train.h
@@ -138,109 +138,95 @@
 	int GetCurrentMaxSpeed() const;
 
 	/**
-	 * enum to handle train subtypes
-	 * Do not access it directly unless you have to. Use the access functions below
-	 * This is an enum to tell what bit to access as it is a bitmask
-	 */
-	enum TrainSubtype {
-		TS_FRONT             = 0, ///< Leading engine of a train
-		TS_ARTICULATED_PART  = 1, ///< Articulated part of an engine
-		TS_WAGON             = 2, ///< Wagon
-		TS_ENGINE            = 3, ///< Engine that can be front engine, but might be placed behind another engine.
-		TS_FREE_WAGON        = 4, ///< First in a wagon chain (in depot)
-		TS_MULTIHEADED       = 5, ///< Engine is multiheaded
-	};
-
-	/**
 	 * Set front engine state
 	 */
-	FORCEINLINE void SetFrontEngine() { SetBit(this->subtype, TS_FRONT); }
+	FORCEINLINE void SetFrontEngine() { SetBit(this->subtype, GVSF_FRONT); }
 
 	/**
 	 * Remove the front engine state
 	 */
-	FORCEINLINE void ClearFrontEngine() { ClrBit(this->subtype, TS_FRONT); }
+	FORCEINLINE void ClearFrontEngine() { ClrBit(this->subtype, GVSF_FRONT); }
 
 	/**
 	 * Set a vehicle to be an articulated part
 	 */
-	FORCEINLINE void SetArticulatedPart() { SetBit(this->subtype, TS_ARTICULATED_PART); }
+	FORCEINLINE void SetArticulatedPart() { SetBit(this->subtype, GVSF_ARTICULATED_PART); }
 
 	/**
 	 * Clear a vehicle from being an articulated part
 	 */
-	FORCEINLINE void ClearArticulatedPart() { ClrBit(this->subtype, TS_ARTICULATED_PART); }
+	FORCEINLINE void ClearArticulatedPart() { ClrBit(this->subtype, GVSF_ARTICULATED_PART); }
 
 	/**
 	 * Set a vehicle to be a wagon
 	 */
-	FORCEINLINE void SetWagon() { SetBit(this->subtype, TS_WAGON); }
+	FORCEINLINE void SetWagon() { SetBit(this->subtype, GVSF_WAGON); }
 
 	/**
 	 * Clear wagon property
 	 */
-	FORCEINLINE void ClearWagon() { ClrBit(this->subtype, TS_WAGON); }
+	FORCEINLINE void ClearWagon() { ClrBit(this->subtype, GVSF_WAGON); }
 
 	/**
 	 * Set engine status
 	 */
-	FORCEINLINE void SetEngine() { SetBit(this->subtype, TS_ENGINE); }
+	FORCEINLINE void SetEngine() { SetBit(this->subtype, GVSF_ENGINE); }
 
 	/**
 	 * Clear engine status
 	 */
-	FORCEINLINE void ClearEngine() { ClrBit(this->subtype, TS_ENGINE); }
+	FORCEINLINE void ClearEngine() { ClrBit(this->subtype, GVSF_ENGINE); }
 
 	/**
 	 * Set if a vehicle is a free wagon
 	 */
-	FORCEINLINE void SetFreeWagon() { SetBit(this->subtype, TS_FREE_WAGON); }
+	FORCEINLINE void SetFreeWagon() { SetBit(this->subtype, GVSF_FREE_WAGON); }
 
 	/**
 	 * Clear a vehicle from being a free wagon
 	 */
-	FORCEINLINE void ClearFreeWagon() { ClrBit(this->subtype, TS_FREE_WAGON); }
+	FORCEINLINE void ClearFreeWagon() { ClrBit(this->subtype, GVSF_FREE_WAGON); }
 
 	/**
 	 * Set if a vehicle is a multiheaded engine
 	 */
-	FORCEINLINE void SetMultiheaded() { SetBit(this->subtype, TS_MULTIHEADED); }
+	FORCEINLINE void SetMultiheaded() { SetBit(this->subtype, GVSF_MULTIHEADED); }
 
 	/**
 	 * Clear multiheaded engine property
 	 */
-	FORCEINLINE void ClearMultiheaded() { ClrBit(this->subtype, TS_MULTIHEADED); }
+	FORCEINLINE void ClearMultiheaded() { ClrBit(this->subtype, GVSF_MULTIHEADED); }
 
 
 	/**
 	 * Check if train is a front engine
 	 * @return Returns true if train is a front engine
 	 */
-	FORCEINLINE bool IsFrontEngine() const { return HasBit(this->subtype, TS_FRONT); }
+	FORCEINLINE bool IsFrontEngine() const { return HasBit(this->subtype, GVSF_FRONT); }
 
 	/**
 	 * Check if train is a free wagon (got no engine in front of it)
 	 * @return Returns true if train is a free wagon
 	 */
-	FORCEINLINE bool IsFreeWagon() const { return HasBit(this->subtype, TS_FREE_WAGON); }
+	FORCEINLINE bool IsFreeWagon() const { return HasBit(this->subtype, GVSF_FREE_WAGON); }
 
 	/**
 	 * Check if a vehicle is an engine (can be first in a train)
 	 * @return Returns true if vehicle is an engine
 	 */
-	FORCEINLINE bool IsEngine() const { return HasBit(this->subtype, TS_ENGINE); }
+	FORCEINLINE bool IsEngine() const { return HasBit(this->subtype, GVSF_ENGINE); }
 
 	/**
 	 * Check if a train is a wagon
 	 * @return Returns true if vehicle is a wagon
 	 */
-	FORCEINLINE bool IsWagon() const { return HasBit(this->subtype, TS_WAGON); }
+	FORCEINLINE bool IsWagon() const { return HasBit(this->subtype, GVSF_WAGON); }
 
 	/**
 	 * Check if train is a multiheaded engine
 	 * @return Returns true if vehicle is a multiheaded engine
 	 */
-	FORCEINLINE bool IsMultiheaded() const { return HasBit(this->subtype, TS_MULTIHEADED); }
+	FORCEINLINE bool IsMultiheaded() const { return HasBit(this->subtype, GVSF_MULTIHEADED); }
 
 	/**
 	 * Tell if we are dealing with the rear end of a multiheaded engine.
@@ -252,7 +238,7 @@
 	 * Check if train is an articulated part of an engine
 	 * @return Returns true if train is an articulated part
 	 */
-	FORCEINLINE bool IsArticulatedPart() const { return HasBit(this->subtype, TS_ARTICULATED_PART); }
+	FORCEINLINE bool IsArticulatedPart() const { return HasBit(this->subtype, GVSF_ARTICULATED_PART); }
 
 	/**
 	 * Check if an engine has an articulated part.