Changeset - r26285:5b8a46841d52
[Not reviewed]
master
0 3 0
glx22 - 2 years ago 2022-05-27 15:54:41
glx@openttd.org
Fix 55170ae: [Script] Building two-way signals could end up one-way
3 files changed with 60 insertions and 10 deletions:
0 comments (0 inline, 0 general)
regression/regression/main.nut
Show inline comments
 
@@ -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));
regression/regression/result.txt
Show inline comments
 
@@ -7411,8 +7411,32 @@ ERROR: IsEnd() is invalid as Begin() is 
 
    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 
 
    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 
 
    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 
 
    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 
 
    13 => 5490
 
    12 => 5490
 
  AgeLeft ListDump:
 
    16 => 10980
 
    14 => 10980
 
    17 => 7320
 
    16 => 10979
 
    14 => 10979
 
    17 => 7319
 
    13 => 5489
 
    12 => 5489
 
  CurrentSpeed ListDump:
src/script/api/script_rail.cpp
Show inline comments
 
@@ -463,6 +463,8 @@ static bool IsValidSignalType(int signal
 

	
 
	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);
 

	
0 comments (0 inline, 0 general)