diff options
| author | FluorescentCIAAfricanAmerican <[email protected]> | 2020-04-22 12:56:21 -0400 |
|---|---|---|
| committer | FluorescentCIAAfricanAmerican <[email protected]> | 2020-04-22 12:56:21 -0400 |
| commit | 3bf9df6b2785fa6d951086978a3e66f49427166a (patch) | |
| tree | 2c0f1f0c63c4832882bc93814ebd2c2b1c6224e5 /game/client/econ/item_pickup_panel.h | |
| download | archived-source-engine-2018-hl2-src-master.tar.xz archived-source-engine-2018-hl2-src-master.zip | |
Diffstat (limited to 'game/client/econ/item_pickup_panel.h')
| -rw-r--r-- | game/client/econ/item_pickup_panel.h | 128 |
1 files changed, 128 insertions, 0 deletions
diff --git a/game/client/econ/item_pickup_panel.h b/game/client/econ/item_pickup_panel.h new file mode 100644 index 0000000..5ac3031 --- /dev/null +++ b/game/client/econ/item_pickup_panel.h @@ -0,0 +1,128 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: +// +// $NoKeywords: $ +//=============================================================================// + +#ifndef ITEM_PICKUP_PANEL_H +#define ITEM_PICKUP_PANEL_H +#ifdef _WIN32 +#pragma once +#endif + +#include <vgui_controls/Panel.h> +#include <vgui_controls/Frame.h> +#include "GameEventListener.h" +#include "basemodel_panel.h" +#include "basemodelpanel.h" +#include "econ_item_inventory.h" +#include "econ_item_view.h" +#include "item_model_panel.h" +#include "vgui_controls/TextEntry.h" +#include "econ_controls.h" + +class CEconItemView; +class CBackpackPanel; + +#define ITEMPICKUP_NUM_MODELPANELS 5 // 1 in the center of the screen, 2 to each side to handle smooth sliding. +#define ITEMPICKUP_MODELPANEL_CENTER 2 // Panel that's in the center of the queue + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +class CItemPickupPanel : public vgui::Frame, public CGameEventListener +{ + DECLARE_CLASS_SIMPLE( CItemPickupPanel, vgui::Frame ); +public: + CItemPickupPanel( Panel *parent ); + virtual ~CItemPickupPanel(); + + virtual void ApplySchemeSettings( vgui::IScheme *pScheme ); + virtual void ApplySettings( KeyValues *inResourceData ); + virtual void PerformLayout( void ); + virtual void OnCommand( const char *command ); + virtual void ShowPanel( bool bShow ); + virtual void FireGameEvent( IGameEvent *event ); + virtual void OnKeyCodeTyped( vgui::KeyCode code ); + virtual void OnKeyCodePressed( vgui::KeyCode code ); + + void AddItem( CEconItemView *pItem ); + void SetReturnToGame( bool bReturn ) { m_bReturnToGame = bReturn; } + +#ifdef DEBUG + void DebugRandomizePickupMethods( void ) { m_bRandomizePickupMethods = true; } +#endif + + MESSAGE_FUNC_PARAMS( OnConfirmDelete, "ConfirmDlgResult", data ); + +protected: + virtual void UpdateModelPanels( void ); + virtual void AcknowledgeItems ( void ); + +protected: + int m_iSelectedItem; + + struct founditem_t + { + CEconItemView pItem; + bool bDiscarded; + }; + CUtlVector<founditem_t> m_aItems; + CItemModelPanel *m_aModelPanels[ITEMPICKUP_NUM_MODELPANELS]; + vgui::Button *m_pNextButton; + vgui::Button *m_pPrevButton; + vgui::Button *m_pOpenLoadoutButton; + CExButton *m_pCloseButton; + CExImageButton *m_pDiscardButton; + vgui::Label *m_pItemsFoundLabel; + vgui::Label *m_pItemFoundMethod; + KeyValues *m_pModelPanelsKV; + vgui::EditablePanel *m_pConfirmDeleteDialog; + vgui::Label *m_pDiscardedLabel; + bool m_bRandomizePickupMethods; + CSimplePanelToolTip *m_pToolTip; + bool m_bReturnToGame; + + CPanelAnimationVarAliasType( float, m_iModelPanelSpacing, "modelpanels_spacing", "40", "proportional_float" ); + CPanelAnimationVarAliasType( float, m_iModelPanelW, "modelpanels_width", "128", "proportional_float" ); + CPanelAnimationVarAliasType( float, m_iModelPanelH, "modelpanels_height", "80", "proportional_float" ); + CPanelAnimationVarAliasType( float, m_iModelPanelY, "modelpanels_ypos", "120", "proportional_float" ); +}; + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +class CItemDiscardPanel : public vgui::Frame, public CGameEventListener +{ + DECLARE_CLASS_SIMPLE( CItemDiscardPanel, vgui::Frame ); +public: + CItemDiscardPanel( Panel *parent ); + + virtual void ApplySchemeSettings( vgui::IScheme *pScheme ); + virtual void PerformLayout( void ); + virtual void OnCommand( const char *command ); + virtual void ShowPanel( bool bShow ); + virtual void FireGameEvent( IGameEvent *event ); + virtual void OnKeyCodeTyped( vgui::KeyCode code ); + virtual void OnKeyCodePressed( vgui::KeyCode code ); + + void SetItem( CEconItemView *pItem ); + + MESSAGE_FUNC_PARAMS( OnConfirmDelete, "ConfirmDlgResult", data ); + +protected: + CItemModelPanel *m_pModelPanel; + CBackpackPanel *m_pBackpackPanel; + vgui::EditablePanel *m_pConfirmDeleteDialog; + vgui::Label *m_pDiscardedLabel; + vgui::Label *m_pDiscardedLabelCarat; + bool m_bDiscardedNewItem; + bool m_bMadeRoom; + CExButton *m_pDiscardButton; + CExButton *m_pCloseButton; + CSimplePanelToolTip *m_pItemToolTip; + CItemModelPanel *m_pItemMouseOverPanel; +}; + +#endif // ITEM_PICKUP_PANEL_H |