From 03536a32a189918713ec808bf270d4ad853a7a38 Mon Sep 17 00:00:00 2001 From: tron Date: Wed, 8 Mar 2006 08:16:31 +0000 Subject: (svn r3786) More work for DirDiff --- train_cmd.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'train_cmd.c') diff --git a/train_cmd.c b/train_cmd.c index 960af695a..88e8881d2 100644 --- a/train_cmd.c +++ b/train_cmd.c @@ -3015,12 +3015,15 @@ static void DeleteLastWagon(Vehicle *v) static void ChangeTrainDirRandomly(Vehicle *v) { - static const int8 _random_dir_change[4] = { -1, 0, 0, 1 }; + static const DirDiff delta[] = { + DIRDIFF_45LEFT, DIRDIFF_SAME, DIRDIFF_SAME, DIRDIFF_45RIGHT + }; do { //I need to buffer the train direction - if (!(v->u.rail.track & 0x40)) - v->direction = (v->direction + _random_dir_change[GB(Random(), 0, 2)]) & 7; + if (!(v->u.rail.track & 0x40)) { + v->direction = ChangeDir(v->direction, delta[GB(Random(), 0, 2)]); + } if (!(v->vehstatus & VS_HIDDEN)) { BeginVehicleMove(v); UpdateTrainDeltaXY(v, v->direction); -- cgit v1.2.3-54-g00ecf