#include <stdio.h>
#include <stdlib.h>
#include <string.h>
unsigned long int getInt(FILE *f) {
static unsigned char int4[4];
static unsigned char i;
for(i=0;i<=3;i++){
int4[i] = getc(f);
}
return (int4[0] << 24) + (int4[1] << 16) + (int4[2] << 8) + int4[3];
}
unsigned short int getShort(FILE *f) {
static unsigned char short2[2];
static unsigned char i;
for(i=0;i<=1;i++){
short2[i] = getc(f);
}
return (short2[0] << 8) + short2[1];
}
unsigned char *getString(FILE *f) {
static unsigned char string[100];
static unsigned char char1;
static unsigned char i;
memset(string,\'\\0\',sizeof(string));
for(i=0;i<100;i++) {
char1 = getc(f);
if(char1==0x00) break;
string[i]=char1;
}
return string;
}
int main(int argc, char *argv[]) {
FILE *fp;
fp = fopen("levels.mrg","rb");
if(!fp) {
printf("Wrong file\\n");
exit(1);
}
unsigned long int lvlc[3],i,k;
unsigned char byte;
for(i=0;i<=2;i++) {
lvlc[i] = getInt(fp);
printf("\\r%u: ",lvlc[i]);
for(k=1;k<=lvlc[i];k++) {
printf("\\t%x ",getInt(fp));
printf("%s\\n",getString(fp));
}
}
fclose(fp);
system("pause");
return 0;
}