I Collegamenti ipertestuali sono immagini o parti di testo che, una volta clicckate, inviano un messaggio a HandleGlkEvent() in cui si dice che qualcuno ha fatto click su di loro, consentendovi di eseguire del codice speciale. Potreste, ad esempio, inserire delle note clickabili nel vostro gioco, o consentire al giocatore di spostarsi facendo click sulle voci dell'elenco delle uscite dalla stanza... ed altre possibilità senza limiti. I collegamenti ipertestuali vengono impostati allo stesso modo degli input del mouse nelle finestre grafiche o a griglia di testo. Prima di tutto dovete avvertire il programma di mettersi in ascolto di un collegamento ipertestuale clickabile:
glk_request_hyperlink_event(gg_mainwin);
(Cambiate il nome della finestra con quello nella quale i collegamenti ipertestuali devono apparire, se non è gg_mainwin. Se volete i collegamenti in diverse finestre, dovete effettuare questa chiamata diverse volte). Adesso che il programma è pronto a rispondere ad un collegamento, dovete costruire i collegamenti veri e propri. Questo viene fatto con il comando glk_set_hyperlink(). La routine viene chiamata con un argomento, un numero univoco diverso da 0. Probabilmente farete delle costanti per i valori dei collegamenti che scegliete: "GO_NORTH_LINK" rende il codice molto più leggibile di "67". Ogni testo o immagine che segue una chiamata a glk_set_hyperlink() diventa parte del collegamento, fino a che si raggiunge una chiamata a "glk_set_hyperlink(0);". (Potete anche andare direttamente da un collegamento all'altro, se volete -- il primo collegamento verrà completato ed il secondo comincerà con la stessa chiamata).
Ora i vostri collegamenti sono pronti, e quello che dovete fare è modificare la routine HandleGlkEvent() per rispondere agli stessi quando il giocatore vi fa click sopra. Dovrebbe essere qualcosa come:
[ HandleGlkEvent ev context abortres newcmd cmdlen; switch (ev-->0) { evtype_Hyperlink: glk_request_hyperlink_event(gg_mainwin); ! Inserite il codice qui, allo stesso modo di come avete ! fatto per gli input del mouse. ! L'unica differenza è che ora ev-->1 memorizza la ! finestra sorgente e ev-->2 il valore del collegamento. } ];
E proprio come nella sezione precedente, tenete conto del fatto che dopo aver risposto ad un collegamento selezionato, il programma non risponderà a nessun altro a meno che gli venga detto esplicitamente.