diff options
Diffstat (limited to 'game/server/tf2/order_events.h')
| -rw-r--r-- | game/server/tf2/order_events.h | 110 |
1 files changed, 110 insertions, 0 deletions
diff --git a/game/server/tf2/order_events.h b/game/server/tf2/order_events.h new file mode 100644 index 0000000..20d0864 --- /dev/null +++ b/game/server/tf2/order_events.h @@ -0,0 +1,110 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: +// +// $NoKeywords: $ +//=============================================================================// + +#ifndef TF_ORDER_EVENTS_H +#define TF_ORDER_EVENTS_H +#ifdef _WIN32 +#pragma once +#endif + + +#include "tf_player.h" + + +//----------------------------------------------------------------------------- +// ORDER EVENTS +//----------------------------------------------------------------------------- + +typedef enum +{ + ORDER_EVENT_PLAYER_DISCONNECTED, // COrderEvent_PlayerDisconnected + ORDER_EVENT_PLAYER_KILLED, // CorderEvent_PlayerKilled + ORDER_EVENT_PLAYER_RESPAWNED, // COrderEvent_PlayerRespawned + ORDER_EVENT_OBJECT_DESTROYED, // COrderEvent_ObjectDestroyed + ORDER_EVENT_PLAYER_DAMAGED // COrderEvent_PlayerDamaged +} OrderEventType; + + +abstract_class COrderEvent_Base +{ +public: + virtual OrderEventType GetType() = 0; +}; + + +// Fire a global order event. It goes to all orders so they can determine if +// they want to react. +void GlobalOrderEvent( COrderEvent_Base *pOrder ); + + +class COrderEvent_PlayerDisconnected : public COrderEvent_Base +{ +public: + COrderEvent_PlayerDisconnected( CBaseEntity *pPlayer ) + { + m_pPlayer = pPlayer; + } + + virtual OrderEventType GetType() { return ORDER_EVENT_PLAYER_DISCONNECTED; } + + CBaseEntity *m_pPlayer; +}; + + +class COrderEvent_PlayerKilled : public COrderEvent_Base +{ +public: + COrderEvent_PlayerKilled( CBaseEntity *pPlayer ) + { + m_pPlayer = pPlayer; + } + + virtual OrderEventType GetType() { return ORDER_EVENT_PLAYER_KILLED; } + + CBaseEntity *m_pPlayer; +}; + + +class COrderEvent_PlayerRespawned : public COrderEvent_Base +{ +public: + COrderEvent_PlayerRespawned( CBaseEntity *pPlayer ) + { + m_pPlayer = pPlayer; + } + + virtual OrderEventType GetType() { return ORDER_EVENT_PLAYER_RESPAWNED; } + + CBaseEntity *m_pPlayer; +}; + + +class COrderEvent_ObjectDestroyed : public COrderEvent_Base +{ +public: + COrderEvent_ObjectDestroyed( CBaseEntity *pObj ) + { + m_pObject = pObj; + } + + virtual OrderEventType GetType() { return ORDER_EVENT_OBJECT_DESTROYED; } + + CBaseEntity *m_pObject; +}; + + +class COrderEvent_PlayerDamaged : public COrderEvent_Base +{ +public: + virtual OrderEventType GetType() { return ORDER_EVENT_PLAYER_DAMAGED; } + + CBaseEntity *m_pPlayerDamaged; + CTakeDamageInfo m_TakeDamageInfo; +}; + + +#endif // TF_ORDER_EVENTS_H |