diff --git a/esempi/Cromwell/interprete.js b/esempi/Cromwell/interprete.js index 247d8f9..17f48bb 100644 --- a/esempi/Cromwell/interprete.js +++ b/esempi/Cromwell/interprete.js @@ -400,7 +400,7 @@ var Vista = { // Esegue il file audio se caricato var e_fileAudio = document.getElementById('fileAudio'); if (e_fileAudio !== null) e_fileAudio.play(); - // Segna che conclusa la fase di caricamento della scena + // Segna che è conclusa la fase di caricamento della scena Vista.caricamento = 0; // Passa il focus alla casella di input G.pronto(); @@ -607,18 +607,22 @@ var I = { for (var a = 0; a < azioni.length; a++) { if (azioni[a].azione !== 'vaiA' && azioni[a].mosse === undefined) { I.eseguiIstruzione(azioni[a]); + // Eventuali rispondiVai contano come cambi di scena ed hanno la priorità + if (azioni[a].azione === 'rispondiVai') cambioScena = 1; azioni.splice(a, 1); a--; azioneEseguita = 1; + break; } } - // Poi quelle che comportano un cambio di scena legate a nMosseVai - // Ogni successivo cambio di scena sarà ignorato (vale il primo) - for (var a = 0; a < azioni.length; a++) { - if (azioni[a].azione === 'vaiA' && azioni[a].mosse !== undefined) { - I.eseguiIstruzione(azioni[a]); - azioni.splice(a, 1); a--; - cambioScena = 1; - break; + // Poi quelle che comportano un cambio di scena legato a nMosseVai + if (cambioScena === 0) { + for (var a = 0; a < azioni.length; a++) { + if (azioni[a].azione === 'vaiA' && azioni[a].mosse !== undefined) { + I.eseguiIstruzione(azioni[a]); + azioni.splice(a, 1); a--; + cambioScena = 1; + break; + } } } // Poi i cambi di scena ordinari, se non ne è già avvenuto uno @@ -633,7 +637,7 @@ var I = { } } // Poi i messaggi dopo nMosse - // assicurarsi che non sia un "vaiA" perché non vengono scartati tutti, solo il primo incontrato + // Assicurarsi che non sia un "vaiA" perché non vengono scartati tutti, solo il primo incontrato for (var a = 0; a < azioni.length; a++) { if (azioni[a].azione !== 'vaiA' && azioni[a].mosse !== undefined) { I.eseguiIstruzione(azioni[a]); @@ -804,8 +808,8 @@ var I = { } break; case 'rispondiVai': - document.getElementById('input').style.display = 'none'; - if (Vista.bastaInvioInp === 0) { + if (!istro.mosse) { + document.getElementById('input').style.display = 'none'; classi = ' class="inviato'; if (Vista.stile.coloreTestoInviato) { coloreInline = ' style="color:'+Vista.stile.coloreTestoInviato+';"'; @@ -813,9 +817,9 @@ var I = { classi += ' coloreTestoInviato'; } classi += '"'; - e_txt.innerHTML += '
? ' + Vista.invioInp + '
'; + e_txt.innerHTML += '? ' + I.inputGrezzo + '
'; } - e_txt.innerHTML += '' + istro.output + '
'; + e_txt.innerHTML += '' + Vista.testoSpeciale(istro.output) + '
'; // Per procedere serve ora premere un tasto // Siccome nScenaPP (precedente alla precedente) verrà sovrascritto da nScenaP, si può usare come valore temporaneo per il caricamento di scena che effettuerà la funzione prossimaScena() G.nScenaPP = istro.scena diff --git a/esempi/Cromwell/scene.js b/esempi/Cromwell/scene.js index c1e0b65..af0b819 100644 --- a/esempi/Cromwell/scene.js +++ b/esempi/Cromwell/scene.js @@ -32,12 +32,12 @@ function istruzioniGenerali() { rispondi("esamino la gamba|esamino la gamba di sedia", "È legno fragile e un po' scheggiato."); condizioni("no!drago morto", per => { condizioni("drekann3"); - nMosseVai(2, 23, "ripeti"); + nMosseVai(2, 23); condizioni("drekann2"); - nMosseRispondi(2, "Il rumore si avvicina, distingui dei colpi ritmici, come ali che sbattono...", "ripeti"); + nMosseRispondi(2, "Il rumore si avvicina, distingui dei colpi ritmici, come ali che sbattono..."); _variabili("no!drekann2+drekann3"); condizioni("drekann"); - nMosseRispondi(2, "Avverti un boato cupo e lontano.", "ripeti"); + nMosseRispondi(2, "Avverti un boato cupo e lontano."); _variabili("no!drekann+drekann2"); }); condizioni("il cuore di cromwell@i", per => { @@ -82,7 +82,7 @@ function istruzioniScena(n) { testo("Sei nel bosco di Pietranera. Una fitta vegetazione ti circonda.