Structure des zones à cliquer

 

Chaque vue dispose de plusieurs zones à cliquer. On définit un tableau de pointeurs vers chaque début de zone de chaque vue. Ce tableau contient donc 80 pointeurs. Le module GestCurseur.asm utilise le pointeur de la vue courante pour obtenir la liste des zones à cliquer de cette vue.
Les zones à cliquer sont définies comme un tableau de structures, terminé par un octet égal à 0 (indique la fin de zone pour la vue en cours).
Chaque structure est composée des éléments suivants :

BYTE TypeZone    Type de zone
BYTE Xd                  coordonnée gauche de la zone
BYTE Xa                  coordonnée droite de la zone
BYTE Yd                  coordonnée basse de la zone
BYTE Ya                  coordonnée haute de la zone
WORD PtrFct         pointeur de fonction ou de message

Le type de la zone sert à définir l'aspect du curseur lorsque celui-ci est dans la zone décrite par les coordonnées, ainsi que le type d'action à réaliser lorsque l'on clique dans la zone.

Les 2 bits de poids faibles (Bit 0 et Bit 1) déterminent l'aspect du curseur :

Valeur 00 (0) : le curseur reste sous forme de flèche lorsque l'on est dans la zone,
Valeur 01 (1) : le curseur se transforme en loupe lorsque l'on est dans la zone,
Valeur 10 (2) : le curseur se transforme en personnage lorsque l'on est dans la zone,
Valeur 11 (3) : inutilisé.

Les 2 bits de poids faible du quartet de poids fort (Bit 4 et Bit 5) déterminent l'action à réaliser lorsque le joueur clique dans la zone :

Valeur 00 (#00) : On exécute le code à l'adresse de PtrFct,
Valeur 01 (#10) : On affiche le message situé à l'adresse de PtrFct et on attend l'appui sur une touche,
Valeur 10 (#20) : On va à la vue dont le numéro est PtrFct (dans ce cas, PtrFct varie entre 1 et 80),
Valeur 11 (#30) : inutilisé.

On peut donc en déduire que les combinaisons suivantes sont couramment utilisées dans le jeu :

#01 : permet de transformer le curseur en loupe, et lorsque l'on clique, exécuter le code situé à l'adresse de PtrFct.
#02 : permet de transformer le curseur en personnage, et lorsque l'on clique, exécuter le code situé à l'adresse de PtrFct.
#11 : permet de transformer le curseur en loupe, et lorsque l'on clique, affiche le message pointé par PtrFct.
#12 : permet de transformer le curseur en personnage, et lorsque l'on clique, affiche le message pointé par PtrFct.
#22 : permet de transformer le curseur en personnage, et lorsque l'on clique, se déplace à la vue donnée par PtrFct.

La valeur 0 ne peut pas être utilisée dans les zone, car elle sert à marquer la fin de zone pour une vue. Par contre, on peut utiliser une autre valeur, sachant que les bits 2, 3, 6, 7 ne sont pas utilisés, par exemple, la valeur #04, permettra de ne pas modifier le curseur lorsque l'on sera dans la zone, mais exécutera le code situé à l'adresse de PtrFct lorsque l'on cliquera.

 

Retour      -      La suite : Création des images disque