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.
153 lines
5.5 KiB
153 lines
5.5 KiB
//========= Copyright © 1996-2005, Valve Corporation, All rights reserved. ============//
|
|
//
|
|
// Purpose:
|
|
//
|
|
//=============================================================================//
|
|
|
|
#ifndef CS_HUD_WEAPONSELECTION_H
|
|
#define CS_HUD_WEAPONSELECTION_H
|
|
#ifdef _WIN32
|
|
#pragma once
|
|
#endif
|
|
|
|
#include "weapon_selection.h"
|
|
#include <vgui_controls/Panel.h>
|
|
#include "cs_weapon_parse.h"
|
|
|
|
enum
|
|
{
|
|
WEPSELECT_PICKUP = 0,
|
|
WEPSELECT_DROP,
|
|
WEPSELECT_SWITCH,
|
|
};
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// Purpose: cstrike weapon selection hud element
|
|
//-----------------------------------------------------------------------------
|
|
class CHudWeaponSelection : public CBaseHudWeaponSelection, public vgui::Panel
|
|
{
|
|
DECLARE_CLASS_SIMPLE( CHudWeaponSelection, vgui::Panel );
|
|
|
|
public:
|
|
explicit CHudWeaponSelection(const char *pElementName );
|
|
|
|
virtual bool ShouldDraw();
|
|
virtual void OnWeaponPickup( C_BaseCombatWeapon *pWeapon );
|
|
virtual void OnWeaponDrop( C_BaseCombatWeapon *pWeapon );
|
|
virtual void OnWeaponSwitch( C_BaseCombatWeapon *pWeapon );
|
|
|
|
virtual void CycleToNextWeapon( void );
|
|
virtual void CycleToPrevWeapon( void );
|
|
virtual void SwitchToLastWeapon( void );
|
|
|
|
typedef enum
|
|
{
|
|
WEAPON_SELECTION_NORMAL = 0,
|
|
WEAPON_SELECTION_MELEE,
|
|
WEAPON_SELECTION_GRENADE_AND_BOMB,
|
|
WEAPON_SELECTION_GRENADE_AND_BOMB_AND_MELEE,
|
|
WEAPON_SELECTION_NO_GRENADE_AND_BOMB,
|
|
WEAPON_SELECTION_GRENADE,
|
|
WEAPON_SELECTION_ITEMSLOT,
|
|
} WEAPON_SELECTION_MODE;
|
|
|
|
void CycleToNextWeapon(WEAPON_SELECTION_MODE selectionMode);
|
|
virtual void CycleToNextGrenadeOrBomb( void );
|
|
virtual void CycleToNextGrenadeBombOrMelee( void );
|
|
virtual void CycleToNextNonGrenadeOrBomb( void );
|
|
virtual void UserCmd_Slot3( void );
|
|
virtual void UserCmd_Slot4( void );
|
|
virtual void UserCmd_Slot5( void );
|
|
virtual void UserCmd_Slot6( void );
|
|
virtual void UserCmd_Slot7( void );
|
|
virtual void UserCmd_Slot8( void );
|
|
virtual void UserCmd_Slot9( void );
|
|
virtual void UserCmd_Slot10( void );
|
|
virtual void UserCmd_Slot11( void );
|
|
virtual void UserCmd_GamePadSlot1( void );
|
|
virtual void UserCmd_GamePadSlot2( void );
|
|
virtual void UserCmd_GamePadSlot3( void );
|
|
virtual void UserCmd_GamePadSlot4( void );
|
|
virtual void UserCmd_GamePadSlot5( void );
|
|
virtual void UserCmd_GamePadSlot6( void );
|
|
|
|
virtual C_BaseCombatWeapon *GetWeaponInSlot( int iSlot, int iSlotPos );
|
|
virtual C_BaseCombatWeapon *GetWeaponInSlotForTarget( C_BasePlayer *player, int iSlot, int iSlotPos );
|
|
virtual void SelectWeaponSlot( int iSlot );
|
|
virtual void SelectWeapon( void );
|
|
|
|
virtual C_BaseCombatWeapon *GetSelectedWeapon( void )
|
|
{
|
|
return static_cast< C_BaseCombatWeapon* >( m_hSelectedWeapon.Get() );
|
|
}
|
|
|
|
virtual void OpenSelection( void );
|
|
virtual void HideSelection( void );
|
|
|
|
virtual void CancelWeaponSelection( void );
|
|
|
|
virtual void LevelInit();
|
|
|
|
C_BaseCombatWeapon *FindNextWeaponInWeaponSelection(int iCurrentSlot, int iCurrentPosition, WEAPON_SELECTION_MODE selectionMode=WEAPON_SELECTION_NORMAL);
|
|
//C_BaseCombatWeapon *FindNextWeaponInWeaponSelection(int iCurrentSlot, int iCurrentPosition);
|
|
C_BaseCombatWeapon *FindPrevWeaponInWeaponSelection(int iCurrentSlot, int iCurrentPosition);
|
|
|
|
protected:
|
|
virtual void OnThink();
|
|
virtual void Paint();
|
|
virtual void ApplySchemeSettings(vgui::IScheme *pScheme);
|
|
|
|
virtual bool IsWeaponSelectable()
|
|
{
|
|
if (IsInSelectionMode())
|
|
return true;
|
|
|
|
return false;
|
|
}
|
|
|
|
virtual bool IsHudMenuTakingInput();
|
|
virtual bool IsHudMenuPreventingWeaponSelection();
|
|
|
|
private:
|
|
void SelectSpecificWeapon( CSWeaponID weaponID );
|
|
|
|
virtual void SetSelectedWeapon( C_BaseCombatWeapon *pWeapon );
|
|
|
|
void DrawBox(int x, int y, int wide, int tall, Color color, float normalizedAlpha, int number);
|
|
|
|
CPanelAnimationVar( vgui::HFont, m_hNumberFont, "NumberFont", "HudSelectionNumbers" );
|
|
CPanelAnimationVar( vgui::HFont, m_hTextFont, "TextFont", "HudSelectionText" );
|
|
|
|
CPanelAnimationVarAliasType( float, m_flSmallBoxSize, "SmallBoxSize", "32", "proportional_float" );
|
|
CPanelAnimationVarAliasType( float, m_flLargeBoxWide, "LargeBoxWide", "108", "proportional_float" );
|
|
CPanelAnimationVarAliasType( float, m_flLargeBoxTall, "LargeBoxTall", "72", "proportional_float" );
|
|
|
|
CPanelAnimationVarAliasType( float, m_flBoxGap, "BoxGap", "12", "proportional_float" );
|
|
|
|
CPanelAnimationVarAliasType( float, m_flSelectionNumberXPos, "SelectionNumberXPos", "4", "proportional_float" );
|
|
CPanelAnimationVarAliasType( float, m_flSelectionNumberYPos, "SelectionNumberYPos", "4", "proportional_float" );
|
|
|
|
CPanelAnimationVarAliasType( float, m_flIconXPos, "IconXPos", "16", "proportional_float" );
|
|
CPanelAnimationVarAliasType( float, m_flIconYPos, "IconYPos", "8", "proportional_float" );
|
|
|
|
CPanelAnimationVarAliasType( float, m_flTextYPos, "TextYPos", "54", "proportional_float" );
|
|
|
|
CPanelAnimationVar( float, m_flAlphaOverride, "Alpha", "255" );
|
|
CPanelAnimationVar( float, m_flSelectionAlphaOverride, "SelectionAlpha", "255" );
|
|
|
|
|
|
CPanelAnimationVar( Color, m_TextColor, "TextColor", "SelectionTextFg" );
|
|
CPanelAnimationVar( Color, m_NumberColor, "NumberColor", "SelectionNumberFg" );
|
|
CPanelAnimationVar( Color, m_EmptyBoxColor, "EmptyBoxColor", "SelectionEmptyBoxBg" );
|
|
CPanelAnimationVar( Color, m_BoxColor, "BoxColor", "SelectionBoxBg" );
|
|
CPanelAnimationVar( Color, m_SelectedBoxColor, "SelectedBoxClor", "SelectionSelectedBoxBg" );
|
|
|
|
CPanelAnimationVar( float, m_flWeaponPickupGrowTime, "SelectionGrowTime", "0.1" );
|
|
|
|
CPanelAnimationVar( float, m_flTextScan, "TextScan", "1.0" );
|
|
|
|
CPanelAnimationVar( int, m_iMaxSlots, "MaxSlots", "6" );
|
|
CPanelAnimationVar( bool, m_bPlaySelectionSounds, "PlaySelectSounds", "1" );
|
|
};
|
|
|
|
#endif //CS_HUD_CHAT_H
|