56 } |
56 } |
57 |
57 |
58 static inline uint TileHeight(TileIndex tile) |
58 static inline uint TileHeight(TileIndex tile) |
59 { |
59 { |
60 assert(tile < MapSize()); |
60 assert(tile < MapSize()); |
61 return GB(_map_type_and_height[tile], 0, 4); |
61 return GB(_m[tile].type_height, 0, 4); |
62 } |
62 } |
63 |
63 |
64 static inline void SetTileHeight(TileIndex tile, uint height) |
64 static inline void SetTileHeight(TileIndex tile, uint height) |
65 { |
65 { |
66 assert(tile < MapSize()); |
66 assert(tile < MapSize()); |
67 assert(height < 16); |
67 assert(height < 16); |
68 SB(_map_type_and_height[tile], 0, 4, height); |
68 SB(_m[tile].type_height, 0, 4, height); |
69 } |
69 } |
70 |
70 |
71 static inline uint TilePixelHeight(TileIndex tile) |
71 static inline uint TilePixelHeight(TileIndex tile) |
72 { |
72 { |
73 return TileHeight(tile) * 8; |
73 return TileHeight(tile) * 8; |
74 } |
74 } |
75 |
75 |
76 static inline TileType GetTileType(TileIndex tile) |
76 static inline TileType GetTileType(TileIndex tile) |
77 { |
77 { |
78 assert(tile < MapSize()); |
78 assert(tile < MapSize()); |
79 return GB(_map_type_and_height[tile], 4, 4); |
79 return GB(_m[tile].type_height, 4, 4); |
80 } |
80 } |
81 |
81 |
82 static inline void SetTileType(TileIndex tile, TileType type) |
82 static inline void SetTileType(TileIndex tile, TileType type) |
83 { |
83 { |
84 assert(tile < MapSize()); |
84 assert(tile < MapSize()); |
85 SB(_map_type_and_height[tile], 4, 4, type); |
85 SB(_m[tile].type_height, 4, 4, type); |
86 } |
86 } |
87 |
87 |
88 static inline bool IsTileType(TileIndex tile, TileType type) |
88 static inline bool IsTileType(TileIndex tile, TileType type) |
89 { |
89 { |
90 return GetTileType(tile) == type; |
90 return GetTileType(tile) == type; |
95 assert(tile < MapSize()); |
95 assert(tile < MapSize()); |
96 assert(!IsTileType(tile, MP_HOUSE)); |
96 assert(!IsTileType(tile, MP_HOUSE)); |
97 assert(!IsTileType(tile, MP_VOID)); |
97 assert(!IsTileType(tile, MP_VOID)); |
98 assert(!IsTileType(tile, MP_INDUSTRY)); |
98 assert(!IsTileType(tile, MP_INDUSTRY)); |
99 |
99 |
100 return _map_owner[tile]; |
100 return _m[tile].owner; |
101 } |
101 } |
102 |
102 |
103 static inline void SetTileOwner(TileIndex tile, Owner owner) |
103 static inline void SetTileOwner(TileIndex tile, Owner owner) |
104 { |
104 { |
105 assert(tile < MapSize()); |
105 assert(tile < MapSize()); |
106 assert(!IsTileType(tile, MP_HOUSE)); |
106 assert(!IsTileType(tile, MP_HOUSE)); |
107 assert(!IsTileType(tile, MP_VOID)); |
107 assert(!IsTileType(tile, MP_VOID)); |
108 assert(!IsTileType(tile, MP_INDUSTRY)); |
108 assert(!IsTileType(tile, MP_INDUSTRY)); |
109 |
109 |
110 _map_owner[tile] = owner; |
110 _m[tile].owner = owner; |
111 } |
111 } |
112 |
112 |
113 static inline bool IsTileOwner(TileIndex tile, Owner owner) |
113 static inline bool IsTileOwner(TileIndex tile, Owner owner) |
114 { |
114 { |
115 return GetTileOwner(tile) == owner; |
115 return GetTileOwner(tile) == owner; |