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.
100 lines
2.7 KiB
100 lines
2.7 KiB
//========= Copyright Valve Corporation, All rights reserved. ============//
|
|
//
|
|
//
|
|
//=============================================================================
|
|
|
|
#ifndef OVERLAYTRANS_H
|
|
#define OVERLAYTRANS_H
|
|
#pragma once
|
|
|
|
#include "utlvector.h"
|
|
#include "mathlib/vector.h"
|
|
#include "mathlib/vector2d.h"
|
|
#include "MapHelper.h"
|
|
|
|
class IEditorTexture;
|
|
class CHelperInfo;
|
|
class CMapEntity;
|
|
class CMapFace;
|
|
|
|
struct ShoreEntityData_t
|
|
{
|
|
IEditorTexture *m_pTexture;
|
|
Vector2D m_vecLengthTexcoord;
|
|
Vector2D m_vecWidthTexcoord;
|
|
float m_flWidths[2];
|
|
};
|
|
|
|
//=============================================================================
|
|
//
|
|
// Overlay Transition Entity Helper
|
|
//
|
|
class CMapOverlayTransition : public CMapHelper
|
|
{
|
|
public:
|
|
|
|
DECLARE_MAPCLASS(CMapOverlayTransition,CMapHelper)
|
|
|
|
CMapOverlayTransition();
|
|
~CMapOverlayTransition();
|
|
|
|
// Factory for building from a list of string parameters.
|
|
static CMapClass *Create( CHelperInfo *pInfo, CMapEntity *pParent );
|
|
|
|
// Virtual/Interface Implementation.
|
|
virtual void PostloadWorld( CMapWorld *pWorld );
|
|
|
|
void CalcBounds( BOOL bFullUpdate = FALSE );
|
|
|
|
virtual CMapClass *Copy( bool bUpdateDependencies );
|
|
virtual CMapClass *CopyFrom( CMapClass *pObject, bool bUpdateDependencies );
|
|
|
|
virtual void OnParentKeyChanged( const char* szKey, const char* szValue );
|
|
virtual void OnNotifyDependent( CMapClass *pObject, Notify_Dependent_t eNotifyType );
|
|
|
|
virtual void OnAddToWorld(CMapWorld *pWorld);
|
|
virtual void OnRemoveFromWorld(CMapWorld *pWorld, bool bNotifyChildren);
|
|
|
|
void DoTransform( const VMatrix& matrix );
|
|
|
|
void OnPaste( CMapClass *pCopy, CMapWorld *pSourceWorld, CMapWorld *pDestWorld,
|
|
const CMapObjectList &OriginalList, CMapObjectList &NewList);
|
|
void OnClone( CMapClass *pClone, CMapWorld *pWorld,
|
|
const CMapObjectList &OriginalList, CMapObjectList &NewList );
|
|
void OnUndoRedo( void );
|
|
|
|
bool OnApply( void );
|
|
|
|
void Render3D( CRender3D *pRender );
|
|
|
|
inline virtual bool IsVisualElement( void ) { return true; }
|
|
inline virtual bool ShouldRenderLast( void ) { return true; }
|
|
inline const char* GetDescription() { return ( "Overlay Transition" ); }
|
|
|
|
ChunkFileResult_t LoadVMF( CChunkFile *pFile );
|
|
ChunkFileResult_t SaveVMF( CChunkFile *pFile, CSaveInfo *pSaveInfo );
|
|
bool ShouldSerialize( void ) { return true; }
|
|
|
|
private:
|
|
|
|
bool BuildFaceCaches( void );
|
|
|
|
static ChunkFileResult_t OverlayDataCallback( CChunkFile *pFile, CMapDisp *pDisp );
|
|
static ChunkFileResult_t OverlayDataKeyCallback( const char *szKey, const char *szValue, CMapDisp *pDisp );
|
|
|
|
private:
|
|
|
|
bool m_bIsWater;
|
|
ShoreEntityData_t m_ShoreData;
|
|
|
|
CUtlVector<CMapFace*> m_aFaceCache1;
|
|
CUtlVector<CMapFace*> m_aFaceCache2;
|
|
|
|
int m_nShorelineId;
|
|
CUtlVector<CMapEntity*> m_aOverlayChildren;
|
|
|
|
bool m_bDebugDraw;
|
|
};
|
|
|
|
|
|
#endif // OVERLAYTRANS_H
|