@@ -204,6 +204,7 @@ export function getPlayheadTrackingInfinitesForPart(
204204 case PieceLifespan . OutOnSegmentEnd :
205205 isValid =
206206 currentPartInstance . segmentId === intoPart . segmentId &&
207+ ! ! candidatePiece . piece . startPartId &&
207208 partsToReceiveOnSegmentEndFromSet . has ( candidatePiece . piece . startPartId )
208209 break
209210 case PieceLifespan . OutOnRundownEnd :
@@ -294,11 +295,16 @@ export function isPiecePotentiallyActiveInPart(
294295 return false
295296 case PieceLifespan . OutOnSegmentEnd :
296297 return (
298+ ! ! pieceToCheck . startPartId &&
297299 pieceToCheck . startSegmentId === part . segmentId &&
298300 partsToReceiveOnSegmentEndFrom . has ( pieceToCheck . startPartId )
299301 )
300302 case PieceLifespan . OutOnRundownEnd :
301- if ( pieceToCheck . startRundownId === part . rundownId ) {
303+ if (
304+ pieceToCheck . startRundownId === part . rundownId &&
305+ pieceToCheck . startPartId &&
306+ pieceToCheck . startSegmentId
307+ ) {
302308 if ( pieceToCheck . startSegmentId === part . segmentId ) {
303309 return partsToReceiveOnSegmentEndFrom . has ( pieceToCheck . startPartId )
304310 } else {
@@ -315,6 +321,7 @@ export function isPiecePotentiallyActiveInPart(
315321 } else {
316322 // Predicting what will happen at arbitrary point in the future
317323 return (
324+ ! ! pieceToCheck . startPartId &&
318325 pieceToCheck . startSegmentId === part . segmentId &&
319326 partsToReceiveOnSegmentEndFrom . has ( pieceToCheck . startPartId )
320327 )
@@ -327,6 +334,7 @@ export function isPiecePotentiallyActiveInPart(
327334 } else {
328335 // Predicting what will happen at arbitrary point in the future
329336 return (
337+ ! ! pieceToCheck . startSegmentId &&
330338 pieceToCheck . startRundownId === part . rundownId &&
331339 segmentsToReceiveOnRundownEndFrom . has ( pieceToCheck . startSegmentId )
332340 )
@@ -389,8 +397,8 @@ export function getPieceInstancesForPart(
389397 if ( pieceA . startPartId === pieceB . startPartId ) {
390398 return pieceA . enable . start < pieceB . enable . start
391399 }
392- const pieceAIndex = orderedPartIds . indexOf ( pieceA . startPartId )
393- const pieceBIndex = orderedPartIds . indexOf ( pieceB . startPartId )
400+ const pieceAIndex = pieceA . startPartId === null ? - 2 : orderedPartIds . indexOf ( pieceA . startPartId )
401+ const pieceBIndex = pieceB . startPartId === null ? - 2 : orderedPartIds . indexOf ( pieceB . startPartId )
394402
395403 if ( pieceAIndex === - 1 ) {
396404 return false
0 commit comments