This repository has been archived on 2024-06-13. You can view files and clone it, but cannot push or open issues or pull requests.
2020-08-04 13:13:01 -04:00

91 lines
2.9 KiB
C++

//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose: This is an entity that represents a vgui screen
//
// $NoKeywords: $
//=============================================================================//
#ifndef VGUISCREEN_H
#define VGUISCREEN_H
#ifdef _WIN32
#pragma once
#endif
//-----------------------------------------------------------------------------
// This is an entity that represents a vgui screen
//-----------------------------------------------------------------------------
class CVGuiScreen : public CBaseEntity {
public:
DECLARE_CLASS(CVGuiScreen, CBaseEntity);
DECLARE_SERVERCLASS();
DECLARE_DATADESC();
CVGuiScreen();
virtual void Precache();
virtual bool KeyValue(const char *szKeyName, const char *szValue);
virtual void Spawn();
virtual void Activate();
virtual void OnRestore();
const char *GetPanelName() const;
// Sets the screen size + resolution
void SetActualSize(float flWidth, float flHeight);
// Activates/deactivates the screen
bool IsActive() const;
void SetActive(bool bActive);
// Is this screen only visible to teammates?
bool IsVisibleOnlyToTeammates() const;
void MakeVisibleOnlyToTeammates(bool bActive);
bool IsVisibleToTeam(int nTeam);
// Sets the overlay material
void SetOverlayMaterial(const char *pMaterial);
void SetAttachedToViewModel(bool bAttached);
bool IsAttachedToViewModel() const;
void SetTransparency(bool bTransparent);
virtual int UpdateTransmitState(void);
virtual int ShouldTransmit(const CCheckTransmitInfo *pInfo);
void SetPlayerOwner(CBasePlayer *pPlayer, bool bOwnerOnlyInput = false);
private:
void SetAttachmentIndex(int nIndex);
void SetPanelName(const char *pPanelName);
void InputSetActive(inputdata_t &inputdata);
void InputSetInactive(inputdata_t &inputdata);
string_t m_strOverlayMaterial;
CNetworkVar(float, m_flWidth);
CNetworkVar(float, m_flHeight);
CNetworkVar(int, m_nPanelName); // The name of the panel
CNetworkVar(int, m_nAttachmentIndex);
CNetworkVar(int, m_nOverlayMaterial);
CNetworkVar(int, m_fScreenFlags);
CNetworkVar(EHANDLE, m_hPlayerOwner);
friend CVGuiScreen *CreateVGuiScreen(const char *pScreenClassname,
const char *pScreenType,
CBaseEntity *pAttachedTo,
CBaseEntity *pOwner,
int nAttachmentIndex);
};
void PrecacheVGuiScreen(const char *pScreenType);
void PrecacheVGuiScreenOverlayMaterial(const char *pMaterialName);
CVGuiScreen *CreateVGuiScreen(const char *pScreenClassname,
const char *pScreenType, CBaseEntity *pAttachedTo,
CBaseEntity *pOwner, int nAttachmentIndex);
void DestroyVGuiScreen(CVGuiScreen *pVGuiScreen);
#endif // VGUISCREEN_H