diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/ship_cmd.cpp | 3 | ||||
-rw-r--r-- | src/train_cmd.cpp | 5 | ||||
-rw-r--r-- | src/vehicle.cpp | 3 | ||||
-rw-r--r-- | src/vehicle.h | 2 |
4 files changed, 6 insertions, 7 deletions
diff --git a/src/ship_cmd.cpp b/src/ship_cmd.cpp index 74f5554d1..f2b11ea76 100644 --- a/src/ship_cmd.cpp +++ b/src/ship_cmd.cpp @@ -692,7 +692,8 @@ static void ShipController(Vehicle *v) BeginVehicleMove(v); - if (GetNewVehiclePos(v, &gp)) { + GetNewVehiclePos(v, &gp); + if (gp.old_tile == gp.new_tile) { /* Staying in tile */ if (IsShipInDepot(v)) { gp.x = v->x_pos; diff --git a/src/train_cmd.cpp b/src/train_cmd.cpp index 9a0e8c702..a952f732a 100644 --- a/src/train_cmd.cpp +++ b/src/train_cmd.cpp @@ -2887,9 +2887,10 @@ static void TrainController(Vehicle *v, bool update_image) BeginVehicleMove(v); GetNewVehiclePosResult gp; + GetNewVehiclePos(v, &gp); if (v->u.rail.track != TRACK_BIT_WORMHOLE) { /* Not inside tunnel */ - if (GetNewVehiclePos(v, &gp)) { + if (gp.old_tile == gp.new_tile) { /* Staying in the old tile */ if (v->u.rail.track == TRACK_BIT_DEPOT) { /* Inside depot */ @@ -3039,8 +3040,6 @@ static void TrainController(Vehicle *v, bool update_image) } } else { /* In tunnel or on a bridge */ - GetNewVehiclePos(v, &gp); - if (!(v->vehstatus & VS_HIDDEN)) { v->cur_speed = min(v->cur_speed, GetBridge(GetBridgeType(v->tile))->speed); diff --git a/src/vehicle.cpp b/src/vehicle.cpp index c2846ba54..9b05e3b0b 100644 --- a/src/vehicle.cpp +++ b/src/vehicle.cpp @@ -2692,7 +2692,7 @@ void EndVehicleMove(Vehicle *v) } /* returns true if staying in the same tile */ -bool GetNewVehiclePos(const Vehicle *v, GetNewVehiclePosResult *gp) +void GetNewVehiclePos(const Vehicle *v, GetNewVehiclePosResult *gp) { static const int8 _delta_coord[16] = { -1,-1,-1, 0, 1, 1, 1, 0, /* x */ @@ -2706,7 +2706,6 @@ bool GetNewVehiclePos(const Vehicle *v, GetNewVehiclePosResult *gp) gp->y = y; gp->old_tile = v->tile; gp->new_tile = TileVirtXY(x, y); - return gp->old_tile == gp->new_tile; } static const Direction _new_direction_table[] = { diff --git a/src/vehicle.h b/src/vehicle.h index 93cb13117..8ac880e96 100644 --- a/src/vehicle.h +++ b/src/vehicle.h @@ -427,7 +427,7 @@ typedef struct GetNewVehiclePosResult { Trackdir GetVehicleTrackdir(const Vehicle* v); /* returns true if staying in the same tile */ -bool GetNewVehiclePos(const Vehicle *v, GetNewVehiclePosResult *gp); +void GetNewVehiclePos(const Vehicle *v, GetNewVehiclePosResult *gp); Direction GetDirectionTowards(const Vehicle* v, int x, int y); #define BEGIN_ENUM_WAGONS(v) do { |