mirror of
https://github.com/mehotkhan/BandersnatchInteractive.git
synced 2025-07-28 09:42:55 +00:00
assets/scripts.js: Clean up some global variables
This commit is contained in:
parent
449e112040
commit
bc5a6bf2b9
1 changed files with 23 additions and 24 deletions
|
@ -5,13 +5,6 @@ var choicePoints = bv.choicePointNavigatorMetadata.choicePointsMetadata.choicePo
|
||||||
var momentsBySegment = bv.momentsBySegment;
|
var momentsBySegment = bv.momentsBySegment;
|
||||||
var segmentGroups = bv.segmentGroups;
|
var segmentGroups = bv.segmentGroups;
|
||||||
|
|
||||||
// Global mutable state
|
|
||||||
var captions = {};
|
|
||||||
var currentSegment;
|
|
||||||
var nextSegment = null;
|
|
||||||
var currentMoments = [];
|
|
||||||
var globalChoices = {};
|
|
||||||
|
|
||||||
// Persistent state
|
// Persistent state
|
||||||
var ls = window.localStorage || {};
|
var ls = window.localStorage || {};
|
||||||
|
|
||||||
|
@ -130,6 +123,8 @@ function addItem(ul, text, url) {
|
||||||
ul.appendChild(li);
|
ul.appendChild(li);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var nextSegment = null;
|
||||||
|
|
||||||
function setNextSegment(segmentId, comment) {
|
function setNextSegment(segmentId, comment) {
|
||||||
console.log('setNextSegment', segmentId, comment);
|
console.log('setNextSegment', segmentId, comment);
|
||||||
nextSegment = segmentId;
|
nextSegment = segmentId;
|
||||||
|
@ -158,7 +153,7 @@ function addZones(segmentId) {
|
||||||
|
|
||||||
ul = newList("nextSegments");
|
ul = newList("nextSegments");
|
||||||
for (const [k, v] of Object.entries(segmentMap.segments[segmentId].next)) {
|
for (const [k, v] of Object.entries(segmentMap.segments[segmentId].next)) {
|
||||||
let caption = captions[k] ? captions[k] : k;
|
let caption = k;
|
||||||
if (segmentMap.segments[segmentId].defaultNext == k) {
|
if (segmentMap.segments[segmentId].defaultNext == k) {
|
||||||
caption = '[' + caption + ']';
|
caption = '[' + caption + ']';
|
||||||
setNextSegment(k);
|
setNextSegment(k);
|
||||||
|
@ -167,6 +162,8 @@ function addZones(segmentId) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var globalChoices = {};
|
||||||
|
|
||||||
function addChoices(r) {
|
function addChoices(r) {
|
||||||
var ul = newList("choices");
|
var ul = newList("choices");
|
||||||
document.getElementById("choiceCaption").innerHTML = '';
|
document.getElementById("choiceCaption").innerHTML = '';
|
||||||
|
@ -214,8 +211,10 @@ function momentEnd(m, seeked) {
|
||||||
|
|
||||||
var timerId = 0;
|
var timerId = 0;
|
||||||
var lastMs = 0;
|
var lastMs = 0;
|
||||||
|
var currentSegment;
|
||||||
var lastSegment = null;
|
var lastSegment = null;
|
||||||
var segmentTransition = false;
|
var segmentTransition = false;
|
||||||
|
var lastMoments = [];
|
||||||
|
|
||||||
function ontimeupdate(evt) {
|
function ontimeupdate(evt) {
|
||||||
var ms = getCurrentMs();
|
var ms = getCurrentMs();
|
||||||
|
@ -264,27 +263,27 @@ function ontimeupdate(evt) {
|
||||||
var naturalTransition = !seeked || segmentTransition;
|
var naturalTransition = !seeked || segmentTransition;
|
||||||
segmentTransition = false;
|
segmentTransition = false;
|
||||||
|
|
||||||
var moments = getMoments(currentSegment, ms);
|
var currentMoments = getMoments(currentSegment, ms);
|
||||||
for (let k in currentMoments)
|
for (let k in lastMoments)
|
||||||
if (!(k in moments)) {
|
|
||||||
momentEnd(currentMoments[k], !naturalTransition);
|
|
||||||
placeChanged = true;
|
|
||||||
}
|
|
||||||
for (let k in currentMoments)
|
|
||||||
if (k in moments)
|
|
||||||
momentUpdate(currentMoments[k], ms);
|
|
||||||
for (let k in moments)
|
|
||||||
if (!(k in currentMoments)) {
|
if (!(k in currentMoments)) {
|
||||||
momentStart(moments[k], !naturalTransition);
|
momentEnd(lastMoments[k], !naturalTransition);
|
||||||
placeChanged = true;
|
placeChanged = true;
|
||||||
}
|
}
|
||||||
currentMoments = moments;
|
for (let k in lastMoments)
|
||||||
|
if (k in currentMoments)
|
||||||
|
momentUpdate(lastMoments[k], ms);
|
||||||
|
for (let k in currentMoments)
|
||||||
|
if (!(k in lastMoments)) {
|
||||||
|
momentStart(currentMoments[k], !naturalTransition);
|
||||||
|
placeChanged = true;
|
||||||
|
}
|
||||||
|
lastMoments = currentMoments;
|
||||||
|
|
||||||
if (placeChanged) {
|
if (placeChanged) {
|
||||||
let title = 'Bandersnatch';
|
let title = 'Bandersnatch';
|
||||||
title += ' - Chapter ' + currentSegment;
|
title += ' - Chapter ' + currentSegment;
|
||||||
for (let k in moments) {
|
for (let k in currentMoments) {
|
||||||
let m = moments[k];
|
let m = currentMoments[k];
|
||||||
if (m.type.substr(0, 6) == 'scene:') {
|
if (m.type.substr(0, 6) == 'scene:') {
|
||||||
if (m.id && m.id in choicePoints && choicePoints[m.id].description)
|
if (m.id && m.id in choicePoints && choicePoints[m.id].description)
|
||||||
title += ' - Choice "' + choicePoints[m.id].description + '"';
|
title += ' - Choice "' + choicePoints[m.id].description + '"';
|
||||||
|
@ -297,8 +296,8 @@ 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 = segmentMap.segments[currentSegment].startTimeMs;
|
||||||
for (let k in moments) {
|
for (let k in currentMoments) {
|
||||||
let m = moments[k];
|
let m = currentMoments[k];
|
||||||
if (m.startMs > bestMomentStart) {
|
if (m.startMs > bestMomentStart) {
|
||||||
hash = k;
|
hash = k;
|
||||||
bestMomentStart = m.startMs;
|
bestMomentStart = m.startMs;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue