mirror of
https://github.com/mehotkhan/BandersnatchInteractive.git
synced 2025-07-28 01:33:23 +00:00
assets/scripts.js: Fix case of unmapped segment
Fixes behavior and JS errors during the post-credit studio logos.
This commit is contained in:
parent
ad877dfe1e
commit
6d34768b11
1 changed files with 14 additions and 11 deletions
|
@ -169,10 +169,10 @@ function addZones(segmentId) {
|
||||||
let caption = 'currentSegment(' + segmentId + ')';
|
let caption = 'currentSegment(' + segmentId + ')';
|
||||||
addItem(ul, caption, 'javascript:playSegment("' + segmentId + '")');
|
addItem(ul, caption, 'javascript:playSegment("' + segmentId + '")');
|
||||||
|
|
||||||
var v = segmentMap.segments[segmentId];
|
var segment = segmentMap.segments[segmentId];
|
||||||
if (v && v.ui && v.ui.interactionZones) {
|
if (segment && segment.ui && segment.ui.interactionZones) {
|
||||||
var index = 0;
|
var index = 0;
|
||||||
for (var z of v.ui.interactionZones) {
|
for (var z of segment.ui.interactionZones) {
|
||||||
var startMs = z[0];
|
var startMs = z[0];
|
||||||
var stopMs = z[1];
|
var stopMs = z[1];
|
||||||
let caption = segmentId + ' interactionZone ' + index;
|
let caption = segmentId + ' interactionZone ' + index;
|
||||||
|
@ -183,13 +183,15 @@ function addZones(segmentId) {
|
||||||
|
|
||||||
ul = newList("nextSegments");
|
ul = newList("nextSegments");
|
||||||
let defaultSegmentId = null;
|
let defaultSegmentId = null;
|
||||||
for (const [k, v] of Object.entries(segmentMap.segments[segmentId].next)) {
|
if (segment) {
|
||||||
let caption = k;
|
for (const [k, v] of Object.entries(segment.next)) {
|
||||||
if (segmentMap.segments[segmentId].defaultNext == k) {
|
let caption = k;
|
||||||
caption = '[' + caption + ']';
|
if (segment.defaultNext == k) {
|
||||||
defaultSegmentId = k;
|
caption = '[' + caption + ']';
|
||||||
|
defaultSegmentId = k;
|
||||||
|
}
|
||||||
|
addItem(ul, caption, 'javascript:playSegment("' + k + '")');
|
||||||
}
|
}
|
||||||
addItem(ul, caption, 'javascript:playSegment("' + k + '")');
|
|
||||||
}
|
}
|
||||||
setNextSegment(defaultSegmentId);
|
setNextSegment(defaultSegmentId);
|
||||||
}
|
}
|
||||||
|
@ -251,6 +253,7 @@ var lastMoments = [];
|
||||||
function ontimeupdate(evt) {
|
function ontimeupdate(evt) {
|
||||||
var ms = getCurrentMs();
|
var ms = getCurrentMs();
|
||||||
currentSegment = getSegmentId(ms);
|
currentSegment = getSegmentId(ms);
|
||||||
|
let segment = segmentMap.segments[currentSegment];
|
||||||
|
|
||||||
if (timerId) {
|
if (timerId) {
|
||||||
clearTimeout(timerId);
|
clearTimeout(timerId);
|
||||||
|
@ -318,7 +321,7 @@ function ontimeupdate(evt) {
|
||||||
|
|
||||||
let hash = currentSegment;
|
let hash = currentSegment;
|
||||||
// Pick the moment which starts closer to the current timestamp.
|
// Pick the moment which starts closer to the current timestamp.
|
||||||
let bestMomentStart = segmentMap.segments[currentSegment].startTimeMs;
|
let bestMomentStart = segment ? segment.startTimeMs : 0;
|
||||||
for (let k in currentMoments) {
|
for (let k in currentMoments) {
|
||||||
let m = currentMoments[k];
|
let m = currentMoments[k];
|
||||||
if (m.startMs > bestMomentStart) {
|
if (m.startMs > bestMomentStart) {
|
||||||
|
@ -333,7 +336,7 @@ function ontimeupdate(evt) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// ontimeupdate resolution is about a second. Augment it using timer.
|
// ontimeupdate resolution is about a second. Augment it using timer.
|
||||||
let nextEvent = segmentMap.segments[currentSegment].endTimeMs;
|
let nextEvent = segment ? segment.endTimeMs : 0;
|
||||||
for (let k in currentMoments) {
|
for (let k in currentMoments) {
|
||||||
let m = currentMoments[k];
|
let m = currentMoments[k];
|
||||||
if (m.endMs < nextEvent)
|
if (m.endMs < nextEvent)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue