src/bridge_map.cpp
author translators
Mon, 22 Sep 2008 19:58:46 +0000
changeset 10179 8d79cda44991
parent 8083 ad22eade501f
permissions -rw-r--r--
(svn r14386) -Update: WebTranslator2 update to 2008-09-22 19:58:30
brazilian_portuguese - 3 fixed by tucalipe (3)
catalan - 3 fixed by arnaullv (3)
english_US - 2 fixed by WhiteRabbit (2)
estonian - 1 fixed by kristjans (1)
french - 1 fixed by glx (1)
galician - 1 changed by Condex (1)
hungarian - 3 changed by alyr (3)
korean - 18 changed by dlunch (18)
norwegian_bokmal - 194 fixed by christian (194)
spanish - 2 fixed by eusebio (2)
/* $Id$ */

/** @file bridge_map.cpp Map accessor functions for bridges. */

#include "stdafx.h"
#include "openttd.h"
#include "bridge_map.h"
#include "bridge.h"
#include "variables.h"
#include "landscape.h"
#include "tunnelbridge_map.h"


TileIndex GetBridgeEnd(TileIndex tile, DiagDirection dir)
{
	TileIndexDiff delta = TileOffsByDiagDir(dir);

	dir = ReverseDiagDir(dir);
	do {
		tile += delta;
	} while (!IsBridgeTile(tile) || GetTunnelBridgeDirection(tile) != dir);

	return tile;
}


TileIndex GetNorthernBridgeEnd(TileIndex t)
{
	return GetBridgeEnd(t, ReverseDiagDir(AxisToDiagDir(GetBridgeAxis(t))));
}


TileIndex GetSouthernBridgeEnd(TileIndex t)
{
	return GetBridgeEnd(t, AxisToDiagDir(GetBridgeAxis(t)));
}


TileIndex GetOtherBridgeEnd(TileIndex tile)
{
	assert(IsBridgeTile(tile));
	return GetBridgeEnd(tile, GetTunnelBridgeDirection(tile));
}

uint GetBridgeHeight(TileIndex t)
{
	uint h;
	Slope tileh = GetTileSlope(t, &h);
	Foundation f = GetBridgeFoundation(tileh, DiagDirToAxis(GetTunnelBridgeDirection(t)));

	/* one height level extra for the ramp */
	return h + TILE_HEIGHT + ApplyFoundationToSlope(f, &tileh);
}