Fix 55170ae: [Script] Building two-way signals could end up one-way

pull/393/head
glx22 2 years ago committed by Loïc Guilloux
parent 992c72c0cb
commit ed1457dca3

@ -1023,6 +1023,30 @@ function Regression::Rail()
print(" IsRailTile(): " + AIRail.IsRailTile(10002));
print(" BuildRailTrack(): " + AIRail.BuildRailTrack(10002, AIRail.RAILTRACK_NW_SE));
print(" BuildSignal(): " + AIRail.BuildSignal(10002, 10258, AIRail.SIGNALTYPE_PBS));
print(" GetSignalType(): " + AIRail.GetSignalType(10002, 10258));
print(" GetSignalType(): " + AIRail.GetSignalType(10002, 9746));
print(" RemoveSignal(): " + AIRail.RemoveSignal(10002, 10258));
print(" BuildSignal(): " + AIRail.BuildSignal(10002, 9746, AIRail.SIGNALTYPE_ENTRY));
print(" GetSignalType(): " + AIRail.GetSignalType(10002, 10258));
print(" GetSignalType(): " + AIRail.GetSignalType(10002, 9746));
print(" RemoveSignal(): " + AIRail.RemoveSignal(10002, 9746));
print(" BuildSignal(): " + AIRail.BuildSignal(10002, 9746, AIRail.SIGNALTYPE_EXIT_TWOWAY));
print(" GetSignalType(): " + AIRail.GetSignalType(10002, 10258));
print(" GetSignalType(): " + AIRail.GetSignalType(10002, 9746));
print(" RemoveRailTrack(): " + AIRail.RemoveRailTrack(10002, AIRail.RAILTRACK_NW_NE));
print(" RemoveRailTrack(): " + AIRail.RemoveRailTrack(10002, AIRail.RAILTRACK_NW_SE));
print(" BuildRailTrack(): " + AIRail.BuildRailTrack(10002, AIRail.RAILTRACK_NW_NE));
print(" BuildSignal(): " + AIRail.BuildSignal(10002, 10003, AIRail.SIGNALTYPE_PBS));
print(" GetSignalType(): " + AIRail.GetSignalType(10002, 10003));
print(" GetSignalType(): " + AIRail.GetSignalType(10002, 10001));
print(" RemoveSignal(): " + AIRail.RemoveSignal(10002, 10003));
print(" BuildSignal(): " + AIRail.BuildSignal(10002, 10001, AIRail.SIGNALTYPE_ENTRY));
print(" GetSignalType(): " + AIRail.GetSignalType(10002, 10003));
print(" GetSignalType(): " + AIRail.GetSignalType(10002, 10001));
print(" RemoveSignal(): " + AIRail.RemoveSignal(10002, 10001));
print(" BuildSignal(): " + AIRail.BuildSignal(10002, 10001, AIRail.SIGNALTYPE_EXIT_TWOWAY));
print(" GetSignalType(): " + AIRail.GetSignalType(10002, 10003));
print(" GetSignalType(): " + AIRail.GetSignalType(10002, 10001));
print(" RemoveRailTrack(): " + AIRail.RemoveRailTrack(10002, AIRail.RAILTRACK_NW_NE));
print(" RemoveRailTrack(): " + AIRail.RemoveRailTrack(10002, AIRail.RAILTRACK_NW_SE));
print(" BuildRail(): " + AIRail.BuildRail(10002, 10003, 10006));

@ -7411,8 +7411,32 @@ ERROR: IsEnd() is invalid as Begin() is never called
IsRailTile(): false
BuildRailTrack(): true
BuildSignal(): true
GetSignalType(): 4
GetSignalType(): 255
RemoveSignal(): true
BuildSignal(): true
GetSignalType(): 255
GetSignalType(): 1
RemoveSignal(): true
BuildSignal(): true
GetSignalType(): 10
GetSignalType(): 10
RemoveRailTrack(): false
RemoveRailTrack(): true
BuildRailTrack(): true
BuildSignal(): false
GetSignalType(): 255
GetSignalType(): 255
RemoveSignal(): false
BuildSignal(): true
GetSignalType(): 255
GetSignalType(): 1
RemoveSignal(): true
BuildSignal(): true
GetSignalType(): 255
GetSignalType(): 10
RemoveRailTrack(): true
RemoveRailTrack(): false
BuildRail(): true
HasTransportType(): true
HasTransportType(): false
@ -9272,12 +9296,12 @@ ERROR: IsEnd() is invalid as Begin() is never called
GetLocation(): 33417
GetEngineType(): 153
GetUnitNumber(): 1
GetAge(): 1
GetAge(): 0
GetMaxAge(): 5490
GetAgeLeft(): 5489
GetAgeLeft(): 5490
GetCurrentSpeed(): 7
GetRunningCost(): 421
GetProfitThisYear(): -1
GetProfitThisYear(): 0
GetProfitLastYear(): 0
GetCurrentValue(): 5947
GetVehicleType(): 1
@ -9287,7 +9311,7 @@ ERROR: IsEnd() is invalid as Begin() is never called
IsInDepot(): false
GetNumWagons(): 1
GetWagonEngineType(): 153
GetWagonAge(): 1
GetWagonAge(): 0
GetLength(): 8
GetOwner(): 1
BuildVehicle(): 14
@ -9360,11 +9384,11 @@ ERROR: IsEnd() is invalid as Begin() is never called
14 => 1
12 => 1
Age ListDump:
17 => 1
16 => 1
14 => 1
13 => 1
12 => 1
17 => 0
16 => 0
14 => 0
MaxAge ListDump:
16 => 10980
14 => 10980
@ -9372,9 +9396,9 @@ ERROR: IsEnd() is invalid as Begin() is never called
13 => 5490
12 => 5490
AgeLeft ListDump:
16 => 10980
14 => 10980
17 => 7320
16 => 10979
14 => 10979
17 => 7319
13 => 5489
12 => 5489
CurrentSpeed ListDump:

@ -463,6 +463,8 @@ static bool IsValidSignalType(int signal_type)
if (signal < SIGNALTYPE_TWOWAY) {
if (signal != SIGNALTYPE_PBS && signal != SIGNALTYPE_PBS_ONEWAY) signal_cycles++;
} else {
signal_cycles = 0;
}
::SignalType sig_type = (::SignalType)(signal >= SIGNALTYPE_TWOWAY ? signal ^ SIGNALTYPE_TWOWAY : signal);

Loading…
Cancel
Save