Bonjour , voila j'ai un petit probleme pour lire 1 fichier WAD (
wad )donc suivant le modele décrit je me suis fait 2 structures :
struct Header
{
char identification[4];
int numLumps;
int pInfoTableOfs;
}header;
struct Directory
{
int filePos;
int size;
char name[8];
}directory;
et je lis comme cela le fichier : (je poste le "source" ) :
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#define HERETIC "i:\\MyGames\\dos\\heretic\\heretic.wad"
#define DOOM "i:\\MyGames\\dos\\doom\\doom.wad"
#define DOOM2 "i:\\MyGames\\dos\\doom2\\doom2.wad"
struct Header
{
char identification[4];
int numLumps;
int pInfoTableOfs;
}header;
struct Directory
{
int filePos;
int size;
char name[8];
}directory;
FILE* ouvrirWad(char *fileName,FILE *file)
{
return fopen(HERETIC,"r");
}
void lireHeader(FILE *file)
{
fseek(file,0,SEEK_SET);
fread(&header,sizeof(struct Header),1,file);
}
int main(int argc, char *argv[])
{
int i,imax;
FILE *file;
file = ouvrirWad(HERETIC,file);
if (file==NULL)
{
printf("Fichier Introuvable ! ");
getch();
exit(EXIT_FAILURE);
}
// lire le header
printf("\n* * * * * * * * * * * * * * * * * * * * * * *\n*");
printf("\n*\tHEADER FILE WAD\n*");
lireHeader(file);
printf("\n*\tIdentification WAD:%s\n",header.identification);
printf("*\tnombre de lumps : %d\n",header.numLumps);
printf("*\tpointer vers directory : %d\n*\n*",header.pInfoTableOfs);
printf("\n*\n* * * * * * * * * * * * * * * * * * * * * * *\n");
// on se positionne sur le directory
printf("\nPositionnement sur le dossier ...\n");
fseek(file,header.pInfoTableOfs,SEEK_SET);
printf("Position dans le fichier %d \n\n",ftell(file));
printf("Lecture du directory: (pos : %d)\n\n",ftell(file));
//lecture du directory
fread(&directory,sizeof(struct Directory),1,file);
// infos
printf("pointer vers fichiers : %d\n",directory.filePos);
printf("taille en bytes du lump: %d\n",directory.size);
printf("nom du directory : %s\n",directory.name);
system("PAUSE");
fclose(file);
return EXIT_SUCCESS;
}
Bon ce code fonctionne , je trouve les bon renseignements dans le HEADER , je me positionne sur le directory , il s'appelle PLAYPAL (j'ai verifié avec 1 autre logiciel et c'est juste )
Mon probleme est le suivant : comment trouver les autres directory , je ne comprends pas , il n'y a plus aucuns renseignements sur ou trouver les autres ?
Si qq1 connais la solution

Merci