Esempio n. 1
0
void CReClass2011App::CalcAllOffsets()
{
	for (UINT i=0; i<Classes.size();i++)
	{
		CalcOffsets(Classes[i]);
	}
}
Esempio n. 2
0
/*
============
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();
}
Esempio n. 3
0
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);
	//}

}