Files
@ r7882:cdf03a4ac84a
Branch filter:
Location: cpp/openttd-patchpack/source/src/tile.cpp - annotation
r7882:cdf03a4ac84a
1.4 KiB
text/x-c
(svn r11433) -Fix: starting OpenTTD with DOS files made it look weird out of the box.
-Change: make extra sprites (the ones not in the TTD GRFs) replaceable using Action 5.
-Feature: make replacing contiguous subsets of sprites in for some types possible in Action 5.
Note to GRF authors: when you replaced OpenTTD sprites that are not from the TTD GRF files using Action A, your GRF will not have the intended result anymore as the sprite numbers have changed. You should replace the Action A with an Action 5 from now on.
-Change: make extra sprites (the ones not in the TTD GRFs) replaceable using Action 5.
-Feature: make replacing contiguous subsets of sprites in for some types possible in Action 5.
Note to GRF authors: when you replaced OpenTTD sprites that are not from the TTD GRF files using Action A, your GRF will not have the intended result anymore as the sprite numbers have changed. You should replace the Action A with an Action 5 from now on.
r5584:545d748cc681 r5584:545d748cc681 r6422:5983361e241a r6422:5983361e241a r5584:545d748cc681 r5584:545d748cc681 r5584:545d748cc681 r5584:545d748cc681 r5584:545d748cc681 r5584:545d748cc681 r5584:545d748cc681 r5584:545d748cc681 r5584:545d748cc681 r5584:545d748cc681 r5584:545d748cc681 r5584:545d748cc681 r5584:545d748cc681 r5584:545d748cc681 r5584:545d748cc681 r5584:545d748cc681 r5587:034e5e185dc2 r5584:545d748cc681 r5584:545d748cc681 r5584:545d748cc681 r5584:545d748cc681 r7323:a531c9f4c784 r5584:545d748cc681 r7323:a531c9f4c784 r5584:545d748cc681 r7323:a531c9f4c784 r5584:545d748cc681 r5584:545d748cc681 r5584:545d748cc681 r5584:545d748cc681 r5584:545d748cc681 r5584:545d748cc681 r5584:545d748cc681 r5584:545d748cc681 r5584:545d748cc681 r5587:034e5e185dc2 r5584:545d748cc681 r5584:545d748cc681 r5584:545d748cc681 r5584:545d748cc681 r7323:a531c9f4c784 r7323:a531c9f4c784 r7323:a531c9f4c784 r7323:a531c9f4c784 r7323:a531c9f4c784 r7323:a531c9f4c784 r7323:a531c9f4c784 r7323:a531c9f4c784 r5584:545d748cc681 r5584:545d748cc681 r5584:545d748cc681 r5584:545d748cc681 r5584:545d748cc681 r7324:414a78d605b6 r5584:545d748cc681 r7323:a531c9f4c784 r7323:a531c9f4c784 r7323:a531c9f4c784 r7323:a531c9f4c784 r7323:a531c9f4c784 r7323:a531c9f4c784 r5584:545d748cc681 | /* $Id$ */
/** @file tile.cpp */
#include "stdafx.h"
#include "tile.h"
Slope GetTileSlope(TileIndex tile, uint *h)
{
uint a;
uint b;
uint c;
uint d;
uint min;
uint r;
assert(tile < MapSize());
if (TileX(tile) == MapMaxX() || TileY(tile) == MapMaxY()) {
if (h != NULL) *h = 0;
return SLOPE_FLAT;
}
min = a = TileHeight(tile);
b = TileHeight(tile + TileDiffXY(1, 0));
if (min > b) min = b;
c = TileHeight(tile + TileDiffXY(0, 1));
if (min > c) min = c;
d = TileHeight(tile + TileDiffXY(1, 1));
if (min > d) min = d;
r = SLOPE_FLAT;
if ((a -= min) != 0) r += (--a << 4) + SLOPE_N;
if ((c -= min) != 0) r += (--c << 4) + SLOPE_E;
if ((d -= min) != 0) r += (--d << 4) + SLOPE_S;
if ((b -= min) != 0) r += (--b << 4) + SLOPE_W;
if (h != NULL) *h = min * TILE_HEIGHT;
return (Slope)r;
}
uint GetTileZ(TileIndex tile)
{
if (TileX(tile) == MapMaxX() || TileY(tile) == MapMaxY()) return 0;
uint h = TileHeight(tile);
h = min(h, TileHeight(tile + TileDiffXY(1, 0)));
h = min(h, TileHeight(tile + TileDiffXY(0, 1)));
h = min(h, TileHeight(tile + TileDiffXY(1, 1)));
return h * TILE_HEIGHT;
}
uint GetTileMaxZ(TileIndex t)
{
if (TileX(t) == MapMaxX() || TileY(t) == MapMaxY()) return 0;
uint h = TileHeight(t);
h = max(h, TileHeight(t + TileDiffXY(1, 0)));
h = max(h, TileHeight(t + TileDiffXY(0, 1)));
h = max(h, TileHeight(t + TileDiffXY(1, 1)));
return h * TILE_HEIGHT;
}
|