Team Fortress 2 Source Code as on 22/4/2020
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.
|
|
//========= 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
|