[Scummvm-cvs-logs] SF.net SVN: scummvm:[34494] scummvm/trunk/engines/drascula

thebluegr at users.sourceforge.net thebluegr at users.sourceforge.net
Thu Sep 11 17:35:56 CEST 2008


Revision: 34494
          http://scummvm.svn.sourceforge.net/scummvm/?rev=34494&view=rev
Author:   thebluegr
Date:     2008-09-11 15:35:56 +0000 (Thu, 11 Sep 2008)

Log Message:
-----------
Cleanup

Modified Paths:
--------------
    scummvm/trunk/engines/drascula/animation.cpp
    scummvm/trunk/engines/drascula/converse.cpp
    scummvm/trunk/engines/drascula/drascula.h
    scummvm/trunk/engines/drascula/rooms.cpp

Modified: scummvm/trunk/engines/drascula/animation.cpp
===================================================================
--- scummvm/trunk/engines/drascula/animation.cpp	2008-09-11 14:49:04 UTC (rev 34493)
+++ scummvm/trunk/engines/drascula/animation.cpp	2008-09-11 15:35:56 UTC (rev 34494)
@@ -1100,22 +1100,29 @@
 
 void DrasculaEngine::animation_29_2() {
 	if (flags[33] == 0) {
-		talk_vonBraun(32, kVonBraunNormal);
-		talk(398);
-		talk_vonBraun(33, kVonBraunNormal);
-		talk(399);
-		talk_vonBraun(34, kVonBraunNormal);
-		talk_vonBraun(35, kVonBraunNormal);
-		talk(400);
-		talk_vonBraun(36, kVonBraunNormal);
-		talk_vonBraun(37, kVonBraunNormal);
-		talk(386);
-		talk_vonBraun(38, kVonBraunNormal);
-		talk_vonBraun(39, kVonBraunNormal);
-		talk(401);
-		talk_vonBraun(40, kVonBraunNormal);
-		talk_vonBraun(41, kVonBraunNormal);
-		flags[33] = 1;
+		// TODO: eventually move this to drascula.dat, along with any other
+		// sequences
+		TalkSequenceCommand anim29_2Seq[] = {
+			// Chapter, sequence,		 command type, action
+			{		 -1,	  -1,	  kTalkerVBNormal,	  32 },
+			{		 -1,	  -1,	   kTalkerGeneral,	 398 },
+			{		 -1,	  -1,	  kTalkerVBNormal,	  33 },
+			{		 -1,	  -1,	   kTalkerGeneral,	 399 },
+			{		 -1,	  -1,	  kTalkerVBNormal,	  34 },
+			{		 -1,	  -1,	  kTalkerVBNormal,	  35 },
+			{		 -1,	  -1,	   kTalkerGeneral,	 400 },
+			{		 -1,	  -1,	  kTalkerVBNormal,	  36 },
+			{		 -1,	  -1,	  kTalkerVBNormal,	  37 },
+			{		 -1,	  -1,	   kTalkerGeneral,	 386 },
+			{		 -1,	  -1,	  kTalkerVBNormal,	  38 },
+			{		 -1,	  -1,	  kTalkerVBNormal,	  39 },
+			{		 -1,	  -1,	   kTalkerGeneral,	 401 },
+			{		 -1,	  -1,	  kTalkerVBNormal,	  40 },
+			{		 -1,	  -1,	  kTalkerVBNormal,	  41 },
+			{		 -1,	  -1,			 kSetFlag,	   1 }
+		};
+
+		playTalkSequence(anim29_2Seq, ARRAYSIZE(anim29_2Seq));
 	} else
 		talk_vonBraun(43, kVonBraunNormal);
 

Modified: scummvm/trunk/engines/drascula/converse.cpp
===================================================================
--- scummvm/trunk/engines/drascula/converse.cpp	2008-09-11 14:49:04 UTC (rev 34493)
+++ scummvm/trunk/engines/drascula/converse.cpp	2008-09-11 15:35:56 UTC (rev 34494)
@@ -35,68 +35,75 @@
 			_talkSequences[i].sequence == sequence) {
 			seen = true;
 		
-			// do action
-			switch (_talkSequences[i].commandType) {
-				case kPause:
-					pause(_talkSequences[i].action);
-					break;
-				case kSetFlag:
-					flags[_talkSequences[i].action] = 1;
-					break;
-				case kClearFlag:
-					flags[_talkSequences[i].action] = 0;
-					break;
-				case kPickObject:
-					pickObject(_talkSequences[i].action);
-					break;
-				case kAddObject:
-					addObject(_talkSequences[i].action);
-					break;
-				case kBreakOut:
-					breakOut = 1;
-					break;
-				case kTalkerGeneral:
-					talk(_talkSequences[i].action);
-					break;
-				case kTalkerDrunk:
-					talk_drunk(_talkSequences[i].action);
-					break;
-				case kTalkerPianist:
-					talk_pianist(_talkSequences[i].action);
-					break;
-				case kTalkerBJ:
-					talk_bj(_talkSequences[i].action);
-					break;
-				case kTalkerVBNormal:
-					talk_vonBraun(_talkSequences[i].action, kVonBraunNormal);
-					break;
-				case kTalkerVBDoor:
-					talk_vonBraun(_talkSequences[i].action, kVonBraunDoor);
-					break;
-				case kTalkerIgorSeated:
-					talk_igor(_talkSequences[i].action, kIgorSeated);
-					break;
-				case kTalkerWerewolf:
-					talk_werewolf(_talkSequences[i].action);
-					break;
-				case kTalkerMus:
-					talk_mus(_talkSequences[i].action);
-					break;
-				case kTalkerDrascula:
-					talk_drascula(_talkSequences[i].action, 1);
-					break;
-				case kTalkerBartender:
-					talk_bartender(_talkSequences[i].action, 1);
-					break;
-				default:
-					error("checkTalkSequence: Unknown command");
-			}
-
+			doTalkSequenceCommand(_talkSequences[i]);
 		} else if (seen) // Stop searching down the list
 			break;
 	}	
 }
 
+void DrasculaEngine::playTalkSequence(TalkSequenceCommand *seq, int size) {
+	for (int i = 0; i < size; i++)
+		doTalkSequenceCommand(seq[i]);
+}
+
+void DrasculaEngine::doTalkSequenceCommand(TalkSequenceCommand cmd) {
+	switch (cmd.commandType) {
+		case kPause:
+			pause(cmd.action);
+			break;
+		case kSetFlag:
+			flags[cmd.action] = 1;
+			break;
+		case kClearFlag:
+			flags[cmd.action] = 0;
+			break;
+		case kPickObject:
+			pickObject(cmd.action);
+			break;
+		case kAddObject:
+			addObject(cmd.action);
+			break;
+		case kBreakOut:
+			breakOut = 1;
+			break;
+		case kTalkerGeneral:
+			talk(cmd.action);
+			break;
+		case kTalkerDrunk:
+			talk_drunk(cmd.action);
+			break;
+		case kTalkerPianist:
+			talk_pianist(cmd.action);
+			break;
+		case kTalkerBJ:
+			talk_bj(cmd.action);
+			break;
+		case kTalkerVBNormal:
+			talk_vonBraun(cmd.action, kVonBraunNormal);
+			break;
+		case kTalkerVBDoor:
+			talk_vonBraun(cmd.action, kVonBraunDoor);
+			break;
+		case kTalkerIgorSeated:
+			talk_igor(cmd.action, kIgorSeated);
+			break;
+		case kTalkerWerewolf:
+			talk_werewolf(cmd.action);
+			break;
+		case kTalkerMus:
+			talk_mus(cmd.action);
+			break;
+		case kTalkerDrascula:
+			talk_drascula(cmd.action, 1);
+			break;
+		case kTalkerBartender:
+			talk_bartender(cmd.action, 1);
+			break;
+		default:
+			error("doTalkSequenceCommand: Unknown command");
+	}
+}
+
 void DrasculaEngine::cleanupString(char *string) {
 	uint len = strlen(string);
 	for (uint h = 0; h < len; h++)

Modified: scummvm/trunk/engines/drascula/drascula.h
===================================================================
--- scummvm/trunk/engines/drascula/drascula.h	2008-09-11 14:49:04 UTC (rev 34493)
+++ scummvm/trunk/engines/drascula/drascula.h	2008-09-11 15:35:56 UTC (rev 34494)
@@ -543,6 +543,8 @@
 	bool roomParse(int, int);
 	void cleanupString(char *string);
 	void checkTalkSequence(int sequence);
+	void doTalkSequenceCommand(TalkSequenceCommand cmd);
+	void playTalkSequence(TalkSequenceCommand *seq, int size);
 	void converse(int);
 	void print_abc_opc(const char *, int, int);
 	void response(int);

Modified: scummvm/trunk/engines/drascula/rooms.cpp
===================================================================
--- scummvm/trunk/engines/drascula/rooms.cpp	2008-09-11 14:49:04 UTC (rev 34493)
+++ scummvm/trunk/engines/drascula/rooms.cpp	2008-09-11 15:35:56 UTC (rev 34494)
@@ -1524,18 +1524,12 @@
 				talk(495);
 			} else
 				hasAnswer = 0;
-		} else if (currentChapter == 5) {
+		} else if (currentChapter == 5 || currentChapter == 6) {
 			if (pickedObject == kVerbLook && fl == 9) {
 				talk(482);
 				talk(483);
 			} else
 				hasAnswer = 0;
-		} else if (currentChapter == 6) {
-			if (pickedObject == kVerbLook && fl == 9) {
-				talk(482);
-				talk(483);
-			} else
-				hasAnswer = 0;
 		}
 	} else {
 		if (currentChapter == 1) {
@@ -1854,21 +1848,29 @@
 			flags[7] = 1;
 			updateRoom();
 			updateScreen();
-			talk(228);
-			talk_werewolf(1);
-			talk_werewolf(2);
-			pause(23);
-			talk(229);
-			talk_werewolf(3);
-			talk_werewolf(4);
-			talk(230);
-			talk_werewolf(5);
-			talk(231);
-			talk_werewolf(6);
-			talk_werewolf(7);
-			pause(33);
-			talk(232);
-			talk_werewolf(8);
+
+			// TODO: eventually move this to drascula.dat, along with any other
+			// sequences
+			TalkSequenceCommand room45Seq[] = {
+				// Chapter, sequence,		 command type, action
+				{		 -1,	  -1,	  kTalkerGeneral,	 228 },
+				{		 -1,	  -1,	 kTalkerWerewolf,	   1 },
+				{		 -1,	  -1,	 kTalkerWerewolf,	   2 },
+				{		 -1,	  -1,			  kPause,	  23 },
+				{		 -1,	  -1,	  kTalkerGeneral,	 229 },
+				{		 -1,	  -1,	 kTalkerWerewolf,	   3 },
+				{		 -1,	  -1,	 kTalkerWerewolf,	   4 },
+				{		 -1,	  -1,	  kTalkerGeneral,	 230 },
+				{		 -1,	  -1,	 kTalkerWerewolf,	   5 },
+				{		 -1,	  -1,	  kTalkerGeneral,	 231 },
+				{		 -1,	  -1,	 kTalkerWerewolf,	   6 },
+				{		 -1,	  -1,	 kTalkerWerewolf,	   7 },
+				{		 -1,	  -1,			  kPause,	  33 },
+				{		 -1,	  -1,	  kTalkerGeneral,	 232 },
+				{		 -1,	  -1,	 kTalkerWerewolf,	   8 },
+			};
+
+			playTalkSequence(room45Seq, ARRAYSIZE(room45Seq));
 		}
 	}
 


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Scummvm-git-logs mailing list