(svn r21922) -Codechange: Unify articulated vehicle checking functions.

This commit is contained in:
terkhen 2011-01-29 17:26:23 +00:00
parent 23ffef05ce
commit 9626e0bf2b
2 changed files with 27 additions and 18 deletions

View File

@ -302,12 +302,6 @@ struct GroundVehicle : public SpecializedVehicle<T, Type> {
*/
FORCEINLINE void ClearMultiheaded() { ClrBit(this->subtype, GVSF_MULTIHEADED); }
/**
* Check if the vehicle is a front engine.
* @return Returns true if the vehicle is a front engine.
*/
FORCEINLINE bool IsFrontEngine() const { return HasBit(this->subtype, GVSF_FRONT); }
/**
* Check if the vehicle is a free wagon (got no engine in front of it).
* @return Returns true if the vehicle is a free wagon.
@ -338,18 +332,6 @@ struct GroundVehicle : public SpecializedVehicle<T, Type> {
*/
FORCEINLINE bool IsRearDualheaded() const { return this->IsMultiheaded() && !this->IsEngine(); }
/**
* Check if the vehicle is an articulated part of an engine.
* @return Returns true if the vehicle is an articulated part.
*/
FORCEINLINE bool IsArticulatedPart() const { return HasBit(this->subtype, GVSF_ARTICULATED_PART); }
/**
* Check if an engine has an articulated part.
* @return True if the engine has an articulated part.
*/
FORCEINLINE bool HasArticulatedPart() const { return this->Next() != NULL && this->Next()->IsArticulatedPart(); }
/**
* Update the GUI variant of the current speed of the vehicle.
* Also mark the widget dirty when that is needed, i.e. when

View File

@ -644,6 +644,33 @@ public:
bool IsEngineCountable() const;
bool HasDepotOrder() const;
void HandlePathfindingResult(bool path_found);
/**
* Check if the vehicle is a front engine.
* @return Returns true if the vehicle is a front engine.
*/
FORCEINLINE bool IsFrontEngine() const
{
return this->IsGroundVehicle() && HasBit(this->subtype, GVSF_FRONT);
}
/**
* Check if the vehicle is an articulated part of an engine.
* @return Returns true if the vehicle is an articulated part.
*/
FORCEINLINE bool IsArticulatedPart() const
{
return this->IsGroundVehicle() && HasBit(this->subtype, GVSF_ARTICULATED_PART);
}
/**
* Check if an engine has an articulated part.
* @return True if the engine has an articulated part.
*/
FORCEINLINE bool HasArticulatedPart() const
{
return this->Next() != NULL && this->Next()->IsArticulatedPart();
}
};
#define FOR_ALL_VEHICLES_FROM(var, start) FOR_ALL_ITEMS_FROM(Vehicle, vehicle_index, var, start)