Modified source engine (2017) developed by valve and leaked in 2020. Not for commercial purporses
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.

65 lines
1.8 KiB

5 years ago
//========= Copyright Valve Corporation, All rights reserved. ============//
//
//=======================================================================================//
#ifndef LOADOUT_PRESET_PANEL_H
#define LOADOUT_PRESET_PANEL_H
#ifdef _WIN32
#pragma once
#endif
#include "vgui_controls/EditablePanel.h"
#include "vgui_controls/PHandle.h"
#include "class_loadout_panel.h"
class CExButton;
class CSelectedItemPreset;
//-----------------------------------------------------------------------------
// A loadout preset panel, which allows combinations of items to be saved and
// restored via the GC.
//-----------------------------------------------------------------------------
class CLoadoutPresetPanel : public vgui::EditablePanel
{
DECLARE_CLASS_SIMPLE( CLoadoutPresetPanel, vgui::EditablePanel );
public:
CLoadoutPresetPanel( vgui::Panel *pParent, const char *pName ); // name is ignored but needed for DECLARE_BUILD_FACTORY()
void SetClass( int iClass );
void EnableVerticalDisplay( bool bVertical );
virtual void ApplySchemeSettings( vgui::IScheme *pScheme );
virtual void ApplySettings( KeyValues *pInResourceData );
virtual void PerformLayout();
virtual void OnCommand( const char *command );
virtual void OnTick() OVERRIDE;
bool HandlePresetKeyPressed( vgui::KeyCode code );
private:
equipped_preset_t GetSelectedPresetID() const;
void UpdatePresetButtonStates();
void LoadPreset( int iPresetIndex );
enum PresetsConsts_t
{
MAX_PRESETS = 4,
};
int m_iClass;
KeyValues *m_pPresetButtonKv;
CExButton *m_pPresetButtons[ MAX_PRESETS ];
bool m_bDisplayVertical;
enum PresetButtonColors_t
{
LOADED = 0, NOTLOADED,
FG = 0, BG,
DEFAULT = 0, ARMED, DEPRESSED
};
Color m_aDefaultColors[2][2][3]; // [LOADED|NOTLOADED][FG|BG][DEFAULT|ARMED|DEPRESSED]
};
#endif // LOADOUT_PRESET_PANEL_H