Files
@ r3303:1bae0f5399a4
Branch filter:
Location: cpp/openttd-patchpack/source/tile.c - annotation
r3303:1bae0f5399a4
1.3 KiB
text/x-c
(svn r4060) -Codechange: [OSX] made the release target (in os/macosx/Makefile) easier to use since it gives the release disk image the right name automatically
it now uses REV instead of RELEASE, which means RELEASE is not needed to be set manaully anymore
it also automatically adds "-jaguar" when making a build aimed at OSX 10.2 (codenamed jaguar)
it now uses REV instead of RELEASE, which means RELEASE is not needed to be set manaully anymore
it also automatically adds "-jaguar" when making a build aimed at OSX 10.2 (codenamed jaguar)
r2186:5ee653b1b5e1 r2186:5ee653b1b5e1 r1213:669b5bbfb6c5 r1211:0ff891861c37 r1211:0ff891861c37 r1211:0ff891861c37 r1211:0ff891861c37 r1211:0ff891861c37 r2049:7e26d55f0f4c r1211:0ff891861c37 r1211:0ff891861c37 r1211:0ff891861c37 r1211:0ff891861c37 r1211:0ff891861c37 r2049:7e26d55f0f4c r1211:0ff891861c37 r1335:da4955366538 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 r3279:91e2701faa6f 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"
void SetMapExtraBits(TileIndex tile, byte bits)
{
assert(tile < MapSize());
SB(_m[tile].extra, 0, 2, bits & 3);
}
uint GetMapExtraBits(TileIndex tile)
{
assert(tile < MapSize());
return GB(_m[tile].extra, 0, 2);
}
/** 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 * 8;
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;
}
|