Files
@ r3478:523ece58cb16
Branch filter:
Location: cpp/openttd-patchpack/source/tile.c - annotation
r3478:523ece58cb16
1.1 KiB
text/x-c
(svn r4323) -Regression: Clear the slot assignments of all vehicles heading twoards a road stop if that road stop gets removed
This issue was fixed in r2210 and reintroduced in r4259 when the multistop handling was overhauled.
This issue was fixed in r2210 and reintroduced in r4259 when the multistop handling was overhauled.
r2186:5ee653b1b5e1 r2186:5ee653b1b5e1 r1213:669b5bbfb6c5 r1211:0ff891861c37 r1211:0ff891861c37 r3279:91e2701faa6f r3279:91e2701faa6f r3279:91e2701faa6f r3279:91e2701faa6f r3279:91e2701faa6f r3279:91e2701faa6f r3279:91e2701faa6f r3279:91e2701faa6f r3279:91e2701faa6f r3279:91e2701faa6f r3279:91e2701faa6f r3279:91e2701faa6f r3279:91e2701faa6f r3279:91e2701faa6f r3279:91e2701faa6f r3279:91e2701faa6f r3279:91e2701faa6f r3279:91e2701faa6f r3279:91e2701faa6f r3279:91e2701faa6f r3422:cca72d7a228c r3279:91e2701faa6f r3279:91e2701faa6f r3279:91e2701faa6f r1335:da4955366538 r1335:da4955366538 r1335:da4955366538 r1335:da4955366538 r1335:da4955366538 r1335:da4955366538 r1335:da4955366538 r1335:da4955366538 r1335:da4955366538 r1335:da4955366538 r1335:da4955366538 r1335:da4955366538 r1335:da4955366538 r1335:da4955366538 r1335:da4955366538 r3279:91e2701faa6f r1981:addba4bccc89 r1981:addba4bccc89 r1981:addba4bccc89 r1335:da4955366538 r3279:91e2701faa6f r1335:da4955366538 r1335:da4955366538 r1335:da4955366538 r1335:da4955366538 r1335:da4955366538 r1335:da4955366538 r1335:da4955366538 r1335:da4955366538 | /* $Id$ */
#include "stdafx.h"
#include "tile.h"
/** Converts the heights of 4 corners into a tileh, and returns the minimum height of the tile
* @param n,w,e,s the four corners
* @param h uint pointer to write the height to
* @return the tileh
*/
uint GetTileh(uint n, uint w, uint e, uint s, uint *h)
{
uint min = n;
uint r;
if (min >= w) min = w;
if (min >= e) min = e;
if (min >= s) min = s;
r = 0;
if ((n -= min) != 0) r += (--n << 4) + 8;
if ((e -= min) != 0) r += (--e << 4) + 4;
if ((s -= min) != 0) r += (--s << 4) + 2;
if ((w -= min) != 0) r += (--w << 4) + 1;
if (h != NULL) *h = min * TILE_HEIGHT;
return r;
}
uint GetTileSlope(TileIndex tile, uint *h)
{
uint a;
uint b;
uint c;
uint d;
assert(tile < MapSize());
if (TileX(tile) == MapMaxX() || TileY(tile) == MapMaxY()) {
if (h != NULL) *h = 0;
return 0;
}
a = TileHeight(tile);
b = TileHeight(tile + TileDiffXY(1, 0));
c = TileHeight(tile + TileDiffXY(0, 1));
d = TileHeight(tile + TileDiffXY(1, 1));
return GetTileh(a, b, c, d, h);
}
uint GetTileZ(TileIndex tile)
{
uint h;
GetTileSlope(tile, &h);
return h;
}
|