⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 anim_sound.cpp

📁 Blood 2全套源码
💻 CPP
📖 第 1 页 / 共 3 页
字号:
// ----------------------------------------------------------------------- //
//
// MODULE  : Anim_Sound.cpp
//
// PURPOSE : Animation/Sound functions 
//
// CREATED : 
//
// ----------------------------------------------------------------------- //

#include <stdio.h>
#include "cpp_server_de.h"
#include "generic_msg_de.h"
#include "Anim_Sound.h"
#include "basecharacter.h"
#include "SoundTypes.h"

void BPrint(char*);

char *szNodes[NUM_ALL_NODES] = 
{
	"head",		//0
	"neck",		//1
	"torso",	//2
	"pelvis",	//3
	"ru_arm",	//4
	"rl_arm",	//5
	"r_hand",	//6
	"lu_arm",	//7
	"ll_arm",	//8
	"l_hand",	//9
	"lu_leg",	//10
	"ll_leg",	//11
	"l_ankle",	//12
	"l_foot",	//13
	"ru_leg",	//14
	"rl_leg",	//15
	"r_ankle",	//16
	"r_foot",	//17
	"obj",		//18
	"l_gun",	//19
	"r_gun",	//20
};

// ----------------------------------------------------------------------- //
// ROUTINE		: CheckAnims
// DESCRIPTION	: Check anims for validity
// RETURN TYPE	: void 
// PARAMS		: DDWORD* nAnim
// PARAMS		: int nSize
// ----------------------------------------------------------------------- //

void CheckAnims(DDWORD nAnim[], int nSize)
{
	for(int i = 1; i < nSize; i++)
	{
		if(nAnim[i] < 0 || nAnim[i] > 999)
			nAnim[i] = nAnim[i-1];
	}

	return;
}

CAnim_Sound::CAnim_Sound()
{
	memset(m_nAnim_IDLE,0,sizeof(m_nAnim_IDLE));
	memset(m_nAnim_TALK,0,sizeof(m_nAnim_TALK));
	memset(m_nAnim_WALK,0,sizeof(m_nAnim_WALK));

    m_nAnim_WALK_INJURED_RLEG_RIFLE  = 0;
    m_nAnim_WALK_INJURED_RLEG_PISTOL  = 0;

    m_nAnim_WALK_INJURED_LLEG_RIFLE  = 0;
    m_nAnim_WALK_INJURED_LLEG_PISTOL  = 0;

	memset(m_nAnim_RUN,0,sizeof(m_nAnim_RUN));
	memset(m_nAnim_JUMP,0,sizeof(m_nAnim_JUMP));
	memset(m_nAnim_CROUCH,0,sizeof(m_nAnim_JUMP));
	memset(m_nAnim_CRAWL,0,sizeof(m_nAnim_JUMP));
	memset(m_nAnim_SWIM,0,sizeof(m_nAnim_SWIM));
	memset(m_nAnim_STRAFERIGHT,0,sizeof(m_nAnim_STRAFERIGHT));
	memset(m_nAnim_STRAFELEFT,0,sizeof(m_nAnim_STRAFELEFT));

    m_nAnim_PICKUP_WEAPON  = 0;
   
	memset( m_nAnim_SWITCH_WEAPON,0,sizeof( m_nAnim_SWITCH_WEAPON));
	
   	memset(m_nAnim_FIRE_STAND,0,sizeof(m_nAnim_FIRE_STAND));
   	memset(m_nAnim_FIRE_WALK,0,sizeof(m_nAnim_FIRE_WALK));
   	memset(m_nAnim_FIRE_RUN,0,sizeof(m_nAnim_FIRE_RUN));
   	memset(m_nAnim_FIRE_JUMP,0,sizeof(m_nAnim_FIRE_JUMP));
   	memset(m_nAnim_FIRE_CROUCH,0,sizeof(m_nAnim_FIRE_CROUCH));
   	memset(m_nAnim_FIRE_CRAWL,0,sizeof(m_nAnim_FIRE_CRAWL));
 
    m_nAnim_FALLING  = 0;
    m_nAnim_FALLING_UNCONTROL  = 0;
    
    m_nAnim_ROLL_FORWARD  = 0;
    m_nAnim_ROLL_RIGHT  = 0;
    m_nAnim_ROLL_LEFT  = 0;
    m_nAnim_ROLL_BACK  = 0;
    
    m_nAnim_HANDSPRING_FORWARD  = 0;
    m_nAnim_HANDSPRING_RIGHT  = 0;
    m_nAnim_HANDSPRING_LEFT  = 0;
    m_nAnim_HANDSPRING_BACK  = 0;
    
    m_nAnim_FLIP_FORWARD  = 0;
    m_nAnim_FLIP_RIGHT  = 0;
    m_nAnim_FLIP_LEFT  = 0;
    m_nAnim_FLIP_BACK  = 0;
    
    m_nAnim_DODGE_RIGHT  = 0;
    m_nAnim_DODGE_LEFT  = 0;
    
	memset(m_nAnim_RECOIL,0,sizeof(m_nAnim_RECOIL));

	memset(m_nAnim_TAUNT,0,sizeof(m_nAnim_TAUNT));
        
    m_nAnim_SPOTPLAYER_RIGHT  = 0;
    m_nAnim_SPOTPLAYER_LEFT  = 0;
    m_nAnim_SPOTPLAYER_POINT  = 0;
 
	memset(m_nAnim_DEATH,0,sizeof(m_nAnim_DEATH));
	memset(m_nAnim_HUMILIATION,0,sizeof(m_nAnim_HUMILIATION));
	memset(m_nAnim_SPECIAL,0,sizeof(m_nAnim_SPECIAL));
	memset(m_nAnim_CORPSE,0,sizeof(m_nAnim_CORPSE));
	memset(m_nAnim_LIMB,0,sizeof(m_nAnim_LIMB));

    m_szSoundRoot[0] = '\0';

	m_hVoxSound = DNULL;

	m_bSilent = DFALSE;
}

CAnim_Sound::~CAnim_Sound()
{
	if( m_hVoxSound )
		g_pServerDE->KillSound( m_hVoxSound );
}

// ----------------------------------------------------------------------- //
//
//	ROUTINE:	SetAnimationIndexes()
//
//	PURPOSE:	Initialize model animation indexes
//
// ----------------------------------------------------------------------- //
	
void CAnim_Sound::SetAnimationIndexes(HOBJECT m_hObject)
{
	CServerDE* pServerDE = BaseClass::GetServerDE();
	if (!pServerDE || !m_hObject) return;

    m_nAnim_IDLE[0]						= pServerDE->GetAnimIndex(m_hObject, ANIM_IDLE1                      );
    m_nAnim_IDLE[1]						= pServerDE->GetAnimIndex(m_hObject, ANIM_IDLE2                      );
    m_nAnim_IDLE[2]						= pServerDE->GetAnimIndex(m_hObject, ANIM_IDLE3                      );
    m_nAnim_IDLE[3]						= pServerDE->GetAnimIndex(m_hObject, ANIM_IDLE4                      );

    m_nAnim_TALK[0]						= pServerDE->GetAnimIndex(m_hObject, ANIM_TALK1                      );
    m_nAnim_TALK[1]						= pServerDE->GetAnimIndex(m_hObject, ANIM_TALK2                      );
    m_nAnim_TALK[2]						= pServerDE->GetAnimIndex(m_hObject, ANIM_TALK3                      );
    m_nAnim_TALK[3]						= pServerDE->GetAnimIndex(m_hObject, ANIM_TALK4                      );
    m_nAnim_TALK[4]						= pServerDE->GetAnimIndex(m_hObject, ANIM_TALK5                      );
	
    m_nAnim_WALK[0]						= pServerDE->GetAnimIndex(m_hObject, ANIM_WALK_RIFLE                 );
    m_nAnim_WALK[1]						= pServerDE->GetAnimIndex(m_hObject, ANIM_WALK_RIFLE                 );
    m_nAnim_WALK[2] 					= pServerDE->GetAnimIndex(m_hObject, ANIM_WALK_PISTOL                );
    m_nAnim_WALK[3]						= pServerDE->GetAnimIndex(m_hObject, ANIM_WALK_PISTOL                );
    m_nAnim_WALK[4]						= pServerDE->GetAnimIndex(m_hObject, ANIM_WALK_KNIFE                );
    m_nAnim_WALK[5] 					= pServerDE->GetAnimIndex(m_hObject, ANIM_WALK_KNIFE	             );
    m_nAnim_WALK[6]						= pServerDE->GetAnimIndex(m_hObject, ANIM_WALK_KNIFE                 );
    m_nAnim_WALK[7]						= pServerDE->GetAnimIndex(m_hObject, ANIM_WALK_PISTOL                 );
    m_nAnim_WALK[8] 					= pServerDE->GetAnimIndex(m_hObject, ANIM_WALK_PISTOL		         );
										
    m_nAnim_WALK_INJURED_RLEG_RIFLE		= pServerDE->GetAnimIndex(m_hObject, ANIM_WALK_INJURED_RLEG_RIFLE    );
    m_nAnim_WALK_INJURED_RLEG_PISTOL	= pServerDE->GetAnimIndex(m_hObject, ANIM_WALK_INJURED_RLEG_PISTOL   );
										
    m_nAnim_WALK_INJURED_LLEG_RIFLE		= pServerDE->GetAnimIndex(m_hObject, ANIM_WALK_INJURED_LLEG_RIFLE    );
    m_nAnim_WALK_INJURED_LLEG_PISTOL	= pServerDE->GetAnimIndex(m_hObject, ANIM_WALK_INJURED_LLEG_PISTOL   );
										
    m_nAnim_RUN[0]						= pServerDE->GetAnimIndex(m_hObject, ANIM_RUN_RIFLE                  );
    m_nAnim_RUN[1]						= pServerDE->GetAnimIndex(m_hObject, ANIM_RUN_RIFLE                  );
    m_nAnim_RUN[2]						= pServerDE->GetAnimIndex(m_hObject, ANIM_RUN_PISTOL                 );
    m_nAnim_RUN[3]						= pServerDE->GetAnimIndex(m_hObject, ANIM_RUN_PISTOL                 );
    m_nAnim_RUN[4]						= pServerDE->GetAnimIndex(m_hObject, ANIM_RUN_KNIFE                 );
    m_nAnim_RUN[5]						= pServerDE->GetAnimIndex(m_hObject, ANIM_RUN_KNIFE				     );
    m_nAnim_RUN[6]						= pServerDE->GetAnimIndex(m_hObject, ANIM_RUN_KNIFE                  );
    m_nAnim_RUN[7]						= pServerDE->GetAnimIndex(m_hObject, ANIM_RUN_PISTOL                  );
    m_nAnim_RUN[8]						= pServerDE->GetAnimIndex(m_hObject, ANIM_RUN_PISTOL					 );
										
    m_nAnim_JUMP[0]						= pServerDE->GetAnimIndex(m_hObject, ANIM_JUMP_RIFLE                 );
    m_nAnim_JUMP[1]						= pServerDE->GetAnimIndex(m_hObject, ANIM_JUMP_RIFLE                 );
    m_nAnim_JUMP[2]						= pServerDE->GetAnimIndex(m_hObject, ANIM_JUMP_PISTOL                );
    m_nAnim_JUMP[3]						= pServerDE->GetAnimIndex(m_hObject, ANIM_JUMP_PISTOL                );
    m_nAnim_JUMP[4]						= pServerDE->GetAnimIndex(m_hObject, ANIM_JUMP_KNIFE                 );
    m_nAnim_JUMP[5]						= pServerDE->GetAnimIndex(m_hObject, ANIM_JUMP_KNIFE	             );
    m_nAnim_JUMP[6]						= pServerDE->GetAnimIndex(m_hObject, ANIM_JUMP_KNIFE                 );
    m_nAnim_JUMP[7]						= pServerDE->GetAnimIndex(m_hObject, ANIM_JUMP_PISTOL                 );
    m_nAnim_JUMP[8]						= pServerDE->GetAnimIndex(m_hObject, ANIM_JUMP_PISTOL	             );

    m_nAnim_CROUCH[0]					= pServerDE->GetAnimIndex(m_hObject, ANIM_CROUCH_RIFLE               );	

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -