unknowncheats uc-forum.com ucdownloads ucdownloads.com

Go Back   UC-Tutorials - Multiplayer Game Hacking and Cheat Tutorials > Programming > Direct3D

- Sponsored Advertisement -
http://www.myfpscheats.com/


Reply
 
Thread Tools Display Modes
  #1  
Old 02-09-2009, 04:33 AM
Alkatraz Alkatraz is offline
Administrator
 
Join Date: Jan 2007
Posts: 72
Default [Source] Tabbed Menu

I don't know what to say really but here is my tabbed menu source, defiantly not the best, but I guess some people can learn from it and others can point out my errors.

EDIT: Damn I forgot the credits: UC-Forum, Stevepwns inspired me to put in structs after I saw his button source

Its colored like the steam menu(as you should have noticed ) and yes I did spell initialize wrong on the functions, hopefully I didn't forget anything, O well I'm really tired and will fix them tomorrow if i did

Picture:



In your declarations
Code:
int MenuTab, MenuMax, MenuSelection;

struct Menu
{
    int MenuX;
    int MenuY;
    int MenuW;
    int MenuH;

};
Menu Menu1;

struct Tab
{
    int        TabX;
    int        TabY;
    int        TabH;
    int        TabW;
    int        TabNum;

};
Tab Tabs[5];

D3DCOLOR ColBlack     =    D3DCOLOR_XRGB( 0, 0, 0 );
D3DCOLOR ColGreen     =    D3DCOLOR_XRGB( 171, 171, 171 );
D3DCOLOR ColWhite     =    D3DCOLOR_XRGB( 255, 255, 255 );
D3DCOLOR ColMenuBack  = D3DCOLOR_XRGB( 90, 106, 81 );
D3DCOLOR ColMenuFront = D3DCOLOR_XRGB( 125, 125, 125 );
Needed functions
Code:
void DrawMyText(char pString[], int x, int y, D3DCOLOR col, ID3DXFont *font)
{
    RECT FontRect = { x, y, x+500, y+30 };
    font->DrawText( NULL, pString, -1, &FontRect, DT_LEFT | DT_WORDBREAK, col);
}//I don't remember who made this but they get credit for this function

void IntalizeMenu( int X, int Y, int W, int H)
{
    Menu1.MenuX = X;
    Menu1.MenuY = Y;
    Menu1.MenuW = W + Menu1.MenuX;
    Menu1.MenuH = H + Menu1.MenuY;
}

void IntalizeTab( int Num, int X, int Y, int W, int H )
{
    Tabs[Num].TabX = X + Menu1.MenuX;
    Tabs[Num].TabY = Y + Menu1.MenuY;
    Tabs[Num].TabW = W;
    Tabs[Num].TabH = H;

}


void DrawBox( IDirect3DDevice9 *pD3Ddev, int X, int Y, int W, int H, D3DCOLOR Color )
{
    D3DRECT Rect = { X, Y, X + W, Y + H };
    pD3Ddev->Clear( 1, &Rect, D3DCLEAR_TARGET, Color, 0,  0);

}


void DrawTab( IDirect3DDevice9 *pD3Ddev, int TabNum, D3DCOLOR Color )
{
    DrawBox( pD3Ddev, Tabs[TabNum].TabX, Tabs[TabNum].TabY, Tabs[TabNum].TabW, Tabs[TabNum].TabH, Color);
}


void DrawMenu( IDirect3DDevice9 *pD3Ddev, D3DCOLOR ColFront, D3DCOLOR ColBack )
{
    DrawBox(pD3Ddev, Menu1.MenuX - 5, Menu1.MenuY - 5, Menu1.MenuW + 10, Menu1.MenuH + 10, ColBack);
    DrawBox(pD3Ddev, Menu1.MenuX, Menu1.MenuY, Menu1.MenuW, Menu1.MenuH, ColFront);

}
In Initialize
Code:
    IntalizeMenu( 15, 150, 197, 10 );

    IntalizeTab( 1, 5,    5, 50, 25);
    IntalizeTab( 2, 56,    5, 50, 25);
    IntalizeTab( 3, 107, 5, 50, 25);
    IntalizeTab( 4, 158, 5, 50, 25);

    TextXoff = Menu1.MenuX + 2;
Creating the menu
Present/EndScene
Code:
 // I would put this into a function then call it from Present/EndScene
        DrawMenu( m_pD3Ddev, ColMenuFront, ColMenuBack );

        DrawTab(m_pD3Ddev, 1, ColMenuBack);
        DrawTab(m_pD3Ddev, 2, ColMenuBack);
        DrawTab(m_pD3Ddev, 3, ColMenuBack);
        DrawTab(m_pD3Ddev, 4, ColMenuBack);

        if( GetAsyncKeyState( VK_UP ) & 1 )
        {
            
                MenuSelection--;
                if(MenuSelection < 0)
                    MenuSelection = MenuMax;

        }
        if( GetAsyncKeyState( VK_DOWN ) & 1 )
        {
            
            MenuSelection++;
            if(MenuSelection > MenuMax)
                MenuSelection = 0;

        }


        switch( MenuTab )
        {

        case 0:
            MenuMax = 2;

            if( GetAsyncKeyState( VK_RIGHT ) & 1 )
            {
                switch( MenuSelection )
                {
                case 0:
                    MenuTab++;
                    if(MenuTab > 3)
                        MenuTab = 0;
                break;

                case 1:
                    hack1 = true;
                break;

                case 2:
                    hack2 = true;
                break;

                default:
                break;
                }
            }

            if( GetAsyncKeyState( VK_LEFT ) & 1 )
            {
                switch( MenuSelection )
                {
                case 0:
                    MenuTab--;
                    if(MenuTab < 0)
                        MenuTab = 3;
                break;

                case 1:
                    hack1 = false;
                break;

                case 2:
                    hack2 = false;
                break;

                default:
                break;
                }
            }

            if (hack1){
                DrawMyText( "hack 1 on", TextXoff, Menu1.MenuY + 50, ColGreen, Font3 );
                if(MenuSelection==1)
                    DrawMyText( "hack 1 on", TextXoff, Menu1.MenuY + 50, ColWhite, Font3 );

            }else{
                DrawMyText( "hack 1 off", TextXoff, Menu1.MenuY + 50, ColBlack, Font3 );
                if(MenuSelection==1)
                    DrawMyText( "hack 1 off", TextXoff, Menu1.MenuY + 50, ColWhite, Font3 );

            }

            if (hack2){
                DrawMyText( "hack 2 on", TextXoff, Menu1.MenuY + 65, ColGreen, Font3 );
                if(MenuSelection==2)
                    DrawMyText( "hack 2 on", TextXoff, Menu1.MenuY + 65, ColWhite, Font3 );

            }else{
                DrawMyText( "hack 2 off", TextXoff, Menu1.MenuY + 65, ColBlack, Font3 );
                if(MenuSelection==2)
                    DrawMyText( "hack 2 off", TextXoff, Menu1.MenuY + 65, ColWhite, Font3 );

            }

        break;

        case 1:

            MenuMax = 0;

            if( GetAsyncKeyState( VK_RIGHT ) & 1 )
            {
                switch( MenuSelection )
                {
                case 0:
                    MenuTab++;
                    if(MenuTab > 3)
                        MenuTab = 0;
                break;

                default:
                break;
                }
            }

            if( GetAsyncKeyState( VK_LEFT ) & 1 )
            {
                switch( MenuSelection )
                {
                case 0:
                    MenuTab--;
                    if(MenuTab < 0)
                        MenuTab = 3;
                break;

                default:
                break;
                }
            }

        break;

        case 2:

            MenuMax = 0;

            if( GetAsyncKeyState( VK_RIGHT ) & 1 )
            {
                switch( MenuSelection )
                {
                case 0:
                    MenuTab++;
                    if(MenuTab > 3)
                        MenuTab = 0;
                break;

                default:
                break;
                }
            }

            if( GetAsyncKeyState( VK_LEFT ) & 1 )
            {
                switch( MenuSelection )
                {
                case 0:
                    MenuTab--;
                    if(MenuTab < 0)
                        MenuTab = 3;
                break;

                default:
                break;
                }
            }

        break;

        case 3:

            MenuMax = 0;

            if( GetAsyncKeyState( VK_RIGHT ) & 1 )
            {
                switch( MenuSelection )
                {
                case 0:
                    MenuTab++;
                    if(MenuTab > 3)
                        MenuTab = 0;
                break;

                default:
                break;
                }
            }

            if( GetAsyncKeyState( VK_LEFT ) & 1 )
            {
                switch( MenuSelection )
                {
                case 0:
                    MenuTab--;
                    if(MenuTab < 0)
                        MenuTab = 3;
                break;

                default:
                break;
                }
            }

        break;


        default:
        break;
        
    }

        if (MenuTab==0 && MenuSelection == 0){
            DrawMyText( "Tab", Menu1.MenuX + 6, Menu1.MenuY + 10, ColBlack, Font3 );
        }
        else if (MenuTab==0){
            DrawMyText( "Tab", Menu1.MenuX + 6, Menu1.MenuY + 10, ColGreen, Font3 );
        }else{
            DrawMyText( "Tab", Menu1.MenuX + 6, Menu1.MenuY + 10, ColWhite, Font3 );
        }

        if (MenuTab==1 && MenuSelection == 0){
            DrawMyText( "Tab2", Menu1.MenuX + 57, Menu1.MenuY + 10, ColBlack, Font3 );
        }
        else if (MenuTab==1){
            DrawMyText( "Tab2", Menu1.MenuX + 57, Menu1.MenuY + 10, ColGreen, Font3 );
        }else{
            DrawMyText( "Tab2", Menu1.MenuX + 57, Menu1.MenuY + 10, ColWhite, Font3 );
        }

        if (MenuTab==2 && MenuSelection == 0){
            DrawMyText( "Tab3", Menu1.MenuX + 108, Menu1.MenuY + 10, ColBlack, Font3 );
        }
        else if (MenuTab==2){
            DrawMyText( "Tab3", Menu1.MenuX + 108, Menu1.MenuY + 10, ColGreen, Font3 );
        }else{
            DrawMyText( "Tab3", Menu1.MenuX + 108, Menu1.MenuY + 10, ColWhite, Font3 );
        }

        if (MenuTab==3 && MenuSelection == 0){
            DrawMyText( "Tab4", Menu1.MenuX + 159, Menu1.MenuY + 10, ColBlack, Font3 );
        }
        else if (MenuTab==3){
            DrawMyText( "Tab4", Menu1.MenuX + 159, Menu1.MenuY + 10, ColGreen, Font3 );
        }else{
            DrawMyText( "Tab4", Menu1.MenuX + 159, Menu1.MenuY + 10, ColWhite, Font3 );
        }



    }
Reply With Quote
Reply

  • Submit Thread to Digg
  • Submit Thread to del.icio.us
  • Submit Thread to StumbleUpon
  • Submit Thread to Google
  • Submit Thread to Facebook
  • Submit Thread to My Yahoo!
  • Submit Thread to MySpace
  • Submit Thread to Twitter
  • Submit Thread to Reddit

Tags
menu, source, tabbed

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off



All times are GMT. The time now is 04:30 AM.