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

thebluegr at users.sourceforge.net thebluegr at users.sourceforge.net
Tue May 27 13:49:37 CEST 2008


Revision: 32319
          http://scummvm.svn.sourceforge.net/scummvm/?rev=32319&view=rev
Author:   thebluegr
Date:     2008-05-27 04:49:36 -0700 (Tue, 27 May 2008)

Log Message:
-----------
Rewrote some more room logic

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

Modified: scummvm/trunk/engines/drascula/rooms.cpp
===================================================================
--- scummvm/trunk/engines/drascula/rooms.cpp	2008-05-27 09:29:40 UTC (rev 32318)
+++ scummvm/trunk/engines/drascula/rooms.cpp	2008-05-27 11:49:36 UTC (rev 32319)
@@ -146,6 +146,36 @@
 	{ -1,	OPEN,		210,	181 }
 };
 
+RoomTalkAction room5Actions[] = {
+	// num	action		object	speech
+	{ -1,	MOVE,		136,	 13 },
+	{ -1,	OPEN,		136,	 18 },
+	{ -1,	TALK,		136,	 15 },
+	// -------------------------------
+	{ -1,	LOOK,		212,	187 },
+	{ -1,	TALK,		212,	188 },
+	// -------------------------------
+	{ -1,	LOOK,		213,	189 },
+	{ -1,	OPEN,		213,	190 }
+};
+
+RoomTalkAction room6Actions[] = {
+	// num	action		object	speech
+	{ -1,	PICK,		144,	 43 },
+	// -------------------------------
+	{ -1,	LOOK,		138,	 35 },
+	{ -1,	TALK,		138,	  6 },
+	// -------------------------------
+	{ -1,	LOOK,		143,	 37 },
+	{ -1,	PICK,		143,	  7 },
+	{ -1,	MOVE,		143,	  7 },
+	{ -1,	TALK,		143,	 38 },
+	// -------------------------------
+	{ -1,	LOOK,		139,	 36 },
+	// -------------------------------
+	{ -1,	LOOK,		140,	147 }
+};
+
 RoomTalkAction room12Actions[] = {
 	// num	action		object	speech
 	{ -1,	LOOK,		154,	329 },
@@ -324,59 +354,40 @@
 }
 
 void DrasculaEngine::room_5(int fl) {
-	if (objeto_que_lleva == LOOK && fl == 136 && flags[8]==0) talk(_text[_lang][14], "14.als");
-	else if (objeto_que_lleva == MOVE && fl == 136)
-		talk(13);
-	else if (objeto_que_lleva == OPEN && fl == 136)
-		talk(18);
-	else if (objeto_que_lleva == TALK && fl == 136)
-		talk(15);
+	if (roomParse(room5Actions, fl))
+		return;
+
+	if (objeto_que_lleva == LOOK && fl == 136 && flags[8] == 0) 
+		talk(14);
 	else if (objeto_que_lleva == 10 && fl == 136) {
 		animation_5_2();
 		resta_objeto(10);
-	} else if (objeto_que_lleva == LOOK && fl == 212)
-		talk(187);
-	else if (objeto_que_lleva == TALK && fl == 212)
-		talk(188);
-	else if (objeto_que_lleva == LOOK && fl == 213)
-		talk(189);
-	else if (objeto_que_lleva == OPEN && fl == 213)
-		talk(190);
-	else
+	} else
 		hay_respuesta = 0;
 }
 
 void DrasculaEngine::room_6(int fl){
+	if (roomParse(room6Actions, fl))
+		return;
+
 	if (objeto_que_lleva == LOOK && fl==144) {
 		talk(41);
 		talk(42);
-	} else if (objeto_que_lleva == PICK && fl == 144)
-		talk(43);
-	else if (objeto_que_lleva == LOOK && fl == 138)
-		talk(35);
-	else if (objeto_que_lleva == OPEN && fl == 138)
+	} else if (objeto_que_lleva == OPEN && fl == 138)
 		openDoor(0, 1);
 	else if (objeto_que_lleva == CLOSE && fl == 138)
 		closeDoor(0, 1);
-	else if (objeto_que_lleva == TALK && fl == 138)
-		talk(6);
-	else if (objeto_que_lleva == LOOK && fl == 143)
-		talk(37);
-	else if (objeto_que_lleva == PICK && fl == 143)
-		talk(7);
-	else if (objeto_que_lleva == MOVE && fl == 143)
-		talk(7);
 	else if (objeto_que_lleva == OPEN && fl == 143 && flags[2] == 0) {
 		copyBackground(0, 0, 0, 0, 320, 200, dir_dibujo1, dir_zona_pantalla);
-	updateRefresh_pre();
-	copyRect(228, 102, hare_x + 5, hare_y - 1, 47, 73, dir_dibujo3, dir_zona_pantalla);
-	updateScreen(0, 0, 0, 0, 320, 200, dir_zona_pantalla);
-	pause(10);
-	playSound("s3.als");
-	flags[2] = 1;
-	updateRoom();
-	updateScreen(0, 0, 0, 0, 320, 200, dir_zona_pantalla);
-	stopSound();
+		updateRefresh_pre();
+		copyRect(228, 102, hare_x + 5, hare_y - 1, 47, 73, dir_dibujo3, dir_zona_pantalla);
+		updateScreen(0, 0, 0, 0, 320, 200, dir_zona_pantalla);
+		pause(10);
+		playSound("s3.als");
+		flags[2] = 1;
+		updateRoom();
+		updateScreen(0, 0, 0, 0, 320, 200, dir_zona_pantalla);
+		stopSound();
 	} else if (objeto_que_lleva == CLOSE && fl == 143 && flags[2] == 1) {
 		copyBackground(0, 0, 0, 0, 320, 200, dir_dibujo1, dir_zona_pantalla);
 		flags[2] = 0;
@@ -388,11 +399,7 @@
 		updateRoom();
 		updateScreen(0, 0, 0, 0, 320, 200, dir_zona_pantalla);
 		stopSound();
-	} else if (objeto_que_lleva == TALK && fl == 143)
-		talk(38);
-	else if (objeto_que_lleva == LOOK && fl == 139)
-		talk(36);
-	else if (objeto_que_lleva == OPEN && fl == 139 && flags[1] == 0) {
+	} else if (objeto_que_lleva == OPEN && fl == 139 && flags[1] == 0) {
 		copyBackground(0, 0, 0, 0, 320, 200, dir_dibujo1, dir_zona_pantalla);
 		updateRefresh_pre();
 		copyRect(267, 1, hare_x - 14, hare_y - 2, 52, 73, dir_dibujo3, dir_zona_pantalla);
@@ -405,9 +412,7 @@
 		updateRoom();
 		updateScreen(0, 0, 0, 0, 320, 200, dir_zona_pantalla);
 		stopSound();
-	} else if (objeto_que_lleva == LOOK && fl == 140)
-		talk(147);
-	else if (objeto_que_lleva == PICK && fl == 140) {
+	} else if (objeto_que_lleva == PICK && fl == 140) {
 		copyBackground(0, 0, 0, 0, 320, 200, dir_dibujo1, dir_zona_pantalla);
 		updateRefresh_pre();
 		copyRect(267, 1, hare_x - 14, hare_y - 2, 52, 73, dir_dibujo3, dir_zona_pantalla);


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