source-engine/game/server/tf2base/tf_weapon_builder.h
2022-08-13 03:20:41 +03:00

83 lines
2.0 KiB
C++

//========= Copyright © 1996-2005, Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
// $NoKeywords: $
//=============================================================================//
#ifndef TF_WEAPON_BUILDER_H
#define TF_WEAPON_BUILDER_H
#ifdef _WIN32
#pragma once
#endif
#include "tf_weaponbase.h"
class CBaseObject;
//=========================================================
// Builder Weapon
//=========================================================
class CTFWeaponBuilder : public CTFWeaponBase
{
DECLARE_CLASS( CTFWeaponBuilder, CTFWeaponBase );
public:
CTFWeaponBuilder();
~CTFWeaponBuilder();
DECLARE_SERVERCLASS();
virtual void SetSubType( int iSubType );
virtual void Precache( void );
virtual bool CanDeploy( void );
virtual bool Holster( CBaseCombatWeapon *pSwitchingTo = NULL );
virtual void ItemPostFrame( void );
virtual void PrimaryAttack( void );
virtual void SecondaryAttack( void );
virtual void WeaponIdle( void );
virtual bool Deploy( void );
virtual Activity GetDrawActivity( void );
virtual const char *GetViewModel( int iViewModel ) const;
virtual const char *GetWorldModel( void ) const;
virtual bool AllowsAutoSwitchTo( void ) const;
virtual int GetType( void ) { return m_iObjectType; }
void SetCurrentState( int iState );
void SwitchOwnersWeaponToLast();
// Placement
void StartPlacement( void );
void StopPlacement( void );
void UpdatePlacementState( void ); // do a check for valid placement
bool IsValidPlacement( void ); // is this a valid placement pos?
// Building
void StartBuilding( void );
// Selection
bool HasAmmo( void );
int GetSlot( void ) const;
int GetPosition( void ) const;
const char *GetPrintName( void ) const;
virtual int GetWeaponID( void ) const { return TF_WEAPON_BUILDER; }
virtual void WeaponReset( void );
public:
CNetworkVar( int, m_iBuildState );
CNetworkVar( unsigned int, m_iObjectType );
CNetworkHandle( CBaseObject, m_hObjectBeingBuilt );
int m_iValidBuildPoseParam;
float m_flNextDenySound;
};
#endif // TF_WEAPON_BUILDER_H