mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2025-02-08 15:30:00 +00:00
(svn r21882) -Codechange: make use of the fact that vehicle's Z position can change only if it has GVF_GOINGUP_BIT or GVF_GOINGDOWN_BIT set
This commit is contained in:
parent
2a2363e819
commit
e860075a16
@ -151,12 +151,8 @@ struct GroundVehicle : public SpecializedVehicle<T, Type> {
|
|||||||
*/
|
*/
|
||||||
FORCEINLINE void UpdateZPosition()
|
FORCEINLINE void UpdateZPosition()
|
||||||
{
|
{
|
||||||
/* Flat tile, tile with two opposing corners raised and tile with 3 corners
|
/* Vehicle's Z position can change only if it has GVF_GOINGUP_BIT or GVF_GOINGDOWN_BIT set */
|
||||||
* raised can never have sloped track ... */
|
if (HasBit(this->gv_flags, GVF_GOINGUP_BIT) || HasBit(this->gv_flags, GVF_GOINGDOWN_BIT)) {
|
||||||
static const uint32 never_sloped = 1 << SLOPE_FLAT | 1 << SLOPE_EW | 1 << SLOPE_NS | 1 << SLOPE_NWS | 1 << SLOPE_WSE | 1 << SLOPE_SEN | 1 << SLOPE_ENW;
|
|
||||||
/* ... unless it's a bridge head. */
|
|
||||||
if (IsTileType(this->tile, MP_TUNNELBRIDGE) || // the following check would be true for tunnels anyway
|
|
||||||
(T::From(this)->TileMayHaveSlopedTrack() && !HasBit(never_sloped, GetTileSlope(this->tile, NULL)))) {
|
|
||||||
this->z_pos = GetSlopeZ(this->x_pos, this->y_pos);
|
this->z_pos = GetSlopeZ(this->x_pos, this->y_pos);
|
||||||
} else {
|
} else {
|
||||||
/* Verify that assumption. */
|
/* Verify that assumption. */
|
||||||
|
Loading…
Reference in New Issue
Block a user