CAMBIAMENTI IN QUESTA VERSIONE DE "L'ISOLA DEI SEGRETI"

Utilizzo di array stringa
=========================

Il programma originale e' scritto in un BASIC "universale" per quanto
possibile, insomma in maniera tale che le conversioni per i vari
microcomputer a 8 bit esistenti all'epoca fossero minime. Erano previste
versioni per C64, Vic20 + 16KB, TRS-80, Acorn BBC ed Electron, Spectrum
48K.

In particolare, la gestione statica degli array stringa sugli Spectrum e
lo spreco di RAM che si sarebbe verificato su tale macchina ha indotto
l'autore del programma BASIC ad evitarne l'utilizzo, ricorrendo ad
artifizi nelle routine che avrebbero potuto farne uso, e cioe':

* il riconoscimento delle parole (per il quale sono usati solo i primi tre
caratteri)
* la memorizzazione e visualizzazione delle descrizioni di luoghi e
oggetti

Purtroppo, questa scelta si e' propagata alle altre versioni, rendendo le
routine molto piu' "pesanti" sull'interprete BASIC di quanto avrebbero
potuto essere col ricorso agli array.

Nel caso delle descrizioni, ogni volta che una descrizione deve essere
prelevata dalla memoria, il programma rilegge la stringa dal set di linee
DATA. Cio' e' accettabile su macchine dotate di RESTORE con numero di
linea (calcolato), ma e' terribile sui Commodore, che ogni volta devono
rileggere l'intero set di DATA dall'inizio. In questa versione ho percio'
sostituito questa routine con la creazione, in fase di inizializzazione,
di un apposito array stringa in modo che le stringhe possano essere
trattate piu' rapidamente. I Commodore possono far puntare le variabili (e
gli array) stringa direttamente alla memoria del programma BASIC, percio'
si ha un aumento minimo dell'utilizzo di RAM per le variabili, rispetto a
quanto sarebbe avvenuto nello Spectrum.

Anche per quanto riguarda il riconoscimento delle parole, i gruppi di tre
lettere ora vengono memorizzati in array.

Complessivamente, queste due modifiche hanno permesso di ridurre di circa
un secondo (nella versione BASIC) l'attesa tra l'inserimento di un comando
da parte del giocatore e la comparsa della nuova schermata.

Correzioni alla traduzione italiana
===================================

Oltre a correggere alcuni errori di traduzione di minore entita', ho
provveduto a "ribattezzare" alcuni oggetti o a sostituire alcuni verbi con
dei sinonimi, quando nell'originale capitava che alcune parole iniziassero
con le stesse tre lettere, impedendo il corretto funzionamento del gioco.

Abbandonare l'avventura
=======================

Nel caso il giocatore abbandonasse per conoscere il proprio punteggio,
sono ora saltati tutti i controlli su eventi casuali o legati alla
locazione, che sono decisamente inutili. Questo evita anche la
visualizzazione di un messaggio diverso dal previsto "rinunci alla tua
ricerca".

Visualizzazione degli oggetti
=============================

Nella versione originale, alcuni oggetti sono "invisibili", nel senso che
la loro presenza nella locazione non viene segnalata durante il gioco. Sta
al giocatore guardare l'immagine del luogo presente sul libro allegato
all'avventura e notare la presenza di determinati oggetti
nell'illustrazione.

Per chi non possiede una copia cartacea del libro, ma deve fare ricorso
alle scansioni, questo puo' tradursi in una serie di operazioni di una
scomodita' disarmante. Ho percio' aggiunto in fase di inizializzazione una
domanda al giocatore, se si desideri che tutti gli oggetti siano visibili
oppure no.

Visualizzazione delle uscite
============================

Similmente a quanto accade con gli oggetti, le uscite (nord/sud/est/ovest)
non sono segnalate al giocatore nella versione originale; sta a lui
consultare la mappa stampata sul libro e cercare di capire in quali
direzioni sia possibile recarsi. Anche in questo caso ho preferito far si'
che sia chiesto al giocatore se visualizzare le uscite oppure no.

Personalizzazione dei colori
============================

Il giocatore puo' ora configurare la combinazione di colori all'avvio del
programma.

Utilizzo del disco
==================

Le routine di salvataggio e caricamento della partita sono state
modificate per l'utilizzo con il disk drive (device 8). Cio' torna utile a
chi utilizza un emulatore. La routine di XLOAD visualizza i file
disponibili nella directory prima di chiedere quale caricare.

Errori nel salvataggio della partita
====================================

Alcune variabili cruciali venivano salvate inserendole nell'array F() in
indici normalmente inutilizzati. Tali indici venivano pero' utilizzati in
casi particolari (eventi casuali, comandi di raro utilizzo come ANDARE
GIU, ecc.) rendendo tali eventi e comandi non correttamente funzionanti.

Ancora una volta la "colpa" e' della versione per lo spectrum, giacche' si
voleva risparmiare la creazione in un altro array di variabili apposta per
il salvataggio con SAVE "DATI ISOLA" DATA x(), e si decise di utilizzare
quegli indici erroneamente ritenuti "liberi" dell'array F().

Risolto salvando le variabili nel file sequenziale separatamente
dall'array. Notare che questo rende incompatibili i salvataggi tra questa
versione de "L'Isola dei Segreti" e le precedenti, in particolare: la
versione pubblicata dal Gruppo Editoriale Jackson, quella presente su
Gamebase64 al momento in cui scrivo (10 marzo 2007), e tutte le mie BETA
fino a quella rilasciata il 23 febbraio 2007 (compresa). Non tentate di
utilizzare salvataggi provenienti da versioni precedenti con questa
versione de "L'Isola dei Segreti".

Routine di input
================

Il ricorso all'istruzione INPUT del BASIC e' stato sostituito con delle
routine apposite, in particolare per evitare l'inserimento di caratteri
non validi.

Miglioramenti dell'output a schermo
===================================

La routine per l'articolazione delle preposizioni in italiano e' stata
migliorata.
Inoltre, e' stata riscritta completamente la routine per il word wrapping.

Istruzioni
==========

Una breve introduzione al gioco comprensiva di istruzioni, presente nel
programma originale in inglese e non nella versione italiana, e' stata
tradotta dall'originale e inserita nel listato.

Nuovo nella versione 1.1
========================

In alcune occasioni veniva visualizzato un messaggio di stato errato in
luogo di "ok". Questo e' stato risolto.

Sono stati risolti alcuni problemi relativi all'attesa della pressione di
un tasto al verificarsi di alcuni eventi.

Scambiare l'ordine di alcune azioni nel finale del gioco non compromette
piu' l'esito della partita.

E' ora possibile esaminare la base della colonna di marmo e leggere
l'iscrizione internamente al gioco. Precedentemente era necessario
consultare il libro per conoscere le parole esatte.

Rimossi saluti e ringraziamenti.
