File diff r7640:7448cde64dcb → r7641:2b26b5be3fd7
src/road.h
Show inline comments
 
@@ -116,6 +116,36 @@ static inline RoadBits ComplementRoadBit
 
}
 

	
 
/**
 
 * Calculate the mirrored RoadBits
 
 *
 
 * Simply move the bits to their new position.
 
 *
 
 * @param r The given RoadBits value
 
 * @return the mirrored
 
 */
 
static inline RoadBits MirrorRoadBits(RoadBits r)
 
{
 
	return (RoadBits)(GB(r, 0, 2) << 2 | GB(r, 2, 2));
 
}
 

	
 
/**
 
 * Calculate rotated RoadBits
 
 *
 
 * Move the Roadbits clockwise til they are in their final position.
 
 *
 
 * @param r The given RoadBits value
 
 * @param rot The given Rotation angle
 
 * @return the rotated
 
 */
 
static inline RoadBits RotateRoadBits(RoadBits r, DiagDirDiff rot)
 
{
 
	for (; rot > (DiagDirDiff)0; rot--){
 
		r = (RoadBits)(GB(r, 0, 1) << 3 | GB(r, 1, 3));
 
	}
 
	return r;
 
}
 

	
 
/**
 
 * Create the road-part which belongs to the given DiagDirection
 
 *
 
 * This function returns a RoadBits value which belongs to
 
@@ -130,6 +160,16 @@ static inline RoadBits DiagDirToRoadBits
 
}
 

	
 
/**
 
 * Return if the tile is a valid tile for a crossing.
 
 *
 
 * @note function is overloaded
 
 * @param tile the curent tile
 
 * @param ax the axis of the road over the rail
 
 * @return true if it is a valid tile
 
 */
 
bool IsPossibleCrossing(const TileIndex tile, Axis ax);
 

	
 
/**
 
 * Checks whether the trackdir means that we are reversing.
 
 * @param dir the trackdir to check
 
 * @return true if it is a reversing road trackdir
 
@@ -150,6 +190,14 @@ static inline bool IsStraightRoadTrackdi
 
}
 

	
 
/**
 
 * Clean up unneccesary RoadBits of a planed tile.
 
 * @param tile current tile
 
 * @param org_rb planed RoadBits
 
 * @return optimised RoadBits
 
 */
 
RoadBits CleanUpRoadBits(const TileIndex tile, RoadBits org_rb);
 

	
 
/**
 
 * Is it allowed to remove the given road bits from the given tile?
 
 * @param tile      the tile to remove the road from
 
 * @param remove    the roadbits that are going to be removed