-
Repulse Arch00 structure
"Repulse" a free to play Sci-Fi FPS Game, Announced by Aeria Games
Game homepage: [Only registered and activated users can see links. Click Here To Register...]
Code:
//--------------------------------------
//--- 010 Editor v3.2.1 Binary Template
//
// File: Repulse Arch00 game archive
// Author: Dwar
// Revision: 2012-02-04
// Purpose:
//--------------------------------------
struct Arch00Header
{
char Signature[0x4];
uint Dummy; // 3
uint Dummy;
uint Dummy;
uint Dummy;
uint Dummy;
uint Dummy; //1
uint Dummy; //0
uint Dummy; //0
uint FileCount; //total names in FileTable (files + dirs)
uint DirCount;
uint FileTableSize;
} Header;
local int AlignmentVal;
struct FileTable
{
local int fsize = Header.FileTableSize + 40;
uint Dummy;
struct names {
string Name;
//check if we have CRC data in file
local string tt = Name;
if (tt == "CRC")
{
char CRCfile[0x28];
}
AlignmentVal = 4 - (FTell() % 4);
if (AlignmentVal != 4 && AlignmentVal != 0)
ubyte Alignment[AlignmentVal];
};
/*local int i;
for(i = 0; i < Header.NameCount; i++)
{
block test;
}*/
while ( FTell() <= fsize)
{
names test;
}
} flist;
struct FilesData
{
struct filedata {
uint FileNameOffset <format=hex>; //offset in FileTable
uint64 FileOffset <format=hex>;
uint64 FileSize;
uint64 FileSize;
uint Dummy;
};
local int i;
for (i = 0; i < Header.FileCount; i++)
{
filedata test;
};
} fdata;
struct DirsData
{
struct dirdata {
uint DirNameOffset <format=hex>;; //offset in FileTable
uint NextSubDir; // next subdir ?
uint NextDir; // next dir ?
uint FileCount; // File count inside dir?
};
local int i;
for (i = 0; i < Header.DirCount; i++)
{
dirdata test;
};
} ddata;