src/tunnelbridge.h
author glx
Sun, 15 Jun 2008 22:56:43 +0000
branchnoai
changeset 10973 8577bc56132c
parent 10249 58810805030e
permissions -rw-r--r--
(svn r13527) [NoAI] -Fix (r13525): squirrel_export doesn't like extra semicolon
9724
b39bc69bb2f2 (svn r12051) [NoAI] -Sync: with trunk (r11795:12050).
rubidium
parents:
diff changeset
     1
/* $Id$ */
b39bc69bb2f2 (svn r12051) [NoAI] -Sync: with trunk (r11795:12050).
rubidium
parents:
diff changeset
     2
b39bc69bb2f2 (svn r12051) [NoAI] -Sync: with trunk (r11795:12050).
rubidium
parents:
diff changeset
     3
/** @file tunnelbridge.h Header file for things common for tunnels and bridges */
b39bc69bb2f2 (svn r12051) [NoAI] -Sync: with trunk (r11795:12050).
rubidium
parents:
diff changeset
     4
b39bc69bb2f2 (svn r12051) [NoAI] -Sync: with trunk (r11795:12050).
rubidium
parents:
diff changeset
     5
#ifndef TUNNELBRIDGE_H
b39bc69bb2f2 (svn r12051) [NoAI] -Sync: with trunk (r11795:12050).
rubidium
parents:
diff changeset
     6
#define TUNNELBRIDGE_H
b39bc69bb2f2 (svn r12051) [NoAI] -Sync: with trunk (r11795:12050).
rubidium
parents:
diff changeset
     7
b39bc69bb2f2 (svn r12051) [NoAI] -Sync: with trunk (r11795:12050).
rubidium
parents:
diff changeset
     8
#include "tile_type.h"
b39bc69bb2f2 (svn r12051) [NoAI] -Sync: with trunk (r11795:12050).
rubidium
parents:
diff changeset
     9
b39bc69bb2f2 (svn r12051) [NoAI] -Sync: with trunk (r11795:12050).
rubidium
parents:
diff changeset
    10
/**
b39bc69bb2f2 (svn r12051) [NoAI] -Sync: with trunk (r11795:12050).
rubidium
parents:
diff changeset
    11
 * Calculates the length of a tunnel or a bridge (without end tiles)
b39bc69bb2f2 (svn r12051) [NoAI] -Sync: with trunk (r11795:12050).
rubidium
parents:
diff changeset
    12
 * @return length of bridge/tunnel middle
b39bc69bb2f2 (svn r12051) [NoAI] -Sync: with trunk (r11795:12050).
rubidium
parents:
diff changeset
    13
 */
b39bc69bb2f2 (svn r12051) [NoAI] -Sync: with trunk (r11795:12050).
rubidium
parents:
diff changeset
    14
static inline uint GetTunnelBridgeLength(TileIndex begin, TileIndex end)
b39bc69bb2f2 (svn r12051) [NoAI] -Sync: with trunk (r11795:12050).
rubidium
parents:
diff changeset
    15
{
b39bc69bb2f2 (svn r12051) [NoAI] -Sync: with trunk (r11795:12050).
rubidium
parents:
diff changeset
    16
	int x1 = TileX(begin);
b39bc69bb2f2 (svn r12051) [NoAI] -Sync: with trunk (r11795:12050).
rubidium
parents:
diff changeset
    17
	int y1 = TileY(begin);
b39bc69bb2f2 (svn r12051) [NoAI] -Sync: with trunk (r11795:12050).
rubidium
parents:
diff changeset
    18
	int x2 = TileX(end);
b39bc69bb2f2 (svn r12051) [NoAI] -Sync: with trunk (r11795:12050).
rubidium
parents:
diff changeset
    19
	int y2 = TileY(end);
b39bc69bb2f2 (svn r12051) [NoAI] -Sync: with trunk (r11795:12050).
rubidium
parents:
diff changeset
    20
b39bc69bb2f2 (svn r12051) [NoAI] -Sync: with trunk (r11795:12050).
rubidium
parents:
diff changeset
    21
	return abs(x2 + y2 - x1 - y1) - 1;
b39bc69bb2f2 (svn r12051) [NoAI] -Sync: with trunk (r11795:12050).
rubidium
parents:
diff changeset
    22
}
b39bc69bb2f2 (svn r12051) [NoAI] -Sync: with trunk (r11795:12050).
rubidium
parents:
diff changeset
    23
10249
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents: 9724
diff changeset
    24
extern TileIndex _build_tunnel_endtile;
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents: 9724
diff changeset
    25
9724
b39bc69bb2f2 (svn r12051) [NoAI] -Sync: with trunk (r11795:12050).
rubidium
parents:
diff changeset
    26
#endif /* TUNNELBRIDGE_H */