# HG changeset patch # User KUDr # Date 1203952162 0 # Node ID 6256752d5e80e9f009130e49951c145ecd093269 # Parent 026fc3b22eecfb004ab433b9c269b11a0f748f2c (svn r12252) -Fix [FS#1801]: Broken FollowTrack_t related functions (thanks michi_cc). -Fixed by removing FollowTrack_t structure and all related functions. Their purpose was to allow to call track followers from C code. They were: 1. never used 2. obsoleted by switching to C++ diff -r 026fc3b22eec -r 6256752d5e80 projects/openttd_vs80.vcproj --- a/projects/openttd_vs80.vcproj Mon Feb 25 13:48:23 2008 +0000 +++ b/projects/openttd_vs80.vcproj Mon Feb 25 15:09:22 2008 +0000 @@ -2176,10 +2176,6 @@ Name="YAPF" > - - diff -r 026fc3b22eec -r 6256752d5e80 projects/openttd_vs90.vcproj --- a/projects/openttd_vs90.vcproj Mon Feb 25 13:48:23 2008 +0000 +++ b/projects/openttd_vs90.vcproj Mon Feb 25 15:09:22 2008 +0000 @@ -2173,10 +2173,6 @@ Name="YAPF" > - - diff -r 026fc3b22eec -r 6256752d5e80 source.list --- a/source.list Mon Feb 25 13:48:23 2008 +0000 +++ b/source.list Mon Feb 25 15:09:22 2008 +0000 @@ -466,7 +466,6 @@ network/core/udp.h # YAPF -yapf/follow_track.cpp yapf/follow_track.hpp yapf/nodelist.hpp yapf/track_dir.hpp diff -r 026fc3b22eec -r 6256752d5e80 src/yapf/follow_track.cpp --- a/src/yapf/follow_track.cpp Mon Feb 25 13:48:23 2008 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,47 +0,0 @@ -/* $Id$ */ - -#include "../stdafx.h" -#include "yapf.hpp" -#include "follow_track.hpp" - -void FollowTrackInit(FollowTrack_t *This, const Vehicle* v) -{ - CFollowTrackWater& F = *(CFollowTrackWater*) This; - F.Init(v, NULL); -} - -bool FollowTrackWater(FollowTrack_t *This, TileIndex old_tile, Trackdir old_td) -{ - CFollowTrackWater& F = *(CFollowTrackWater*) This; - return F.Follow(old_tile, old_td); -} - -bool FollowTrackRoad(FollowTrack_t *This, TileIndex old_tile, Trackdir old_td) -{ - CFollowTrackRoad& F = *(CFollowTrackRoad*) This; - return F.Follow(old_tile, old_td); -} - -bool FollowTrackRail(FollowTrack_t *This, TileIndex old_tile, Trackdir old_td) -{ - CFollowTrackRail& F = *(CFollowTrackRail*) This; - return F.Follow(old_tile, old_td); -} - -bool FollowTrackWaterNo90(FollowTrack_t *This, TileIndex old_tile, Trackdir old_td) -{ - CFollowTrackWaterNo90& F = *(CFollowTrackWaterNo90*) This; - return F.Follow(old_tile, old_td); -} - -bool FollowTrackRoadNo90(FollowTrack_t *This, TileIndex old_tile, Trackdir old_td) -{ - CFollowTrackRoadNo90& F = *(CFollowTrackRoadNo90*) This; - return F.Follow(old_tile, old_td); -} - -bool FollowTrackRailNo90(FollowTrack_t *This, TileIndex old_tile, Trackdir old_td) -{ - CFollowTrackRailNo90& F = *(CFollowTrackRailNo90*) This; - return F.Follow(old_tile, old_td); -} diff -r 026fc3b22eec -r 6256752d5e80 src/yapf/follow_track.hpp --- a/src/yapf/follow_track.hpp Mon Feb 25 13:48:23 2008 +0000 +++ b/src/yapf/follow_track.hpp Mon Feb 25 15:09:22 2008 +0000 @@ -7,12 +7,32 @@ #include "yapf.hpp" + /** Track follower helper template class (can serve pathfinders and vehicle * controllers). See 6 different typedefs below for 3 different transport * types w/ of w/o 90-deg turns allowed */ template -struct CFollowTrackT : public FollowTrack_t +struct CFollowTrackT { + enum ErrorCode { + EC_NONE, + EC_OWNER, + EC_RAIL_TYPE, + EC_90DEG, + EC_NO_WAY, + }; + + const Vehicle* m_veh; ///< moving vehicle + TileIndex m_old_tile; ///< the origin (vehicle moved from) before move + Trackdir m_old_td; ///< the trackdir (the vehicle was on) before move + TileIndex m_new_tile; ///< the new tile (the vehicle has entered) + TrackdirBits m_new_td_bits; ///< the new set of available trackdirs + DiagDirection m_exitdir; ///< exit direction (leaving the old tile) + bool m_is_tunnel; ///< last turn passed tunnel + bool m_is_bridge; ///< last turn passed bridge ramp + bool m_is_station; ///< last turn passed station + int m_tiles_skipped; ///< number of skipped tunnel or station tiles + ErrorCode m_err; CPerformanceTimer* m_pPerf; FORCEINLINE CFollowTrackT(const Vehicle* v = NULL, CPerformanceTimer* pPerf = NULL) diff -r 026fc3b22eec -r 6256752d5e80 src/yapf/yapf.h --- a/src/yapf/yapf.h Mon Feb 25 13:48:23 2008 +0000 +++ b/src/yapf/yapf.h Mon Feb 25 15:09:22 2008 +0000 @@ -73,54 +73,6 @@ extern int _aystar_stats_closed_size; -/** Track followers. They should help whenever any new code will need to walk through - * tracks, road or water tiles (pathfinders, signal controllers, vehicle controllers). - * It is an attempt to introduce API that should simplify tasks listed above. - * If you will need to use it: - * 1. allocate/declare FollowTrack_t structure; - * 2. call FollowTrackInit() and provide vehicle (if relevant) - * 3. call one of 6 FollowTrackXxxx() APIs below - * 4. check return value (if true then continue else stop) - * 5. look at FollowTrack_t structure for the result - * 6. optionally repeat steps 3..5 - * 7. in case of troubles contact KUDr - */ - -/** Base struct for track followers. */ -struct FollowTrack_t -{ - enum ErrorCode { - EC_NONE, - EC_OWNER, - EC_RAIL_TYPE, - EC_90DEG, - EC_NO_WAY, - }; - - const Vehicle* m_veh; ///< moving vehicle - TileIndex m_old_tile; ///< the origin (vehicle moved from) before move - Trackdir m_old_td; ///< the trackdir (the vehicle was on) before move - TileIndex m_new_tile; ///< the new tile (the vehicle has entered) - TrackdirBits m_new_td_bits; ///< the new set of available trackdirs - DiagDirection m_exitdir; ///< exit direction (leaving the old tile) - bool m_is_tunnel; ///< last turn passed tunnel - bool m_is_bridge; ///< last turn passed bridge ramp - bool m_is_station; ///< last turn passed station - int m_tiles_skipped; ///< number of skipped tunnel or station tiles - ErrorCode m_err; -}; - -/** Initializes FollowTrack_t structure */ -void FollowTrackInit(FollowTrack_t *This, const Vehicle* v); - -/** Main track follower routines */ -bool FollowTrackWater (FollowTrack_t *This, TileIndex old_tile, Trackdir old_td); -bool FollowTrackRoad (FollowTrack_t *This, TileIndex old_tile, Trackdir old_td); -bool FollowTrackRail (FollowTrack_t *This, TileIndex old_tile, Trackdir old_td); -bool FollowTrackWaterNo90(FollowTrack_t *This, TileIndex old_tile, Trackdir old_td); -bool FollowTrackRoadNo90 (FollowTrack_t *This, TileIndex old_tile, Trackdir old_td); -bool FollowTrackRailNo90 (FollowTrack_t *This, TileIndex old_tile, Trackdir old_td); - /** Base tile length units */ enum { YAPF_TILE_LENGTH = 100,