summaryrefslogtreecommitdiff
path: root/train_cmd.c
diff options
context:
space:
mode:
authormatthijs <matthijs@openttd.org>2005-05-02 23:59:11 +0000
committermatthijs <matthijs@openttd.org>2005-05-02 23:59:11 +0000
commitf8302a137a2cf1d91fa4e8ece35289ef4108499b (patch)
treecad8daa1ee5542d4e8fefcbf2e2825e3f35fdb47 /train_cmd.c
parentba733c005dbe8edf23a3f1cb05dd892df5be11a9 (diff)
downloadopenttd-f8302a137a2cf1d91fa4e8ece35289ef4108499b.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.c10
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);