src/elrail_func.h
author glx
Thu, 29 May 2008 15:56:32 +0000
branchnoai
changeset 10776 07203fc29812
parent 10715 6bdf79ffb022
permissions -rw-r--r--
(svn r13326) [NoAI] -Sync with trunk r13264:13325
[NoAI] -Change [API CHANGE]: removed AISign.GetSignCount()
10513
33cb70ff2f5d (svn r13056) [NoAI] -Sync: with trunk r12996:13055.
rubidium
parents:
diff changeset
     1
/* $Id$ */
33cb70ff2f5d (svn r13056) [NoAI] -Sync: with trunk r12996:13055.
rubidium
parents:
diff changeset
     2
33cb70ff2f5d (svn r13056) [NoAI] -Sync: with trunk r12996:13055.
rubidium
parents:
diff changeset
     3
/** @file elrail_func.h header file for electrified rail specific functions */
33cb70ff2f5d (svn r13056) [NoAI] -Sync: with trunk r12996:13055.
rubidium
parents:
diff changeset
     4
33cb70ff2f5d (svn r13056) [NoAI] -Sync: with trunk r12996:13055.
rubidium
parents:
diff changeset
     5
#ifndef ELRAIL_FUNC_H
33cb70ff2f5d (svn r13056) [NoAI] -Sync: with trunk r12996:13055.
rubidium
parents:
diff changeset
     6
#define ELRAIL_FUNC_H
33cb70ff2f5d (svn r13056) [NoAI] -Sync: with trunk r12996:13055.
rubidium
parents:
diff changeset
     7
33cb70ff2f5d (svn r13056) [NoAI] -Sync: with trunk r12996:13055.
rubidium
parents:
diff changeset
     8
#include "rail.h"
33cb70ff2f5d (svn r13056) [NoAI] -Sync: with trunk r12996:13055.
rubidium
parents:
diff changeset
     9
#include "transparency.h"
33cb70ff2f5d (svn r13056) [NoAI] -Sync: with trunk r12996:13055.
rubidium
parents:
diff changeset
    10
#include "tile_cmd.h"
33cb70ff2f5d (svn r13056) [NoAI] -Sync: with trunk r12996:13055.
rubidium
parents:
diff changeset
    11
#include "settings_type.h"
33cb70ff2f5d (svn r13056) [NoAI] -Sync: with trunk r12996:13055.
rubidium
parents:
diff changeset
    12
33cb70ff2f5d (svn r13056) [NoAI] -Sync: with trunk r12996:13055.
rubidium
parents:
diff changeset
    13
/**
33cb70ff2f5d (svn r13056) [NoAI] -Sync: with trunk r12996:13055.
rubidium
parents:
diff changeset
    14
 * Test if a rail type has catenary
33cb70ff2f5d (svn r13056) [NoAI] -Sync: with trunk r12996:13055.
rubidium
parents:
diff changeset
    15
 * @param rt Rail type to test
33cb70ff2f5d (svn r13056) [NoAI] -Sync: with trunk r12996:13055.
rubidium
parents:
diff changeset
    16
 */
33cb70ff2f5d (svn r13056) [NoAI] -Sync: with trunk r12996:13055.
rubidium
parents:
diff changeset
    17
static inline bool HasCatenary(RailType rt)
33cb70ff2f5d (svn r13056) [NoAI] -Sync: with trunk r12996:13055.
rubidium
parents:
diff changeset
    18
{
33cb70ff2f5d (svn r13056) [NoAI] -Sync: with trunk r12996:13055.
rubidium
parents:
diff changeset
    19
	return HasBit(GetRailTypeInfo(rt)->flags, RTF_CATENARY);
33cb70ff2f5d (svn r13056) [NoAI] -Sync: with trunk r12996:13055.
rubidium
parents:
diff changeset
    20
}
33cb70ff2f5d (svn r13056) [NoAI] -Sync: with trunk r12996:13055.
rubidium
parents:
diff changeset
    21
33cb70ff2f5d (svn r13056) [NoAI] -Sync: with trunk r12996:13055.
rubidium
parents:
diff changeset
    22
/**
33cb70ff2f5d (svn r13056) [NoAI] -Sync: with trunk r12996:13055.
rubidium
parents:
diff changeset
    23
 * Test if we should draw rail catenary
33cb70ff2f5d (svn r13056) [NoAI] -Sync: with trunk r12996:13055.
rubidium
parents:
diff changeset
    24
 * @param rt Rail type to test
33cb70ff2f5d (svn r13056) [NoAI] -Sync: with trunk r12996:13055.
rubidium
parents:
diff changeset
    25
 */
33cb70ff2f5d (svn r13056) [NoAI] -Sync: with trunk r12996:13055.
rubidium
parents:
diff changeset
    26
static inline bool HasCatenaryDrawn(RailType rt)
33cb70ff2f5d (svn r13056) [NoAI] -Sync: with trunk r12996:13055.
rubidium
parents:
diff changeset
    27
{
10776
07203fc29812 (svn r13326) [NoAI] -Sync with trunk r13264:13325
glx
parents: 10715
diff changeset
    28
	return HasCatenary(rt) && !IsInvisibilitySet(TO_CATENARY) && !_settings_game.vehicle.disable_elrails;
10513
33cb70ff2f5d (svn r13056) [NoAI] -Sync: with trunk r12996:13055.
rubidium
parents:
diff changeset
    29
}
33cb70ff2f5d (svn r13056) [NoAI] -Sync: with trunk r12996:13055.
rubidium
parents:
diff changeset
    30
33cb70ff2f5d (svn r13056) [NoAI] -Sync: with trunk r12996:13055.
rubidium
parents:
diff changeset
    31
/**
33cb70ff2f5d (svn r13056) [NoAI] -Sync: with trunk r12996:13055.
rubidium
parents:
diff changeset
    32
 * Draws overhead wires and pylons for electric railways.
33cb70ff2f5d (svn r13056) [NoAI] -Sync: with trunk r12996:13055.
rubidium
parents:
diff changeset
    33
 * @param ti The TileInfo struct of the tile being drawn
33cb70ff2f5d (svn r13056) [NoAI] -Sync: with trunk r12996:13055.
rubidium
parents:
diff changeset
    34
 * @see DrawCatenaryRailway
33cb70ff2f5d (svn r13056) [NoAI] -Sync: with trunk r12996:13055.
rubidium
parents:
diff changeset
    35
 */
33cb70ff2f5d (svn r13056) [NoAI] -Sync: with trunk r12996:13055.
rubidium
parents:
diff changeset
    36
void DrawCatenary(const TileInfo *ti);
33cb70ff2f5d (svn r13056) [NoAI] -Sync: with trunk r12996:13055.
rubidium
parents:
diff changeset
    37
void DrawCatenaryOnTunnel(const TileInfo *ti);
33cb70ff2f5d (svn r13056) [NoAI] -Sync: with trunk r12996:13055.
rubidium
parents:
diff changeset
    38
void DrawCatenaryOnBridge(const TileInfo *ti);
33cb70ff2f5d (svn r13056) [NoAI] -Sync: with trunk r12996:13055.
rubidium
parents:
diff changeset
    39
10776
07203fc29812 (svn r13326) [NoAI] -Sync with trunk r13264:13325
glx
parents: 10715
diff changeset
    40
int32 SettingsDisableElrail(int32 p1); ///< _settings_game.disable_elrail callback
10513
33cb70ff2f5d (svn r13056) [NoAI] -Sync: with trunk r12996:13055.
rubidium
parents:
diff changeset
    41
33cb70ff2f5d (svn r13056) [NoAI] -Sync: with trunk r12996:13055.
rubidium
parents:
diff changeset
    42
#endif /* ELRAIL_FUNC_H */