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

📄 conversationstrings.h

📁 Blood 2全套源码
💻 H
字号:
// ----------------------------------------------------------------------- //
//
// MODULE  : ConversationStrings.cpp
//
// PURPOSE : ConversationStrings - Filename to String mapper
//
// CREATED : 10/11/98
//
// ----------------------------------------------------------------------- //

#ifndef _CONVERSATION_STRINGS_H_
#define _CONVERSATION_STRINGS_H_

#include "cpp_server_de.h"
#include <stdio.h>


typedef struct ConversationEntry_t
{
	char *szFile;
	char *szText;
} ConversationEntry;


// LOCALIZATION:  The following strings will need to be localized.  Only the
// szText string should be changed.

static ConversationEntry s_ConversationStringMap[] =
{
	//	szFile				// szText
	{ "4Prophet1.wav",	"I'm staying."  },
	{ "1ACaleb1.wav",	"Bring it on!" },
	{ "1ACaleb2.wav",	"End of the line." },
	{ "2Caleb1.wav",	"You just made your second mistake.  You stuck around." },
	{ "2Caleb2.wav",	"Letting me live." },
	{ "3Caleb1.wav",	"...Gabriel?" },
	{ "3Caleb2.wav",	"Save it for someone who cares." },
	{ "3Caleb3.wav",	"Things have changed.  But I don't need to tell you that." },
	{ "3Caleb4.wav",	"You're not my type." },
	{ "4Caleb1.wav",	"The choice is yours.  Walk now and live.  Stay, and die." },
	{ "4Caleb2.wav",	"Then you're dying." },
	{ "Bmpr1Caleb1.wav","I hate to fly." },
	{ "5Caleb1.wav",	"This could be bad." },
	{ "6Caleb1.wav",	"These aren't Cabal." },
	{ "6Caleb2.wav",	"Something else." },
	{ "6Caleb3.wav",	"I've got a train to catch.  See you around." },
	{ "8Caleb1.wav",	"You've gotta be kidding." },
	{ "7Caleb1.wav",	"You have no idea." },
	{ "7Caleb2.wav",	"You bet, I'm just getting warmed up." },
	{ "7Caleb3.wav",	"I am denial.  I'll face nothing." },
	{ "7Caleb4.wav",	"I don't need babysitting." },
	{ "8Caleb1.wav",	"Easy big fella!" },
	{ "9Caleb1.wav",	"Oh, I'll do more than that." },
	{ "9Caleb2.wav",	"Groovy." },
	{ "9Caleb3.wav",	"Let it burn.  I never liked this place anyway." },
	{ "9Caleb4.wav",	"Pizza." },
	{ "9Caleb5.wav",	"Stripagram." },
	{ "11Caleb1.wav",	"I've been dreaming of you all tied up like that." },
	{ "11Caleb2.wav",	"Gimme some sugar, baby." },
	{ "11Caleb3.wav",	"Oh, you again. How about coming back in about 2 minutes." },
	{ "11Caleb4.wav",	"Ophelia! Okay, that's it.  It's time you die!" },
	{ "13Caleb1.wav",	"The rest of your life's gonna be measured in seconds, chump." },
	{ "14Caleb1.wav",	"Then I'll just have to keep on kicking your ass." },
	{ "14Caleb2.wav",	"Never said I was smart." },
	{ "15Caleb1.wav",	"Go ahead. I'll watch." },
	{ "15Caleb2.wav",	"Let's boogie, boogie man." },
	{ "16Caleb1.wav",	"When you get to hell, tell them I sent you.  You'll get a discount." },
	{ "16Caleb2.wav",	"Relax, you're dead." },
	{ "16Caleb3.wav",	"Too late, you're already dead." },
	{ "16Caleb4.wav",	"Life's not fair, but either is death.  Get use to it." },
	{ "16Caleb5.wav",	"Thank you, and goodnight." },
	{ "17Caleb1.wav",	"Nah." },
	{ "17Caleb2.wav",	"You're gonna hurt my feelings." },
	{ "17Caleb3.wav",	"Well?" },
	{ "17Caleb4.wav",	"Enough talk.  Let's fight." },
	{ "19Caleb1.wav",	"Well, hello, Mr. Fancypants.  Forgive me if I don't shake hands." },
	{ "20Caleb1.wav",	"I don't know nothing about that kind of stuff." },
	{ "20Caleb2.wav",	"What are gonna do, spank me?" },
	{ "20Caleb3.wav",	"Okay, just shut up, I need to focus. " },
	{ "20Caleb4.wav",	"Kinda like a spiritual enema.  In a good way." },
	{ "3Gab1.wav",		"What the hell is this?" },
	{ "3Gab2.wav",		"Caleb?" },
	{ "3Gab3.wav",		"Gabriella.  It's a long story." },
	{ "3Gab4.wav",		"Is that any way to greet an old friend?" },
	{ "3Gab5.wav",		"I need to go with you.  Find out what's going on." },
	{ "3Gab6.wav",		"Looked in the mirror lately?  You're no catch yourself." },
	{ "6Gab1.wav",		"These things are everywhere.  The Cabal must be pretty desperate to be creating such creatures." },
	{ "6Gab2.wav",		"Then what are they?" },
	{ "6Gab4.wav",		"What are you doing?" },
	{ "6Gab5.wav",		"Don't worry, little man.  We'll meet again." },
	{ "14Gab1.wav",		"We have to go after him.  Who knows what's waiting for him." },
	{ "17Gab1.wav",		"Insect, we are the Ancient One.  Bow down before us." },
	{ "17Gab2.wav",		"You are all that stands between us and dominion?  Pathetic." },
	{ "17Gab3.wav",		"All that is will no longer be.  All that was has never been.  All that was to come... um..." },
	{ "17Gab4.wav",		"All that was to come will never... happen." },
	{ "20Gab1.wav",		"I'm gonna kill you both if you don't shut up." },
	{ "1AGid1.wav",		"This is Gideon, your guest conductor!  Hold on tight, the ride might get a little... bloody!" },
	{ "1AGid2.wav",		"I know you're here, Caleb.  I look forward to ripping out your spleen and wearing it as a hat." },
	{ "2Gid1.wav",		"Don't have much luck with trains, do you?" },
	{ "2Gid2.wav",		"Oh really?  What was my first mistake?" },
	{ "3Gid1.wav",		"Time to die, Chosen One." },
	{ "7Gid1.wav",		"This better work this time." },
	{ "7Gid2.wav",		"Ishmael?" },
	{ "7Gid3.wav",		"You were lucky this time Betrayer.  In a few hours, everything will fall back into order and I'll be rid of you forever.  For now, I must take my leave.  Don't worry, though-my troops will keep you company.  Play nice." },
	{ "10Gid1.wav",		"Sounds like home." },
	{ "10Gid2.wav",		"Get out of my frikkin' way!" },
	{ "11Gid1.wav",		"I thought you might come here." },
	{ "11Gid2.wav",		"Sorry to break up this lovely reunion Betrayer, but I need to keep you motivated." },
	{ "14Gid1.wav",		"It's not over!  You will never truly defeat me!" },
	{ "15Gid1.wav",		"Ah, Caleb.  I've been expecting you, you predictable oaf.  I won't be a minute.  I'm just... changING..." },
	{ "15Gid2.wav",		"...into something ...Unpleasant." },
	{ "15Gid3.wav",		"What do you think of my new look?  You have no idea how exquisite pain can feel.  Allow me to demonstrate." },
	{ "15Gid4.wav",		"I mean on you!" },
	{ "16Gid1.wav",		"No!  It's not fair!  I'll kill you!" },
	{ "7Ish1.wav",		"This is a surprising development." },
	{ "7Ish2.wav",		"Having a bad day?" },
	{ "7Ish3.wav",		"Do you understand how much damage your doing?" },
	{ "7Ish4.wav",		"That's not what I mean.  You are the One That Binds.  Sooner or later you'll have to face that." },
	{ "7Ish5.wav",		"Then know this, we are the Chosen.  We're here for you whether you like it or not." },
	{ "7Ish6.wav",		"Yes, Ophelia too.  She was the first to come through." },
	{ "7Ish7.wav",		"I wouldn't miss this for the world.  Then again, you just might end up destroying it." },
	{ "9Ish1.wav",		"You're thinking about Ophelia.  Touching." },
	{ "9Ish2.wav",		"There is a permanent rift in Gideon's temple.  It is a focus for all the damage that is being done.  An epicenter, so to speak.  You will find Ophelia there." },
	{ "9Ish3.wav",		"Tchernobog's destruction opened many doors between the worlds.  They can only be sealed by the One That Binds.  That power lies within you.  This reality will perish unless you restore it." },
	{ "9Ish4.wav",		"There is another reality forcing its way through the rifts, ancient and ravenous.  It is neither good nor evil, it merely is.  But it will devour us all." },
	{ "14Ish1.wav",		"You're not going after him, are you?" },
	{ "14Ish2.wav",		"I'm speculating that it's something very unpleasant." },
	{ "17Ish1.wav",		"Insect, we are the Ancient One.  Bow down before us." },
	{ "17Ish2.wav",		"You are all that stands between us and dominion?  Pathetic." },
	{ "17Ish3.wav",		"All that is will no longer be.  All that was has never been.  All that was to come... um..." },
	{ "17Ish4.wav",		"All that was to come will never... happen." },
	{ "20Ish1.wav",		"It is not over, Caleb.  You must seal the rifts.  You must rebind the fabric of this reality before it tears itself apart." },
	{ "20Ish2.wav",		"The power is within you.  It is time you used it." },
	{ "3MadSci1.wav",	"That's unexpected.  Hmmm, I guess I'll need to recalibrate the singularity settings." },
	{ "7MadSci1.wav",	"Trust me, my calculations are perfect this time." },
	{ "10MadSci1.wav",	"Sir, I have to advise you to reconsider.  My calculations are still inconclusive.  The rifts may be a source of unlimited power, as you suggest, but they might also be deadly pitfalls in the fabric of the space-time continuum.  They might lead you to a realm of pure chaos and evil where you will be completely and utterly annihilated." },
	{ "10MadSci2.wav",	"But sir!" },
	{ "10MadSci3.wav",	"No! ...I never got a chance... to tell you... how much I love you..." },
	{ "12MadSci1.wav",	"Hello, hello, hello.  Welcome to Research and Development, or, as I like to call it... R&D. You may call me... doctor.  I've had some rather interesting subjects lately with all the fluctuations in the cosmic substrate, but I must say I'm especially looking forward to your... dissection.  Please proceed to the main lab and we'll begin the experiment..." },
	{ "11Oph1.wav",		"Prince Charming, I presume." },
	{ "11Oph2.wav",		"Cut me lose and I'll give you a whole vanilla pie." },
	{ "14Oph1.wav",		"He wants you to follow him, you dumb bastard." },
	{ "14Oph2.wav",		"What are we waiting for?" },
	{ "17Oph1.wav",		"Insect, we are the Ancient One.  Bow down before us." },
	{ "17Oph2.wav",		"You are all that stands between us and dominion?  Pathetic." },
	{ "17Oph3.wav",		"All that is will no longer be.  All that was has never been.  All that was to come... um..." },
	{ "17Oph4.wav",		"All that was to come will never... happen." },
	{ "20Oph1.wav",		"You have no choice.  Listen to Ishmael you idiot." },
	{ "20Oph2.wav",		"I'll spank you if you spank me." }
};

#define NUM_CONVERSATIONS  (sizeof(s_ConversationStringMap) / sizeof(s_ConversationStringMap[0]))

// ----------------------------------------------------------------------- //
//
//	ROUTINE:	ConvertFullPathToFilename()
//
//	PURPOSE:	Convert the full path and filename to just the filename.
//
// ----------------------------------------------------------------------- //

static char* ConvertFullPathToFilename(char* pPath)
{
	if (!pPath) return DNULL;

	char* pFilename = pPath;
	int nLen = _mbstrlen(pPath);

	for (int i=nLen-1; i >= 0; i--)
	{
		if (pPath[i] == '\\')
		{
			pFilename = &(pPath[i+1]);
			break;
		}
	}

	return pFilename;
}


// ----------------------------------------------------------------------- //
//
//	ROUTINE:	FilenameToText()
//
//	PURPOSE:	Map the passed in filename to the appropriate string
//
// ----------------------------------------------------------------------- //

char* FilenameToText(HSTRING hFileName)
{
	if (!g_pServerDE || !hFileName) return DNULL;

	char* pFullFilename = g_pServerDE->GetStringData(hFileName);
	if (!pFullFilename) return DNULL;

	char* pFilename = ConvertFullPathToFilename(pFullFilename);
	if (!pFilename) return DNULL;

	ConversationEntry *pEntry = &s_ConversationStringMap[0];

	for (int i=0; i < NUM_CONVERSATIONS; i++)
	{
		pEntry = &s_ConversationStringMap[i];
		if (pEntry && pEntry->szFile)
		{
			if (_mbsicmp((const unsigned char*)pEntry->szFile, (const unsigned char*)pFilename) == 0)
			{
				return pEntry->szText;
			}
		}
	}

	return DNULL;
}

#endif // _CONVERSATION_STRINGS_H_

⌨️ 快捷键说明

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