Files
@ r4603:3b159d0db197
Branch filter:
Location: cpp/openttd-patchpack/source/road_map.c - annotation
r4603:3b159d0db197
1.5 KiB
text/x-c
(svn r6455) - Feature: Add 2cc (two company colours) livery schemes. This replaces the original colour selection window and bumps the saveload version. Liveries are supported for all vehicles, not just those with 2cc support. Thanks to lakie for GUI inspiration.
r3146:b3862f32db0e r3146:b3862f32db0e r3146:b3862f32db0e r3146:b3862f32db0e r3196:ee64b4658e65 r3150:6242a630abac r3146:b3862f32db0e r3146:b3862f32db0e r3154:4ad5fba6d52a r3404:a8f769907ef8 r3927:7f9339259f74 r3146:b3862f32db0e r3146:b3862f32db0e r3146:b3862f32db0e r3146:b3862f32db0e r3146:b3862f32db0e r3146:b3862f32db0e r3793:c42788f521bd r3146:b3862f32db0e r3793:c42788f521bd r3793:c42788f521bd r3793:c42788f521bd r3146:b3862f32db0e r3146:b3862f32db0e r3146:b3862f32db0e r3404:a8f769907ef8 r3404:a8f769907ef8 r3146:b3862f32db0e r3146:b3862f32db0e r3977:63d936e7e5a8 r3977:63d936e7e5a8 r3977:63d936e7e5a8 r3977:63d936e7e5a8 r3977:63d936e7e5a8 r3977:63d936e7e5a8 r3977:63d936e7e5a8 r3977:63d936e7e5a8 r3977:63d936e7e5a8 r3977:63d936e7e5a8 r3977:63d936e7e5a8 r3977:63d936e7e5a8 r3977:63d936e7e5a8 r3977:63d936e7e5a8 r3154:4ad5fba6d52a r3154:4ad5fba6d52a r3146:b3862f32db0e r3146:b3862f32db0e r3146:b3862f32db0e r3146:b3862f32db0e r3146:b3862f32db0e r3150:6242a630abac r3150:6242a630abac r3150:6242a630abac r3150:6242a630abac r4233:35ef15227e43 r4233:35ef15227e43 r4233:35ef15227e43 r4233:35ef15227e43 r4233:35ef15227e43 r3927:7f9339259f74 r4233:35ef15227e43 r4233:35ef15227e43 r4233:35ef15227e43 r3150:6242a630abac | /* $Id$ */
#include "stdafx.h"
#include "openttd.h"
#include "bridge_map.h"
#include "functions.h"
#include "road_map.h"
#include "station.h"
#include "tunnel_map.h"
#include "station_map.h"
#include "depot.h"
RoadBits GetAnyRoadBits(TileIndex tile)
{
switch (GetTileType(tile)) {
case MP_STREET:
switch (GetRoadTileType(tile)) {
default:
case ROAD_TILE_NORMAL: return GetRoadBits(tile);
case ROAD_TILE_CROSSING: return GetCrossingRoadBits(tile);
case ROAD_TILE_DEPOT: return DiagDirToRoadBits(GetRoadDepotDirection(tile));
}
case MP_STATION:
if (!IsRoadStopTile(tile)) return 0;
return DiagDirToRoadBits(GetRoadStopDir(tile));
case MP_TUNNELBRIDGE:
if (IsBridge(tile)) {
if (IsBridgeMiddle(tile)) {
if (!IsTransportUnderBridge(tile) ||
GetBridgeTransportType(tile) != TRANSPORT_ROAD) {
return 0;
}
return GetRoadBitsUnderBridge(tile);
} else {
// ending
if (GetBridgeTransportType(tile) != TRANSPORT_ROAD) return 0;
return DiagDirToRoadBits(ReverseDiagDir(GetBridgeRampDirection(tile)));
}
} else {
// tunnel
if (GetTunnelTransportType(tile) != TRANSPORT_ROAD) return 0;
return DiagDirToRoadBits(ReverseDiagDir(GetTunnelDirection(tile)));
}
default: return 0;
}
}
TrackBits GetAnyRoadTrackBits(TileIndex tile)
{
uint32 r;
// Don't allow building through road depot tiles.
if (IsTileType(tile, MP_STREET) && IsTileDepotType(tile, TRANSPORT_ROAD)) {
return 0;
}
r = GetTileTrackStatus(tile, TRANSPORT_ROAD);
return (byte)(r | (r >> 8));
}
|