Code: Select all
struct DATHeader
{
DWORD dwID; //KA3D
DWORD dwDataSize; // dwSize - 8
};
struct SUBHeader
{
DWORD dwID; //TEXT
DWORD dwDataSize; // dwSize - 16
SHORT sVersion; // 1
};
struct LANGHeader
{
DWORD dwID; //LDAT
DWORD dwHeaderSize;
SHORT sLangsCount;
};
for(int i = 0; i < LANGHeader.sLangsCount; i++)
{
struct LANGEntry
{
SHORT sLangNameLength;
BYTE pLangName[LANGEntry.sLangNameLength]
};
}
struct LBLHeader
{
DWORD dwID; //LIDS
DWORD dwLabelsDataSize; // -2
SHORT sLabelsCount;
};
struct LBLGEntry
{
SHORT sLabelNameLength;
BYTE pLabelName[LBLGEntry.sLabelNameLength]
};
for(int i = 0; i < LANGHeader.sLangsCount; i++)
{
struct STRHeader
{
DWORD dwID; //TXGP
DWORD dwStringsDataSize;
};
struct STRGEntry
{
SHORT sStringDataLength;
BYTE pString[STRGEntry.sStringDataLength]
};
}