Skip to content

Instantly share code, notes, and snippets.

@Sasuke78200
Created June 4, 2015 10:06
Show Gist options
  • Save Sasuke78200/e686499d0a1dd4414e94 to your computer and use it in GitHub Desktop.
Save Sasuke78200/e686499d0a1dd4414e94 to your computer and use it in GitHub Desktop.
#ifndef __SCRHEADER_H__
#define __SCRHEADER_H__
// commented out is for old-gen consoles
/*
#pragma pack(push, 1)
struct s_ScrHeader
{
unsigned int m_uiMagic; // + 0x00
unsigned int m_uiUnk0008; // + 0x04
unsigned int m_uiByteCode; // + 0x08
unsigned int m_uiUnk000C; // + 0x0C
unsigned int m_uiByteCodeLength; // + 0x10
unsigned int m_uiArgCount; // + 0x14
unsigned int m_uiStaticsCount; // + 0x18
unsigned int m_uiGlobalsCount; // + 0x1C
unsigned int m_uiNativeCount; // + 0x20
unsigned int m_uiStatics; // + 0x24
unsigned int m_uiGlobals; // + 0x28
unsigned int m_uiNatives; // + 0x2C
unsigned int m_uiUnk0048; // + 0x30
unsigned int m_uiUnk004C; // + 0x34
unsigned int m_uiScriptHash; // + 0x38
unsigned int m_uiScriptCount; // + 0x3C
unsigned int m_uiScriptName; // + 0x40
unsigned int m_uiStrings; // + 0x44
unsigned int m_uiStringsLength; // + 0x48
unsigned int m_uiUnk0074; // + 0x4C
};
#pragma pack(pop)
*/
class ScrHeader
{
public:
ScrHeader()
{
/* m_uiMagic = 0;
m_uiUnk0008 = 0;
m_uiByteCode = 0;
m_uiUnk000C = 0;
m_uiByteCodeLength = 0;
m_uiArgCount = 0;
m_uiStaticsCount = 0;
m_uiGlobalsCount = 0;
m_uiNativeCount = 0;
m_uiStatics = 0;
m_uiGlobals = 0;
m_uiNatives = 0;
m_uiUnk0030 = 0;
m_uiUnk0034 = 0;
m_uiScriptHash = 0;
m_uiScriptCount = 0;
m_uiScriptName = 0;
m_uiStrings = 0;
m_uiStringsLength = 0;
m_uiUnk004C = 0;*/
m_uiMagic = 0;
m_Unk0008 = 0;
m_uiByteCode = 0;
m_Unk000C = 0;
m_uiByteCodeLength = 0;
m_uiArgCountCount = 0;
m_uiStaticsCount = 0;
m_uiGlobalsCount = 0;
m_uiNativeCount = 0;
m_uiStatics = 0;
m_uiGlobals = 0;
m_uiNatives = 0;
m_Unk0048 = 0;
m_Unk004C = 0;
m_NullPtr = 0;
m_uiScriptHash = 0;
m_uiScriptCount = 0;
m_uiScriptName = 0;
m_uiStrings = 0;
m_uiStringsLength = 0;
m_iUnk0074 = 0;
m_iUnk0078 = 0;
m_iUnk007C = 0;
}
void ReadFromFileHandle(FILE* a_pFileHandle)
{
if(a_pFileHandle)
{
fseek(a_pFileHandle, 0, SEEK_SET);
/*
fread(&m_uiMagic, sizeof(unsigned int), 1, a_pFileHandle);
fread(&m_uiUnk0008, sizeof(unsigned int), 1, a_pFileHandle);
fread(&m_uiByteCode, sizeof(unsigned int), 1, a_pFileHandle);
fread(&m_uiUnk000C, sizeof(unsigned int), 1, a_pFileHandle);
fread(&m_uiByteCodeLength, sizeof(unsigned int), 1, a_pFileHandle);
fread(&m_uiArgCount, sizeof(unsigned int), 1, a_pFileHandle);
fread(&m_uiStaticsCount, sizeof(unsigned int), 1, a_pFileHandle);
fread(&m_uiGlobalsCount, sizeof(unsigned int), 1, a_pFileHandle);
fread(&m_uiNativeCount, sizeof(unsigned int), 1, a_pFileHandle);
fread(&m_uiStatics, sizeof(unsigned int), 1, a_pFileHandle);
fread(&m_uiGlobals, sizeof(unsigned int), 1, a_pFileHandle);
fread(&m_uiNatives, sizeof(unsigned int), 1, a_pFileHandle);
fread(&m_uiUnk0030, sizeof(unsigned int), 1, a_pFileHandle);
fread(&m_uiUnk0034, sizeof(unsigned int), 1, a_pFileHandle);
fread(&m_uiScriptHash, sizeof(unsigned int), 1, a_pFileHandle);
fread(&m_uiScriptCount, sizeof(unsigned int), 1, a_pFileHandle);
fread(&m_uiScriptName, sizeof(unsigned int), 1, a_pFileHandle);
fread(&m_uiStrings, sizeof(unsigned int), 1, a_pFileHandle);
fread(&m_uiStringsLength, sizeof(unsigned int), 1, a_pFileHandle);
fread(&m_uiUnk004C, sizeof(unsigned int), 1, a_pFileHandle);
*/
fread(&m_uiMagic, sizeof(m_uiMagic), 1, a_pFileHandle);
fread(&m_Unk0008, sizeof(m_Unk0008), 1, a_pFileHandle);
fread(&m_uiByteCode, sizeof(m_uiByteCode), 1, a_pFileHandle);
fread(&m_Unk000C, sizeof(m_Unk000C), 1, a_pFileHandle);
fread(&m_uiByteCodeLength, sizeof(m_uiByteCodeLength), 1, a_pFileHandle);
fread(&m_uiArgCountCount, sizeof(m_uiArgCountCount), 1, a_pFileHandle);
fread(&m_uiStaticsCount, sizeof(m_uiStaticsCount), 1, a_pFileHandle);
fread(&m_uiGlobalsCount, sizeof(m_uiGlobalsCount), 1, a_pFileHandle);
fread(&m_uiNativeCount, sizeof(m_uiNativeCount), 1, a_pFileHandle);
fread(&m_uiStatics, sizeof(m_uiStatics), 1, a_pFileHandle);
fread(&m_uiGlobals, sizeof(m_uiGlobals), 1, a_pFileHandle);
fread(&m_uiNatives, sizeof(m_uiNatives), 1, a_pFileHandle);
fread(&m_Unk0048, sizeof(m_Unk0048), 1, a_pFileHandle);
fread(&m_Unk004C, sizeof(m_Unk004C), 1, a_pFileHandle);
fread(&m_NullPtr, sizeof(m_NullPtr), 1, a_pFileHandle);
fread(&m_uiScriptHash, sizeof(m_uiScriptHash), 1, a_pFileHandle);
fread(&m_uiScriptCount, sizeof(m_uiScriptCount), 1, a_pFileHandle);
fread(&m_uiScriptName, sizeof(m_uiScriptName), 1, a_pFileHandle);
fread(&m_uiStrings, sizeof(m_uiStrings), 1, a_pFileHandle);
fread(&m_uiStringsLength, sizeof(m_uiStringsLength), 1, a_pFileHandle);
fread(&m_iUnk0074, sizeof(m_iUnk0074), 1, a_pFileHandle);
fread(&m_iUnk0078, sizeof(m_iUnk0078), 1, a_pFileHandle);
fread(&m_iUnk007C, sizeof(m_iUnk007C), 1, a_pFileHandle);
m_uiByteCode &= 0x00FFFFFF;
m_uiStatics &= 0x00FFFFFF;
m_uiGlobals &= 0x00FFFFFF;
m_uiNatives &= 0x00FFFFFF;
m_uiScriptName &= 0x00FFFFFF;
m_uiStrings &= 0x00FFFFFF;
}
}
/*
unsigned int m_uiMagic; // + 0x00
unsigned int m_uiUnk0008; // + 0x04
unsigned int m_uiByteCode; // + 0x08
unsigned int m_uiUnk000C; // + 0x0C
unsigned int m_uiByteCodeLength; // + 0x10
unsigned int m_uiArgCount; // + 0x14
unsigned int m_uiStaticsCount; // + 0x18
unsigned int m_uiGlobalsCount; // + 0x1C
unsigned int m_uiNativeCount; // + 0x20
unsigned int m_uiStatics; // + 0x24
unsigned int m_uiGlobals; // + 0x28
unsigned int m_uiNatives; // + 0x2C
unsigned int m_uiUnk0030; // + 0x30
unsigned int m_uiUnk0034; // + 0x34
unsigned int m_uiScriptHash; // + 0x38
unsigned int m_uiScriptCount; // + 0x3C
unsigned int m_uiScriptName; // + 0x40
unsigned int m_uiStrings; // + 0x44
unsigned int m_uiStringsLength; // + 0x48
unsigned int m_uiUnk004C; // + 0x4C*/
__int64 m_uiMagic; // + 0x00
__int64 m_Unk0008; // + 0x08
__int64 m_uiByteCode; // + 0x10
unsigned int m_Unk000C; // + 0x18
unsigned int m_uiByteCodeLength; // + 0x1C
unsigned int m_uiArgCountCount; // + 0x20
unsigned int m_uiStaticsCount; // + 0x24
unsigned int m_uiGlobalsCount; // + 0x28
unsigned int m_uiNativeCount; // + 0x2C
__int64 m_uiStatics; // + 0x30
__int64 m_uiGlobals; // + 0x3C
__int64 m_uiNatives; // + 0x40
unsigned int m_Unk0048; // + 0x48
unsigned int m_Unk004C; // + 0x4C
__int64 m_NullPtr; // + 0x50
unsigned int m_uiScriptHash; // + 0x58
unsigned int m_uiScriptCount; // + 0x5C
__int64 m_uiScriptName; // + 0x60
__int64 m_uiStrings; // + 0x68
unsigned int m_uiStringsLength; // + 0x70
int m_iUnk0074; // + 0x74
int m_iUnk0078; // + 0x78
int m_iUnk007C; // + 0x7C
};
#endif
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment