| 1280 | } |
| 1281 | |
| 1282 | void 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 ); |
nothing calls this directly
no test coverage detected