Inform e Glulx/Inform e ancora Inform/Le estensioni (o librerie aggiuntive)/scenic.h

Indice del libro

scenic.h

modifica

La scenic.h (scritta da Richard Barnett, Joe Mason, Roger Firth e Stefano Gaburri), ci dà la possibilità di attribuire a un oggetto dei nomi "scenici" che estendono la descrizione di default (evitando così di dover creare un nuovo oggetto per ogni nuova descrizione). Per usarla, occorre scaricare il file estensioni_inform.zip[1], decomprimere quest’ultimo in una directory qualsiasi, andare nella directory scenic, copiare il file Italian.h [2] in "C:\Inform\libraries" (se state usando WIDE) o "C:\Programmi\Jif\lib\Base" (se state usando Jif), copiare il file scenic_it.h in "C:\Inform\libraries" (se state usando WIDE) o "C:\Programmi\Jif\lib\Contrib" (se state usando Jif) e, infine, copiare il file scenic_it_test.inf in "C:\Inform" (se state usando WIDE) o "C:\Programmi\Jif\Games" (se state usando Jif). Vediamo adesso come funziona:

SCENIC_IT - TEST
Un esempio di utilizzo della scenic.h 
Adattato alla lingua italiana da Paolo Maroncelli 030104 
Traduzione commenti e istruzioni di Paolo Lucchesi 021010

Versione 1 -- Numero di serie 050813
Inform v6.30 -- Libreria 6/11  --  Infit v2.5    S

Foresta
La foresta sembra stendersi in ogni direzione. Attorno a te i cespugli, intricati in modo quasi impenetrabile, combattono   silenziosamente per il possesso del sottobosco, mentre sopra di te gli alberi si stagliano alti e spettrali attraverso l'aria umida e soffocante.

>esamina gli alberi
Ricoperti di licheni, gli alberi non offrono nessun appiglio oltre ai rami che si trovano molti metri sopra di te.

>esamina i cespugli
Rovi e spine spuntano dai cespugli avviluppandosi in pericolose spire.

>esamina il sottobosco
L'unico colore vivo in questo scenario desolato. Il sottobosco verde smeraldo è soffice sotto i tuoi piedi.

>

Qualcuno di voi si starà di sicuro chiedendo che cosa ci sia di nuovo in tutto questo. Beh, andiamo a vedere la descrizione dell’oggetto Foresta:

Object  foresta "Foresta"
  with  description
           "La foresta sembra stendersi in ogni direzione. Attorno a 
            te i cespugli, intricati in modo quasi impenetrabile, 
            combattono silenziosamente per il possesso del sottobosco,
            mentre sopra di te gli alberi si stagliano alti e 
            spettrali attraverso l'aria umida e soffocante.",
        name 'foresta' 'bosco',
        scenic
          'albero' 'alberi' 'alti' 'spettrali' 0 "Ricoperti di
            licheni, gli alberi non offrono nessun appiglio oltre
            ai rami che si trovano molti metri sopra di te."
          'cespugli' 'cespuglio' 'intricati' 0 "Rovi e spine spuntano
            dai cespugli avviluppandosi in pericolose spire."
          'sottobosco' 'terreno' 0 "L'unico colore vivo in questo
            scenario desolato. Il sottobosco verde smeraldo @`e 
            soffice sotto i tuoi piedi."
          'aria' 'umida' 'soffocante' 0 "Densa, quasi soffocante,
            l'atmosfera pesante ti opprime."
          'cielo' 0 "Il cielo non @`e visibile attraverso le foglie."
          'ramo' 'rami' 0 NULL,
        scenicnull
          'lichene' 'licheni' 'spine' 'spina' 'rovo'
          'rovi' 'spire' 'spira' 'colore' 'verde' 'smeraldo' 'foglia'
          'foglie' 'atmosfera',
        before [; 
            Listen: "Urla di scimmie, pipistrelli, pappagalli, 
                     macao."; 
            ],
  has  light female;

State dunque iniziando a capire i grandi vantaggi che porta questa libreria? Di default, per ottenere tutte queste descrizioni dovremmo creare un oggetto per ognuna di esse (dovremmo cioè creare un oggetto cielo, albero, cespuglio e così via) mentre qui basta associare dei nomi "scenici" fatti poi seguire da uno zero. Osserviamo anche un’altra cosa:

>esamina le foglie
Non è importante ai fini del gioco.

Normalmente, la risposta di sistema sarebbe "Non vedi nulla del genere." (cosa non vera, poiché è alquanto improbabile che un albero non abbia almeno qualche foglia) ma anche qui la libreria ci viene in aiuto; basta far seguire lo zero da NULL o, eventualmente, usare la proprietà scenicnull (che non è di fatto obbligatoria ma, come potete ben vedere, estremamente utile). Ci sono ancora due ultime cose da notare:

.
.
.
[ Initialise;
        location = foresta;
];

Global ScenicFlag=4;
Constant ScenicError NULL;  
Include "scenic_it"; 
Include "ItalianG";

Impostando la variabile globale ScenicFlag a 4, facciamo sì che quando il giocatore esamina il titolo della stanza:

>esamina la foresta
La foresta sembra stendersi in ogni direzione. Attorno a te i cespugli, intricati in modo quasi impenetrabile, combattono silenziosamente per il possesso del sottobosco, mentre sopra di te gli alberi xxxisi stagliano alti e spettrali attraverso l'aria umida e soffocante.

non appare il classico messaggio di default ("Non è importante ai fini del gioco.") ma la descrizione della stanza stessa. Definendo, infine, la costante ScenicError e impostandola a NULL facciamo in modo che, al verificarsi di un "errore scenico", segua il messaggio di default ("Non è importante ai fini del gioco."). Ulteriori informazioni potete comunque trovarle all’interno della libreria stessa (che potete aprire con un normalissimo text-editor).

  1. Questo file (così come listati_inform.zip) è soggetto a continui aggiornamenti da parte del sottoscritto. Quindi, di tanto in tanto, scaricatelo per verificare al suo interno i nuovi contenuti (se presenti).
  2. Per usare correttamente la scenic_it.h è necessario sostituire il file Italian.h originale di Infit 2.5 con questo.