diff options
| author | Jørgen P. Tjernø <[email protected]> | 2013-12-02 19:31:46 -0800 |
|---|---|---|
| committer | Jørgen P. Tjernø <[email protected]> | 2013-12-02 19:46:31 -0800 |
| commit | f56bb35301836e56582a575a75864392a0177875 (patch) | |
| tree | de61ddd39de3e7df52759711950b4c288592f0dc /mp/src/game/client/commentary_modelviewer.cpp | |
| parent | Mark some more files as text. (diff) | |
| download | source-sdk-2013-f56bb35301836e56582a575a75864392a0177875.tar.xz source-sdk-2013-f56bb35301836e56582a575a75864392a0177875.zip | |
Fix line endings. WHAMMY.
Diffstat (limited to 'mp/src/game/client/commentary_modelviewer.cpp')
| -rw-r--r-- | mp/src/game/client/commentary_modelviewer.cpp | 554 |
1 files changed, 277 insertions, 277 deletions
diff --git a/mp/src/game/client/commentary_modelviewer.cpp b/mp/src/game/client/commentary_modelviewer.cpp index 8c16f30a..8c81fbd3 100644 --- a/mp/src/game/client/commentary_modelviewer.cpp +++ b/mp/src/game/client/commentary_modelviewer.cpp @@ -1,277 +1,277 @@ -//========= Copyright Valve Corporation, All rights reserved. ============//
-//
-// Purpose:
-//
-//=============================================================================//
-
-
-#include "cbase.h"
-#include "vgui/IInput.h"
-#include <vgui/IVGui.h>
-#include "commentary_modelviewer.h"
-#include "iclientmode.h"
-#include "baseviewport.h"
-
-DECLARE_BUILD_FACTORY( CCommentaryModelPanel );
-
-//-----------------------------------------------------------------------------
-// Purpose:
-//-----------------------------------------------------------------------------
-CCommentaryModelPanel::CCommentaryModelPanel( vgui::Panel *parent, const char *name ) : CModelPanel( parent, name )
-{
-}
-
-//-----------------------------------------------------------------------------
-// Purpose:
-//-----------------------------------------------------------------------------
-CCommentaryModelViewer::CCommentaryModelViewer(IViewPort *pViewPort) : Frame(NULL, PANEL_COMMENTARY_MODELVIEWER )
-{
- m_pViewPort = pViewPort;
- m_pModelPanel = NULL;
-}
-
-//-----------------------------------------------------------------------------
-// Purpose:
-//-----------------------------------------------------------------------------
-CCommentaryModelViewer::~CCommentaryModelViewer()
-{
-}
-
-//-----------------------------------------------------------------------------
-// Purpose:
-//-----------------------------------------------------------------------------
-void CCommentaryModelViewer::ApplySchemeSettings( vgui::IScheme *pScheme )
-{
- BaseClass::ApplySchemeSettings( pScheme );
-
- LoadControlSettings( "Resource/UI/CommentaryModelViewer.res" );
-
- m_pModelPanel = dynamic_cast<CCommentaryModelPanel*>( FindChildByName( "modelpanel" ) );
-}
-
-//-----------------------------------------------------------------------------
-// Purpose:
-//-----------------------------------------------------------------------------
-void CCommentaryModelViewer::PerformLayout( void )
-{
- int w,h;
- GetParent()->GetSize( w, h );
- SetBounds(0,0,w,h);
-
- if ( m_pModelPanel )
- {
- m_pModelPanel->SetBounds(0,0,w,h);
- }
-
- BaseClass::PerformLayout();
-}
-
-//-----------------------------------------------------------------------------
-// Purpose:
-//-----------------------------------------------------------------------------
-void CCommentaryModelViewer::SetModel( const char *pszName, const char *pszAttached )
-{
- if ( !m_pModelPanel )
- return;
-
- m_pModelPanel->SwapModel( pszName, pszAttached );
-
- m_flYawSpeed = 0;
- m_flZoomSpeed = 0;
- m_bTranslating = false;
-
- m_vecResetPos = m_pModelPanel->m_pModelInfo->m_vecOriginOffset;
- m_vecResetAngles = m_pModelPanel->m_pModelInfo->m_vecAbsAngles;
-}
-
-//-----------------------------------------------------------------------------
-// Purpose:
-//-----------------------------------------------------------------------------
-void CCommentaryModelViewer::ShowPanel(bool bShow)
-{
- if ( BaseClass::IsVisible() == bShow )
- return;
-
- if ( bShow )
- {
- Activate();
- SetMouseInputEnabled( true );
- }
- else
- {
- SetVisible( false );
- SetMouseInputEnabled( false );
- }
-
- m_pViewPort->ShowBackGround( bShow );
-}
-
-//-----------------------------------------------------------------------------
-// Purpose:
-//-----------------------------------------------------------------------------
-void CCommentaryModelViewer::OnCommand( const char *command )
-{
- if ( Q_stricmp( command, "vguicancel" ) )
- {
- engine->ClientCmd( const_cast<char *>( command ) );
- }
-
- Close();
- m_pViewPort->ShowBackGround( false );
-
- BaseClass::OnCommand( command );
-}
-
-//-----------------------------------------------------------------------------
-// Purpose:
-//-----------------------------------------------------------------------------
-void CCommentaryModelViewer::OnKeyCodePressed( vgui::KeyCode code )
-{
- if ( code == KEY_ENTER )
- {
- Close();
- m_pViewPort->ShowBackGround( false );
- }
- else if ( code == KEY_SPACE )
- {
- m_bTranslating = !m_bTranslating;
- }
- else if ( code == KEY_R )
- {
- m_pModelPanel->m_pModelInfo->m_vecOriginOffset = m_vecResetPos;
- m_pModelPanel->m_pModelInfo->m_vecAbsAngles = m_vecResetAngles;
- m_flYawSpeed = 0;
- m_flZoomSpeed = 0;
-
- m_pModelPanel->ZoomToFrameDistance();
- }
- else
- {
- BaseClass::OnKeyCodePressed( code );
- }
-}
-
-//-----------------------------------------------------------------------------
-// Purpose:
-//-----------------------------------------------------------------------------
-void CCommentaryModelViewer::OnThink( void )
-{
- HandleMovementInput();
-
- BaseClass::OnThink();
-}
-
-//-----------------------------------------------------------------------------
-// Purpose:
-//-----------------------------------------------------------------------------
-void CCommentaryModelViewer::HandleMovementInput( void )
-{
- bool bLeftDown = input()->IsKeyDown(KEY_LEFT);
- bool bRightDown = input()->IsKeyDown(KEY_RIGHT);
- bool bForwardDown = input()->IsKeyDown(KEY_UP);
- bool bBackDown = input()->IsKeyDown(KEY_DOWN);
-
- float flAccel = 0.05;
-
- // Rotation around Z
- if ( bLeftDown )
- {
- if ( m_flYawSpeed > 0 )
- {
- m_flYawSpeed = 0;
- }
- m_flYawSpeed = MAX(m_flYawSpeed-flAccel, -3.0);
- }
- else if ( bRightDown )
- {
- if ( m_flYawSpeed < 0 )
- {
- m_flYawSpeed = 0;
- }
- m_flYawSpeed = MIN(m_flYawSpeed+flAccel, 3.0);
- }
- if ( m_flYawSpeed != 0 )
- {
- if ( m_bTranslating )
- {
- m_pModelPanel->m_pModelInfo->m_vecOriginOffset.y = clamp( m_pModelPanel->m_pModelInfo->m_vecOriginOffset.y + m_flYawSpeed, -100.f, 100.f );
- }
- else
- {
- m_pModelPanel->m_pModelInfo->m_vecAbsAngles.y = anglemod( m_pModelPanel->m_pModelInfo->m_vecAbsAngles.y + m_flYawSpeed );
- }
-
- if ( !bLeftDown && !bRightDown )
- {
- m_flYawSpeed = ( m_flYawSpeed > 0 ) ? MAX(0,m_flYawSpeed-0.1) : MIN(0,m_flYawSpeed+0.1);
- }
- }
-
- // Zooming
- if ( bForwardDown )
- {
- if ( m_flZoomSpeed > 0 )
- {
- m_flZoomSpeed = 0;
- }
- m_flZoomSpeed = MAX(m_flZoomSpeed-flAccel, -3.0);
- }
- else if ( bBackDown )
- {
- if ( m_flZoomSpeed < 0 )
- {
- m_flZoomSpeed = 0;
- }
- m_flZoomSpeed = MIN(m_flZoomSpeed+flAccel, 3.0);
- }
- if ( m_flZoomSpeed != 0 )
- {
- if ( m_bTranslating )
- {
- m_pModelPanel->m_pModelInfo->m_vecOriginOffset.z = clamp( m_pModelPanel->m_pModelInfo->m_vecOriginOffset.z + m_flZoomSpeed, -100.f, 300.f );
- }
- else
- {
- float flZoomMin = m_pModelPanel->m_flFrameDistance * 0.75;
- float flZoomMax = m_pModelPanel->m_flFrameDistance * 1.5;
- m_pModelPanel->m_pModelInfo->m_vecOriginOffset.x = clamp( m_pModelPanel->m_pModelInfo->m_vecOriginOffset.x + m_flZoomSpeed, flZoomMin, flZoomMax );
- }
-
- if ( !bForwardDown && !bBackDown )
- {
- m_flZoomSpeed = ( m_flZoomSpeed > 0 ) ? MAX(0,m_flZoomSpeed-0.1) : MIN(0,m_flZoomSpeed+0.1);
- }
- }
-}
-
-//-----------------------------------------------------------------------------
-// Purpose:
-//-----------------------------------------------------------------------------
-void CommentaryShowModelViewer( const CCommand &args )
-{
- if ( args.ArgC() < 2 )
- {
- ConMsg( "Usage: commentary_showmodelviewer <model name> <optional attached model name>\n" );
- return;
- }
-
- CBaseViewport *pViewport = dynamic_cast<CBaseViewport *>( g_pClientMode->GetViewport() );
- if ( pViewport )
- {
- IViewPortPanel *pCommentaryPanel = pViewport->FindPanelByName( PANEL_COMMENTARY_MODELVIEWER );
- if ( !pCommentaryPanel )
- {
- pCommentaryPanel = pViewport->CreatePanelByName( PANEL_COMMENTARY_MODELVIEWER );
- pViewport->AddNewPanel( pCommentaryPanel, "PANEL_COMMENTARY_MODELVIEWER" );
- }
-
- if ( pCommentaryPanel )
- {
- //((CCommentaryModelViewer*)pCommentaryPanel)->InvalidateLayout( false, true );
- ((CCommentaryModelViewer*)pCommentaryPanel)->SetModel( args[1], args[2] );
- pViewport->ShowPanel( pCommentaryPanel, true );
- }
- }
-}
-
-ConCommand commentary_showmodelviewer( "commentary_showmodelviewer", CommentaryShowModelViewer, "Display the commentary model viewer. Usage: commentary_showmodelviewer <model name> <optional attached model name>", FCVAR_NONE );
+//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: +// +//=============================================================================// + + +#include "cbase.h" +#include "vgui/IInput.h" +#include <vgui/IVGui.h> +#include "commentary_modelviewer.h" +#include "iclientmode.h" +#include "baseviewport.h" + +DECLARE_BUILD_FACTORY( CCommentaryModelPanel ); + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +CCommentaryModelPanel::CCommentaryModelPanel( vgui::Panel *parent, const char *name ) : CModelPanel( parent, name ) +{ +} + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +CCommentaryModelViewer::CCommentaryModelViewer(IViewPort *pViewPort) : Frame(NULL, PANEL_COMMENTARY_MODELVIEWER ) +{ + m_pViewPort = pViewPort; + m_pModelPanel = NULL; +} + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +CCommentaryModelViewer::~CCommentaryModelViewer() +{ +} + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +void CCommentaryModelViewer::ApplySchemeSettings( vgui::IScheme *pScheme ) +{ + BaseClass::ApplySchemeSettings( pScheme ); + + LoadControlSettings( "Resource/UI/CommentaryModelViewer.res" ); + + m_pModelPanel = dynamic_cast<CCommentaryModelPanel*>( FindChildByName( "modelpanel" ) ); +} + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +void CCommentaryModelViewer::PerformLayout( void ) +{ + int w,h; + GetParent()->GetSize( w, h ); + SetBounds(0,0,w,h); + + if ( m_pModelPanel ) + { + m_pModelPanel->SetBounds(0,0,w,h); + } + + BaseClass::PerformLayout(); +} + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +void CCommentaryModelViewer::SetModel( const char *pszName, const char *pszAttached ) +{ + if ( !m_pModelPanel ) + return; + + m_pModelPanel->SwapModel( pszName, pszAttached ); + + m_flYawSpeed = 0; + m_flZoomSpeed = 0; + m_bTranslating = false; + + m_vecResetPos = m_pModelPanel->m_pModelInfo->m_vecOriginOffset; + m_vecResetAngles = m_pModelPanel->m_pModelInfo->m_vecAbsAngles; +} + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +void CCommentaryModelViewer::ShowPanel(bool bShow) +{ + if ( BaseClass::IsVisible() == bShow ) + return; + + if ( bShow ) + { + Activate(); + SetMouseInputEnabled( true ); + } + else + { + SetVisible( false ); + SetMouseInputEnabled( false ); + } + + m_pViewPort->ShowBackGround( bShow ); +} + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +void CCommentaryModelViewer::OnCommand( const char *command ) +{ + if ( Q_stricmp( command, "vguicancel" ) ) + { + engine->ClientCmd( const_cast<char *>( command ) ); + } + + Close(); + m_pViewPort->ShowBackGround( false ); + + BaseClass::OnCommand( command ); +} + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +void CCommentaryModelViewer::OnKeyCodePressed( vgui::KeyCode code ) +{ + if ( code == KEY_ENTER ) + { + Close(); + m_pViewPort->ShowBackGround( false ); + } + else if ( code == KEY_SPACE ) + { + m_bTranslating = !m_bTranslating; + } + else if ( code == KEY_R ) + { + m_pModelPanel->m_pModelInfo->m_vecOriginOffset = m_vecResetPos; + m_pModelPanel->m_pModelInfo->m_vecAbsAngles = m_vecResetAngles; + m_flYawSpeed = 0; + m_flZoomSpeed = 0; + + m_pModelPanel->ZoomToFrameDistance(); + } + else + { + BaseClass::OnKeyCodePressed( code ); + } +} + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +void CCommentaryModelViewer::OnThink( void ) +{ + HandleMovementInput(); + + BaseClass::OnThink(); +} + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +void CCommentaryModelViewer::HandleMovementInput( void ) +{ + bool bLeftDown = input()->IsKeyDown(KEY_LEFT); + bool bRightDown = input()->IsKeyDown(KEY_RIGHT); + bool bForwardDown = input()->IsKeyDown(KEY_UP); + bool bBackDown = input()->IsKeyDown(KEY_DOWN); + + float flAccel = 0.05; + + // Rotation around Z + if ( bLeftDown ) + { + if ( m_flYawSpeed > 0 ) + { + m_flYawSpeed = 0; + } + m_flYawSpeed = MAX(m_flYawSpeed-flAccel, -3.0); + } + else if ( bRightDown ) + { + if ( m_flYawSpeed < 0 ) + { + m_flYawSpeed = 0; + } + m_flYawSpeed = MIN(m_flYawSpeed+flAccel, 3.0); + } + if ( m_flYawSpeed != 0 ) + { + if ( m_bTranslating ) + { + m_pModelPanel->m_pModelInfo->m_vecOriginOffset.y = clamp( m_pModelPanel->m_pModelInfo->m_vecOriginOffset.y + m_flYawSpeed, -100.f, 100.f ); + } + else + { + m_pModelPanel->m_pModelInfo->m_vecAbsAngles.y = anglemod( m_pModelPanel->m_pModelInfo->m_vecAbsAngles.y + m_flYawSpeed ); + } + + if ( !bLeftDown && !bRightDown ) + { + m_flYawSpeed = ( m_flYawSpeed > 0 ) ? MAX(0,m_flYawSpeed-0.1) : MIN(0,m_flYawSpeed+0.1); + } + } + + // Zooming + if ( bForwardDown ) + { + if ( m_flZoomSpeed > 0 ) + { + m_flZoomSpeed = 0; + } + m_flZoomSpeed = MAX(m_flZoomSpeed-flAccel, -3.0); + } + else if ( bBackDown ) + { + if ( m_flZoomSpeed < 0 ) + { + m_flZoomSpeed = 0; + } + m_flZoomSpeed = MIN(m_flZoomSpeed+flAccel, 3.0); + } + if ( m_flZoomSpeed != 0 ) + { + if ( m_bTranslating ) + { + m_pModelPanel->m_pModelInfo->m_vecOriginOffset.z = clamp( m_pModelPanel->m_pModelInfo->m_vecOriginOffset.z + m_flZoomSpeed, -100.f, 300.f ); + } + else + { + float flZoomMin = m_pModelPanel->m_flFrameDistance * 0.75; + float flZoomMax = m_pModelPanel->m_flFrameDistance * 1.5; + m_pModelPanel->m_pModelInfo->m_vecOriginOffset.x = clamp( m_pModelPanel->m_pModelInfo->m_vecOriginOffset.x + m_flZoomSpeed, flZoomMin, flZoomMax ); + } + + if ( !bForwardDown && !bBackDown ) + { + m_flZoomSpeed = ( m_flZoomSpeed > 0 ) ? MAX(0,m_flZoomSpeed-0.1) : MIN(0,m_flZoomSpeed+0.1); + } + } +} + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +void CommentaryShowModelViewer( const CCommand &args ) +{ + if ( args.ArgC() < 2 ) + { + ConMsg( "Usage: commentary_showmodelviewer <model name> <optional attached model name>\n" ); + return; + } + + CBaseViewport *pViewport = dynamic_cast<CBaseViewport *>( g_pClientMode->GetViewport() ); + if ( pViewport ) + { + IViewPortPanel *pCommentaryPanel = pViewport->FindPanelByName( PANEL_COMMENTARY_MODELVIEWER ); + if ( !pCommentaryPanel ) + { + pCommentaryPanel = pViewport->CreatePanelByName( PANEL_COMMENTARY_MODELVIEWER ); + pViewport->AddNewPanel( pCommentaryPanel, "PANEL_COMMENTARY_MODELVIEWER" ); + } + + if ( pCommentaryPanel ) + { + //((CCommentaryModelViewer*)pCommentaryPanel)->InvalidateLayout( false, true ); + ((CCommentaryModelViewer*)pCommentaryPanel)->SetModel( args[1], args[2] ); + pViewport->ShowPanel( pCommentaryPanel, true ); + } + } +} + +ConCommand commentary_showmodelviewer( "commentary_showmodelviewer", CommentaryShowModelViewer, "Display the commentary model viewer. Usage: commentary_showmodelviewer <model name> <optional attached model name>", FCVAR_NONE ); |