diff options
author | matthijs <matthijs@openttd.org> | 2005-05-02 23:59:11 +0000 |
---|---|---|
committer | matthijs <matthijs@openttd.org> | 2005-05-02 23:59:11 +0000 |
commit | 6eb094c72622b39bceff8293c3446e57d21c62f0 (patch) | |
tree | cad8daa1ee5542d4e8fefcbf2e2825e3f35fdb47 /train_cmd.c | |
parent | 2ab5eee78b495ec73049c8446a0ed37ab4ff0920 (diff) | |
download | openttd-6eb094c72622b39bceff8293c3446e57d21c62f0.tar.xz |
(svn r2256) - Fix: Trains cannot find a depot when they are in a tunnel. (glx)
- Add: GetVehicleTrackdir() helper function.
- Codechange: Moved SortStruct from vehicle_gui.h to ttd.h, so the dependency from vehicle.h on vehicle_gui.h could be removed.
- Codechange: Typedeffed the VehicleTypes struct so it can be used as the type for Vehicle.type instead of "byte".
- Codechange: Removed prototype for VehicleSorter(), which had no implementation anymore and was never called.
Diffstat (limited to 'train_cmd.c')
-rw-r--r-- | train_cmd.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/train_cmd.c b/train_cmd.c index 844d09153..ebbb129ef 100644 --- a/train_cmd.c +++ b/train_cmd.c @@ -16,6 +16,7 @@ #include "sound.h" #include "depot.h" #include "waypoint.h" +#include "vehicle_gui.h" #define is_firsthead_sprite(spritenum) \ (is_custom_sprite(spritenum) \ @@ -1317,7 +1318,8 @@ static TrainFindDepotData FindClosestTrainDepot(Vehicle *v) if (_patches.new_pathfinding_all) { NPFFoundTargetData ftd; - byte trackdir = _track_direction_to_trackdir[FIND_FIRST_BIT(v->u.rail.track)][v->direction]; + byte trackdir = GetVehicleTrackdir(v); + assert (trackdir != 0xFF); ftd = NPFRouteToDepotBreadthFirst(v->tile, trackdir, TRANSPORT_RAIL, v->owner); if (ftd.best_bird_dist == 0) { /* Found target */ @@ -1668,7 +1670,7 @@ static byte ChooseTrainTrack(Vehicle *v, uint tile, int enterdir, byte trackbits NPFFillWithOrderData(&fstd, v); /* The enterdir for the new tile, is the exitdir for the old tile */ - trackdir = _track_exitdir_to_trackdir[FIND_FIRST_BIT(v->u.rail.track)][enterdir]; + trackdir = GetVehicleTrackdir(v); assert(trackdir != 0xff); ftd = NPFRouteToStationOrTile(tile - TileOffsByDir(enterdir), trackdir, &fstd, TRANSPORT_RAIL, v->owner); @@ -1804,8 +1806,8 @@ static bool CheckReverseTrain(Vehicle *v) NPFFillWithOrderData(&fstd, v); - trackdir = _track_direction_to_trackdir[FIND_FIRST_BIT(v->u.rail.track)][v->direction]; - trackdir_rev = REVERSE_TRACKDIR(_track_direction_to_trackdir[FIND_FIRST_BIT(last->u.rail.track)][last->direction]); + trackdir = GetVehicleTrackdir(v); + trackdir_rev = REVERSE_TRACKDIR(GetVehicleTrackdir(v)); assert(trackdir != 0xff); assert(trackdir_rev != 0xff); |