//========= Copyright Valve Corporation, All rights reserved. ============// // // Purpose: // // $NoKeywords: $ //=============================================================================// #include "cbase.h" #include "tf_gamerules.h" // memdbgon must be the last include file in a .cpp file!!! #include "tier0/memdbgon.h" class CLogicOnHoliday : public CLogicalEntity { DECLARE_CLASS( CLogicOnHoliday, CLogicalEntity ); DECLARE_DATADESC(); COutputEvent m_IsAprilFools; COutputEvent m_IsFullMoon; COutputEvent m_IsHalloween; COutputEvent m_IsNothing; COutputEvent m_IsSmissmas; COutputEvent m_IsTFBirthday; COutputEvent m_IsValentines; void InputFire( inputdata_t & ) { bool isAprilFools = TF_IsHolidayActive( kHoliday_AprilFools ); bool isFullMoon = TF_IsHolidayActive( kHoliday_FullMoon ); bool isHalloween = TF_IsHolidayActive( kHoliday_Halloween ); bool isSmissmas = TF_IsHolidayActive( kHoliday_Christmas ); bool isTFBirthday = TF_IsHolidayActive( kHoliday_TFBirthday ); bool isValentines = TF_IsHolidayActive( kHoliday_Valentines ); bool isNothing = !(isTFBirthday || isHalloween || isSmissmas || isValentines || isFullMoon || isAprilFools); if ( isNothing ) { m_IsNothing.FireOutput( this, this ); return; } if ( isAprilFools ) m_IsAprilFools.FireOutput( this, this ); if ( isFullMoon ) m_IsFullMoon.FireOutput( this, this ); if ( isHalloween ) m_IsHalloween.FireOutput( this, this ); if ( isSmissmas ) m_IsSmissmas.FireOutput( this, this ); if ( isTFBirthday ) m_IsTFBirthday.FireOutput( this, this ); if ( isValentines ) m_IsValentines.FireOutput( this, this ); } }; LINK_ENTITY_TO_CLASS( tf_logic_on_holiday, CLogicOnHoliday ); BEGIN_DATADESC( CLogicOnHoliday ) DEFINE_INPUTFUNC( FIELD_VOID, "Fire", InputFire ), DEFINE_OUTPUT( m_IsAprilFools, "IsAprilFools" ), DEFINE_OUTPUT( m_IsFullMoon, "IsFullMoon" ), DEFINE_OUTPUT( m_IsHalloween, "IsHalloween" ), DEFINE_OUTPUT( m_IsSmissmas, "IsSmissmas" ), DEFINE_OUTPUT( m_IsTFBirthday, "IsTFBirthday" ), DEFINE_OUTPUT( m_IsValentines, "IsValentines" ), DEFINE_OUTPUT( m_IsNothing, "IsNothing" ), END_DATADESC()