87 */ |
87 */ |
88 |
88 |
89 /** Base struct for track followers. */ |
89 /** Base struct for track followers. */ |
90 struct FollowTrack_t |
90 struct FollowTrack_t |
91 { |
91 { |
|
92 enum ErrorCode { |
|
93 EC_NONE, |
|
94 EC_OWNER, |
|
95 EC_RAIL_TYPE, |
|
96 EC_90DEG, |
|
97 EC_NO_WAY, |
|
98 }; |
|
99 |
92 const Vehicle* m_veh; ///< moving vehicle |
100 const Vehicle* m_veh; ///< moving vehicle |
93 TileIndex m_old_tile; ///< the origin (vehicle moved from) before move |
101 TileIndex m_old_tile; ///< the origin (vehicle moved from) before move |
94 Trackdir m_old_td; ///< the trackdir (the vehicle was on) before move |
102 Trackdir m_old_td; ///< the trackdir (the vehicle was on) before move |
95 TileIndex m_new_tile; ///< the new tile (the vehicle has entered) |
103 TileIndex m_new_tile; ///< the new tile (the vehicle has entered) |
96 TrackdirBits m_new_td_bits; ///< the new set of available trackdirs |
104 TrackdirBits m_new_td_bits; ///< the new set of available trackdirs |
97 DiagDirection m_exitdir; ///< exit direction (leaving the old tile) |
105 DiagDirection m_exitdir; ///< exit direction (leaving the old tile) |
98 bool m_is_tunnel; ///< last turn passed tunnel |
106 bool m_is_tunnel; ///< last turn passed tunnel |
99 bool m_is_bridge; ///< last turn passed bridge ramp |
107 bool m_is_bridge; ///< last turn passed bridge ramp |
100 bool m_is_station; ///< last turn passed station |
108 bool m_is_station; ///< last turn passed station |
101 int m_tiles_skipped; ///< number of skipped tunnel or station tiles |
109 int m_tiles_skipped; ///< number of skipped tunnel or station tiles |
|
110 ErrorCode m_err; |
102 }; |
111 }; |
103 |
112 |
104 /** Initializes FollowTrack_t structure */ |
113 /** Initializes FollowTrack_t structure */ |
105 void FollowTrackInit(FollowTrack_t *This, const Vehicle* v); |
114 void FollowTrackInit(FollowTrack_t *This, const Vehicle* v); |
106 |
115 |