cstrike15_src/game/client/cstrike15/Scaleform/itempickup_scaleform.h
2025-06-04 03:22:50 +02:00

109 lines
2.8 KiB
C++

//========= Copyright © 1996-2005, Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
// $NoKeywords: $
//=============================================================================//
#ifndef SFHUDITEMPICKUPPANEL_H
#define SFHUDITEMPICKUPPANEL_H
#ifdef _WIN32
#pragma once
#endif //_WIN32
#include "scaleformui/scaleformui.h"
#include "GameEventListener.h"
#include "game/client/iviewport.h"
#include "matchmaking/imatchframework.h"
#include "ienginevgui.h"
#include "gameui_util.h"
#include "../VGUI/counterstrikeviewport.h"
#define ITEMDROP_NUM_SFPANELS 4
class SFHudItemPickupPanel : public ScaleformFlashInterface, public CGameEventListener, public IMatchEventsSink
{
protected:
static SFHudItemPickupPanel *m_pInstance;
SFHudItemPickupPanel();
~SFHudItemPickupPanel();
//
// IMatchEventsSink
//
public:
virtual void OnEvent( KeyValues *pEvent ) OVERRIDE;
public:
static void LoadDialog( void );
static void UnloadDialog( void );
static void StaticShowPanel( bool bShow );
static void NotifyCommendationResponse( XUID xuid, bool bSuccess );
virtual void FlashReady( void );
virtual bool PreUnloadFlash( void );
virtual void PostUnloadFlash( void );
void ShowItemPickup( XUID xuid, int nIndex );
void HideFromScript( SCALEFORM_CALLBACK_ARGS_DECL );
void ItemPickupClose( SCALEFORM_CALLBACK_ARGS_DECL );
void NextItem( SCALEFORM_CALLBACK_ARGS_DECL );
void PrevItem( SCALEFORM_CALLBACK_ARGS_DECL );
void DiscardItem( SCALEFORM_CALLBACK_ARGS_DECL );
void OpenLoadout( SCALEFORM_CALLBACK_ARGS_DECL );
void OnConfirmDelete( SCALEFORM_CALLBACK_ARGS_DECL );
// CGameEventListener methods
virtual void FireGameEvent( IGameEvent *event );
void Show( void );
void Hide( void );
enum ItemDropAnimType_t
{
ITEM_ANIM_NONE = 0,
ITEM_ANIM_FIRST = 1,
ITEM_ANIM_NEXT = 2,
ITEM_ANIM_PREV = 3,
};
void OnCommand( const char *command );
void UpdateModelPanels( ItemDropAnimType_t anim = ITEM_ANIM_NONE );
static void AddItem( CEconItemView *pItem );
void AddItemInternal( CEconItemView *pItem );
static void SetReturnToGame( bool bReturn ) { m_pInstance ? m_pInstance->m_bReturnToGame = bReturn : NULL; }
virtual void ShowPanel( bool state );
static bool IsActive() { return m_pInstance != NULL; }
static bool IsVisible() { return (m_pInstance != NULL && m_pInstance->m_bVisible); }
bool m_bVisible;
// keeps track of whether flash is ready or not and if it's currently being loaded
bool m_bFlashReady : 1;
int m_iSplitScreenSlot;
bool m_bLoading;
bool m_bDestroyAfterLoading;
protected:
bool m_bReturnToGame;
int m_iSelectedItem;
ItemDropAnimType_t m_lastItemAnim;
struct founditem_t
{
CEconItemView pItem;
bool bDiscarded;
};
CUtlVector<founditem_t> m_aItems;
float m_flLastAddItemSound;
};
#endif // SFHUDITEMPICKUPPANEL_H