// *** AdvanceMenus
void UserInput::AdvanceMenus()
{
//	if ( g_keyDeltas[KEY_F1] )
//		DebugKeyBindings::DebugMenu();

	InputManager *im = g_inputManager;
	int mouseX = g_target->X();
	int mouseY = g_target->Y();
	bool lmb = im->controlEvent( ControlEclipseLMousePressed );
	bool rmb = im->controlEvent( ControlEclipseRMousePressed );

    EclUpdateMouse( mouseX, mouseY, lmb, rmb );
    EclUpdate();

	if ( im->controlEvent( ControlEclipseLMouseDown ) )
	{
		EclWindow *winUnderMouse = EclGetWindow( mouseX, mouseY );
		if (winUnderMouse)
		{
			im->suppressEvent( ControlEclipseLMouseDown );
		}
	}
}
Example #2
0
void Interface::Update()
{
    START_PROFILE( "EclUpdate" );
    EclUpdate();
    END_PROFILE( "EclUpdate" );
    
    

    //
    // Screenshot?

    if( g_keyDeltas[KEY_P] &&
        !UsingChatWindow() &&
        g_app->m_gameRunning )
    {
        g_renderer->SaveScreenshot();

        if( g_app->GetWorld()->AmISpectating() )
        {
            int teamId = g_app->GetClientToServer()->m_clientId;
            g_app->GetClientToServer()->SendChatMessageReliably( teamId, 100, LANGUAGEPHRASE("dialog_saved_screenshot"), true );
        }
        else
        {
            int teamId = g_app->GetWorld()->m_myTeamId;
            g_app->GetClientToServer()->SendChatMessageReliably( teamId, 100, LANGUAGEPHRASE("dialog_saved_screenshot"), false );
        }
    }


    //
    // Pop up main menu?

    if( m_escTimer > 0.0f )
    {
        m_escTimer -= g_advanceTime;
    }


	if (QuitKeyPressed())
		ConfirmExit( NULL );	
	
	if (QuitImmediatelyKeyPressed() || g_inputManager->m_quitRequested) 
	{
		g_inputManager->m_quitRequested = false;
		AttemptQuitImmediately();
	}
	
	if (ToggleFullscreenKeyPressed() || s_toggleFullscreen)
	{
		g_preferences->SetInt( PREFS_SCREEN_WINDOWED, !g_preferences->GetInt( PREFS_SCREEN_WINDOWED ));
		g_app->ReinitialiseWindow();
		s_toggleFullscreen = false;
	}
		
	if( g_keyDeltas[KEY_ESC] )
    {
        //
        // panic key (double esc)

        bool panicKeyEnabled = g_preferences->GetInt(PREFS_INTERFACE_PANICKEY);
        bool officeMode = (g_app->GetGame()->GetOptionValue("GameMode") == GAMEMODE_OFFICEMODE);
        if( officeMode ) panicKeyEnabled = true;

        if( panicKeyEnabled && m_escTimer > 0.0f )
        {
            g_app->HideWindow();
            m_escTimer = 0.0f;
            g_keys[KEY_ESC] = 0;
            g_keyDeltas[KEY_ESC] = 0;
        }        
        
        if( !EclGetWindow( "Main Menu" ) )
        {
            EclRegisterWindow( new MainMenu() );
        }
        else
        {
            EclRemoveWindow( "Main Menu" );
        }

        m_escTimer = 0.5f;
    }


    if( !g_app->m_gameRunning &&
        EclGetWindows()->Size() == 0 )
    {
        EclRegisterWindow( new MainMenu() );
    }

}