//========= Copyright ゥ 1996-2005, Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
//=============================================================================//
#include "cbase.h"
#include "npcevent.h"
#include "in_buttons.h"
#ifdef CLIENT_DLL
#include "c_hl2mp_player.h"
#else
#include "hl2mp_player.h"
#endif
#include "weapon_hl2mpbasehlmpcombatweapon.h"
// クライアントのDLLでは実際のクラス名がC_〜になるようにする
#ifdef CLIENT_DLL
#define CWeaponGero C_WeaponGero
#endif
//-----------------------------------------------------------------------------
// CWeaponGero
//-----------------------------------------------------------------------------
class CWeaponGero : public CBaseHL2MPCombatWeapon
{
// 親クラス(スーパークラス)名称をBaseClass
// 自身のクラス名称をThisClassで表記できるのはこのマクロを
// 呼んでいるから
DECLARE_CLASS( CWeaponGero, CBaseHL2MPCombatWeapon );
public:
CWeaponGero( void );
void PrimaryAttack( void );
// ネットワーククラスを扱うためのメンバ等を宣言
// クライアントはクライアントクラス
DECLARE_NETWORKCLASS();
// 予測値テーブルを扱うためのメンバ等を宣言
DECLARE_PREDICTABLE();
#ifndef CLIENT_DLL
// 武器携行時の挙動上書きリストを扱うためのメンバ等を定義
DECLARE_ACTTABLE();
#endif
private:
CWeaponGero( const CWeaponGero & );
};
// サーバ、クラインアントそれぞれネットワーククラスが作成され、
// このクラスへ関連付けられる
IMPLEMENT_NETWORKCLASS_ALIASED( WeaponGero, DT_WeaponGero )
// サーバーからクライアントに提供される情報テーブルを作成
// BEGIN〜ENDだけならば各武器共通の基本的な情報のみがテーブル
// に組み込まれる
// weapon_crossbow.cppのCNetworkVarマクロで宣言されている
// メンバ変数を参考にするとよい
BEGIN_NETWORK_TABLE( CWeaponGero, DT_WeaponGero )
END_NETWORK_TABLE()
// サーバー側で更新されなくともクライアント側で予測値として
// 扱いたい値をBEGIN〜END間に記述
// weapon_crossbow.cppのCNetworkVarマクロで宣言されている
// メンバ変数を参考にするとよい
BEGIN_PREDICTION_DATA( CWeaponGero )
END_PREDICTION_DATA()
// エンティティ名称とこのクラスを関連付ける
LINK_ENTITY_TO_CLASS( weapon_gero, CWeaponGero );
// 武器クラスにて使用する諸々のデータ(サウンド、モデル)
// をキャッシュへ読込むためにエンティティ名称を登録
// キャッシュするデータの定義はMODフォルダ下にある
// ./script/[武器エンティティ名].txt
// に記述された内容が参照される
// このクラスの場合はweapon_gero.txtが参照される
PRECACHE_WEAPON_REGISTER( weapon_gero );
#ifndef CLIENT_DLL
// 武器携行時の挙動上書きリスト定義
acttable_t CWeaponGero::m_acttable[] =
{
{ ACT_HL2MP_IDLE, ACT_HL2MP_IDLE_PISTOL, false },
{ ACT_HL2MP_RUN, ACT_HL2MP_RUN_PISTOL, false },
{ ACT_HL2MP_IDLE_CROUCH, ACT_HL2MP_IDLE_CROUCH_PISTOL, false },
{ ACT_HL2MP_WALK_CROUCH, ACT_HL2MP_WALK_CROUCH_PISTOL, false },
{ ACT_HL2MP_GESTURE_RANGE_ATTACK, ACT_HL2MP_GESTURE_RANGE_ATTACK_PISTOL, false },
{ ACT_HL2MP_GESTURE_RELOAD, ACT_HL2MP_GESTURE_RELOAD_PISTOL, false },
{ ACT_HL2MP_JUMP, ACT_HL2MP_JUMP_PISTOL, false },
{ ACT_RANGE_ATTACK1, ACT_RANGE_ATTACK_PISTOL, false },
};
// 武器携行時の挙動リスト登録
IMPLEMENT_ACTTABLE( CWeaponGero );
#endif
//-----------------------------------------------------------------------------
// Purpose: Constructor
//-----------------------------------------------------------------------------
CWeaponGero::CWeaponGero( void )
{
m_bReloadsSingly = false;
m_bFiresUnderwater = false;
}
//-----------------------------------------------------------------------------
// Purpose:
//-----------------------------------------------------------------------------
void CWeaponGero::PrimaryAttack( void )
{
// Only the player fires this way so we can cast
|