mirror of
https://github.com/nillerusr/source-engine.git
synced 2026-08-17 14:07:48 +00:00
1
This commit is contained in:
@@ -0,0 +1,93 @@
|
||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||
//
|
||||
// The copyright to the contents herein is the property of Valve, L.L.C.
|
||||
// The contents may be used and/or copied only with the written permission of
|
||||
// Valve, L.L.C., or in accordance with the terms and conditions stipulated in
|
||||
// the agreement/contract under which the contents have been supplied.
|
||||
//
|
||||
// Purpose: Revive
|
||||
//
|
||||
// $Workfile: $
|
||||
// $Date: $
|
||||
// $NoKeywords: $
|
||||
//=============================================================================
|
||||
|
||||
#ifndef TF_REVIVE_H
|
||||
#define TF_REVIVE_H
|
||||
|
||||
#ifdef _WIN32
|
||||
#pragma once
|
||||
#endif
|
||||
|
||||
#ifdef CLIENT_DLL
|
||||
#include "c_tf_player.h"
|
||||
#else
|
||||
#include "tf_player.h"
|
||||
#endif
|
||||
|
||||
#ifdef CLIENT_DLL
|
||||
#define CTFReviveMarker C_TFReviveMarker
|
||||
#endif
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
//
|
||||
//-----------------------------------------------------------------------------
|
||||
class CTFReviveMarker : public CBaseAnimating
|
||||
{
|
||||
DECLARE_DATADESC();
|
||||
DECLARE_NETWORKCLASS();
|
||||
DECLARE_CLASS( CTFReviveMarker, CBaseAnimating );
|
||||
|
||||
public:
|
||||
CTFReviveMarker();
|
||||
|
||||
virtual void Precache() OVERRIDE;
|
||||
virtual void Spawn( void ) OVERRIDE;
|
||||
virtual bool ShouldCollide( int collisionGroup, int contentsMask ) const OVERRIDE;
|
||||
virtual bool IsCombatItem( void ) const { return true; }
|
||||
|
||||
#ifdef GAME_DLL
|
||||
static CTFReviveMarker *Create( CTFPlayer *pOwner );
|
||||
virtual int UpdateTransmitState( void ) OVERRIDE;
|
||||
virtual int ShouldTransmit( const CCheckTransmitInfo *pInfo ) OVERRIDE;
|
||||
void ReviveThink( void );
|
||||
#else
|
||||
virtual void OnDataChanged( DataUpdateType_t updateType ) OVERRIDE;
|
||||
virtual int GetHealth( void ) const OVERRIDE { return m_iHealth; }
|
||||
virtual int GetMaxHealth( void ) const OVERRIDE { return m_iMaxHealth; }
|
||||
virtual bool IsVisibleToTargetID( void ) const OVERRIDE { return true; }
|
||||
#endif // GAME_DLL
|
||||
|
||||
void SetOwner( CTFPlayer *pPlayer );
|
||||
void SetReviver( CTFPlayer *pPlayer ) { m_pReviver = pPlayer; }
|
||||
CTFPlayer *GetOwner( void ) const { return m_hOwner; }
|
||||
CTFPlayer *GetReviver( void ) const { return m_pReviver; }
|
||||
#ifdef GAME_DLL
|
||||
void AddMarkerHealth( float flAmount );
|
||||
bool IsReviveInProgress( void );
|
||||
// Fully healed. Ask player if they'd like to be revived at their marker.
|
||||
bool ReviveOwner( void );
|
||||
void PromptOwner( void );
|
||||
bool HasOwnerBeenPrompted( void ) { return m_bOwnerPromptedToRevive; }
|
||||
void SetOwnerHasBeenPrompted( bool bValue ) { m_bOwnerPromptedToRevive = bValue; }
|
||||
#endif // GAME_DLL
|
||||
|
||||
private:
|
||||
CNetworkHandle( CTFPlayer, m_hOwner );
|
||||
CTFPlayer *m_pReviver;
|
||||
CNetworkVar( uint16, m_nRevives );
|
||||
#ifdef GAME_DLL
|
||||
IMPLEMENT_NETWORK_VAR_FOR_DERIVED( m_iHealth );
|
||||
IMPLEMENT_NETWORK_VAR_FOR_DERIVED( m_iMaxHealth );
|
||||
float m_flHealAccumulator;
|
||||
bool m_bOwnerPromptedToRevive;
|
||||
float m_flLastHealTime;
|
||||
bool m_bOnGround;
|
||||
#else
|
||||
int m_iHealth;
|
||||
int m_iMaxHealth;
|
||||
bool m_bCalledForMedic;
|
||||
#endif // CLIENT_DLL
|
||||
};
|
||||
|
||||
#endif // TF_REVIVE_H
|
||||
Reference in New Issue
Block a user