61 lines
1.7 KiB
C++
61 lines
1.7 KiB
C++
//========= Copyright Valve Corporation, All rights reserved. ============//
|
|
//
|
|
// Purpose:
|
|
//
|
|
// $NoKeywords: $
|
|
//=============================================================================//
|
|
|
|
#ifndef FUNC_AREAPORTALWINDOW_H
|
|
#define FUNC_AREAPORTALWINDOW_H
|
|
#ifdef _WIN32
|
|
#pragma once
|
|
#endif
|
|
|
|
#include "baseentity.h"
|
|
#include "func_areaportalbase.h"
|
|
#include "utllinkedlist.h"
|
|
|
|
class CFuncAreaPortalWindow : public CFuncAreaPortalBase {
|
|
public:
|
|
DECLARE_CLASS(CFuncAreaPortalWindow, CFuncAreaPortalBase);
|
|
|
|
DECLARE_SERVERCLASS();
|
|
DECLARE_DATADESC();
|
|
|
|
CFuncAreaPortalWindow();
|
|
~CFuncAreaPortalWindow();
|
|
|
|
// Overrides.
|
|
public:
|
|
virtual void Spawn();
|
|
virtual void Activate();
|
|
|
|
// CFuncAreaPortalBase stuff.
|
|
public:
|
|
virtual bool UpdateVisibility(const Vector &vOrigin,
|
|
float fovDistanceAdjustFactor,
|
|
bool &bIsOpenOnClient);
|
|
|
|
public:
|
|
// Returns false if the viewer is past the fadeout distance.
|
|
bool IsWindowOpen(const Vector &vOrigin, float fovDistanceAdjustFactor);
|
|
|
|
public:
|
|
CNetworkVar(float,
|
|
m_flFadeStartDist); // Distance at which it starts fading (when
|
|
// <= this, alpha=m_flTranslucencyLimit).
|
|
CNetworkVar(float, m_flFadeDist); // Distance at which it becomes solid.
|
|
|
|
// 0-1 value - minimum translucency it's allowed to get to.
|
|
CNetworkVar(float, m_flTranslucencyLimit);
|
|
|
|
string_t m_iBackgroundBModelName; // string name of background bmodel
|
|
CNetworkVar(int, m_iBackgroundModelIndex);
|
|
|
|
// Input handlers
|
|
void InputSetFadeStartDistance(inputdata_t &inputdata);
|
|
void InputSetFadeEndDistance(inputdata_t &inputdata);
|
|
};
|
|
|
|
#endif // FUNC_AREAPORTALWINDOW_H
|