Addresses :
Code:
#define GetFontHand        0x37379EB0                     //Address updated by experthack
#define FontECX            0x37833BD8
#define BuildFont          0x37584580
#define FillFont           0x37585230
#define GetConsoleInt      0x373D2740
Method to use :
Code:
class cFont
{
public:
	virtual void Function0();
	virtual void Function1();
	virtual void SetSomthing( int a, int b, int c, int d );
	virtual void Function3();
	virtual void Render();
	virtual void Function5();
	virtual void Function6();
	virtual int GetX();
	virtual void SetPos( int x, int y );
	virtual void GetPos( int* x, int* y );
	virtual void Function10();
	virtual void Function11();
	virtual void Function12();
	virtual float GetScaleX();
	virtual float GetScaleY();
	virtual void Function15();
	virtual void Function16();
	virtual void Function17();
	virtual void Function18();
	virtual void Function19();
	virtual void Function20();
	virtual void Function21();
	virtual void Function22();
	virtual void Function23();
	virtual void Function24();
	virtual void Function25();
	virtual void Function26();
	virtual void Function27();
	virtual void Function28();
	virtual void Function29();
	virtual void Function30();
	virtual void Function31();
	virtual void Function32();
	virtual void Function33();
	virtual void Function34();
	virtual void Function35();
	virtual void Function36();
	virtual void Function37();
	virtual void Function38();
	virtual void Function39();
	virtual void Function40();
	virtual void Function41();
	virtual void Function42();
	virtual void Function43();
	virtual void SetColor( int c, int c_, int c__, int const_num );
	virtual void Function45();
	virtual void Function46();
	virtual void Function47();
	virtual void Function48();
	virtual void Function49();
	virtual void Function50();
	virtual void Function51();
	virtual void Function52();
	virtual void Function53();
	virtual void Function54();
	virtual void Function55();
	virtual void Function56();
	virtual void Function57();
	virtual void Function58();
	virtual void Function59();
	virtual void Function60();
	virtual void Function61();
	virtual void Function62();
	virtual void Function63();
	virtual void Function64();
	virtual void Function65();
	virtual void Function66();
	virtual void Function67();
	virtual void Function68();
	virtual void Function69();
	virtual void Function70();
	virtual void Function71();
	virtual void Function72();
	virtual void Function73();
	virtual void Function74();
	virtual void Function75();
	virtual void Function76();
	virtual void Function77();
	virtual void Function78();
	virtual void Function79();
	virtual void Function80();
	virtual void Function81();
	virtual void Function82();
	virtual void Function83();
	virtual void SetText( unsigned short* text, int cont_num ); 
};

int GetFontHandle( int index )
{
	void* vGetFontHandle = (void*)GetFontHand;
	DWORD dwECX			 = *(DWORD*)FontECX;

	__asm
	{
		push 0
		push index
		mov ecx, dwECX
		call [vGetFontHandle]
	}
}

DWORD BuildFontByFontIndex( int index, int FontSize )
{
	void* vBuildFont    = (void*)BuildFont;
	void* dwFill	    = (void*)FillFont;
	int FontHandle      = GetFontHandle( index );
	DWORD dwFontAddr	= 0;
	BYTE* FontBuffer	= new BYTE[0x228];

	__asm
	{	
		mov ecx, FontBuffer
		call [dwFill]
		mov dwFontAddr, eax	
		mov ecx, eax
		push	0
		push	0
		push	0 
		push	0
		push	FontSize
		push	FontHandle
		push	0
		push	0
		push	0
		call	[vBuildFont]
	}
	return dwFontAddr;
}

void InitFonts( void )
{
	pSmallFont		= (cFont*)BuildFontByFontIndex( 24, 12 );
	pWarningFont	= (cFont*)BuildFontByFontIndex( 15, 25 );
	pMenuFont		= (cFont*)BuildFontByFontIndex( 25, 13 );
}

void RenderString( cFont* Renderer, int x, int y, std::wstring text, DWORD color )
{
	if( Renderer )
	{
		Renderer->SetText( (unsigned short*)text.c_str(), 1 );
		Renderer->SetPos( x, y );
		Renderer->SetColor( color, color, color, (int)-1 );
		Renderer->Render();
                InitFonts();
	}
}

wstring ToWideString( string const & str )
{
	wostringstream wstm;
	const ctype<wchar_t>& ctfacet = use_facet< ctype<wchar_t> >( wstm.getloc() );

        for( size_t i = 0; i < str.size(); ++i )
	         wstm << ctfacet.widen( str[i] );

	return wstm.str();
}
Exemple to use :

Code:
RenderString( /*Font type*/ GetSmallFont(), /*PosX*/50, /*PosY*/70, ToWideString( /*Text*/ "CA Engine Font" ), /*Color of Font*/ Red );
Credits :
DeadLineHF
gellin