[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