All pastes #329015 Raw Edit

Someone

public text v1 · immutable
#329015 ·published 2007-01-26 09:43 UTC
rendered paste body
typedef struct header
{
	int signature;
	int filecount;
	int toplink;
} HEADER;

typedef struct fileindex
{
	int structsize;
	int filename_length;
	int prev_index;
	int next_index;
	int constant;//14h
	char filename[filename_length];
} FILEINDEX;

typedef struct filedata
{
	int datasize;
	int unk1;
	int unk2;
	int structsize;
	byte bindata[datasize];
} FILEDATA;

typedef struct dfile
{
	FILEINDEX fileidx;
	FILEDATA filedat;
} DFILE;

/*
int recursefile(int link)
{
	if(link>0)
	{
		FSeek(link);
		DFILE files;
		recursefile(files.fileidx.prev_index);
		recursefile(files.fileidx.next_index);
	}
	return 1;
}
*/
void recursefile(int link1,int link2)
{
	local int idx1,idx2;
	if(link1>0)
	{
		FSeek(link1);
		DFILE files;
		idx1=files.fileidx.prev_index;
		idx2=files.fileidx.next_index;
		recursefile(idx1,idx2);
	}
	if(link2>0)
	{
		FSeek(link2);
		DFILE files;
		idx1=files.fileidx.prev_index;
		idx2=files.fileidx.next_index;
		recursefile(idx1,idx2);
	}
	
}
HEADER head;
if( head.toplink > 0 ) recursefile(head.toplink,0);