Fichier .AVD

Voici enfin dévoilée la structure du fichier .AVD :

Il contient la copie binaire d'un enregistrement de type TDonneesJou.

    TDonneesMonde = record
       Connect : array[1..8] of word; // Numéros des mondes connectés

       Connectdir : byte;             // Champ de bit.
                                      // Bit 0 = en haut à gauche
                                      // Bit 1 = en haut
                                      // On continue en tournant dans le sens
                                      // des aiguilles d'une montre...
                                      // Bit 7 = à gauche.

       X, Y : byte;                   // Coordonnées du monde
       Proprio : byte;
       Industries : smallint;
       TN : boolean;                  // TN=True si le monde est un trou noir
       VI, VP : smallint;
    end;

    TDonneesFlotte = record
       Localisation : word;
       Proprio : smallint;
       VC, VT : smallint;
    end;

    TDonneesTresor = record
       Monde : smallint;              // Monde et Flotte : l'un des deux doit être nul
       Flotte : smallint;
       Proprio : byte;
    end;

    TDonneesJou = record
       ver : smallint;                // Numéro de version minimale de Nebutil pour lire le fichier.
       NomPartie : string[6];
       NoJou : byte;                  // Numéro du joueur
       Pseudos : array[1..JouMax] of string[30];
       Tour : byte;                   // Tout courant
       Md : smallint;                 // Numéro du monde de départ du joueur
       Classe : byte;
       Radar, DEP : byte;             // Niveau en RAD et en DEP
       NbMonde : smallint;            // Nombre de mondes dans l'univers
       LongX, LongY : smallint;       // Taille de l'univers horizontalement et verticalement
       M : array[1..1024] of TDonneesMonde;
       F : array[1..1024] of TDonneesFlotte;
       T : array[1..NbTres] of TDonneesTresor;
    end;
 

Les structures listées sont des structures au format Pascal. certaines explications s'imposent :

word est un entier non signé sur deux octets
byte est un entier non signé sur un octet
smallint est un entier signé sur 2 octets
string[n] est une chaîne Pascal : elle occupe n+1 octets en mémoire. Le premier octet indique la taille de la chaine (qui n'est donc pas à zéro terminal comme en C).
 

Constantes :

JouMax=32
NbTres=200