64 lines
1.6 KiB
C++
64 lines
1.6 KiB
C++
//========= Copyright Valve Corporation, All rights reserved. ============//
|
|
//
|
|
// Purpose:
|
|
//
|
|
//=============================================================================//
|
|
|
|
#include "cbase.h"
|
|
|
|
// memdbgon must be the last include file in a .cpp file!!!
|
|
#include "tier0/memdbgon.h"
|
|
|
|
class CTextureToggle : public CPointEntity
|
|
{
|
|
public:
|
|
DECLARE_CLASS( CTextureToggle, CPointEntity );
|
|
|
|
void InputIncrementBrushTexIndex( inputdata_t &inputdata );
|
|
void InputSetBrushTexIndex( inputdata_t &inputdata );
|
|
|
|
private:
|
|
|
|
DECLARE_DATADESC();
|
|
};
|
|
|
|
LINK_ENTITY_TO_CLASS( env_texturetoggle, CTextureToggle );
|
|
|
|
BEGIN_DATADESC( CTextureToggle )
|
|
|
|
DEFINE_INPUTFUNC( FIELD_VOID, "IncrementTextureIndex", InputIncrementBrushTexIndex ),
|
|
DEFINE_INPUTFUNC( FIELD_INTEGER, "SetTextureIndex", InputSetBrushTexIndex ),
|
|
|
|
END_DATADESC()
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// Purpose:
|
|
// Input : &inputdata -
|
|
//-----------------------------------------------------------------------------
|
|
void CTextureToggle::InputIncrementBrushTexIndex( inputdata_t& inputdata )
|
|
{
|
|
CBaseEntity *pEntity = gEntList.FindEntityByName( NULL, m_target );
|
|
|
|
while( pEntity )
|
|
{
|
|
int iCurrentIndex = pEntity->GetTextureFrameIndex() + 1;
|
|
pEntity->SetTextureFrameIndex( iCurrentIndex );
|
|
|
|
pEntity = gEntList.FindEntityByName( pEntity, m_target );
|
|
}
|
|
}
|
|
|
|
void CTextureToggle::InputSetBrushTexIndex( inputdata_t& inputdata )
|
|
{
|
|
CBaseEntity *pEntity = gEntList.FindEntityByName( NULL, m_target );
|
|
|
|
while( pEntity )
|
|
{
|
|
int iData = inputdata.value.Int();
|
|
|
|
pEntity->SetTextureFrameIndex( iData );
|
|
pEntity = gEntList.FindEntityByName( pEntity, m_target );
|
|
}
|
|
}
|
|
|