void CReClass2011App::CalcAllOffsets() { for (UINT i=0; i<Classes.size();i++) { CalcOffsets(Classes[i]); } }
/* ============ sdUIMarquee::ApplyLayout ============ */ void sdUIMarquee::ApplyLayout() { sdUIWindow::ApplyLayout(); if ( localizedText.GetValue() >= 0 || text.GetValue().Length() > 0 ) { const wchar_t* localText = localizedText.GetValue() >= 0 ? declHolder.FindLocStrByIndex( localizedText.GetValue() )->GetText() : text.GetValue().c_str(); sdBounds2D rect( cachedClientRect.x, cachedClientRect.y, cachedClientRect.z, cachedClientRect.w ); deviceContext->GetTextDimensions( localText, rect, GetDrawTextFlags(), cachedFontHandle, fontSize, textWidth, textHeight ); } else { textWidth = textHeight = 0; } //scrollStartTime = scrollTargetTime = 0; CalcOffsets(); }
void CReClass2015App::OnFileNew() { CMainFrame* pFrame = STATIC_DOWNCAST(CMainFrame, m_pMainWnd); CChildFrame* pChild = (CChildFrame*)pFrame->CreateNewChild(RUNTIME_CLASS(CChildFrame), IDR_ReClass2015TYPE, m_hMDIMenu, m_hMDIAccel); //char name[64]; //sprintf(name,"Class%0.8X",GetTickCount()); #ifdef _DEBUG printf("[+] OnFileNew()\n"); #endif CNodeClass* pClass = new CNodeClass; theApp.Classes.push_back(pClass); pChild->m_wndView.m_pClass = pClass; //CNodeCustom* pCust = new CNodeCustom; //pCust->memsize = 18; //pCust->pParent = pClass; //pClass->Nodes.push_back(pCust); #ifdef _WIN64 for (int i = 0; i < 64/8; i++) { CNodeHex64* pNode = new CNodeHex64; pNode->pParent = pClass; pClass->Nodes.push_back(pNode); } #else for (int i = 0; i < 64/4; i++) { CNodeHex32* pNode = new CNodeHex32; pNode->pParent = pClass; pClass->Nodes.push_back(pNode); } #endif CalcOffsets(pClass); return; //CNodeIcon* pIcon = new CNodeIcon; //pClass->Nodes.push_back(pIcon); CNodeVTable* pVTable = new CNodeVTable; pClass->Nodes.push_back(pVTable); for (int i=0; i < 5; i++) { CNodeFunctionPtr* pNode = new CNodeFunctionPtr; pNode->offset = i * pNode->GetMemorySize(); pVTable->Nodes.push_back(pNode); } pClass->Nodes.push_back( new CNodeHex64 ); pClass->Nodes.push_back( new CNodeHex32 ); pClass->Nodes.push_back( new CNodeHex16 ); pClass->Nodes.push_back( new CNodeHex8 ); pClass->Nodes.push_back( new CNodeInt64 ); pClass->Nodes.push_back( new CNodeInt32 ); pClass->Nodes.push_back( new CNodeInt64 ); pClass->Nodes.push_back( new CNodeInt16 ); pClass->Nodes.push_back( new CNodeInt8 ); pClass->Nodes.push_back( new CNodeDWORD ); pClass->Nodes.push_back( new CNodeWORD ); pClass->Nodes.push_back( new CNodeBYTE ); pClass->Nodes.push_back( new CNodeText ); pClass->Nodes.push_back( new CNodeUnicode ); pClass->Nodes.push_back( new CNodeFloat ); pClass->Nodes.push_back( new CNodeDouble ); pClass->Nodes.push_back( new CNodeCustom ); pClass->Nodes.push_back( new CNodeVec2 ); pClass->Nodes.push_back( new CNodeVec3 ); pClass->Nodes.push_back( new CNodeQuat ); pClass->Nodes.push_back( new CNodeMatrix ); pClass->Nodes.push_back( new CNodePChar ); //for (int i=0; i < 2; i++) { CNodePtr* pNode1 = new CNodePtr; CNodePtr* pNode2 = new CNodePtr; pNode1->pNode = pNode2; pNode2->pNode = pClass; pClass->Nodes.push_back(pNode1); } //for (int i=0; i < 2; i++) { // I don't know what the f**k this does ??? CNodeArray* pNode = new CNodeArray; #ifdef _WIN64 CNodeHex64* pNode2 = new CNodeHex64; #else CNodeHex32* pNode2 = new CNodeHex32; #endif pNode->pNode = pNode2; pClass->Nodes.push_back(pNode); } //Calc Offsets... DWORD offset = 0; for (UINT i = 0; i < pClass->Nodes.size(); i++ ) { pClass->Nodes[i]->offset = offset; offset += pClass->Nodes[i]->GetMemorySize( ); } //CNodeClassPtr* pClass2 = new CNodeClassPtr; //pClass2->pClass = pClass; //pClass->Nodes.push_back(pClass2); //for (int i=0; i < 10; i++) //{ // CNodeHex32* pNode = new CNodeHex32; // pNode->offset = i * 4; // pClass->Nodes.push_back(pNode); //} }