Lecture d'un fichier pak utiliser dans quake

Description

DECOMPRESSER LE FICHIER TEST.PAK SUR C:\

ce programme vous donne la liste des fichier present dans un fichier pak
sa marche pour quake et quake 2 j'ai pas essayer avec quake 3
cinon pour extraire les fichier chercher un peux s'est pas compliquer ;)

Source / Exemple :


#include <iostream.h>
#include <stdio.h>

struct PAK_HEADER
{
	unsigned int  Offset;
	unsigned int  Length;
};

struct PAK_FILE 
{
	char 			Titel[56];
	unsigned int 	Offset;
	unsigned int	Length;
};

typedef unsigned char* BYTEADD;
unsigned int m_NumberOfFiles, m_CurrentFileLength;

int main()
{
	PAK_HEADER	pakH;
	PAK_FILE	*pakF;
	FILE *mFile;

	// recherche les fichies present dans le pak

	mFile = fopen("c:\\test.pak", "rb");

	if(  mFile == 0 )
		return false;

	if( fseek( mFile, 4, SEEK_SET ) )
		return false;
	
	if( ! fread( &pakH, sizeof( pakH ), 1, mFile )  )
		return false;
	
	m_NumberOfFiles = pakH.Length/ 64;

	cout << "nombre de fichier dans le PAK : " << m_NumberOfFiles;

	pakF = new PAK_FILE[ m_NumberOfFiles ];
	
	if( fseek( mFile, pakH.Offset, SEEK_SET ) )
		return false;
		
	if( ! fread( pakF, pakH.Length , 1, mFile ) )
		return false;

	// affiche les fichier trouver avec leur taille et leur position
	unsigned int count;

	for(count =0; count <= (m_NumberOfFiles - 1); count++)
	{
		cout << "\n" 
			 << count 
			 << ": " 
			 << pakF[count].Titel
			 << " demarre a l'offset : " 
			 << pakF[count].Offset
			 << " et mesure : "
			 << pakF[count].Length
			 << " bytes";
	}

	cout << "\n\n";
	fclose(mFile);

	return 0;
}

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.