Table des matières

Format des cartes Landes Eternelles (.elm)

Le format se compose des sections suivantes (dans l’ordre):

Le map Header

longueur totale : 124 octets

Note : les bits res_2, res_3 et res_4 seront utilisé dans une prochaine révision des elmaptools pour stocker les initiales (res 2 & 3) et le numéro de version de la carte (res_4)

Un tableau des cases

chaque case est un octet non signé dont la valeur est l’indice dans le tableau des textures de sol le numero indique aussi le fichier texture a prendre (tileX.bmp)

Un tableau des hauteurs de marche

Les tiles font six cases de larges et c’est pour cette raison que la carte des hauteurs (noté height_map dans le source) correspond à x*6 * y*6 et que la carte des tiles fait x*y.
Cela doit correspondre à une hauteur mais la valeur est un char (donc certainement multipliée par un float dans le jeu.
Je pense que la valeur char est importante car elle permet aussi d’avoir un pathfinder plus rapide que si on travaillait sur des floats.

Les objets 3d

Taille actuelle : 144 octets

Remarque : Si l’objet a été effacé alors la valeur de la variable blended = 20. Ceci afin de préserver l’ordre des objets dont la position dans le tableau est utilisé comme identifiant notamment dans les fichiers DEF sur le serveur.

Les objets 2d

taille actuelle : 128 octets

les lumières

Taille actuelle 40 octets

Les particules

Taille actuelle : 106 octets

Note : Chaque type de “particule” est stockée dans un fichier à part de la carte. L’éditeur de carte permet de créer et modifier ces fichiers.

Informations diverses

De façon fort empirique, une case (1/6 sur 1/6 de tile soit 0.5m) correspondrait +/- 0.5 en float sur l’axe des x, y ou z, ce qui serait assez logique vu la façon que le concepteur a eu de faire tout à l’économie en ressource cpu & ram.

Il reste a créer des maps de façon sans l’éditeur pour vérifier.

La position 0 en flottant de l’axe Z serait a l’altitude 0 soit le byte de valeur 11 et donc chaque déplacement de +/- 1char correspond a +/- 0.2 sur l’axe Z.

Distance :

Les angles sont en degrés et orienté dans le sens anti-horaire (Ou trigonométrique).

Attention en C les char sont des multioctet ici ce sont plutot des bytes (forcement des char de 1 octets).

Tous les nombres sont en little endian (Le format standard des ordinateurs Intel & Amd).

Note :

Documentation source : Projet ElmapTools d’Etory & XlurP