예제 #1
0
void CLocalGUI::CreateWindows ( void )
{
    CFilePathTranslator     FileTranslator;
    string                  WorkingDirectory;
    char                    szCurDir [ 1024 ];

    // Set the current directory.
    FileTranslator.SetCurrentWorkingDirectory ( "MTA" );
    FileTranslator.GetCurrentWorkingDirectory ( WorkingDirectory );
    GetCurrentDirectory ( sizeof ( szCurDir ), szCurDir );
    SetCurrentDirectory ( WorkingDirectory.c_str ( ) );

    CGUI* pGUI = CCore::GetSingleton ().GetGUI ();

    // Create chatbox
    m_pChat = new CChat ( pGUI, CVector2D ( 0.0125f, 0.015f ) );
    m_pChat->SetVisible ( false );

    // Create the debug view
    m_pDebugView = new CDebugView ( pGUI, CVector2D ( 0.23f, 0.785f ) );
    m_pDebugView->SetVisible ( false );

	// Create the overlayed version labels
	CVector2D ScreenSize = pGUI->GetResolution ();
    m_pLabelVersionTag = reinterpret_cast < CGUILabel* > ( pGUI->CreateLabel ( "MTA:SA " MTA_DM_BUILDTAG_SHORT ) );
	m_pLabelVersionTag->SetSize ( CVector2D ( m_pLabelVersionTag->GetTextExtent() + 5, 18 ) );
	m_pLabelVersionTag->SetPosition ( CVector2D ( ScreenSize.fX - m_pLabelVersionTag->GetTextExtent() - 5, ScreenSize.fY - 15 ) );
	m_pLabelVersionTag->SetAlpha ( 0.5f );
	m_pLabelVersionTag->SetTextColor ( 255, 255, 255 );
	m_pLabelVersionTag->SetZOrderingEnabled ( false );
    m_pLabelVersionTag->MoveToBack ();
    m_pLabelVersionTag->SetVisible ( false );

    // Create mainmenu
    m_pMainMenu = new CMainMenu ( pGUI );
    m_pMainMenu->SetVisible ( false );

    // Create console
    m_pConsole = new CConsole ( pGUI );
    m_pConsole->SetVisible ( false );

    // Create community registration window
    m_CommunityRegistration.CreateWindows ();
    m_CommunityRegistration.SetVisible ( false );

	// Return the old current dir.
    SetCurrentDirectory ( szCurDir );
}
예제 #2
0
파일: CGUI.cpp 프로젝트: stymR/mtasa-blue
void CLocalGUI::CreateWindows ( bool bGameIsAlreadyLoaded )
{
    CGUI* pGUI = CCore::GetSingleton ().GetGUI ();

    // Create chatbox
    m_pChat = new CChat ( pGUI, CVector2D ( 0.0125f, 0.015f ) );
    m_pChat->SetVisible ( false );

    // Create the debug view
    m_pDebugView = new CDebugView ( pGUI, CVector2D ( 0.23f, 0.785f ) );
    m_pDebugView->SetVisible ( false );

    // Create the overlayed version labels
    CVector2D ScreenSize = pGUI->GetResolution ();
    SString strText = "MTA:SA " MTA_DM_BUILDTAG_SHORT;
    if ( _NETCODE_VERSION_BRANCH_ID != 0x04 )
        strText += SString( " (%X)", _NETCODE_VERSION_BRANCH_ID );
    m_pLabelVersionTag = reinterpret_cast < CGUILabel* > ( pGUI->CreateLabel ( strText ) );
    m_pLabelVersionTag->SetSize ( CVector2D ( m_pLabelVersionTag->GetTextExtent() + 5, 18 ) );
    m_pLabelVersionTag->SetPosition ( CVector2D ( ScreenSize.fX - m_pLabelVersionTag->GetTextExtent() - 5, ScreenSize.fY - 15 ) );
    m_pLabelVersionTag->SetAlpha ( 0.5f );
    m_pLabelVersionTag->SetTextColor ( 255, 255, 255 );
    m_pLabelVersionTag->SetZOrderingEnabled ( false );
    m_pLabelVersionTag->MoveToBack ();
    m_pLabelVersionTag->SetVisible ( false );

    // Create mainmenu
    m_pMainMenu = new CMainMenu ( pGUI );
    m_pMainMenu->SetVisible ( bGameIsAlreadyLoaded, !bGameIsAlreadyLoaded, false );

    // Create console
    m_pConsole = new CConsole ( pGUI );
    m_pConsole->SetVisible ( false );

    // Create community registration window
    m_CommunityRegistration.CreateWindows ();
    m_CommunityRegistration.SetVisible ( false );

    // Create our news headlines if we're already ingame
    if ( bGameIsAlreadyLoaded )
        m_pMainMenu->GetNewsBrowser()->CreateHeadlines();
}
예제 #3
0
CCredits::CCredits(void)
{
    CGUI* pManager = g_pCore->GetGUI();

    // Define our credits string
    m_strCredits += "== Multi Theft Auto: San Andreas v" MTA_DM_BUILDTAG_SHORT
                    " ==\n"
                    "\n";

    m_strCredits += _("Programming");
    m_strCredits +=
        "\n\n"

        "Alberto \"ryden\" Alonso\n"
        "Marcus \"mabako\" Bauer\n"
        "Hendrik \"arc_\" van den Berge\n"
        "Stanislav \"lil_Toady\" Bobrov\n"
        "Dan \"Talidan\" Chowdhury\n"
        "Chris \"ccw\" Cockwanger\n"
        "Adge \"Jax\" Cutler\n"
        "Cecill \"ijs\" Etheredge\n"
        "Sebas \"x86\" Lamers\n"
        "Raphael \"Mr.Hankey\" Leiteritz\n"
        "Ed \"eAi\" Lyons\n"
        "Christian \"ChrML\" Myhre Lundheim\n"
        "Qais \"qaisjp\" Patankar\n"
        "Arushan \"aru\" Raj\n"
        "Frank \"Aim\" Spijkerman\n"
        "Pascal \"sbx320\" Stücker\n"
        "Kevin \"Kevuwk\" Whiteside\n"
        "Richard \"Cazomino05\" Whitlock\n"
        "Gamesnert\n"
        "Jusonex\n"
        "\n"
        "\n";

    m_strCredits += _("Contributors");
    m_strCredits +=
        "\n\n"

        "Danish \"Saml1er\" Khan\n"
        "Marek \"botder\" Kulik\n"
        "Arran\n"
        "Iztas\n"
        "impulze\n"
        "JoeBullet\n"
        "lopezloo\n"
        "MX_Master\n"
        "Remp\n"
        "\n"
        "\n";

    m_strCredits += _("Game Design / Scripting");
    m_strCredits +=
        "\n\n"

        "John \"Johnline\" Borsberry\n"
        "Paul \"Brophy\" Brophy\n"
        "Maciej \"MACK\" Cieslak\n"
        "Jacek \"jhxp\" Halas vel Lagoda\n"
        "Brad \"Slothman\" Hammond\n"
        "Norbert \"norby89\" Juhos\n"
        "Kris \"KWKSND\" Kulchisky\n"
        "Dustin \"Ransom\" Morren\n"
        "erorr404\n"
        "Synecy\n"
        "Dutchman101\n"
        "\n"
        "\n";

    if (g_pLocalization->IsLocalized() && !g_pLocalization->GetTranslators().empty())
    {
        m_strCredits += _("Language Localization");
        m_strCredits += "\n\n";
        m_strCredits += g_pLocalization->GetTranslators();
        m_strCredits += "\n\n\n";
    }

    m_strCredits += _("Patch contributors");
    m_strCredits +=
        "\n\n"

        "Lukasz \"W\" Biegaj\n"
        "Florian \"Flobu\" Busse\n"
        "Callum \"Callum\" Dawson\n"
        "Philip \"Fenix\" Farquharson\n"
        "Robin \"robhol\" Holm\n"
        "Patrik \"myonlake\" Juvonen\n"
        "Gabrielius \"Dezash\" Laurinavicius\n"
        "Adam \"50p\" Telega\n"
        "Ilya \"Kenix\" Volkov\n"
        "Gothem\n"
        "rafalh\n"
        "Totto8492\n"
        "CubedDeath\n"
        "GRascm\n"
        "NeO_D-Power\n"
        "Dragon\n"
        "DirtY_iCE\n"
        "Zango\n"
        "lucasc190\n"
        "samt2497\n"
        "MCvarial\n"
        "tvc\n"
        "Audifire\n"
        "Kayl\n"
        "mickdermack\n"
        "Fabio(GNR)\n"
        "LarSoWiTsH\n"
        "dvarnai\n"
        "Loooop\n"
        "Lex128\n"
        "x0rh4x\n"
        "guix\n"
        "[GP_A]XetaQuake\n"
        "asturel\n"
        "FrankZZ\n"
        "John_Michael\n"
        "-ffs-Sniper\n"
        "W\n"
        "Fedor Sinev\n"
        "zneext\n"
        "ZReC\n"
        "Pawelo / 4O4\n"
        "Sergeanur\n"
        "AleksCore\n"
        "tederis\n"
        "CrosRoad95\n"
        "Bonus1702\n"
        "Einheit-101\n"
        "TAPL-93\n"
        "JR10\n"
        "PhrozenByte\n"
        "AboShanab\n"
        "GTX / Timic3\n"
        "FileEX\n"
        "Pirulax\n"
        "\n"
        "\n";

    m_strCredits += _("Special Thanks");
    m_strCredits +=
        "\n\n"

        "Derek \"slush\" Abdine\n"
        "Javier \"jbeta\" Beta\n"
        "Oliver \"Oli\" Brown\n"
        "Wojciech \"Wojjie\" Hlibowicki\n"
        "Chris \"Cray\" McArthur\n"
        "Rob 'Sugar Daddy' Pooley\n"
        "Hans \"Blokker\" Roes\n"
        "Kent \"Kent747\" Simon\n"
        "Matthew \"Towncivilian\" Wolfe\n"
        "Adamix\n"
        "Aibo\n"
        "Pugwipe\n"
        "The_GTA\n"
        "Phatlooser\n"
        "Dwayne 'The 'Woovie' Rock' Johnson\n"
        "max 'Hobo Pie' Power\n"
        "diegofkda\n"
        "Ren712\n"
        "StifflersMom\n"
        "\n"
        "\n";

    m_strCredits += _("This software makes use of the following libraries and software:");
    m_strCredits +=
        "\n"
        "RakNet (http://www.jenkinssoftware.com/)\n"
        "SA Limit adjuster source code (Credits to Sacky)\n"
        "CEGUI (http://www.cegui.org.uk/)\n"
        "cURL (http://curl.haxx.se/)\n"
        "libpcre (http://www.pcre.org/)\n"
        "Lua (http://www.lua.org/)\n"
        "SQLite (http://www.sqlite.org/)\n"
        "libpng (http://www.libpng.org/)\n"
        "Embedded HTTP Server (http://ehs.fritz-elfert.de/)\n"
        "zlib (http://zlib.net/)\n"
        "bzip2 (http://bzip.org/)\n"
        "UnRAR (http://www.rarlab.com/)\n"
        "tinygettext (https://github.com/tinygettext/tinygettext/)\n"
        "PortAudio (http://www.portaudio.com/)\n"
        "speex (http://www.speex.org/)\n"
        "CEF (https://bitbucket.org/chromiumembedded/cef/)\n";

    // Create our window
    CVector2D RelativeWindow = CVector2D(fWindowX / pManager->GetResolution().fX, fWindowY / pManager->GetResolution().fY);
    m_pWindow = reinterpret_cast<CGUIWindow*>(pManager->CreateWnd(NULL, "Multi Theft Auto: San Andreas " MTA_DM_BUILDTAG_SHORT));
    m_pWindow->SetCloseButtonEnabled(false);
    m_pWindow->SetMovable(false);
    m_pWindow->SetPosition(CVector2D(0.5f - RelativeWindow.fX * 0.5f, 0.5f - RelativeWindow.fY * 0.5f), true);
    m_pWindow->SetSize(CVector2D(fWindowX, fWindowY));            // relative 0.70, 0.50
    m_pWindow->SetSizingEnabled(false);
    m_pWindow->SetVisible(false);
    m_pWindow->SetAlwaysOnTop(true);

    // Credits label
    memset(m_pLabels, 0, sizeof(CGUILabel*) * 30);

    // Create one for every 15th line. This is because of some limit at 500 chars
    float        fStartPosition = 1.0f;
    const char*  szCreditsIterator = m_strCredits.c_str();
    const char*  szCreditsBegin = m_strCredits.c_str();
    unsigned int uiLineCount = 0;
    unsigned int uiLabelIndex = 0;
    while (true)
    {
        // Count every new line
        if (*szCreditsIterator == '\n')
            ++uiLineCount;

        // 15? Create a new label
        if (uiLineCount >= 15 || *szCreditsIterator == 0)
        {
            // Copy out the text we shall put in that label
            std::string strBuffer(szCreditsBegin, szCreditsIterator - szCreditsBegin);

            // Remember where we count from
            szCreditsBegin = szCreditsIterator;
            ++szCreditsBegin;

            // Create the label
            m_pLabels[uiLabelIndex] = reinterpret_cast<CGUILabel*>(pManager->CreateLabel(m_pWindow, strBuffer.c_str()));
            m_pLabels[uiLabelIndex]->SetPosition(CVector2D(0.022f, fStartPosition), true);
            m_pLabels[uiLabelIndex]->SetSize(CVector2D(532.0f, 1200.0f));            // relative 0.95, 6.0
            m_pLabels[uiLabelIndex]->SetHorizontalAlign(CGUI_ALIGN_HORIZONTALCENTER);
            ++uiLabelIndex;

            // Reset the linecount
            uiLineCount = 0;
        }

        // End the loop at 0
        if (*szCreditsIterator == 0)
            break;

        // Increase the credits iterator
        ++szCreditsIterator;
    }

    // Create the OK button
    m_pButtonOK = reinterpret_cast<CGUIButton*>(pManager->CreateButton(m_pWindow, "OK"));
    m_pButtonOK->SetPosition(CVector2D(0.77f, 0.90f), true);
    m_pButtonOK->SetSize(CVector2D(112.0f, 21.0f));            // relative 0.20, 0.07
    m_pButtonOK->SetVisible(true);
    m_pButtonOK->SetAlwaysOnTop(true);

    // Set up the event handlers
    m_pButtonOK->SetClickHandler(GUI_CALLBACK(&CCredits::OnOKButtonClick, this));
    m_pWindow->SetEnterKeyHandler(GUI_CALLBACK(&CCredits::OnOKButtonClick, this));
}
예제 #4
0
CCredits::CCredits ( void )
{
    CGUI *pManager = g_pCore->GetGUI ();

    // Create our window
    CVector2D RelativeWindow = CVector2D ( fWindowX / pManager->GetResolution ().fX, fWindowY / pManager->GetResolution ().fY );
    m_pWindow = reinterpret_cast < CGUIWindow* > ( pManager->CreateWnd ( NULL, "Multi Theft Auto: San Andreas " MTA_DM_BUILDTAG_SHORT ) );
    m_pWindow->SetCloseButtonEnabled ( false );
    m_pWindow->SetMovable ( false );
    m_pWindow->SetPosition ( CVector2D ( 0.5f - RelativeWindow.fX*0.5f, 0.5f - RelativeWindow.fY*0.5f ), true );
    m_pWindow->SetSize ( CVector2D ( fWindowX, fWindowY ) );		// relative 0.70, 0.50
    m_pWindow->SetSizingEnabled ( false );
    m_pWindow->SetVisible ( false );
    m_pWindow->SetAlwaysOnTop ( true );

    // Credits label
    memset ( m_pLabels, 0, sizeof ( CGUILabel* ) * 30 );

    // Create one for every 15th line. This is because of some limit at 500 chars
    float fStartPosition = 1.0f;
    const char* szCreditsIterator = g_szCredits;
    const char* szCreditsBegin = g_szCredits;
    unsigned int uiLineCount = 0;
    unsigned int uiLabelIndex = 0;
    while ( true )
    {
        // Count every new line
        if ( *szCreditsIterator == '\n' )
            ++uiLineCount;

        // 15? Create a new label
        if ( uiLineCount >= 15 || *szCreditsIterator == 0 )
        {
            // Copy out the text we shall put in that label
            char szBuffer [512];
            unsigned int uiCreditsSize = (szCreditsIterator - szCreditsBegin);
            if ( uiCreditsSize >= 512 )
                uiCreditsSize = 511;
            memcpy ( szBuffer, szCreditsBegin, uiCreditsSize );
            szBuffer [uiCreditsSize] = 0;

            // Remember where we count from
            szCreditsBegin = szCreditsIterator;
            ++szCreditsBegin;

            // Create the label
            m_pLabels [uiLabelIndex] = reinterpret_cast < CGUILabel* > ( pManager->CreateLabel ( m_pWindow, szBuffer ) );
            m_pLabels [uiLabelIndex]->SetPosition ( CVector2D ( 0.022f, fStartPosition ), true );
            m_pLabels [uiLabelIndex]->SetSize ( CVector2D ( 532.0f, 1200.0f ) );			// relative 0.95, 6.0
            m_pLabels [uiLabelIndex]->SetHorizontalAlign ( CGUI_ALIGN_HORIZONTALCENTER );
            ++uiLabelIndex;

            // Reset the linecount
            uiLineCount = 0;
        }

        // End the loop at 0
        if ( *szCreditsIterator == 0 )
            break;

        // Increase the credits iterator
        ++szCreditsIterator;
    }

    // Create the OK button
    m_pButtonOK = reinterpret_cast < CGUIButton* > ( pManager->CreateButton ( m_pWindow, "OK" ) );
    m_pButtonOK->SetPosition ( CVector2D ( 0.77f, 0.90f ), true );
    m_pButtonOK->SetSize ( CVector2D ( 112.0f, 21.0f ) );		// relative 0.20, 0.07
    m_pButtonOK->SetVisible ( true );

    // Set up the event handlers
    m_pButtonOK->SetClickHandler ( GUI_CALLBACK ( &CCredits::OnOKButtonClick, this ) );
}