All pastes #329180 Raw Edit

Anonymous

public text v1 · immutable
#329180 ·published 2007-01-26 15:05 UTC
rendered paste body
//files are organized as binary trees

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 crypt_type;
	int constant;
	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);