author | rubidium |
Tue, 18 Dec 2007 20:10:21 +0000 | |
changeset 8101 | d5357bde8cab |
parent 7932 | 6c3d71e8a129 |
child 8102 | 906a3d3b6df1 |
permissions | -rw-r--r-- |
3069
9a1fd047b595
(svn r3658) Add functions and symbolic names to retrieve road tile types and road pieces
tron
parents:
diff
changeset
|
1 |
/* $Id$ */ |
9a1fd047b595
(svn r3658) Add functions and symbolic names to retrieve road tile types and road pieces
tron
parents:
diff
changeset
|
2 |
|
6393
e1e4939d19b5
(svn r9523) -Cleanup: doxygen changes. Time to take care of "R"
belugas
parents:
6390
diff
changeset
|
3 |
/** @file road_map.h */ |
e1e4939d19b5
(svn r9523) -Cleanup: doxygen changes. Time to take care of "R"
belugas
parents:
6390
diff
changeset
|
4 |
|
3145
e833d7a78887
(svn r3765) Fix some naming glitches in r3763 and add missing svn properties
tron
parents:
3144
diff
changeset
|
5 |
#ifndef ROAD_MAP_H |
e833d7a78887
(svn r3765) Fix some naming glitches in r3763 and add missing svn properties
tron
parents:
3144
diff
changeset
|
6 |
#define ROAD_MAP_H |
3069
9a1fd047b595
(svn r3658) Add functions and symbolic names to retrieve road tile types and road pieces
tron
parents:
diff
changeset
|
7 |
|
9a1fd047b595
(svn r3658) Add functions and symbolic names to retrieve road tile types and road pieces
tron
parents:
diff
changeset
|
8 |
#include "macros.h" |
8101
d5357bde8cab
(svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
7932
diff
changeset
|
9 |
#include "track_func.h" |
d5357bde8cab
(svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
7932
diff
changeset
|
10 |
#include "rail_type.h" |
3518
c1e19f08fc25
(svn r4374) Never directly commit something you prepared the evening before, mysteriously it will break in the morning, fix r4373
tron
parents:
3497
diff
changeset
|
11 |
#include "road.h" |
3099
571719b2cee3
(svn r3689) Add functions to turn a tile into either a normal road tile, a level crossing or a road depot
tron
parents:
3070
diff
changeset
|
12 |
#include "tile.h" |
3069
9a1fd047b595
(svn r3658) Add functions and symbolic names to retrieve road tile types and road pieces
tron
parents:
diff
changeset
|
13 |
|
3146
8d95593c5ff0
(svn r3766) Add a function to get the RoadBits from an arbitrary tile
tron
parents:
3145
diff
changeset
|
14 |
|
6248
e4a2ed7e5613
(svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium
parents:
6172
diff
changeset
|
15 |
enum RoadTileType { |
3793
7fe24e10ea63
(svn r4789) - Codechange: rename RoadType to RoadTileType and ROAD_{NORMAL,CROSSING,DEPOT} to ROAD_TILE_* for consistency
rubidium
parents:
3560
diff
changeset
|
16 |
ROAD_TILE_NORMAL, |
7fe24e10ea63
(svn r4789) - Codechange: rename RoadType to RoadTileType and ROAD_{NORMAL,CROSSING,DEPOT} to ROAD_TILE_* for consistency
rubidium
parents:
3560
diff
changeset
|
17 |
ROAD_TILE_CROSSING, |
7fe24e10ea63
(svn r4789) - Codechange: rename RoadType to RoadTileType and ROAD_{NORMAL,CROSSING,DEPOT} to ROAD_TILE_* for consistency
rubidium
parents:
3560
diff
changeset
|
18 |
ROAD_TILE_DEPOT |
6248
e4a2ed7e5613
(svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium
parents:
6172
diff
changeset
|
19 |
}; |
3369
cab209754317
(svn r4166) Sprinkle several map accessors with assert()s
tron
parents:
3322
diff
changeset
|
20 |
|
3793
7fe24e10ea63
(svn r4789) - Codechange: rename RoadType to RoadTileType and ROAD_{NORMAL,CROSSING,DEPOT} to ROAD_TILE_* for consistency
rubidium
parents:
3560
diff
changeset
|
21 |
static inline RoadTileType GetRoadTileType(TileIndex t) |
6661
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
22 |
{ |
7370
41adc721b1fa
(svn r10733) -Codechange: change MP_STREET into MP_ROAD as we use the word "road" everywhere except in the tile type.
rubidium
parents:
6778
diff
changeset
|
23 |
assert(IsTileType(t, MP_ROAD)); |
6661
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
24 |
return (RoadTileType)GB(_m[t].m5, 6, 2); |
3150
729951cb5448
(svn r3773) Shove some semantics down ottd's throat by replacing ints and magic numbers by enums and some related changes
tron
parents:
3146
diff
changeset
|
25 |
} |
729951cb5448
(svn r3773) Shove some semantics down ottd's throat by replacing ints and magic numbers by enums and some related changes
tron
parents:
3146
diff
changeset
|
26 |
|
3497
154080838ed1
(svn r4348) Move IsLevelCrossing() from rail.h to road_map.h
tron
parents:
3430
diff
changeset
|
27 |
static inline bool IsLevelCrossing(TileIndex t) |
154080838ed1
(svn r4348) Move IsLevelCrossing() from rail.h to road_map.h
tron
parents:
3430
diff
changeset
|
28 |
{ |
3793
7fe24e10ea63
(svn r4789) - Codechange: rename RoadType to RoadTileType and ROAD_{NORMAL,CROSSING,DEPOT} to ROAD_TILE_* for consistency
rubidium
parents:
3560
diff
changeset
|
29 |
return GetRoadTileType(t) == ROAD_TILE_CROSSING; |
3497
154080838ed1
(svn r4348) Move IsLevelCrossing() from rail.h to road_map.h
tron
parents:
3430
diff
changeset
|
30 |
} |
154080838ed1
(svn r4348) Move IsLevelCrossing() from rail.h to road_map.h
tron
parents:
3430
diff
changeset
|
31 |
|
3560
b2fcf1898eec
(svn r4435) - Fix: an assertion triggered when trying to remove a bridge with the remove-tool (r4348 surfaced this). In CmdRemoveRoad tiletype was not checked for ownership. Intorudce IsLevelCrossingTile() which checks if a tile is a crossing without knowing the type. Suggested by peter1138 and Tron.
Darkvater
parents:
3518
diff
changeset
|
32 |
static inline bool IsLevelCrossingTile(TileIndex t) |
b2fcf1898eec
(svn r4435) - Fix: an assertion triggered when trying to remove a bridge with the remove-tool (r4348 surfaced this). In CmdRemoveRoad tiletype was not checked for ownership. Intorudce IsLevelCrossingTile() which checks if a tile is a crossing without knowing the type. Suggested by peter1138 and Tron.
Darkvater
parents:
3518
diff
changeset
|
33 |
{ |
7370
41adc721b1fa
(svn r10733) -Codechange: change MP_STREET into MP_ROAD as we use the word "road" everywhere except in the tile type.
rubidium
parents:
6778
diff
changeset
|
34 |
return IsTileType(t, MP_ROAD) && IsLevelCrossing(t); |
3560
b2fcf1898eec
(svn r4435) - Fix: an assertion triggered when trying to remove a bridge with the remove-tool (r4348 surfaced this). In CmdRemoveRoad tiletype was not checked for ownership. Intorudce IsLevelCrossingTile() which checks if a tile is a crossing without knowing the type. Suggested by peter1138 and Tron.
Darkvater
parents:
3518
diff
changeset
|
35 |
} |
3150
729951cb5448
(svn r3773) Shove some semantics down ottd's throat by replacing ints and magic numbers by enums and some related changes
tron
parents:
3146
diff
changeset
|
36 |
|
6661
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
37 |
static inline RoadBits GetRoadBits(TileIndex t, RoadType rt) |
3272
b3e2d8e19937
(svn r3984) Add a function to get the road axis of a level crossing
tron
parents:
3196
diff
changeset
|
38 |
{ |
3793
7fe24e10ea63
(svn r4789) - Codechange: rename RoadType to RoadTileType and ROAD_{NORMAL,CROSSING,DEPOT} to ROAD_TILE_* for consistency
rubidium
parents:
3560
diff
changeset
|
39 |
assert(GetRoadTileType(t) == ROAD_TILE_NORMAL); |
6661
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
40 |
switch (rt) { |
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
41 |
default: NOT_REACHED(); |
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
42 |
case ROADTYPE_ROAD: return (RoadBits)GB(_m[t].m4, 0, 4); |
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
43 |
case ROADTYPE_TRAM: return (RoadBits)GB(_m[t].m4, 4, 4); |
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
44 |
case ROADTYPE_HWAY: return (RoadBits)GB(_m[t].m6, 2, 4); |
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
45 |
} |
3369
cab209754317
(svn r4166) Sprinkle several map accessors with assert()s
tron
parents:
3322
diff
changeset
|
46 |
} |
cab209754317
(svn r4166) Sprinkle several map accessors with assert()s
tron
parents:
3322
diff
changeset
|
47 |
|
6661
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
48 |
static inline RoadBits GetAllRoadBits(TileIndex tile) |
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
49 |
{ |
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
50 |
return GetRoadBits(tile, ROADTYPE_ROAD) | GetRoadBits(tile, ROADTYPE_TRAM) | GetRoadBits(tile, ROADTYPE_HWAY); |
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
51 |
} |
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
52 |
|
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
53 |
static inline void SetRoadBits(TileIndex t, RoadBits r, RoadType rt) |
3369
cab209754317
(svn r4166) Sprinkle several map accessors with assert()s
tron
parents:
3322
diff
changeset
|
54 |
{ |
3793
7fe24e10ea63
(svn r4789) - Codechange: rename RoadType to RoadTileType and ROAD_{NORMAL,CROSSING,DEPOT} to ROAD_TILE_* for consistency
rubidium
parents:
3560
diff
changeset
|
55 |
assert(GetRoadTileType(t) == ROAD_TILE_NORMAL); // XXX incomplete |
6661
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
56 |
switch (rt) { |
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
57 |
default: NOT_REACHED(); |
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
58 |
case ROADTYPE_ROAD: SB(_m[t].m4, 0, 4, r); break; |
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
59 |
case ROADTYPE_TRAM: SB(_m[t].m4, 4, 4, r); break; |
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
60 |
case ROADTYPE_HWAY: SB(_m[t].m6, 2, 4, r); break; |
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
61 |
} |
3369
cab209754317
(svn r4166) Sprinkle several map accessors with assert()s
tron
parents:
3322
diff
changeset
|
62 |
} |
cab209754317
(svn r4166) Sprinkle several map accessors with assert()s
tron
parents:
3322
diff
changeset
|
63 |
|
6661
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
64 |
static inline RoadTypes GetRoadTypes(TileIndex t) |
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
65 |
{ |
7370
41adc721b1fa
(svn r10733) -Codechange: change MP_STREET into MP_ROAD as we use the word "road" everywhere except in the tile type.
rubidium
parents:
6778
diff
changeset
|
66 |
if (IsTileType(t, MP_ROAD)) { |
6661
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
67 |
return (RoadTypes)GB(_me[t].m7, 5, 3); |
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
68 |
} else { |
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
69 |
return (RoadTypes)GB(_m[t].m3, 0, 3); |
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
70 |
} |
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
71 |
} |
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
72 |
|
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
73 |
static inline void SetRoadTypes(TileIndex t, RoadTypes rt) |
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
74 |
{ |
7370
41adc721b1fa
(svn r10733) -Codechange: change MP_STREET into MP_ROAD as we use the word "road" everywhere except in the tile type.
rubidium
parents:
6778
diff
changeset
|
75 |
if (IsTileType(t, MP_ROAD)) { |
6661
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
76 |
SB(_me[t].m7, 5, 3, rt); |
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
77 |
} else { |
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
78 |
assert(IsTileType(t, MP_STATION) || IsTileType(t, MP_TUNNELBRIDGE)); |
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
79 |
SB(_m[t].m3, 0, 2, rt); |
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
80 |
} |
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
81 |
} |
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
82 |
|
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
83 |
static inline Owner GetRoadOwner(TileIndex t, RoadType rt) |
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
84 |
{ |
7370
41adc721b1fa
(svn r10733) -Codechange: change MP_STREET into MP_ROAD as we use the word "road" everywhere except in the tile type.
rubidium
parents:
6778
diff
changeset
|
85 |
if (!IsTileType(t, MP_ROAD)) return GetTileOwner(t); |
6661
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
86 |
|
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
87 |
switch (GetRoadTileType(t)) { |
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
88 |
default: NOT_REACHED(); |
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
89 |
case ROAD_TILE_NORMAL: |
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
90 |
switch (rt) { |
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
91 |
default: NOT_REACHED(); |
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
92 |
case ROADTYPE_ROAD: return (Owner)GB( _m[t].m1, 0, 5); |
6764
d09d8d618a07
(svn r9999) -Feature: make it possible to disallow busses and lorries to go a specific way on straight pieces of road.
rubidium
parents:
6662
diff
changeset
|
93 |
case ROADTYPE_TRAM: { |
d09d8d618a07
(svn r9999) -Feature: make it possible to disallow busses and lorries to go a specific way on straight pieces of road.
rubidium
parents:
6662
diff
changeset
|
94 |
/* Trams don't need OWNER_TOWN, and remapping OWNER_NONE |
d09d8d618a07
(svn r9999) -Feature: make it possible to disallow busses and lorries to go a specific way on straight pieces of road.
rubidium
parents:
6662
diff
changeset
|
95 |
* to OWNER_TOWN makes it use one bit less */ |
d09d8d618a07
(svn r9999) -Feature: make it possible to disallow busses and lorries to go a specific way on straight pieces of road.
rubidium
parents:
6662
diff
changeset
|
96 |
Owner o = (Owner)GB( _m[t].m5, 0, 4); |
d09d8d618a07
(svn r9999) -Feature: make it possible to disallow busses and lorries to go a specific way on straight pieces of road.
rubidium
parents:
6662
diff
changeset
|
97 |
return o == OWNER_TOWN ? OWNER_NONE : o; |
d09d8d618a07
(svn r9999) -Feature: make it possible to disallow busses and lorries to go a specific way on straight pieces of road.
rubidium
parents:
6662
diff
changeset
|
98 |
} |
6661
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
99 |
case ROADTYPE_HWAY: return (Owner)GB(_me[t].m7, 0, 5); |
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
100 |
} |
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
101 |
case ROAD_TILE_CROSSING: |
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
102 |
switch (rt) { |
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
103 |
default: NOT_REACHED(); |
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
104 |
case ROADTYPE_ROAD: return (Owner)GB( _m[t].m4, 0, 5); |
6764
d09d8d618a07
(svn r9999) -Feature: make it possible to disallow busses and lorries to go a specific way on straight pieces of road.
rubidium
parents:
6662
diff
changeset
|
105 |
case ROADTYPE_TRAM: { |
d09d8d618a07
(svn r9999) -Feature: make it possible to disallow busses and lorries to go a specific way on straight pieces of road.
rubidium
parents:
6662
diff
changeset
|
106 |
/* Trams don't need OWNER_TOWN, and remapping OWNER_NONE |
d09d8d618a07
(svn r9999) -Feature: make it possible to disallow busses and lorries to go a specific way on straight pieces of road.
rubidium
parents:
6662
diff
changeset
|
107 |
* to OWNER_TOWN makes it use one bit less */ |
d09d8d618a07
(svn r9999) -Feature: make it possible to disallow busses and lorries to go a specific way on straight pieces of road.
rubidium
parents:
6662
diff
changeset
|
108 |
Owner o = (Owner)GB( _m[t].m5, 0, 4); |
d09d8d618a07
(svn r9999) -Feature: make it possible to disallow busses and lorries to go a specific way on straight pieces of road.
rubidium
parents:
6662
diff
changeset
|
109 |
return o == OWNER_TOWN ? OWNER_NONE : o; |
d09d8d618a07
(svn r9999) -Feature: make it possible to disallow busses and lorries to go a specific way on straight pieces of road.
rubidium
parents:
6662
diff
changeset
|
110 |
} |
6661
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
111 |
case ROADTYPE_HWAY: return (Owner)GB(_me[t].m7, 0, 5); |
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
112 |
} |
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
113 |
case ROAD_TILE_DEPOT: return GetTileOwner(t); |
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
114 |
} |
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
115 |
} |
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
116 |
|
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
117 |
static inline void SetRoadOwner(TileIndex t, RoadType rt, Owner o) |
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
118 |
{ |
7370
41adc721b1fa
(svn r10733) -Codechange: change MP_STREET into MP_ROAD as we use the word "road" everywhere except in the tile type.
rubidium
parents:
6778
diff
changeset
|
119 |
if (!IsTileType(t, MP_ROAD)) return SetTileOwner(t, o); |
6661
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
120 |
|
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
121 |
switch (GetRoadTileType(t)) { |
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
122 |
default: NOT_REACHED(); |
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
123 |
case ROAD_TILE_NORMAL: |
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
124 |
switch (rt) { |
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
125 |
default: NOT_REACHED(); |
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
126 |
case ROADTYPE_ROAD: SB( _m[t].m1, 0, 5, o); break; |
6764
d09d8d618a07
(svn r9999) -Feature: make it possible to disallow busses and lorries to go a specific way on straight pieces of road.
rubidium
parents:
6662
diff
changeset
|
127 |
case ROADTYPE_TRAM: SB( _m[t].m5, 0, 4, o == OWNER_NONE ? OWNER_TOWN : o); break; |
6661
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
128 |
case ROADTYPE_HWAY: SB(_me[t].m7, 0, 5, o); break; |
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
129 |
} |
6662
ea30b3497d9a
(svn r9893) -Fix (r9892): various small bugs that only act up when using something different than plain roads.
rubidium
parents:
6661
diff
changeset
|
130 |
break; |
6661
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
131 |
case ROAD_TILE_CROSSING: |
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
132 |
switch (rt) { |
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
133 |
default: NOT_REACHED(); |
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
134 |
case ROADTYPE_ROAD: SB( _m[t].m4, 0, 5, o); break; |
6764
d09d8d618a07
(svn r9999) -Feature: make it possible to disallow busses and lorries to go a specific way on straight pieces of road.
rubidium
parents:
6662
diff
changeset
|
135 |
/* Trams don't need OWNER_TOWN, and remapping OWNER_NONE |
d09d8d618a07
(svn r9999) -Feature: make it possible to disallow busses and lorries to go a specific way on straight pieces of road.
rubidium
parents:
6662
diff
changeset
|
136 |
* to OWNER_TOWN makes it use one bit less */ |
d09d8d618a07
(svn r9999) -Feature: make it possible to disallow busses and lorries to go a specific way on straight pieces of road.
rubidium
parents:
6662
diff
changeset
|
137 |
case ROADTYPE_TRAM: SB( _m[t].m5, 0, 4, o == OWNER_NONE ? OWNER_TOWN : o); break; |
6661
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
138 |
case ROADTYPE_HWAY: SB(_me[t].m7, 0, 5, o); break; |
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
139 |
} |
6662
ea30b3497d9a
(svn r9893) -Fix (r9892): various small bugs that only act up when using something different than plain roads.
rubidium
parents:
6661
diff
changeset
|
140 |
break; |
6661
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
141 |
case ROAD_TILE_DEPOT: return SetTileOwner(t, o); |
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
142 |
} |
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
143 |
} |
3369
cab209754317
(svn r4166) Sprinkle several map accessors with assert()s
tron
parents:
3322
diff
changeset
|
144 |
|
6764
d09d8d618a07
(svn r9999) -Feature: make it possible to disallow busses and lorries to go a specific way on straight pieces of road.
rubidium
parents:
6662
diff
changeset
|
145 |
/** Which directions are disallowed ? */ |
d09d8d618a07
(svn r9999) -Feature: make it possible to disallow busses and lorries to go a specific way on straight pieces of road.
rubidium
parents:
6662
diff
changeset
|
146 |
enum DisallowedRoadDirections { |
d09d8d618a07
(svn r9999) -Feature: make it possible to disallow busses and lorries to go a specific way on straight pieces of road.
rubidium
parents:
6662
diff
changeset
|
147 |
DRD_NONE, ///< None of the directions are disallowed |
d09d8d618a07
(svn r9999) -Feature: make it possible to disallow busses and lorries to go a specific way on straight pieces of road.
rubidium
parents:
6662
diff
changeset
|
148 |
DRD_SOUTHBOUND, ///< All southbound traffic is disallowed |
d09d8d618a07
(svn r9999) -Feature: make it possible to disallow busses and lorries to go a specific way on straight pieces of road.
rubidium
parents:
6662
diff
changeset
|
149 |
DRD_NORTHBOUND, ///< All northbound traffic is disallowed |
d09d8d618a07
(svn r9999) -Feature: make it possible to disallow busses and lorries to go a specific way on straight pieces of road.
rubidium
parents:
6662
diff
changeset
|
150 |
DRD_BOTH, ///< All directions are disallowed |
d09d8d618a07
(svn r9999) -Feature: make it possible to disallow busses and lorries to go a specific way on straight pieces of road.
rubidium
parents:
6662
diff
changeset
|
151 |
DRD_END |
d09d8d618a07
(svn r9999) -Feature: make it possible to disallow busses and lorries to go a specific way on straight pieces of road.
rubidium
parents:
6662
diff
changeset
|
152 |
}; |
d09d8d618a07
(svn r9999) -Feature: make it possible to disallow busses and lorries to go a specific way on straight pieces of road.
rubidium
parents:
6662
diff
changeset
|
153 |
DECLARE_ENUM_AS_BIT_SET(DisallowedRoadDirections); |
d09d8d618a07
(svn r9999) -Feature: make it possible to disallow busses and lorries to go a specific way on straight pieces of road.
rubidium
parents:
6662
diff
changeset
|
154 |
|
d09d8d618a07
(svn r9999) -Feature: make it possible to disallow busses and lorries to go a specific way on straight pieces of road.
rubidium
parents:
6662
diff
changeset
|
155 |
/** |
d09d8d618a07
(svn r9999) -Feature: make it possible to disallow busses and lorries to go a specific way on straight pieces of road.
rubidium
parents:
6662
diff
changeset
|
156 |
* Gets the disallowed directions |
d09d8d618a07
(svn r9999) -Feature: make it possible to disallow busses and lorries to go a specific way on straight pieces of road.
rubidium
parents:
6662
diff
changeset
|
157 |
* @param t the tile to get the directions from |
d09d8d618a07
(svn r9999) -Feature: make it possible to disallow busses and lorries to go a specific way on straight pieces of road.
rubidium
parents:
6662
diff
changeset
|
158 |
* @return the disallowed directions |
d09d8d618a07
(svn r9999) -Feature: make it possible to disallow busses and lorries to go a specific way on straight pieces of road.
rubidium
parents:
6662
diff
changeset
|
159 |
*/ |
d09d8d618a07
(svn r9999) -Feature: make it possible to disallow busses and lorries to go a specific way on straight pieces of road.
rubidium
parents:
6662
diff
changeset
|
160 |
static inline DisallowedRoadDirections GetDisallowedRoadDirections(TileIndex t) |
d09d8d618a07
(svn r9999) -Feature: make it possible to disallow busses and lorries to go a specific way on straight pieces of road.
rubidium
parents:
6662
diff
changeset
|
161 |
{ |
d09d8d618a07
(svn r9999) -Feature: make it possible to disallow busses and lorries to go a specific way on straight pieces of road.
rubidium
parents:
6662
diff
changeset
|
162 |
assert(GetRoadTileType(t) == ROAD_TILE_NORMAL); |
d09d8d618a07
(svn r9999) -Feature: make it possible to disallow busses and lorries to go a specific way on straight pieces of road.
rubidium
parents:
6662
diff
changeset
|
163 |
return (DisallowedRoadDirections)GB(_m[t].m5, 4, 2); |
d09d8d618a07
(svn r9999) -Feature: make it possible to disallow busses and lorries to go a specific way on straight pieces of road.
rubidium
parents:
6662
diff
changeset
|
164 |
} |
d09d8d618a07
(svn r9999) -Feature: make it possible to disallow busses and lorries to go a specific way on straight pieces of road.
rubidium
parents:
6662
diff
changeset
|
165 |
|
d09d8d618a07
(svn r9999) -Feature: make it possible to disallow busses and lorries to go a specific way on straight pieces of road.
rubidium
parents:
6662
diff
changeset
|
166 |
/** |
d09d8d618a07
(svn r9999) -Feature: make it possible to disallow busses and lorries to go a specific way on straight pieces of road.
rubidium
parents:
6662
diff
changeset
|
167 |
* Sets the disallowed directions |
d09d8d618a07
(svn r9999) -Feature: make it possible to disallow busses and lorries to go a specific way on straight pieces of road.
rubidium
parents:
6662
diff
changeset
|
168 |
* @param t the tile to set the directions for |
d09d8d618a07
(svn r9999) -Feature: make it possible to disallow busses and lorries to go a specific way on straight pieces of road.
rubidium
parents:
6662
diff
changeset
|
169 |
* @param drd the disallowed directions |
d09d8d618a07
(svn r9999) -Feature: make it possible to disallow busses and lorries to go a specific way on straight pieces of road.
rubidium
parents:
6662
diff
changeset
|
170 |
*/ |
d09d8d618a07
(svn r9999) -Feature: make it possible to disallow busses and lorries to go a specific way on straight pieces of road.
rubidium
parents:
6662
diff
changeset
|
171 |
static inline void SetDisallowedRoadDirections(TileIndex t, DisallowedRoadDirections drd) |
d09d8d618a07
(svn r9999) -Feature: make it possible to disallow busses and lorries to go a specific way on straight pieces of road.
rubidium
parents:
6662
diff
changeset
|
172 |
{ |
d09d8d618a07
(svn r9999) -Feature: make it possible to disallow busses and lorries to go a specific way on straight pieces of road.
rubidium
parents:
6662
diff
changeset
|
173 |
assert(GetRoadTileType(t) == ROAD_TILE_NORMAL); |
d09d8d618a07
(svn r9999) -Feature: make it possible to disallow busses and lorries to go a specific way on straight pieces of road.
rubidium
parents:
6662
diff
changeset
|
174 |
assert(drd < DRD_END); |
d09d8d618a07
(svn r9999) -Feature: make it possible to disallow busses and lorries to go a specific way on straight pieces of road.
rubidium
parents:
6662
diff
changeset
|
175 |
SB(_m[t].m5, 4, 2, drd); |
d09d8d618a07
(svn r9999) -Feature: make it possible to disallow busses and lorries to go a specific way on straight pieces of road.
rubidium
parents:
6662
diff
changeset
|
176 |
} |
d09d8d618a07
(svn r9999) -Feature: make it possible to disallow busses and lorries to go a specific way on straight pieces of road.
rubidium
parents:
6662
diff
changeset
|
177 |
|
3369
cab209754317
(svn r4166) Sprinkle several map accessors with assert()s
tron
parents:
3322
diff
changeset
|
178 |
static inline Axis GetCrossingRoadAxis(TileIndex t) |
cab209754317
(svn r4166) Sprinkle several map accessors with assert()s
tron
parents:
3322
diff
changeset
|
179 |
{ |
3793
7fe24e10ea63
(svn r4789) - Codechange: rename RoadType to RoadTileType and ROAD_{NORMAL,CROSSING,DEPOT} to ROAD_TILE_* for consistency
rubidium
parents:
3560
diff
changeset
|
180 |
assert(GetRoadTileType(t) == ROAD_TILE_CROSSING); |
6661
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
181 |
return (Axis)GB(_m[t].m4, 6, 1); |
3272
b3e2d8e19937
(svn r3984) Add a function to get the road axis of a level crossing
tron
parents:
3196
diff
changeset
|
182 |
} |
b3e2d8e19937
(svn r3984) Add a function to get the road axis of a level crossing
tron
parents:
3196
diff
changeset
|
183 |
|
3070
980529af506f
(svn r3659) Add function to get the road bits of a level crossing
tron
parents:
3069
diff
changeset
|
184 |
static inline RoadBits GetCrossingRoadBits(TileIndex tile) |
980529af506f
(svn r3659) Add function to get the road bits of a level crossing
tron
parents:
3069
diff
changeset
|
185 |
{ |
3272
b3e2d8e19937
(svn r3984) Add a function to get the road axis of a level crossing
tron
parents:
3196
diff
changeset
|
186 |
return GetCrossingRoadAxis(tile) == AXIS_X ? ROAD_X : ROAD_Y; |
3070
980529af506f
(svn r3659) Add function to get the road bits of a level crossing
tron
parents:
3069
diff
changeset
|
187 |
} |
980529af506f
(svn r3659) Add function to get the road bits of a level crossing
tron
parents:
3069
diff
changeset
|
188 |
|
3103
c0681c720481
(svn r3698) Add GetCrossingRailBits() and ComplementRoadBits(). Simplify the code by using them
tron
parents:
3099
diff
changeset
|
189 |
static inline TrackBits GetCrossingRailBits(TileIndex tile) |
c0681c720481
(svn r3698) Add GetCrossingRailBits() and ComplementRoadBits(). Simplify the code by using them
tron
parents:
3099
diff
changeset
|
190 |
{ |
4158 | 191 |
return AxisToTrackBits(OtherAxis(GetCrossingRoadAxis(tile))); |
3103
c0681c720481
(svn r3698) Add GetCrossingRailBits() and ComplementRoadBits(). Simplify the code by using them
tron
parents:
3099
diff
changeset
|
192 |
} |
c0681c720481
(svn r3698) Add GetCrossingRailBits() and ComplementRoadBits(). Simplify the code by using them
tron
parents:
3099
diff
changeset
|
193 |
|
c0681c720481
(svn r3698) Add GetCrossingRailBits() and ComplementRoadBits(). Simplify the code by using them
tron
parents:
3099
diff
changeset
|
194 |
|
3322
41b4d25b126d
(svn r4088) -Codechange: Introduce {Unb,B}arCrossing and IsCrossingBarred to put and get the status of a level crossing
celestar
parents:
3274
diff
changeset
|
195 |
static inline void UnbarCrossing(TileIndex t) |
41b4d25b126d
(svn r4088) -Codechange: Introduce {Unb,B}arCrossing and IsCrossingBarred to put and get the status of a level crossing
celestar
parents:
3274
diff
changeset
|
196 |
{ |
3793
7fe24e10ea63
(svn r4789) - Codechange: rename RoadType to RoadTileType and ROAD_{NORMAL,CROSSING,DEPOT} to ROAD_TILE_* for consistency
rubidium
parents:
3560
diff
changeset
|
197 |
assert(GetRoadTileType(t) == ROAD_TILE_CROSSING); |
7929
6c9b25842b0f
(svn r11482) -Codechange: Remove the doubled function ClrBitT and rename the remaining to fit with the naming style
skidd13
parents:
7928
diff
changeset
|
198 |
ClrBit(_m[t].m4, 5); |
3322
41b4d25b126d
(svn r4088) -Codechange: Introduce {Unb,B}arCrossing and IsCrossingBarred to put and get the status of a level crossing
celestar
parents:
3274
diff
changeset
|
199 |
} |
41b4d25b126d
(svn r4088) -Codechange: Introduce {Unb,B}arCrossing and IsCrossingBarred to put and get the status of a level crossing
celestar
parents:
3274
diff
changeset
|
200 |
|
41b4d25b126d
(svn r4088) -Codechange: Introduce {Unb,B}arCrossing and IsCrossingBarred to put and get the status of a level crossing
celestar
parents:
3274
diff
changeset
|
201 |
static inline void BarCrossing(TileIndex t) |
41b4d25b126d
(svn r4088) -Codechange: Introduce {Unb,B}arCrossing and IsCrossingBarred to put and get the status of a level crossing
celestar
parents:
3274
diff
changeset
|
202 |
{ |
3793
7fe24e10ea63
(svn r4789) - Codechange: rename RoadType to RoadTileType and ROAD_{NORMAL,CROSSING,DEPOT} to ROAD_TILE_* for consistency
rubidium
parents:
3560
diff
changeset
|
203 |
assert(GetRoadTileType(t) == ROAD_TILE_CROSSING); |
7931
b0a46cd92225
(svn r11484) -Codechange: Remove the doubled function SetBitT and rename the remaining to fit with the naming style
skidd13
parents:
7929
diff
changeset
|
204 |
SetBit(_m[t].m4, 5); |
3322
41b4d25b126d
(svn r4088) -Codechange: Introduce {Unb,B}arCrossing and IsCrossingBarred to put and get the status of a level crossing
celestar
parents:
3274
diff
changeset
|
205 |
} |
41b4d25b126d
(svn r4088) -Codechange: Introduce {Unb,B}arCrossing and IsCrossingBarred to put and get the status of a level crossing
celestar
parents:
3274
diff
changeset
|
206 |
|
41b4d25b126d
(svn r4088) -Codechange: Introduce {Unb,B}arCrossing and IsCrossingBarred to put and get the status of a level crossing
celestar
parents:
3274
diff
changeset
|
207 |
static inline bool IsCrossingBarred(TileIndex t) |
41b4d25b126d
(svn r4088) -Codechange: Introduce {Unb,B}arCrossing and IsCrossingBarred to put and get the status of a level crossing
celestar
parents:
3274
diff
changeset
|
208 |
{ |
3793
7fe24e10ea63
(svn r4789) - Codechange: rename RoadType to RoadTileType and ROAD_{NORMAL,CROSSING,DEPOT} to ROAD_TILE_* for consistency
rubidium
parents:
3560
diff
changeset
|
209 |
assert(GetRoadTileType(t) == ROAD_TILE_CROSSING); |
7928
63e18de69e50
(svn r11481) -Codechange: Rename the HASBIT function to fit with the naming style
skidd13
parents:
7370
diff
changeset
|
210 |
return HasBit(_m[t].m4, 5); |
3322
41b4d25b126d
(svn r4088) -Codechange: Introduce {Unb,B}arCrossing and IsCrossingBarred to put and get the status of a level crossing
celestar
parents:
3274
diff
changeset
|
211 |
} |
3274 | 212 |
|
3430
fcc344e41319
(svn r4258) -Codechange: Add and make use of map accessors dealing with road ground types (including roadworks).
celestar
parents:
3369
diff
changeset
|
213 |
#define IsOnDesert IsOnSnow |
fcc344e41319
(svn r4258) -Codechange: Add and make use of map accessors dealing with road ground types (including roadworks).
celestar
parents:
3369
diff
changeset
|
214 |
static inline bool IsOnSnow(TileIndex t) |
fcc344e41319
(svn r4258) -Codechange: Add and make use of map accessors dealing with road ground types (including roadworks).
celestar
parents:
3369
diff
changeset
|
215 |
{ |
7928
63e18de69e50
(svn r11481) -Codechange: Rename the HASBIT function to fit with the naming style
skidd13
parents:
7370
diff
changeset
|
216 |
return HasBit(_m[t].m3, 7); |
3430
fcc344e41319
(svn r4258) -Codechange: Add and make use of map accessors dealing with road ground types (including roadworks).
celestar
parents:
3369
diff
changeset
|
217 |
} |
fcc344e41319
(svn r4258) -Codechange: Add and make use of map accessors dealing with road ground types (including roadworks).
celestar
parents:
3369
diff
changeset
|
218 |
|
fcc344e41319
(svn r4258) -Codechange: Add and make use of map accessors dealing with road ground types (including roadworks).
celestar
parents:
3369
diff
changeset
|
219 |
#define ToggleDesert ToggleSnow |
fcc344e41319
(svn r4258) -Codechange: Add and make use of map accessors dealing with road ground types (including roadworks).
celestar
parents:
3369
diff
changeset
|
220 |
static inline void ToggleSnow(TileIndex t) |
fcc344e41319
(svn r4258) -Codechange: Add and make use of map accessors dealing with road ground types (including roadworks).
celestar
parents:
3369
diff
changeset
|
221 |
{ |
7932
6c3d71e8a129
(svn r11485) -Codechange: Remove the doubled function ToggleBitT and rename the remaining to fit with the naming style
skidd13
parents:
7931
diff
changeset
|
222 |
ToggleBit(_m[t].m3, 7); |
3430
fcc344e41319
(svn r4258) -Codechange: Add and make use of map accessors dealing with road ground types (including roadworks).
celestar
parents:
3369
diff
changeset
|
223 |
} |
fcc344e41319
(svn r4258) -Codechange: Add and make use of map accessors dealing with road ground types (including roadworks).
celestar
parents:
3369
diff
changeset
|
224 |
|
fcc344e41319
(svn r4258) -Codechange: Add and make use of map accessors dealing with road ground types (including roadworks).
celestar
parents:
3369
diff
changeset
|
225 |
|
6248
e4a2ed7e5613
(svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium
parents:
6172
diff
changeset
|
226 |
enum Roadside { |
4048 | 227 |
ROADSIDE_BARREN = 0, |
228 |
ROADSIDE_GRASS = 1, |
|
229 |
ROADSIDE_PAVED = 2, |
|
230 |
ROADSIDE_STREET_LIGHTS = 3, |
|
231 |
ROADSIDE_TREES = 5, |
|
232 |
ROADSIDE_GRASS_ROAD_WORKS = 6, |
|
233 |
ROADSIDE_PAVED_ROAD_WORKS = 7 |
|
6248
e4a2ed7e5613
(svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium
parents:
6172
diff
changeset
|
234 |
}; |
3430
fcc344e41319
(svn r4258) -Codechange: Add and make use of map accessors dealing with road ground types (including roadworks).
celestar
parents:
3369
diff
changeset
|
235 |
|
4048 | 236 |
static inline Roadside GetRoadside(TileIndex tile) |
3430
fcc344e41319
(svn r4258) -Codechange: Add and make use of map accessors dealing with road ground types (including roadworks).
celestar
parents:
3369
diff
changeset
|
237 |
{ |
6172
e6d7a5b3d63f
(svn r8935) -Codechange: unification of track type between road and rail tiles, unification of ground type between normal rail tiles and depots/waypoints and removing the need for RailTileSubType.
rubidium
parents:
5475
diff
changeset
|
238 |
return (Roadside)GB(_m[tile].m3, 4, 3); |
3430
fcc344e41319
(svn r4258) -Codechange: Add and make use of map accessors dealing with road ground types (including roadworks).
celestar
parents:
3369
diff
changeset
|
239 |
} |
fcc344e41319
(svn r4258) -Codechange: Add and make use of map accessors dealing with road ground types (including roadworks).
celestar
parents:
3369
diff
changeset
|
240 |
|
4048 | 241 |
static inline void SetRoadside(TileIndex tile, Roadside s) |
3430
fcc344e41319
(svn r4258) -Codechange: Add and make use of map accessors dealing with road ground types (including roadworks).
celestar
parents:
3369
diff
changeset
|
242 |
{ |
6172
e6d7a5b3d63f
(svn r8935) -Codechange: unification of track type between road and rail tiles, unification of ground type between normal rail tiles and depots/waypoints and removing the need for RailTileSubType.
rubidium
parents:
5475
diff
changeset
|
243 |
SB(_m[tile].m3, 4, 3, s); |
3430
fcc344e41319
(svn r4258) -Codechange: Add and make use of map accessors dealing with road ground types (including roadworks).
celestar
parents:
3369
diff
changeset
|
244 |
} |
fcc344e41319
(svn r4258) -Codechange: Add and make use of map accessors dealing with road ground types (including roadworks).
celestar
parents:
3369
diff
changeset
|
245 |
|
fcc344e41319
(svn r4258) -Codechange: Add and make use of map accessors dealing with road ground types (including roadworks).
celestar
parents:
3369
diff
changeset
|
246 |
static inline bool HasRoadWorks(TileIndex t) |
fcc344e41319
(svn r4258) -Codechange: Add and make use of map accessors dealing with road ground types (including roadworks).
celestar
parents:
3369
diff
changeset
|
247 |
{ |
4048 | 248 |
return GetRoadside(t) >= ROADSIDE_GRASS_ROAD_WORKS; |
3430
fcc344e41319
(svn r4258) -Codechange: Add and make use of map accessors dealing with road ground types (including roadworks).
celestar
parents:
3369
diff
changeset
|
249 |
} |
fcc344e41319
(svn r4258) -Codechange: Add and make use of map accessors dealing with road ground types (including roadworks).
celestar
parents:
3369
diff
changeset
|
250 |
|
fcc344e41319
(svn r4258) -Codechange: Add and make use of map accessors dealing with road ground types (including roadworks).
celestar
parents:
3369
diff
changeset
|
251 |
static inline bool IncreaseRoadWorksCounter(TileIndex t) |
fcc344e41319
(svn r4258) -Codechange: Add and make use of map accessors dealing with road ground types (including roadworks).
celestar
parents:
3369
diff
changeset
|
252 |
{ |
6172
e6d7a5b3d63f
(svn r8935) -Codechange: unification of track type between road and rail tiles, unification of ground type between normal rail tiles and depots/waypoints and removing the need for RailTileSubType.
rubidium
parents:
5475
diff
changeset
|
253 |
AB(_m[t].m3, 0, 4, 1); |
3430
fcc344e41319
(svn r4258) -Codechange: Add and make use of map accessors dealing with road ground types (including roadworks).
celestar
parents:
3369
diff
changeset
|
254 |
|
6172
e6d7a5b3d63f
(svn r8935) -Codechange: unification of track type between road and rail tiles, unification of ground type between normal rail tiles and depots/waypoints and removing the need for RailTileSubType.
rubidium
parents:
5475
diff
changeset
|
255 |
return GB(_m[t].m3, 0, 4) == 15; |
3430
fcc344e41319
(svn r4258) -Codechange: Add and make use of map accessors dealing with road ground types (including roadworks).
celestar
parents:
3369
diff
changeset
|
256 |
} |
fcc344e41319
(svn r4258) -Codechange: Add and make use of map accessors dealing with road ground types (including roadworks).
celestar
parents:
3369
diff
changeset
|
257 |
|
fcc344e41319
(svn r4258) -Codechange: Add and make use of map accessors dealing with road ground types (including roadworks).
celestar
parents:
3369
diff
changeset
|
258 |
static inline void StartRoadWorks(TileIndex t) |
fcc344e41319
(svn r4258) -Codechange: Add and make use of map accessors dealing with road ground types (including roadworks).
celestar
parents:
3369
diff
changeset
|
259 |
{ |
fcc344e41319
(svn r4258) -Codechange: Add and make use of map accessors dealing with road ground types (including roadworks).
celestar
parents:
3369
diff
changeset
|
260 |
assert(!HasRoadWorks(t)); |
fcc344e41319
(svn r4258) -Codechange: Add and make use of map accessors dealing with road ground types (including roadworks).
celestar
parents:
3369
diff
changeset
|
261 |
/* Remove any trees or lamps in case or roadwork */ |
4048 | 262 |
switch (GetRoadside(t)) { |
263 |
case ROADSIDE_BARREN: |
|
264 |
case ROADSIDE_GRASS: SetRoadside(t, ROADSIDE_GRASS_ROAD_WORKS); break; |
|
265 |
default: SetRoadside(t, ROADSIDE_PAVED_ROAD_WORKS); break; |
|
4045
9eda219bc134
(svn r5314) -Regression: When road works started on a road tile with barren roadside the road side turned into trees (caused by r4258)
tron
parents:
4000
diff
changeset
|
266 |
} |
3430
fcc344e41319
(svn r4258) -Codechange: Add and make use of map accessors dealing with road ground types (including roadworks).
celestar
parents:
3369
diff
changeset
|
267 |
} |
fcc344e41319
(svn r4258) -Codechange: Add and make use of map accessors dealing with road ground types (including roadworks).
celestar
parents:
3369
diff
changeset
|
268 |
|
fcc344e41319
(svn r4258) -Codechange: Add and make use of map accessors dealing with road ground types (including roadworks).
celestar
parents:
3369
diff
changeset
|
269 |
static inline void TerminateRoadWorks(TileIndex t) |
fcc344e41319
(svn r4258) -Codechange: Add and make use of map accessors dealing with road ground types (including roadworks).
celestar
parents:
3369
diff
changeset
|
270 |
{ |
fcc344e41319
(svn r4258) -Codechange: Add and make use of map accessors dealing with road ground types (including roadworks).
celestar
parents:
3369
diff
changeset
|
271 |
assert(HasRoadWorks(t)); |
4048 | 272 |
SetRoadside(t, (Roadside)(GetRoadside(t) - ROADSIDE_GRASS_ROAD_WORKS + ROADSIDE_GRASS)); |
3430
fcc344e41319
(svn r4258) -Codechange: Add and make use of map accessors dealing with road ground types (including roadworks).
celestar
parents:
3369
diff
changeset
|
273 |
/* Stop the counter */ |
6172
e6d7a5b3d63f
(svn r8935) -Codechange: unification of track type between road and rail tiles, unification of ground type between normal rail tiles and depots/waypoints and removing the need for RailTileSubType.
rubidium
parents:
5475
diff
changeset
|
274 |
SB(_m[t].m3, 0, 4, 0); |
3430
fcc344e41319
(svn r4258) -Codechange: Add and make use of map accessors dealing with road ground types (including roadworks).
celestar
parents:
3369
diff
changeset
|
275 |
} |
fcc344e41319
(svn r4258) -Codechange: Add and make use of map accessors dealing with road ground types (including roadworks).
celestar
parents:
3369
diff
changeset
|
276 |
|
3069
9a1fd047b595
(svn r3658) Add functions and symbolic names to retrieve road tile types and road pieces
tron
parents:
diff
changeset
|
277 |
|
3369
cab209754317
(svn r4166) Sprinkle several map accessors with assert()s
tron
parents:
3322
diff
changeset
|
278 |
static inline DiagDirection GetRoadDepotDirection(TileIndex t) |
3069
9a1fd047b595
(svn r3658) Add functions and symbolic names to retrieve road tile types and road pieces
tron
parents:
diff
changeset
|
279 |
{ |
3793
7fe24e10ea63
(svn r4789) - Codechange: rename RoadType to RoadTileType and ROAD_{NORMAL,CROSSING,DEPOT} to ROAD_TILE_* for consistency
rubidium
parents:
3560
diff
changeset
|
280 |
assert(GetRoadTileType(t) == ROAD_TILE_DEPOT); |
3369
cab209754317
(svn r4166) Sprinkle several map accessors with assert()s
tron
parents:
3322
diff
changeset
|
281 |
return (DiagDirection)GB(_m[t].m5, 0, 2); |
3167
8323c2ccd029
(svn r3795) Add a function to request the orientation of a depot
tron
parents:
3150
diff
changeset
|
282 |
} |
8323c2ccd029
(svn r3795) Add a function to request the orientation of a depot
tron
parents:
3150
diff
changeset
|
283 |
|
8323c2ccd029
(svn r3795) Add a function to request the orientation of a depot
tron
parents:
3150
diff
changeset
|
284 |
|
3146
8d95593c5ff0
(svn r3766) Add a function to get the RoadBits from an arbitrary tile
tron
parents:
3145
diff
changeset
|
285 |
/** |
8d95593c5ff0
(svn r3766) Add a function to get the RoadBits from an arbitrary tile
tron
parents:
3145
diff
changeset
|
286 |
* Returns the RoadBits on an arbitrary tile |
6390
802629b3c7f1
(svn r9520) -Codechange: Add the notion of Industry behaviour. It means what an industry can do (plant fields, cut trees, do not change production), what can be done to it (disasters like mine subsidence, jet/chopper attack), when it can be built etc...
belugas
parents:
6248
diff
changeset
|
287 |
* Special behaviour: |
3146
8d95593c5ff0
(svn r3766) Add a function to get the RoadBits from an arbitrary tile
tron
parents:
3145
diff
changeset
|
288 |
* - road depots: entrance is treated as road piece |
8d95593c5ff0
(svn r3766) Add a function to get the RoadBits from an arbitrary tile
tron
parents:
3145
diff
changeset
|
289 |
* - road tunnels: entrance is treated as road piece |
3196 | 290 |
* - bridge ramps: start of the ramp is treated as road piece |
3146
8d95593c5ff0
(svn r3766) Add a function to get the RoadBits from an arbitrary tile
tron
parents:
3145
diff
changeset
|
291 |
* - bridge middle parts: bridge itself is ignored |
6418
e04693bbe82a
(svn r9554) -Documentation: add documentation to some map accessors.
rubidium
parents:
6393
diff
changeset
|
292 |
* @param tile the tile to get the road bits for |
6661
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
293 |
* @param rt the road type to get the road bits form |
6418
e04693bbe82a
(svn r9554) -Documentation: add documentation to some map accessors.
rubidium
parents:
6393
diff
changeset
|
294 |
* @return the road bits of the given tile |
3146
8d95593c5ff0
(svn r3766) Add a function to get the RoadBits from an arbitrary tile
tron
parents:
3145
diff
changeset
|
295 |
*/ |
6661
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
296 |
RoadBits GetAnyRoadBits(TileIndex tile, RoadType rt); |
3146
8d95593c5ff0
(svn r3766) Add a function to get the RoadBits from an arbitrary tile
tron
parents:
3145
diff
changeset
|
297 |
|
6418
e04693bbe82a
(svn r9554) -Documentation: add documentation to some map accessors.
rubidium
parents:
6393
diff
changeset
|
298 |
/** |
e04693bbe82a
(svn r9554) -Documentation: add documentation to some map accessors.
rubidium
parents:
6393
diff
changeset
|
299 |
* Get the accessible track bits for the given tile. |
e04693bbe82a
(svn r9554) -Documentation: add documentation to some map accessors.
rubidium
parents:
6393
diff
changeset
|
300 |
* Special behaviour: |
e04693bbe82a
(svn r9554) -Documentation: add documentation to some map accessors.
rubidium
parents:
6393
diff
changeset
|
301 |
* - road depots: no track bits |
e04693bbe82a
(svn r9554) -Documentation: add documentation to some map accessors.
rubidium
parents:
6393
diff
changeset
|
302 |
* - non-drive-through stations: no track bits |
e04693bbe82a
(svn r9554) -Documentation: add documentation to some map accessors.
rubidium
parents:
6393
diff
changeset
|
303 |
* @param tile the tile to get the track bits for |
e04693bbe82a
(svn r9554) -Documentation: add documentation to some map accessors.
rubidium
parents:
6393
diff
changeset
|
304 |
* @return the track bits for the given tile |
e04693bbe82a
(svn r9554) -Documentation: add documentation to some map accessors.
rubidium
parents:
6393
diff
changeset
|
305 |
*/ |
6661
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
306 |
TrackBits GetAnyRoadTrackBits(TileIndex tile, RoadType rt); |
3150
729951cb5448
(svn r3773) Shove some semantics down ottd's throat by replacing ints and magic numbers by enums and some related changes
tron
parents:
3146
diff
changeset
|
307 |
|
729951cb5448
(svn r3773) Shove some semantics down ottd's throat by replacing ints and magic numbers by enums and some related changes
tron
parents:
3146
diff
changeset
|
308 |
|
6661
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
309 |
static inline void MakeRoadNormal(TileIndex t, RoadBits bits, RoadTypes rot, TownID town, Owner road, Owner tram, Owner hway) |
3099
571719b2cee3
(svn r3689) Add functions to turn a tile into either a normal road tile, a level crossing or a road depot
tron
parents:
3070
diff
changeset
|
310 |
{ |
7370
41adc721b1fa
(svn r10733) -Codechange: change MP_STREET into MP_ROAD as we use the word "road" everywhere except in the tile type.
rubidium
parents:
6778
diff
changeset
|
311 |
SetTileType(t, MP_ROAD); |
6661
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
312 |
SetTileOwner(t, road); |
3099
571719b2cee3
(svn r3689) Add functions to turn a tile into either a normal road tile, a level crossing or a road depot
tron
parents:
3070
diff
changeset
|
313 |
_m[t].m2 = town; |
6661
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
314 |
_m[t].m3 = 0; |
7928
63e18de69e50
(svn r11481) -Codechange: Rename the HASBIT function to fit with the naming style
skidd13
parents:
7370
diff
changeset
|
315 |
_m[t].m4 = (HasBit(rot, ROADTYPE_TRAM) ? bits : 0) << 4 | (HasBit(rot, ROADTYPE_ROAD) ? bits : 0); |
6778
58189151ce4f
(svn r10014) -Fix: roads became automatically one way in the scenario editor.
rubidium
parents:
6764
diff
changeset
|
316 |
_m[t].m5 = ROAD_TILE_NORMAL << 6; |
58189151ce4f
(svn r10014) -Fix: roads became automatically one way in the scenario editor.
rubidium
parents:
6764
diff
changeset
|
317 |
SetRoadOwner(t, ROADTYPE_TRAM, tram); |
7928
63e18de69e50
(svn r11481) -Codechange: Rename the HASBIT function to fit with the naming style
skidd13
parents:
7370
diff
changeset
|
318 |
SB(_m[t].m6, 2, 4, HasBit(rot, ROADTYPE_HWAY) ? bits : 0); |
6661
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
319 |
_me[t].m7 = rot << 5 | hway; |
3099
571719b2cee3
(svn r3689) Add functions to turn a tile into either a normal road tile, a level crossing or a road depot
tron
parents:
3070
diff
changeset
|
320 |
} |
571719b2cee3
(svn r3689) Add functions to turn a tile into either a normal road tile, a level crossing or a road depot
tron
parents:
3070
diff
changeset
|
321 |
|
571719b2cee3
(svn r3689) Add functions to turn a tile into either a normal road tile, a level crossing or a road depot
tron
parents:
3070
diff
changeset
|
322 |
|
6661
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
323 |
static inline void MakeRoadCrossing(TileIndex t, Owner road, Owner tram, Owner hway, Owner rail, Axis roaddir, RailType rat, RoadTypes rot, uint town) |
3099
571719b2cee3
(svn r3689) Add functions to turn a tile into either a normal road tile, a level crossing or a road depot
tron
parents:
3070
diff
changeset
|
324 |
{ |
7370
41adc721b1fa
(svn r10733) -Codechange: change MP_STREET into MP_ROAD as we use the word "road" everywhere except in the tile type.
rubidium
parents:
6778
diff
changeset
|
325 |
SetTileType(t, MP_ROAD); |
3099
571719b2cee3
(svn r3689) Add functions to turn a tile into either a normal road tile, a level crossing or a road depot
tron
parents:
3070
diff
changeset
|
326 |
SetTileOwner(t, rail); |
571719b2cee3
(svn r3689) Add functions to turn a tile into either a normal road tile, a level crossing or a road depot
tron
parents:
3070
diff
changeset
|
327 |
_m[t].m2 = town; |
6661
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
328 |
_m[t].m3 = rat; |
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
329 |
_m[t].m4 = roaddir << 6 | road; |
6778
58189151ce4f
(svn r10014) -Fix: roads became automatically one way in the scenario editor.
rubidium
parents:
6764
diff
changeset
|
330 |
_m[t].m5 = ROAD_TILE_CROSSING << 6; |
58189151ce4f
(svn r10014) -Fix: roads became automatically one way in the scenario editor.
rubidium
parents:
6764
diff
changeset
|
331 |
SetRoadOwner(t, ROADTYPE_TRAM, tram); |
6661
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
332 |
SB(_m[t].m6, 2, 4, 0); |
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
333 |
_me[t].m7 = rot << 5 | hway; |
3099
571719b2cee3
(svn r3689) Add functions to turn a tile into either a normal road tile, a level crossing or a road depot
tron
parents:
3070
diff
changeset
|
334 |
} |
571719b2cee3
(svn r3689) Add functions to turn a tile into either a normal road tile, a level crossing or a road depot
tron
parents:
3070
diff
changeset
|
335 |
|
571719b2cee3
(svn r3689) Add functions to turn a tile into either a normal road tile, a level crossing or a road depot
tron
parents:
3070
diff
changeset
|
336 |
|
6661
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
337 |
static inline void MakeRoadDepot(TileIndex t, Owner owner, DiagDirection dir, RoadType rt) |
3099
571719b2cee3
(svn r3689) Add functions to turn a tile into either a normal road tile, a level crossing or a road depot
tron
parents:
3070
diff
changeset
|
338 |
{ |
7370
41adc721b1fa
(svn r10733) -Codechange: change MP_STREET into MP_ROAD as we use the word "road" everywhere except in the tile type.
rubidium
parents:
6778
diff
changeset
|
339 |
SetTileType(t, MP_ROAD); |
3099
571719b2cee3
(svn r3689) Add functions to turn a tile into either a normal road tile, a level crossing or a road depot
tron
parents:
3070
diff
changeset
|
340 |
SetTileOwner(t, owner); |
571719b2cee3
(svn r3689) Add functions to turn a tile into either a normal road tile, a level crossing or a road depot
tron
parents:
3070
diff
changeset
|
341 |
_m[t].m2 = 0; |
571719b2cee3
(svn r3689) Add functions to turn a tile into either a normal road tile, a level crossing or a road depot
tron
parents:
3070
diff
changeset
|
342 |
_m[t].m3 = 0; |
571719b2cee3
(svn r3689) Add functions to turn a tile into either a normal road tile, a level crossing or a road depot
tron
parents:
3070
diff
changeset
|
343 |
_m[t].m4 = 0; |
6661
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
344 |
_m[t].m5 = ROAD_TILE_DEPOT << 6 | dir; |
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
345 |
SB(_m[t].m6, 2, 4, 0); |
1716fce5ad29
(svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile.
rubidium
parents:
6418
diff
changeset
|
346 |
_me[t].m7 = RoadTypeToRoadTypes(rt) << 5; |
3099
571719b2cee3
(svn r3689) Add functions to turn a tile into either a normal road tile, a level crossing or a road depot
tron
parents:
3070
diff
changeset
|
347 |
} |
571719b2cee3
(svn r3689) Add functions to turn a tile into either a normal road tile, a level crossing or a road depot
tron
parents:
3070
diff
changeset
|
348 |
|
4666
172a0cdf28a6
(svn r6560) - Codechange: Minor fix; add missing #include guards and comments, and correct svn properties on bmp.[ch]
peter1138
parents:
4158
diff
changeset
|
349 |
#endif /* ROAD_MAP_H */ |