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

Indice del libro

smartcantgo_it.h

modifica

La smartcantgo_it.h (scritta da David Wagner e Roger Firth), può essere usata con la proprietà cant_go di una locazione per stampare a video le uscite possibili anziché il messaggio standard "Non puoi andare in quella direzione.". Per usarla, occorre scaricare il file estensioni_inform.zip[1], decomprimere quest’ultimo in una directory qualsiasi, andare nella directory smartcantgo, copiare il file smartcantgo_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 smartcantgo_it_test.inf in "C:\Inform" (se state usando WIDE) o "C:\Programmi\Jif\Games" (se state usando Jif). Vediamo adesso come funziona:

SMARTCANTGO_IT - TEST
Un esempio di utilizzo della smartcantgo_it.h

Versione 1 -- Numero di serie 050823
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.

>o
Puoi andare solo a est.

>e
Piramide sepolcrale
La piramide sepolcrale è ormai ridotta a un cumulo di materiali da costruzione. Alcuni gradini scolpiti nella nuda roccia portano giù, nell'oscurità.

>n
Puoi andare solo a ovest o giù.

>giù
Le macerie ostruiscono il passaggio dopo appena pochi passi.

>o

Foresta

>

Molto utile, non trovate? Ecco ora il listato d’esempio:

Constant Story "SMARTCANTGO_IT - TEST";
Constant Headline
        "^Un esempio di utilizzo della smartcantgo_it.h^^";
                         
Include "Parser";
Include "smartcantgo_it"; 
Include "VerbLib";
Include "replace";

! ------------------------------------------------------------------
Class   Room
 with   cant_go [; SmartCantGo(); ],
  has   light; 

Room    foresta "Foresta"
  with  name 'foresta' 'bosco',
        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.";
        ],
        e_to piramide
        before [; 
            Listen: "Urla di scimmie, pipistrelli, pappagalli, 
                     macao."; 
            ],
  has   female;

Room    piramide "Piramide sepolcrale",
  with  name 'piramide' 'sepolcrale',
        description [;
           "La piramide sepolcrale @`e ormai ridotta a un cumulo di 
            materiali da costruzione. Alcuni gradini scolpiti nella 
            nuda roccia portano gi@`u, nell'oscurit@`a.";
        ],
        w_to foresta,
        d_to [; "Le macerie ostruiscono il passaggio dopo appena pochi
                passi."; ],
   has  female;

! ------------------------------------------------------------------
[ Initialise;
        location = foresta;
];

! ------------------------------------------------------------------
Include "ItalianG";

Si deve definire una classe che contenga l’istruzione cant_go [; SmartCantGo(); ] da associare poi a tutte quelle locazioni in cui si voglia che la libreria "operi"[2]. Tutto qui. Se siamo al buio, viene ripristinato il messaggio di sistema e se non ci sono uscite viene stampato a video il messaggio "Non ci sono uscite.". Se abbiamo invece bisogno di associare un nostro messaggio alla proprietà cant_go di una certa locazione, basta semplicemente definirlo all’interno di quest’ultima, poiché la libreria se ne "accorge" e gli dà la priorità massima.

  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. Tutte quelle locazioni, cioè, in cui siano previste delle direzioni; le altre, invece, si definiscono normalmente.