You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
169 lines
5.2 KiB
169 lines
5.2 KiB
//========= Copyright Valve Corporation, All rights reserved. ============// |
|
// |
|
//=======================================================================================// |
|
|
|
#ifndef TF_HUD_SAXXYCONTEST_H |
|
#define TF_HUD_SAXXYCONTEST_H |
|
#ifdef _WIN32 |
|
#pragma once |
|
#endif |
|
|
|
#include <vgui_controls/EditablePanel.h> |
|
#include "game_controls/basemodel_panel.h" |
|
|
|
using namespace vgui; |
|
|
|
class KeyValues; |
|
class CExButton; |
|
|
|
//----------------------------------------------------------------------------- |
|
// Purpose: |
|
//----------------------------------------------------------------------------- |
|
class CSaxxyAwardsPanel : public vgui::EditablePanel |
|
{ |
|
DECLARE_CLASS_SIMPLE( CSaxxyAwardsPanel, vgui::EditablePanel ); |
|
public: |
|
CSaxxyAwardsPanel( Panel *pParent, const char *pName ); |
|
~CSaxxyAwardsPanel(); |
|
|
|
virtual void ApplySettings( KeyValues *pInResourceData ); |
|
|
|
void Refresh(); |
|
|
|
private: |
|
virtual void ApplySchemeSettings( IScheme *pScheme ); |
|
virtual void PerformLayout(); |
|
virtual void OnCommand( const char *pCommand ); |
|
virtual void PaintBackground(); |
|
|
|
struct FlashInfo_t |
|
{ |
|
int m_nCenterX; |
|
int m_nCenterY; |
|
int m_nCurW; |
|
int m_nCurH; |
|
int m_nMinSize; |
|
int m_nMaxSize; |
|
float m_flStartTime; |
|
float m_flLifeLength; |
|
ImagePanel *m_pPanel; |
|
bool m_bInUse; |
|
}; |
|
|
|
void Init(); |
|
|
|
void OnTick(); |
|
void UpdateMousePos( float flElapsed ); |
|
void RotateModel( float flElapsed ); |
|
void CurtainsThink(); |
|
void FlashThink( bool bOtherPanelsOpen ); |
|
void SpotlightThink(); |
|
void ClapsThink( float flCurTime, float flElapsed, bool bOtherPanelsOpen ); |
|
|
|
void SetupContestPanels(); |
|
bool CreateFlash(); |
|
void PlaceFlash( FlashInfo_t *pFlashInfo ); |
|
void ClearFlash( FlashInfo_t *pFlashInfo ); |
|
void ClearFlashes(); |
|
void PlaySomeClaps(); |
|
void SetNextPossibleClapTime( float *pClapTime ); |
|
|
|
int GetActiveFlashCount() const; |
|
int GetUnusedFlashCount() const; |
|
int GetUnusedFlashSlot() const; |
|
float GetCurrentTime() const; |
|
bool InInitialFreakoutPeriod() const; |
|
bool InFreakoutMode() const; |
|
bool CurtainsClosed() const; |
|
bool FlashingStartTimePassed() const; |
|
bool AreOtherPanelsOpen( float flCurTime ); |
|
bool AreNonMainMenuPanelsOpen( VPANEL vRoot, const char **pCarePanels, int nNumCarePanels ); |
|
VPANEL GetDialogsParent(); |
|
|
|
enum Consts_t |
|
{ |
|
MAX_FLASHES = 3, |
|
MAX_GLOWS = 2, |
|
MAX_CLAPS = 2, |
|
}; |
|
|
|
CBaseModelPanel *m_pSaxxyModelPanel; |
|
Vector m_vSaxxyDefaultPos; |
|
CExButton *m_pSubmitButton; |
|
Panel *m_pInfoLabel; |
|
Panel *m_pContestOverLabel; |
|
EditablePanel *m_pBackgroundPanel; |
|
ImagePanel *m_pStageBgPanel; |
|
EditablePanel *m_pCurtainPanel; // Main container panel |
|
ImagePanel *m_pSpotlightPanel; |
|
float m_aClapPlayTimes[MAX_CLAPS]; |
|
float m_flShowTime; |
|
float m_flNextPanelTestTime; |
|
VPANEL m_vDialogsParent; |
|
|
|
struct CurtainInfo_t |
|
{ |
|
CurtainInfo_t() : m_pPanel( NULL ) {} |
|
ImagePanel *m_pPanel; |
|
int m_aInitialPos[2]; |
|
}; |
|
CurtainInfo_t m_Curtains[2]; // [0] = left, [1] = right |
|
float m_flCurtainStartAnimTime; |
|
|
|
KeyValues *m_pCameraFlashKv; |
|
|
|
QAngle m_angModelRot; |
|
|
|
FlashInfo_t m_aFlashes[ MAX_FLASHES ]; |
|
int m_nNumTargetFlashes; |
|
float m_aFilteredMousePos[2][2]; // [0][0] and [0][1] is current mouse pos (x,y). [1][0] and [1][1] are target (x,y). |
|
float m_flLastTickTime; |
|
float m_flEarliestNextFlashTime; |
|
float m_flGlowFade; |
|
|
|
static int sm_nShowCounter; // Will be 0 when the game first loads, and nonzero otherwise |
|
|
|
CPanelAnimationVarAliasType( int, m_nFlashBoundsX, "flashbounds_x", "0", "proportional_xpos" ); |
|
CPanelAnimationVarAliasType( int, m_nFlashBoundsY, "flashbounds_y", "0", "proportional_ypos" ); |
|
CPanelAnimationVarAliasType( int, m_nFlashBoundsW, "flashbounds_w", "0", "proportional_xpos" ); |
|
CPanelAnimationVarAliasType( int, m_nFlashBoundsH, "flashbounds_h", "0", "proportional_ypos" ); |
|
|
|
CPanelAnimationVarAliasType( int, m_nFlashStartSizeMin, "flashstartsize_min", "0", "proportional_xpos" ); |
|
CPanelAnimationVarAliasType( int, m_nFlashStartSizeMax, "flashstartsize_max", "0", "proportional_xpos" ); |
|
|
|
CPanelAnimationVar( float, m_flFlashMaxScale, "flash_maxscale", "0.0f" ); |
|
|
|
CPanelAnimationVar( float, m_flFlashLifeLengthMin, "flash_lifelength_min", "0.0f" ); |
|
CPanelAnimationVar( float, m_flFlashLifeLengthMax, "flash_lifelength_max", "0.0f" ); |
|
|
|
CPanelAnimationVar( float, m_flCurtainAnimDuration, "curtain_anim_duration", "0.0f" ); |
|
CPanelAnimationVar( float, m_flOpenCurtainsTime, "curtain_open_time", "0.0f" ); |
|
CPanelAnimationVar( float, m_flInitialFreakoutDuration, "initial_freakout_duration", "0.0f" ); |
|
|
|
CPanelAnimationVar( float, m_flFlashStartTime, "flash_start_time", "0.0f" ); |
|
|
|
CPanelAnimationVar( float, m_flClapSoundDuration, "clap_sound_duration", "0.0f" ); |
|
}; |
|
|
|
//----------------------------------------------------------------------------- |
|
// Purpose: |
|
//----------------------------------------------------------------------------- |
|
class CSaxxyAwardsSubmitForm : public vgui::EditablePanel |
|
{ |
|
DECLARE_CLASS_SIMPLE( CSaxxyAwardsSubmitForm, vgui::EditablePanel ); |
|
public: |
|
CSaxxyAwardsSubmitForm( Panel *pParent ); |
|
|
|
private: |
|
virtual void ApplySchemeSettings( IScheme *pScheme ); |
|
virtual void PerformLayout(); |
|
virtual void OnCommand( const char *pCommand ); |
|
virtual void OnKeyCodeTyped( vgui::KeyCode nCode ); |
|
|
|
void Close(); |
|
|
|
vgui::TextEntry *m_pURLInput; |
|
vgui::ComboBox *m_pCategoryCombo; |
|
}; |
|
|
|
#endif //TF_HUD_SAXXYCONTEST_H
|
|
|