mirror of https://github.com/OpenTTD/OpenTTD
Fix: Prevent duplicate train reversal when already reversing
parent
e46456d605
commit
4c7ea26238
|
@ -1973,7 +1973,7 @@ static bool IsWholeTrainInsideDepot(const Train *v)
|
||||||
*/
|
*/
|
||||||
void ReverseTrainDirection(Train *v)
|
void ReverseTrainDirection(Train *v)
|
||||||
{
|
{
|
||||||
DEBUG(driver, 1, "Reversing train %d on tile %d", v->index, v->tile);
|
//DEBUG(driver, 1, "Reversing train %d on tile %d", v->index, v->tile);
|
||||||
|
|
||||||
if (IsRailDepotTile(v->tile)) {
|
if (IsRailDepotTile(v->tile)) {
|
||||||
if (IsWholeTrainInsideDepot(v)) return;
|
if (IsWholeTrainInsideDepot(v)) return;
|
||||||
|
@ -3868,6 +3868,9 @@ static TileIndex TrainApproachingCrossingTile(const Train *v)
|
||||||
*/
|
*/
|
||||||
static bool TrainCheckIfLineEnds(Train *v, bool reverse)
|
static bool TrainCheckIfLineEnds(Train *v, bool reverse)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
if (v->flags.Test(VehicleRailFlag::Reversing)) return false;
|
||||||
|
|
||||||
/* First, handle broken down train */
|
/* First, handle broken down train */
|
||||||
|
|
||||||
int t = v->breakdown_ctr;
|
int t = v->breakdown_ctr;
|
||||||
|
@ -3917,6 +3920,7 @@ static bool TrainCheckIfLineEnds(Train *v, bool reverse)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static bool TrainLocoHandler(Train *v, bool mode)
|
static bool TrainLocoHandler(Train *v, bool mode)
|
||||||
{
|
{
|
||||||
/* train has crashed? */
|
/* train has crashed? */
|
||||||
|
|
Loading…
Reference in New Issue