MCPcopy Create free account
hub / github.com/ajkhoury/ReClassEx / OnButtonGenerate

Method OnButtonGenerate

ReClass/ReClassEx.cpp:1282–1571  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1280}
1281
1282void CReClassExApp::OnButtonGenerate( )
1283{
1284 PrintOut( _T( "OnButtonGenerate() called" ) );
1285
1286 CString strGeneratedText, t;
1287
1288 strGeneratedText += _T( "// Generated using ReClass 2016\r\n\r\n" );
1289
1290 if (!m_strHeader.IsEmpty( ))
1291 strGeneratedText += m_strHeader + _T( "\r\n\r\n" );
1292
1293 for (size_t i = 0; i < m_Classes.size( ); i++)
1294 {
1295 t.Format( _T( "class %s;\r\n" ), m_Classes[i]->GetName( ) );
1296 strGeneratedText += t;
1297 }
1298
1299 strGeneratedText += _T( "\r\n" );
1300
1301 std::vector<CString> vfun;
1302 std::vector<CString> var;
1303
1304 CString ClassName;
1305
1306 for (UINT c = 0; c < m_Classes.size( ); c++)
1307 {
1308 CNodeClass* pClass = m_Classes[c];
1309
1310 CalcOffsets( pClass );
1311
1312 vfun.clear( );
1313 var.clear( );
1314
1315 ClassName.Format( _T( "class %s" ), pClass->GetName( ) );
1316
1317 int fill = 0;
1318 int fillStart = 0;
1319
1320 for (UINT n = 0; n < pClass->NodeCount( ); n++)
1321 {
1322 CNodeBase* pNode = (CNodeBase*)pClass->GetNode( n );
1323 NodeType Type = pNode->GetType( );
1324
1325 if ((Type == nt_hex64) || (Type == nt_hex32) || (Type == nt_hex16) || (Type == nt_hex8))
1326 {
1327 if (fill == 0)
1328 fillStart = (int)pNode->GetOffset( );
1329 fill += pNode->GetMemorySize( );
1330 }
1331 else
1332 {
1333 if (fill > 0)
1334 {
1335 if (g_bPrivatePadding)
1336 t.Format( _T( "private:\r\n\t%s pad_0x%0.4X[0x%X]; //0x%0.4X\r\npublic:\r\n" ), g_tdHex, fillStart, fill, fillStart );
1337 else
1338 t.Format( _T( "\t%s pad_0x%0.4X[0x%X]; //0x%0.4X\r\n" ), g_tdHex, fillStart, fill, fillStart );
1339 var.push_back( t );

Callers

nothing calls this directly

Calls 11

clearMethod · 0.80
NodeCountMethod · 0.80
GetNodeMethod · 0.80
GetTypeMethod · 0.80
GetOffsetMethod · 0.80
GetLengthMethod · 0.80
GetTotalMethod · 0.80
sizeMethod · 0.45
GetMemorySizeMethod · 0.45
GetClassMethod · 0.45
CountMethod · 0.45

Tested by

no test coverage detected