summaryrefslogtreecommitdiff
path: root/game/client/tf/vgui/tf_intromenu.h
diff options
context:
space:
mode:
Diffstat (limited to 'game/client/tf/vgui/tf_intromenu.h')
-rw-r--r--game/client/tf/vgui/tf_intromenu.h128
1 files changed, 128 insertions, 0 deletions
diff --git a/game/client/tf/vgui/tf_intromenu.h b/game/client/tf/vgui/tf_intromenu.h
new file mode 100644
index 0000000..b9f2cf2
--- /dev/null
+++ b/game/client/tf/vgui/tf_intromenu.h
@@ -0,0 +1,128 @@
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose:
+//
+// $NoKeywords: $
+//=============================================================================//
+
+#ifndef TF_INTROMENU_H
+#define TF_INTROMENU_H
+#ifdef _WIN32
+#pragma once
+#endif
+
+#include "tf_vgui_video.h"
+#include "basemodelpanel.h"
+
+#define MAX_CAPTION_LENGTH 256
+
+class CVideoCaption
+{
+public:
+ CVideoCaption()
+ {
+ m_pszString = NULL;
+ m_flStartTime = 0;
+ m_flDisplayTime = 0;
+ m_flCaptionStart = -1;
+ }
+
+ ~CVideoCaption()
+ {
+ if ( m_pszString && m_pszString[0] )
+ {
+ delete [] m_pszString;
+ m_pszString = NULL;
+ }
+ }
+
+ const char *m_pszString; // the string to display (can be a localized # string)
+ float m_flStartTime; // the offset from the beginning of the video when we should show this caption
+ float m_flDisplayTime; // the length of time the string should be displayed once it's shown
+ float m_flCaptionStart; // the time when the caption is shown (so we know when to turn it off
+};
+
+//-----------------------------------------------------------------------------
+// Purpose: displays the Intro menu
+//-----------------------------------------------------------------------------
+
+class CTFIntroMenu : public CIntroMenu
+{
+private:
+ DECLARE_CLASS_SIMPLE( CTFIntroMenu, CIntroMenu );
+
+public:
+ CTFIntroMenu( IViewPort *pViewPort );
+ ~CTFIntroMenu();
+
+ virtual void ApplySchemeSettings( vgui::IScheme *pScheme );
+ virtual void ShowPanel( bool bShow );
+ virtual void OnCommand( const char *command );
+ virtual void OnKeyCodePressed( KeyCode code );
+
+ virtual void OnTick() OVERRIDE;
+ virtual void OnThink() OVERRIDE;
+
+ //=============================================================================
+ // HPE_BEGIN
+ // [msmith] Some refactoring.
+ //=============================================================================
+ void StartVideo();
+ void ShutdownVideo();
+ //=============================================================================
+ // HPE_END
+ //=============================================================================
+
+ MESSAGE_FUNC( OnIntroFinished, "IntroFinished" );
+
+private:
+ void SetNextThink( float flActionThink, int iAction );
+ void Shutdown( void );
+ bool LoadCaptions( void );
+ void UpdateCaptions( void );
+
+
+
+ //=============================================================================
+ // HPE_BEGIN
+ // [msmith] Added support for in game videos.
+ //=============================================================================
+ bool PendingInGameVideo( void );
+ const char *GetVideoFileName( bool withExtension = true );
+ void UnpauseGame( void );
+ void PauseGame( void );
+ //=============================================================================
+ // HPE_END
+ //=============================================================================
+
+ CTFVideoPanel *m_pVideo;
+ CModelPanel *m_pModel;
+ CExLabel *m_pCaptionLabel;
+
+#ifdef _X360
+ CTFFooter *m_pFooter;
+#else
+ CExButton *m_pBack;
+ CExButton *m_pOK;
+ CExButton *m_pReplayVideo;
+ CExButton *m_pContinue;
+#endif
+
+ float m_flActionThink;
+ int m_iAction;
+
+ CUtlVector< CVideoCaption* > m_Captions;
+ int m_iCurrentCaption;
+ float m_flVideoStartTime;
+ //=============================================================================
+ // HPE_BEGIN
+ // [msmith] Added support for in game videos.
+ //=============================================================================
+ bool m_bPlayingInGameVideo;
+ //=============================================================================
+ // HPE_END
+ //=============================================================================
+};
+
+
+#endif // TF_INTROMENU_H