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.
96 lines
2.5 KiB
96 lines
2.5 KiB
//========= Copyright Valve Corporation, All rights reserved. ============// |
|
// |
|
// Purpose: |
|
// |
|
// $NoKeywords: $ |
|
//=============================================================================// |
|
|
|
#ifndef C_PROP_PORTAL_H |
|
#define C_PROP_PORTAL_H |
|
|
|
#ifdef _WIN32 |
|
#pragma once |
|
#endif |
|
|
|
#include "portalrenderable_flatbasic.h" |
|
#include "iviewrender.h" |
|
#include "view_shared.h" |
|
#include "viewrender.h" |
|
#include "PortalSimulation.h" |
|
#include "C_PortalGhostRenderable.h" |
|
|
|
struct dlight_t; |
|
class C_DynamicLight; |
|
|
|
class C_Prop_Portal : public CPortalRenderable_FlatBasic |
|
{ |
|
public: |
|
DECLARE_CLASS( C_Prop_Portal, CPortalRenderable_FlatBasic ); |
|
DECLARE_CLIENTCLASS(); |
|
|
|
C_Prop_Portal( void ); |
|
virtual ~C_Prop_Portal( void ); |
|
|
|
// Handle recording for the SFM |
|
virtual void GetToolRecordingState( KeyValues *msg ); |
|
|
|
CHandle<C_Prop_Portal> m_hLinkedPortal; //the portal this portal is linked to |
|
bool m_bActivated; //a portal can exist and not be active |
|
|
|
bool m_bSharedEnvironmentConfiguration; //this will be set by an instance of CPortal_Environment when two environments are in close proximity |
|
|
|
cplane_t m_plane_Origin; // The plane on which this portal is placed, normal facing outward (matching model forward vec) |
|
|
|
virtual void Spawn( void ); |
|
virtual void Activate( void ); |
|
virtual void ClientThink( void ); |
|
|
|
virtual void Simulate(); |
|
|
|
virtual void UpdateOnRemove( void ); |
|
|
|
virtual void OnNewParticleEffect( const char *pszParticleName, CNewParticleEffect *pNewParticleEffect ); |
|
|
|
struct Portal_PreDataChanged |
|
{ |
|
bool m_bActivated; |
|
bool m_bIsPortal2; |
|
Vector m_vOrigin; |
|
QAngle m_qAngles; |
|
EHANDLE m_hLinkedTo; |
|
} PreDataChanged; |
|
|
|
struct TransformedLightingData_t |
|
{ |
|
ClientShadowHandle_t m_LightShadowHandle; |
|
dlight_t *m_pEntityLight; |
|
} TransformedLighting; |
|
|
|
virtual void OnPreDataChanged( DataUpdateType_t updateType ); |
|
virtual void OnDataChanged( DataUpdateType_t updateType ); |
|
virtual int DrawModel( int flags ); |
|
void UpdateOriginPlane( void ); |
|
void UpdateGhostRenderables( void ); |
|
|
|
void SetIsPortal2( bool bValue ); |
|
|
|
bool IsActivedAndLinked( void ) const; |
|
|
|
CPortalSimulator m_PortalSimulator; |
|
|
|
virtual C_BaseEntity * PortalRenderable_GetPairedEntity( void ) { return this; }; |
|
|
|
private: |
|
|
|
CUtlVector<EHANDLE> m_hGhostingEntities; |
|
CUtlVector<C_PortalGhostRenderable *> m_GhostRenderables; |
|
float m_fGhostRenderablesClip[4]; |
|
|
|
|
|
friend void __MsgFunc_EntityPortalled(bf_read &msg); |
|
|
|
}; |
|
|
|
typedef C_Prop_Portal CProp_Portal; |
|
|
|
#endif //#ifndef C_PROP_PORTAL_H
|
|
|