Register for your free account! | Forgot your password?

Go Back   elitepvpers > MMORPGs > 12Sky2
You last visited: Today at 23:02

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



IMAGE_FOR_GXD && GIMAGE2D class

Discussion on IMAGE_FOR_GXD && GIMAGE2D class within the 12Sky2 forum part of the MMORPGs category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Nov 2011
Posts: 129
Received Thanks: 174
IMAGE_FOR_GXD && GIMAGE2D class

MainDefine
Code:
#ifdef _USRDLL
	#define capi static
#else
	#define capi
#endif

#ifndef SAFE_RELEASE
    #define SAFE_RELEASE(p) { if(p) { p->Release(); p = NULL; } }
#endif

#ifndef HEAP_FREE
#define HEAP_FREE(p) { if(p){ HeapFree(GetProcessHeap(), 0, p); p = NULL; } }
#endif

static char* aEmptyChar = "";
IMAGE_FOR_GXD.h
Code:
#define THISS IMAGE_FOR_GXD *This
#define THISC IMAGE_FOR_GXD *This,
class IMAGE_FOR_GXD
{
public:
    BOOL mCheckValidState;
    D3DXIMAGE_INFO mTextureInfo;
    D3DFORMAT mLoadFormat;
    IDirect3DTexture9* mTexture;

    IMAGE_FOR_GXD( void );
    ~IMAGE_FOR_GXD( void );
    capi void Init( THISS );
    capi void Free( THISS );
    capi int GetTwoPowerNumber( int tNumber );
    capi BOOL Load( THISC char *tFileName );
    capi void Draw( THISC int tX, int tY, BOOL tCheckExistPartInfo, int iX, int iY, int lX, int lY );
    capi void Draw( THISC int tX, int tY, float tScaleX, float tScaleY );
};
#undef THISS
#undef THISC
IMAGE_FOR_GXD.cpp
Code:
#ifdef _USRDLL
#define THISC IMAGE_FOR_GXD* This,
#define THISS IMAGE_FOR_GXD* This
#else
#define THISC
#define THISS
#endif

IMAGE_FOR_GXD::IMAGE_FOR_GXD( void )
{
    IMAGE_FOR_GXD::Init( this );
}

IMAGE_FOR_GXD::~IMAGE_FOR_GXD()
{
    IMAGE_FOR_GXD::Free( this );
}

void IMAGE_FOR_GXD::Init( THISS )
{
    This->mCheckValidState = FALSE;
    This->mTexture = NULL;
}

void IMAGE_FOR_GXD::Free( THISS )
{
    This->mCheckValidState = FALSE;
    SAFE_RELEASE( This->mTexture );
}

int IMAGE_FOR_GXD::GetTwoPowerNumber( int tNumber )
{
    int result;

    if ( tNumber < 1 )
        return 0;
    for ( result = 1; result < tNumber; result *= 2 )
        ;
    return result;
}

BOOL IMAGE_FOR_GXD::Load( THISC char *tFileName )
{
    BOOL result = FALSE;
    BYTE *tOriginal = NULL, *tCompress = NULL;
    DWORD tOriginalSize, tCompressSize;
    DWORD tReadBytes;

    HANDLE hFile = CreateFileA(tFileName, 0x80000000, 1u, 0, 3u, 0x80u, 0 );
    if( hFile == INVALID_HANDLE_VALUE )
    {
        IMAGE_FOR_GXD::Free(This);
        return FALSE;
    }

    DWORD size = GetFileSize( hFile, 0 );
    if( size == INVALID_FILE_SIZE )
        goto RET;

    tCompress = (BYTE*)HeapAlloc( GetProcessHeap(), 0, size );
    if ( !tCompress )
    {
        RET:
        HEAP_FREE(tOriginal);
        HEAP_FREE(tCompress);
        if (!result)
        {
            CloseHandle(hFile);
            IMAGE_FOR_GXD::Free(This);
        }
        else
        {
            result = CloseHandle(hFile);
            This->mCheckValidState = result;
        }
        return result;
    }
    
    if ( !ReadFile(hFile, tCompress, size, &tReadBytes, 0) || tReadBytes != size )
        goto RET;

    //typedef struct
    //{
    //    DWORD tOriginalSize;
    //    DWORD tCompressSize;
    //    BYTE* tCompress;
    //} IMAGE_FOR_COMPRESS;

    tOriginalSize = *(DWORD*)&tCompress[0];
    tCompressSize = *(DWORD*)&tCompress[4];

    tOriginal = (BYTE*)HeapAlloc( GetProcessHeap(), 0, tOriginalSize );
    if (!tOriginal)
        goto RET;

    if( !GXD::Decompress( tCompressSize, &tCompress[8], tOriginalSize, tOriginal ) )
        goto RET;

    //typedef struct
    //{
    //    D3DXIMAGE_INFO mTextureInfo; //offset 0, size = 28
    //    D3DFORMAT mLoadFormat; //offset 28, size = 4
    //    int mTextureSize; //offset 32, size = 4
    //    IDirect3DTexture9 *mTexture; //offset 36, size = mTextureSize
    //} IMAGE_FOR_UNCOMPRESS;

    memcpy( &This->mTextureInfo, &tOriginal[0], sizeof(This->mTextureInfo) );

    This->mLoadFormat = *(D3DFORMAT*)&tOriginal[28];
    int textureSize = *(int*)&tOriginal[32];
    int width = IMAGE_FOR_GXD::GetTwoPowerNumber( This->mTextureInfo.Width );
    int height = IMAGE_FOR_GXD::GetTwoPowerNumber( This->mTextureInfo.Height );

	if ( SUCCEEDED( D3DXCreateTextureFromFileInMemoryEx(
	    mGXD[0].mGraphicDevice,
        &tOriginal[36],
        textureSize,
	    width,
	    height,
	    1,
	    0,
        This->mLoadFormat,
	    D3DPOOL_MANAGED,
	    1,
	    1,
	    0,
	    0,
	    0,
	    &This->mTexture ) )
        )
	{
        result = TRUE;
	}
    goto RET;
}

void IMAGE_FOR_GXD::Draw( THISC int tX, int tY, BOOL tCheckExistPartInfo, int iX, int iY, int lX, int lY )
{
    D3DXVECTOR3 pos;
    RECT r;

    if ( !This->mCheckValidState )
        return;
    if ( tCheckExistPartInfo )
    {
        r.left = iX;
        r.top = iY;
        r.right = lX + iX;
        r.bottom = lY + iY;
    }
    else
    {
        r.left = 0;
        r.top = 0;
        r.right = This->mTextureInfo.Width;
        r.bottom = This->mTextureInfo.Height;
    }
    pos = D3DXVECTOR3( (FLOAT)tX, (FLOAT)tY, 0.0f );
    mGXD[0].mGraphicSprite->Draw( This->mTexture, &r, 0, &pos, -1 );
}

void IMAGE_FOR_GXD::Draw( THISC int tX, int tY, float tScaleX, float tScaleY )
{
    D3DXVECTOR3 pos;
    RECT r;
    D3DXMATRIX oldTransform;
    D3DXMATRIX pOut;

    if ( !This->mCheckValidState )
        return;

    r.left = 0;
    r.top = 0;
    r.right = This->mTextureInfo.Width;
    r.bottom = This->mTextureInfo.Height;
    mGXD[0].mGraphicSprite->GetTransform( &oldTransform );
    D3DXMatrixScaling( &pOut, tScaleX, tScaleY, 1.0f );
    mGXD[0].mGraphicSprite->SetTransform(&pOut);
    pos = D3DXVECTOR3( (FLOAT)tX, (FLOAT)tY, 0.0f );
    mGXD[0].mGraphicSprite->Draw( This->mTexture, &r, 0, &pos, -1 );
    mGXD[0].mGraphicSprite->SetTransform( &oldTransform );    
}

#undef THISC
#undef THISS
GIMAGE2D.h
Code:
#define THISS GIMAGE2D *This
#define THISC GIMAGE2D *This,
class GIMAGE2D
{
public:
    BOOL mCheckValidState;
    char mFileName[100];
    IMAGE_FOR_GXD mDATA;
    float mLastUsedTime;

    GIMAGE2D( void );
    ~GIMAGE2D( void );
    capi void Init( THISC int tValue1, int tValue2, int tValue3 );
    capi void Free( THISS );
    capi BOOL Load( THISS );
    capi void ProcessForMemory( THISC float tPresentTime, float tValidTimeLength );
    capi void Display( THISC int sX, int sY );
    capi void Display2( THISC int sX, int sY, float tScaleX, float tScaleY );
    capi BOOL CheckIn( THISC int sX, int sY, int mX, int mY );
    capi WORD GetXSize( THISS );
    capi WORD GetYSize( THISS );
};
#undef THISC
#undef THISS
GIMAGE2D.cpp
Code:
#ifdef _USRDLL
#define THISS GIMAGE2D *This
#define THISC GIMAGE2D *This,
#else
#define THISS
#define THISC
#define This this
#endif

GIMAGE2D::GIMAGE2D( void )
{
    mCheckValidState = FALSE;
    IMAGE_FOR_GXD::Init( &mDATA );
}

GIMAGE2D::~GIMAGE2D( void )
{
}

void GIMAGE2D::Init( THISC int tValue01, int tValue02, int tValue03 )
{
    switch ( tValue01 )
    {
    case 1:
        sprintf( This->mFileName, "G03_GDATA\\D01_GIMAGE2D\\001\\001_%05d.IMG", tValue02 + 1 );
        break;
    case 2:
        sprintf( This->mFileName, "G03_GDATA\\D01_GIMAGE2D\\002\\002_%05d.IMG", tValue02 + 1 );
        break;
    case 3:
        sprintf( This->mFileName, "G03_GDATA\\D01_GIMAGE2D\\003\\003_%05d.IMG", tValue02 + 1 );
        break;
    case 4:
        sprintf( This->mFileName, "G03_GDATA\\D01_GIMAGE2D\\004\\004_%05d.IMG", tValue02 + 1 );
        break;
    case 5:
        sprintf( This->mFileName, "G03_GDATA\\D01_GIMAGE2D\\006\\006_%05d.IMG", tValue02 + 1 );
        break;
    case 6:
        sprintf( This->mFileName, "G03_GDATA\\D01_GIMAGE2D\\007\\007_%03d%03d.IMG", tValue02 + 1, tValue03 + 1 );
        break;
    case 7:
        sprintf( This->mFileName, "G03_GDATA\\D01_GIMAGE2D\\008\\008_%05d.IMG", tValue02 + 1 );
        break;
    default:
        strcpy( This->mFileName, aEmptyChar );
        return;
    }
}

void GIMAGE2D::Free( THISS )
{
    This->mCheckValidState = FALSE;
    IMAGE_FOR_GXD::Free( &This->mDATA );
}

BOOL GIMAGE2D::Load( THISS )
{
    if ( This->mCheckValidState )
        return 1;
    if ( !IMAGE_FOR_GXD::Load( &This->mDATA, This->mFileName ) )
        return 0;
    This->mCheckValidState = 1;
    return 1;
}

void GIMAGE2D::ProcessForMemory( THISC float tPresentTime, float tValidTimeLength )
{
    if( !This->mCheckValidState )
		return;
	if( ( tPresentTime - This->mLastUsedTime ) > tValidTimeLength )
	{
        GIMAGE2D::Free( This );
	}
}

#define SETLOAD( ... ) { \
    if( !This->mCheckValidState ) \
	{ \
		if( !GIMAGE2D::Load( This ) ) \
		{ \
			return __VA_ARGS__; \
		} \
        This->mCheckValidState = TRUE; \
	} \
    This->mLastUsedTime = mApp[0].hPresentElapsedSeconds; \
}

void GIMAGE2D::Display( THISC int sX, int sY )
{
    SETLOAD();
    IMAGE_FOR_GXD::Draw( &This->mDATA, sX, sY, FALSE, 0, 0, 0, 0 );
}

void GIMAGE2D::Display( THISC int sX, int sY, float tScaleX, float tScaleY )
{
    SETLOAD();
	IMAGE_FOR_GXD::Draw( &This->mDATA, sX, sY, tScaleX, tScaleY );
}

BOOL GIMAGE2D::CheckIn( THISC int sX, int sY, int mX, int mY )
{
    SETLOAD(FALSE);
	if( ( mX >= sX ) && ( mX < ( sX + (int) This->mDATA.mTextureInfo.Width ) ) && ( mY >= sY ) && ( mY < ( sY + (int) This->mDATA.mTextureInfo.Height ) ) )
	{
		return TRUE;
	}
	return FALSE;
}

WORD GIMAGE2D::GetXSize( THISS )
{
    SETLOAD(0);
	return This->mDATA.mTextureInfo.Width;
}

WORD GIMAGE2D::GetYSize( THISS )
{
    SETLOAD(0);
    return This->mDATA.mTextureInfo.Height;
}
Usage
Code:
GIMAGE2D img;
sprintf( img.mFileName, "my.IMG" );
GIMAGE2D::Display( &img, 0, 0 );
or
GIMAGE2D::Display( &img, 0, 0, 1.0f, 1.0f )
lnwnuyhodd is offline  
Thanks
6 Users
Old 02/25/2023, 10:47   #2
 
elite*gold: 0
Join Date: Apr 2020
Posts: 243
Received Thanks: 51
Quote:
Originally Posted by lnwnuyhodd View Post
MainDefine
Code:
#ifdef _USRDLL
	#define capi static
#else
	#define capi
#endif

#ifndef SAFE_RELEASE
    #define SAFE_RELEASE(p) { if(p) { p->Release(); p = NULL; } }
#endif

#ifndef HEAP_FREE
#define HEAP_FREE(p) { if(p){ HeapFree(GetProcessHeap(), 0, p); p = NULL; } }
#endif

static char* aEmptyChar = "";
IMAGE_FOR_GXD.h
Code:
#define THISS IMAGE_FOR_GXD *This
#define THISC IMAGE_FOR_GXD *This,
class IMAGE_FOR_GXD
{
public:
    BOOL mCheckValidState;
    D3DXIMAGE_INFO mTextureInfo;
    D3DFORMAT mLoadFormat;
    IDirect3DTexture9* mTexture;

    IMAGE_FOR_GXD( void );
    ~IMAGE_FOR_GXD( void );
    capi void Init( THISS );
    capi void Free( THISS );
    capi int GetTwoPowerNumber( int tNumber );
    capi BOOL Load( THISC char *tFileName );
    capi void Draw( THISC int tX, int tY, BOOL tCheckExistPartInfo, int iX, int iY, int lX, int lY );
    capi void Draw( THISC int tX, int tY, float tScaleX, float tScaleY );
};
#undef THISS
#undef THISC
IMAGE_FOR_GXD.cpp
Code:
#ifdef _USRDLL
#define THISC IMAGE_FOR_GXD* This,
#define THISS IMAGE_FOR_GXD* This
#else
#define THISC
#define THISS
#endif

IMAGE_FOR_GXD::IMAGE_FOR_GXD( void )
{
    IMAGE_FOR_GXD::Init( this );
}

IMAGE_FOR_GXD::~IMAGE_FOR_GXD()
{
    IMAGE_FOR_GXD::Free( this );
}

void IMAGE_FOR_GXD::Init( THISS )
{
    This->mCheckValidState = FALSE;
    This->mTexture = NULL;
}

void IMAGE_FOR_GXD::Free( THISS )
{
    This->mCheckValidState = FALSE;
    SAFE_RELEASE( This->mTexture );
}

int IMAGE_FOR_GXD::GetTwoPowerNumber( int tNumber )
{
    int result;

    if ( tNumber < 1 )
        return 0;
    for ( result = 1; result < tNumber; result *= 2 )
        ;
    return result;
}

BOOL IMAGE_FOR_GXD::Load( THISC char *tFileName )
{
    BOOL result = FALSE;
    BYTE *tOriginal = NULL, *tCompress = NULL;
    DWORD tOriginalSize, tCompressSize;
    DWORD tReadBytes;

    HANDLE hFile = CreateFileA(tFileName, 0x80000000, 1u, 0, 3u, 0x80u, 0 );
    if( hFile == INVALID_HANDLE_VALUE )
    {
        IMAGE_FOR_GXD::Free(This);
        return FALSE;
    }

    DWORD size = GetFileSize( hFile, 0 );
    if( size == INVALID_FILE_SIZE )
        goto RET;

    tCompress = (BYTE*)HeapAlloc( GetProcessHeap(), 0, size );
    if ( !tCompress )
    {
        RET:
        HEAP_FREE(tOriginal);
        HEAP_FREE(tCompress);
        if (!result)
        {
            CloseHandle(hFile);
            IMAGE_FOR_GXD::Free(This);
        }
        else
        {
            result = CloseHandle(hFile);
            This->mCheckValidState = result;
        }
        return result;
    }
    
    if ( !ReadFile(hFile, tCompress, size, &tReadBytes, 0) || tReadBytes != size )
        goto RET;

    //typedef struct
    //{
    //    DWORD tOriginalSize;
    //    DWORD tCompressSize;
    //    BYTE* tCompress;
    //} IMAGE_FOR_COMPRESS;

    tOriginalSize = *(DWORD*)&tCompress[0];
    tCompressSize = *(DWORD*)&tCompress[4];

    tOriginal = (BYTE*)HeapAlloc( GetProcessHeap(), 0, tOriginalSize );
    if (!tOriginal)
        goto RET;

    if( !GXD::Decompress( tCompressSize, &tCompress[8], tOriginalSize, tOriginal ) )
        goto RET;

    //typedef struct
    //{
    //    D3DXIMAGE_INFO mTextureInfo; //offset 0, size = 28
    //    D3DFORMAT mLoadFormat; //offset 28, size = 4
    //    int mTextureSize; //offset 32, size = 4
    //    IDirect3DTexture9 *mTexture; //offset 36, size = mTextureSize
    //} IMAGE_FOR_UNCOMPRESS;

    memcpy( &This->mTextureInfo, &tOriginal[0], sizeof(This->mTextureInfo) );

    This->mLoadFormat = *(D3DFORMAT*)&tOriginal[28];
    int textureSize = *(int*)&tOriginal[32];
    int width = IMAGE_FOR_GXD::GetTwoPowerNumber( This->mTextureInfo.Width );
    int height = IMAGE_FOR_GXD::GetTwoPowerNumber( This->mTextureInfo.Height );

	if ( SUCCEEDED( D3DXCreateTextureFromFileInMemoryEx(
	    mGXD[0].mGraphicDevice,
        &tOriginal[36],
        textureSize,
	    width,
	    height,
	    1,
	    0,
        This->mLoadFormat,
	    D3DPOOL_MANAGED,
	    1,
	    1,
	    0,
	    0,
	    0,
	    &This->mTexture ) )
        )
	{
        result = TRUE;
	}
    goto RET;
}

void IMAGE_FOR_GXD::Draw( THISC int tX, int tY, BOOL tCheckExistPartInfo, int iX, int iY, int lX, int lY )
{
    D3DXVECTOR3 pos;
    RECT r;

    if ( !This->mCheckValidState )
        return;
    if ( tCheckExistPartInfo )
    {
        r.left = iX;
        r.top = iY;
        r.right = lX + iX;
        r.bottom = lY + iY;
    }
    else
    {
        r.left = 0;
        r.top = 0;
        r.right = This->mTextureInfo.Width;
        r.bottom = This->mTextureInfo.Height;
    }
    pos = D3DXVECTOR3( (FLOAT)tX, (FLOAT)tY, 0.0f );
    mGXD[0].mGraphicSprite->Draw( This->mTexture, &r, 0, &pos, -1 );
}

void IMAGE_FOR_GXD::Draw( THISC int tX, int tY, float tScaleX, float tScaleY )
{
    D3DXVECTOR3 pos;
    RECT r;
    D3DXMATRIX oldTransform;
    D3DXMATRIX pOut;

    if ( !This->mCheckValidState )
        return;

    r.left = 0;
    r.top = 0;
    r.right = This->mTextureInfo.Width;
    r.bottom = This->mTextureInfo.Height;
    mGXD[0].mGraphicSprite->GetTransform( &oldTransform );
    D3DXMatrixScaling( &pOut, tScaleX, tScaleY, 1.0f );
    mGXD[0].mGraphicSprite->SetTransform(&pOut);
    pos = D3DXVECTOR3( (FLOAT)tX, (FLOAT)tY, 0.0f );
    mGXD[0].mGraphicSprite->Draw( This->mTexture, &r, 0, &pos, -1 );
    mGXD[0].mGraphicSprite->SetTransform( &oldTransform );    
}

#undef THISC
#undef THISS
GIMAGE2D.h
Code:
#define THISS GIMAGE2D *This
#define THISC GIMAGE2D *This,
class GIMAGE2D
{
public:
    BOOL mCheckValidState;
    char mFileName[100];
    IMAGE_FOR_GXD mDATA;
    float mLastUsedTime;

    GIMAGE2D( void );
    ~GIMAGE2D( void );
    capi void Init( THISC int tValue1, int tValue2, int tValue3 );
    capi void Free( THISS );
    capi BOOL Load( THISS );
    capi void ProcessForMemory( THISC float tPresentTime, float tValidTimeLength );
    capi void Display( THISC int sX, int sY );
    capi void Display2( THISC int sX, int sY, float tScaleX, float tScaleY );
    capi BOOL CheckIn( THISC int sX, int sY, int mX, int mY );
    capi WORD GetXSize( THISS );
    capi WORD GetYSize( THISS );
};
#undef THISC
#undef THISS
GIMAGE2D.cpp
Code:
#ifdef _USRDLL
#define THISS GIMAGE2D *This
#define THISC GIMAGE2D *This,
#else
#define THISS
#define THISC
#define This this
#endif

GIMAGE2D::GIMAGE2D( void )
{
    mCheckValidState = FALSE;
    IMAGE_FOR_GXD::Init( &mDATA );
}

GIMAGE2D::~GIMAGE2D( void )
{
}

void GIMAGE2D::Init( THISC int tValue01, int tValue02, int tValue03 )
{
    switch ( tValue01 )
    {
    case 1:
        sprintf( This->mFileName, "G03_GDATA\\D01_GIMAGE2D\\001\\001_%05d.IMG", tValue02 + 1 );
        break;
    case 2:
        sprintf( This->mFileName, "G03_GDATA\\D01_GIMAGE2D\\002\\002_%05d.IMG", tValue02 + 1 );
        break;
    case 3:
        sprintf( This->mFileName, "G03_GDATA\\D01_GIMAGE2D\\003\\003_%05d.IMG", tValue02 + 1 );
        break;
    case 4:
        sprintf( This->mFileName, "G03_GDATA\\D01_GIMAGE2D\\004\\004_%05d.IMG", tValue02 + 1 );
        break;
    case 5:
        sprintf( This->mFileName, "G03_GDATA\\D01_GIMAGE2D\\006\\006_%05d.IMG", tValue02 + 1 );
        break;
    case 6:
        sprintf( This->mFileName, "G03_GDATA\\D01_GIMAGE2D\\007\\007_%03d%03d.IMG", tValue02 + 1, tValue03 + 1 );
        break;
    case 7:
        sprintf( This->mFileName, "G03_GDATA\\D01_GIMAGE2D\\008\\008_%05d.IMG", tValue02 + 1 );
        break;
    default:
        strcpy( This->mFileName, aEmptyChar );
        return;
    }
}

void GIMAGE2D::Free( THISS )
{
    This->mCheckValidState = FALSE;
    IMAGE_FOR_GXD::Free( &This->mDATA );
}

BOOL GIMAGE2D::Load( THISS )
{
    if ( This->mCheckValidState )
        return 1;
    if ( !IMAGE_FOR_GXD::Load( &This->mDATA, This->mFileName ) )
        return 0;
    This->mCheckValidState = 1;
    return 1;
}

void GIMAGE2D::ProcessForMemory( THISC float tPresentTime, float tValidTimeLength )
{
    if( !This->mCheckValidState )
		return;
	if( ( tPresentTime - This->mLastUsedTime ) > tValidTimeLength )
	{
        GIMAGE2D::Free( This );
	}
}

#define SETLOAD( ... ) { \
    if( !This->mCheckValidState ) \
	{ \
		if( !GIMAGE2D::Load( This ) ) \
		{ \
			return __VA_ARGS__; \
		} \
        This->mCheckValidState = TRUE; \
	} \
    This->mLastUsedTime = mApp[0].hPresentElapsedSeconds; \
}

void GIMAGE2D::Display( THISC int sX, int sY )
{
    SETLOAD();
    IMAGE_FOR_GXD::Draw( &This->mDATA, sX, sY, FALSE, 0, 0, 0, 0 );
}

void GIMAGE2D::Display( THISC int sX, int sY, float tScaleX, float tScaleY )
{
    SETLOAD();
	IMAGE_FOR_GXD::Draw( &This->mDATA, sX, sY, tScaleX, tScaleY );
}

BOOL GIMAGE2D::CheckIn( THISC int sX, int sY, int mX, int mY )
{
    SETLOAD(FALSE);
	if( ( mX >= sX ) && ( mX < ( sX + (int) This->mDATA.mTextureInfo.Width ) ) && ( mY >= sY ) && ( mY < ( sY + (int) This->mDATA.mTextureInfo.Height ) ) )
	{
		return TRUE;
	}
	return FALSE;
}

WORD GIMAGE2D::GetXSize( THISS )
{
    SETLOAD(0);
	return This->mDATA.mTextureInfo.Width;
}

WORD GIMAGE2D::GetYSize( THISS )
{
    SETLOAD(0);
    return This->mDATA.mTextureInfo.Height;
}
Usage
Code:
GIMAGE2D img;
sprintf( img.mFileName, "my.IMG" );
GIMAGE2D::Display( &img, 0, 0 );
or
GIMAGE2D::Display( &img, 0, 0, 1.0f, 1.0f )
Thnx
@ i need login send strct
zahter55 is offline  
Reply


Similar Threads Similar Threads
[VK]Captain 2nd Class & 2nd.Leutant 2nd Class
12/28/2010 - CrossFire Trading - 9 Replies
Hallo liebe Elitepvpers Community , da ich jetzt leider aufhöre mit Crossfire und für was bestimmtes spare verkaufe ich nun meine beiden Crossfire Accounts. Captain Account 2nd Class Z8Games ? Home of the Best Free MMO Games - Clans - Character Details M4A1 Crystal AWM - Red Dragon AK Scope
Class change to TBC Class (bloodelf & Danei)
11/03/2006 - World of Warcraft - 127 Replies
habe das hier vor kurzem mal im icq gesendet bekommen, hoffe das steht hier noch net ^^ es ist zwar buggy z.b. wenn ihr ein troll mit tatoos in der fratze habt usw aber man kann es durch aus usen. am besten neuen char machen und richtig einstellen :). Anleitung: ladet die datei runter in euer World of Warcraft&#092;Data ordner und benennt sie in speech2.mpq um, dan einfach in wow einloggen wenn es ein stick wert ist bitte sticken :)



All times are GMT +1. The time now is 23:02.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.