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

📄 thevoice.cpp

📁 Blood 2全套源码
💻 CPP
📖 第 1 页 / 共 2 页
字号:
/****************************************************************************
;
;	 MODULE:		THEVOICE (.CPP)
;
;	PURPOSE:		The multiplayer 'god' voice
;
;	HISTORY:		11/30/98 [blg] This file was created
;
;	COMMENT:		Copyright (c) 1998, Monolith Productions Inc.
;
****************************************************************************/

// Includes...

#include "TheVoice.h"
#include "..\Shared\ClientRes.h"
#include <mbstring.h>


// Globals...

VoiceEntry g_aVoiceStartBB[NUM_VOICE_START_BB];
VoiceEntry g_aVoiceStartCTF[NUM_VOICE_START_CTF]; 
VoiceEntry g_aVoiceOverkill[NUM_VOICE_OVERKILL];
VoiceEntry g_aVoiceKill[NUM_VOICE_KILL];
VoiceEntry g_aVoiceSuicide[NUM_VOICE_SUICIDE];
VoiceEntry g_aVoiceHumiliation[NUM_VOICE_HUMILIATION]; 


// Statics...

static CClientDE*	s_pClientDE = NULL;


// Functions...

// ----------------------------------------------------------------------- //
//
//	ROUTINE:	Cve (Clear Voice Entries)
//
//	PURPOSE:	Clears the given voice entry array
//
// ----------------------------------------------------------------------- //

void Cve(VoiceEntry* pVe, int nNumEntries)
{
	// Sanity checks...

	if (!pVe) return;
	if (nNumEntries <= 0) return;


	// Clear the entire array...

	int nSize = sizeof(VoiceEntry) * nNumEntries;

	memset(pVe, 0, nSize);
}


// ----------------------------------------------------------------------- //
//
//	ROUTINE:	Ive (Init Voice Entry)
//
//	PURPOSE:	Initializes the given voice entry
//
// ----------------------------------------------------------------------- //

void Ive(VoiceEntry* pVe, int id, char* sText, char* sWave, DBYTE byFlags)
{
	// Sanity checks...

	if (!s_pClientDE) return;
	if (!pVe) return;
	if (id == 0) return;


	// Get the string resource and set the text...

	HSTRING hString = s_pClientDE->FormatString(id);

	if (hString)
	{
		_mbsncpy((unsigned char*)pVe->m_szText, (const unsigned char*)s_pClientDE->GetStringData(hString), MAX_LEN_VOICE_TEXT);
		s_pClientDE->FreeString(hString);
	}
	else
	{
		if (sText)
		{
			_mbsncpy((unsigned char*)pVe->m_szText, (const unsigned char*)sText, MAX_LEN_VOICE_TEXT);
		}
	}


	// Set the wave file string...

	if (sWave)
	{
		_mbsncpy((unsigned char*)pVe->m_szFile, (const unsigned char*)sWave, MAX_LEN_VOICE_FILE);
	}


	// Set the flags...

	pVe->m_byFlags = byFlags;
}


// ----------------------------------------------------------------------- //
//
//	ROUTINE:	TheVoice_Init
//
//	PURPOSE:	Initialization
//
// ----------------------------------------------------------------------- //

DBOOL TheVoice_Init(CClientDE* pClientDE)
{
	// Sanity checks...

	if (!pClientDE) return(DFALSE);


	// Set our static client pointer...

	s_pClientDE = pClientDE;


	// Init g_aVoiceStartBB...

	Cve(g_aVoiceStartBB, NUM_VOICE_START_BB);

	Ive(&g_aVoiceStartBB[0], IDS_THEVOICE_1, "Let The Bloodbath Begin!", "Voice248.wav", VOICEFLAG_ALL);
	Ive(&g_aVoiceStartBB[1], IDS_THEVOICE_2, "May The Bloodbath Continue!", "Voice249.wav", VOICEFLAG_ALL);
	Ive(&g_aVoiceStartBB[2], IDS_THEVOICE_3, "Determine The Master Of The Bloodbath", "Voice250.wav", VOICEFLAG_ALL);
	Ive(&g_aVoiceStartBB[3], IDS_THEVOICE_4, "The Carnage Continues!"	, "Voice251.wav", VOICEFLAG_ALL);
	Ive(&g_aVoiceStartBB[4], IDS_THEVOICE_5, "Let The Bloodbath Start!"	, "Voice252.wav", VOICEFLAG_ALL);
	Ive(&g_aVoiceStartBB[5], IDS_THEVOICE_6, "May The Killing Continue", "Voice253.wav", VOICEFLAG_ALL);
	Ive(&g_aVoiceStartBB[6], IDS_THEVOICE_7, "Begin The Bloodbath!"	, "Voice254.wav", VOICEFLAG_ALL);
	Ive(&g_aVoiceStartBB[7], IDS_THEVOICE_8, "Bloodbath, My Children!", "Voice255.wav", VOICEFLAG_ALL);


	// Init g_aVoiceStartCTF...

	Cve(g_aVoiceStartCTF, NUM_VOICE_START_CTF);

	Ive(&g_aVoiceStartCTF[0], IDS_THEVOICE_10, "Let The BloodFeud Begin!", "Voice256.wav", VOICEFLAG_ALL);
	Ive(&g_aVoiceStartCTF[1], IDS_THEVOICE_11, "May The BloodFeud Continue!", "Voice257.wav", VOICEFLAG_ALL);
	Ive(&g_aVoiceStartCTF[2], IDS_THEVOICE_12, "Determine The Masters Of The BloodFeud", "Voice258.wav", VOICEFLAG_ALL);
	Ive(&g_aVoiceStartCTF[3], IDS_THEVOICE_13, "The Carnage Continues!", "Voice259.wav", VOICEFLAG_ALL);
	Ive(&g_aVoiceStartCTF[4], IDS_THEVOICE_14, "Let The BloodFeud Start!", "Voice260.wav", VOICEFLAG_ALL);
	Ive(&g_aVoiceStartCTF[5], IDS_THEVOICE_15, "May The Killing Continue", "Voice261.wav", VOICEFLAG_ALL);
	Ive(&g_aVoiceStartCTF[6], IDS_THEVOICE_16, "Begin The BloodFeud!", "Voice262.wav", VOICEFLAG_ALL);
	Ive(&g_aVoiceStartCTF[7], IDS_THEVOICE_17, "BloodFeud, My Children!", "Voice263.wav", VOICEFLAG_ALL);


	// Init g_aVoiceOverkill...

	Cve(g_aVoiceOverkill, NUM_VOICE_OVERKILL);

	Ive(&g_aVoiceOverkill[0], IDS_THEVOICE_20, "Maximum Bloodshed", "Voice300.wav", VOICEFLAG_ALL);


	// Init g_aVoiceKill...

	Cve(g_aVoiceKill, NUM_VOICE_KILL);

	Ive(&g_aVoiceKill[0], IDS_THEVOICE_100, "Destroyed", "Voice1.wav", VOICEFLAG_ALL);
	Ive(&g_aVoiceKill[1], IDS_THEVOICE_101, "Hosed", "Voice2.wav", VOICEFLAG_ALL);
	Ive(&g_aVoiceKill[2], IDS_THEVOICE_102, "Humiliated", "Voice3.wav", VOICEFLAG_ALL);
	Ive(&g_aVoiceKill[3], IDS_THEVOICE_103, "Toasted", "Voice4.wav", VOICEFLAG_ALL);
	Ive(&g_aVoiceKill[4], IDS_THEVOICE_104, "Sent to hell", "Voice5.wav", VOICEFLAG_ALL);
	Ive(&g_aVoiceKill[5], IDS_THEVOICE_105, "Pass the chili", "Voice6.wav", VOICEFLAG_ALL);
	Ive(&g_aVoiceKill[6], IDS_THEVOICE_106, "Punishment delivered", "Voice7.wav", VOICEFLAG_ALL);
	Ive(&g_aVoiceKill[7], IDS_THEVOICE_107, "Bobbetttized!", "Voice8.wav", VOICEFLAG_ALL);
	Ive(&g_aVoiceKill[8], IDS_THEVOICE_108, "Stiffed", "Voice9.wav", VOICEFLAG_ALL);
	Ive(&g_aVoiceKill[9], IDS_THEVOICE_109, "He shoots! He scores!", "Voice10.wav", VOICEFLAG_ALL);
	Ive(&g_aVoiceKill[10], IDS_THEVOICE_110, "Spillage", "Voice11.wav", VOICEFLAG_ALL);
	Ive(&g_aVoiceKill[11], IDS_THEVOICE_111, "Sprayed", "Voice12.wav", VOICEFLAG_ALL);
	Ive(&g_aVoiceKill[12], IDS_THEVOICE_112, "Dog meat", "Voice13.wav", VOICEFLAG_ALL);
	Ive(&g_aVoiceKill[13], IDS_THEVOICE_113, "Bye, bye, now", "Voice14.wav", VOICEFLAG_ALL);
	Ive(&g_aVoiceKill[14], IDS_THEVOICE_114, "Ripped 'em loose", "Voice15.wav", VOICEFLAG_ALL);
	Ive(&g_aVoiceKill[15], IDS_THEVOICE_115, "Beaten like a kirk", "Voice16.wav", VOICEFLAG_ALL);
	Ive(&g_aVoiceKill[16], IDS_THEVOICE_116, "Whipped and creamed", "Voice17.wav", VOICEFLAG_ALL);
	Ive(&g_aVoiceKill[17], IDS_THEVOICE_117, "Snuffed", "Voice18.wav", VOICEFLAG_ALL);
	Ive(&g_aVoiceKill[18], IDS_THEVOICE_118, "Spleened", "Voice19.wav", VOICEFLAG_ALL);
	Ive(&g_aVoiceKill[19], IDS_THEVOICE_119, "Vaporized!", "Voice20.wav", VOICEFLAG_ALL);
	Ive(&g_aVoiceKill[20], IDS_THEVOICE_120, "Excellent!", "Voice21.wav", VOICEFLAG_ALL);
	Ive(&g_aVoiceKill[21], IDS_THEVOICE_121, "Excellent!", "Voice22.wav", VOICEFLAG_ALL);
	Ive(&g_aVoiceKill[22], IDS_THEVOICE_122, "%s Sodomized %s", "Voice23.wav", VOICEFLAG_ALL);
	Ive(&g_aVoiceKill[23], IDS_THEVOICE_123, "%s Gave %s Anal Justice", "Voice24.wav", VOICEFLAG_ALL);
	Ive(&g_aVoiceKill[24], IDS_THEVOICE_124, "%s Shat Upon %s", "Voice25.wav", VOICEFLAG_ALL);
	Ive(&g_aVoiceKill[25], IDS_THEVOICE_125, "%s Cavity Searched %s", "Voice26.wav", VOICEFLAG_ALL);
	Ive(&g_aVoiceKill[26], IDS_THEVOICE_126, "%s Gave %s The Lickety Split", "Voice27.wav", VOICEFLAG_ALL);
	Ive(&g_aVoiceKill[27], IDS_THEVOICE_127, "%s Whipped %s抯 Cream", "Voice28.wav", VOICEFLAG_ALL);
	Ive(&g_aVoiceKill[28], IDS_THEVOICE_128, "%s Fed %s Some Chunky Man Chowder!", "Voice29.wav", VOICEFLAG_MALE_ATTACKER | VOICEFLAG_ALL_VICTIM);
	Ive(&g_aVoiceKill[29], IDS_THEVOICE_129, "%s Fed %s Some Chunky Woman Chowder!", "Voice30.wav", VOICEFLAG_FEMALE_ATTACKER | VOICEFLAG_ALL_VICTIM);
	Ive(&g_aVoiceKill[30], IDS_THEVOICE_130, "%s slagged %s", "Voice31.wav", VOICEFLAG_ALL);
	Ive(&g_aVoiceKill[31], IDS_THEVOICE_131, "%s annihilated %s", "Voice32.wav", VOICEFLAG_ALL);
	Ive(&g_aVoiceKill[32], IDS_THEVOICE_132, "%s sterilized %s", "Voice33.wav", VOICEFLAG_ALL);
	Ive(&g_aVoiceKill[33], IDS_THEVOICE_133, "%s brained %s", "Voice34.wav", VOICEFLAG_ALL);
	Ive(&g_aVoiceKill[34], IDS_THEVOICE_134, "%s stained the floor with %s", "Voice35.wav", VOICEFLAG_ALL);
	Ive(&g_aVoiceKill[35], IDS_THEVOICE_135, "%s squashed %s like a bug", "Voice36.wav", VOICEFLAG_ALL);
	Ive(&g_aVoiceKill[36], IDS_THEVOICE_136, "%s did a dance in %s's sphincter", "Voice37.wav", VOICEFLAG_ALL);

⌨️ 快捷键说明

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