All pastes #427642 Raw Edit

qsrbdec

public text v1 · immutable
·published 2007-04-06 22:11 UTC
rendered paste body
// GRAPHICS EXTRACTION PROGRAM FOR TRICKY QUIKY GAMES 2

#include <cstdio>
#include <Windows.h>

int main()
{
	WIN32_FIND_DATA wfd;
	HANDLE fHandle = FindFirstFile("*.SRB",&wfd);

	int num_of_files = 0;
	short width, height;
	char buffer [640*400]; // maximum possible sprite size
	do
	{
		FILE * fsrb = fopen(wfd.cFileName, "rb");
		fseek(fsrb, 258, SEEK_SET); // skip file header

		while (!feof(fsrb))
		{
			fseek(fsrb, 6, SEEK_CUR);	// go to first width/height info
			fread(&width, 1, 2, fsrb);	// read sprite width
			fread(&height, 1, 2, fsrb); // read sprite height
			fseek(fsrb, 3, SEEK_CUR);	// go to sprite bitmap
			fread(buffer, 1, width * height, fsrb); // read sprite bitmap
			
			FILE * fout = fopen(wfd.cFileName, "wb");
			for (long i = width * height - 1; i >= 0; --i)
				fwrite(&buffer[i], 1, 1, fout); // write in reverse order
			fclose(fout);
		}

		fclose(fsrb);
	}
	while (FindNextFile(fHandle, &wfd));
	
	FindClose(fHandle);

	return 0;
}