@@ -3875,10 +3875,7 @@ public override void UpdateStationState(float elapsedClockSeconds, int presentTi
38753875
38763876 // Reverse formation
38773877 ReverseFormation(false);
3878- if (TrainType == TRAINTYPE.PLAYER)
3879- RedefinePlayerTrainTriggers();
3880- else if (TrainType == TRAINTYPE.AI)
3881- RedefineAITriggers();
3878+ RedefineSoundTriggers();
38823879
38833880
38843881
@@ -6429,6 +6426,7 @@ public void InitalizePlayerTrain()
64296426 }
64306427
64316428 PowerState = true;
6429+ RedefinePlayerTrainTriggers();
64326430 }
64336431
64346432 //================================================================================================//
@@ -9396,6 +9394,8 @@ public void FormTrainFromAI(int presentTime)
93969394 // Reinstate as to be started (note : train is not yet removed from reference)
93979395 AI.StartList.InsertTrain(formedTrain);
93989396 }
9397+
9398+ RedefineSoundTriggers();
93999399 }
94009400 }
94019401
@@ -11794,6 +11794,7 @@ public void TTCouple(TTTrain attachTrain, bool thisTrainFront, bool attachTrainF
1179411794 {
1179511795 attachTrain.InitializeBrakes();
1179611796 }
11797+ attachTrain.RedefineSoundTriggers();
1179711798
1179811799 // Update route positions if required
1179911800 int trainRearPositionIndex = attachTrain.ValidRoute[0].GetRouteIndex(tempRoute.First().TCSectionIndex, 0);
@@ -12097,6 +12098,9 @@ public int TTUncoupleBehind(TTTrain newTrain, bool reverseTrain, int leadLocomot
1209712098 DelayedStartState = AI_START_MOVEMENT.PATH_ACTION;
1209812099 }
1209912100
12101+ // redefine sound triggers
12102+ RedefineSoundTriggers();
12103+
1210012104 // Return new lead locomotive position
1210112105 return newLeadLocomotiveIndex;
1210212106 }
@@ -12469,6 +12473,7 @@ public int CreateStaticTrain(TTTrain train, ref List<TTTrain> trainList, string
1246912473 formedTrain.AI = train.AI;
1247012474
1247112475 trainList.Add(formedTrain);
12476+ formedTrain.RedefineStaticTrainTriggers();
1247212477 return formedTrain.Number;
1247312478 }
1247412479
@@ -13815,6 +13820,8 @@ public bool PerformDetach(TTTrain train, bool allowPlayerSelect)
1381513820 }
1381613821 }
1381713822 }
13823+ train.RedefineSoundTriggers();
13824+ newTrain.RedefineSoundTriggers();
1381813825 }
1381913826
1382013827 return true;
@@ -13911,6 +13918,9 @@ public void DetachPlayerTrain(TTTrain train, int newTrainNumber)
1391113918 Trace.TraceInformation("Player switched to train : " + newTrain.Name);
1391213919 }
1391313920
13921+ train.RedefineSoundTriggers();
13922+ newTrain.RedefineSoundTriggers();
13923+
1391413924 train.DetachPending = false; // Detach completed
1391513925 }
1391613926
0 commit comments