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.
128 lines
4.3 KiB
128 lines
4.3 KiB
//========= 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
|
|
|