aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFilippos Karapetis2008-05-30 14:58:09 +0000
committerFilippos Karapetis2008-05-30 14:58:09 +0000
commit0e92f8ffa9925833fc84604f14b7965094eef9dc (patch)
tree9b09cd76ee56c2e679841251e44609977ddbbdd8
parent1da231a34efb38b3a1035b59c506cc46d3aa8b81 (diff)
downloadscummvm-rg350-0e92f8ffa9925833fc84604f14b7965094eef9dc.tar.gz
scummvm-rg350-0e92f8ffa9925833fc84604f14b7965094eef9dc.tar.bz2
scummvm-rg350-0e92f8ffa9925833fc84604f14b7965094eef9dc.zip
Rewrote some more room logic
svn-id: r32400
-rw-r--r--engines/drascula/rooms.cpp99
1 files changed, 51 insertions, 48 deletions
diff --git a/engines/drascula/rooms.cpp b/engines/drascula/rooms.cpp
index 67e65998ad..00e377ac9f 100644
--- a/engines/drascula/rooms.cpp
+++ b/engines/drascula/rooms.cpp
@@ -43,7 +43,7 @@ struct RoomTalkAction {
// Note: default action needs to be LAST for each group
// of actions with the same number
RoomTalkAction room0Actions[] = {
- // num action object speech
+ // num action object speech
{ 1, kVerbLook, -1, 54 },
{ 1, kVerbMove, -1, 19 },
{ 1, kVerbPick, -1, 11 },
@@ -51,12 +51,12 @@ RoomTalkAction room0Actions[] = {
{ 1, kVerbClose, -1, 9 },
{ 1, kVerbTalk, -1, 16 },
{ 1, kVerbDefault, -1, 11 },
- // -------------------------------
+ // ----------------------------------
{ 2, kVerbMove, -1, 19 },
{ 2, kVerbOpen, -1, 9 },
{ 2, kVerbClose, -1, 9 },
{ 2, kVerbTalk, -1, 16 },
- // -------------------------------
+ // ----------------------------------
{ 3, kVerbLook, -1, 316 },
{ 3, kVerbMove, -1, 317 },
{ 3, kVerbPick, -1, 318 },
@@ -64,16 +64,16 @@ RoomTalkAction room0Actions[] = {
{ 3, kVerbClose, -1, 319 },
{ 3, kVerbTalk, -1, 320 },
{ 3, kVerbDefault, -1, 318 },
- // -------------------------------
+ // ----------------------------------
{ 4, kVerbMove, -1, 19 },
{ 4, kVerbOpen, -1, 9 },
{ 4, kVerbClose, -1, 9 },
{ 4, kVerbTalk, -1, 16 },
- // -------------------------------
+ // ----------------------------------
{ 5, kVerbOpen, -1, 9 },
{ 5, kVerbClose, -1, 9 },
{ 5, kVerbTalk, -1, 16 },
- // -------------------------------
+ // ----------------------------------
{ 6, kVerbMove, -1, 19 },
{ 6, kVerbOpen, -1, 9 },
{ 6, kVerbClose, -1, 9 },
@@ -81,112 +81,128 @@ RoomTalkAction room0Actions[] = {
};
RoomTalkAction room1Actions[] = {
- // num action object speech
+ // num action object speech
{ -1, kVerbPick, 118, 5 },
{ -1, kVerbOpen, 118, 3 },
{ -1, kVerbClose, 118, 4 },
{ -1, kVerbTalk, 118, 6 },
- // -------------------------------
+ // ----------------------------------
{ -1, kVerbLook, 119, 8 },
{ -1, kVerbMove, 119, 13 },
{ -1, kVerbClose, 119, 10 },
{ -1, kVerbTalk, 119, 12 },
- // -------------------------------
+ // ----------------------------------
{ -1, kVerbMove, 120, 13 },
{ -1, kVerbOpen, 120, 18 },
{ -1, kVerbTalk, 120, 15 }
};
RoomTalkAction room3Actions[] = {
- // num action object speech
+ // num action object speech
{ -1, kVerbLook, 129, 21 },
{ -1, kVerbPick, 129, 5 },
{ -1, kVerbMove, 129, 24 },
{ -1, kVerbOpen, 129, 22 },
{ -1, kVerbClose, 129, 10 },
- // -------------------------------
+ // ----------------------------------
{ -1, kVerbLook, 131, 27 },
{ -1, kVerbPick, 131, 5 },
{ -1, kVerbMove, 131, 24 },
{ -1, kVerbOpen, 131, 22 },
{ -1, kVerbClose, 131, 10 },
{ -1, kVerbTalk, 131, 23 },
- // -------------------------------
+ // ----------------------------------
{ -1, kVerbLook, 132, 28 },
{ -1, kVerbPick, 132, 5 },
{ -1, kVerbMove, 132, 24 },
{ -1, kVerbOpen, 132, 22 },
{ -1, kVerbClose, 132, 10 },
{ -1, kVerbTalk, 132, 23 },
- // -------------------------------
+ // ----------------------------------
{ -1, kVerbLook, 133, 321 },
{ -1, kVerbPick, 133, 31 },
{ -1, kVerbMove, 133, 34 },
{ -1, kVerbOpen, 133, 30 },
{ -1, kVerbClose, 133, 10 },
- // -------------------------------
+ // ----------------------------------
{ -1, kVerbLook, 166, 55 },
{ -1, kVerbPick, 166, 7 },
- // -------------------------------
+ // ----------------------------------
{ -1, kVerbLook, 211, 184 }
};
RoomTalkAction room4Actions[] = {
- // num action object speech
+ // num action object speech
{ -1, kVerbLook, 189, 182 },
- // -------------------------------
+ // ----------------------------------
{ -1, kVerbLook, 207, 175 },
{ -1, kVerbTalk, 207, 176 },
- // -------------------------------
+ // ----------------------------------
{ -1, kVerbLook, 208, 177 },
- // -------------------------------
+ // ----------------------------------
{ -1, kVerbLook, 209, 179 },
- // -------------------------------
+ // ----------------------------------
{ -1, kVerbLook, 210, 180 },
{ -1, kVerbOpen, 210, 181 }
};
RoomTalkAction room5Actions[] = {
- // num action object speech
+ // num action object speech
{ -1, kVerbMove, 136, 13 },
{ -1, kVerbOpen, 136, 18 },
{ -1, kVerbTalk, 136, 15 },
- // -------------------------------
+ // ----------------------------------
{ -1, kVerbLook, 212, 187 },
{ -1, kVerbTalk, 212, 188 },
- // -------------------------------
+ // ----------------------------------
{ -1, kVerbLook, 213, 189 },
{ -1, kVerbOpen, 213, 190 }
};
RoomTalkAction room6Actions[] = {
- // num action object speech
+ // num action object speech
{ -1, kVerbPick, 144, 43 },
- // -------------------------------
+ // ----------------------------------
{ -1, kVerbLook, 138, 35 },
{ -1, kVerbTalk, 138, 6 },
- // -------------------------------
+ // ----------------------------------
{ -1, kVerbLook, 143, 37 },
{ -1, kVerbPick, 143, 7 },
{ -1, kVerbMove, 143, 7 },
{ -1, kVerbTalk, 143, 38 },
- // -------------------------------
+ // ----------------------------------
{ -1, kVerbLook, 139, 36 },
- // -------------------------------
+ // ----------------------------------
{ -1, kVerbLook, 140, 147 }
};
RoomTalkAction room12Actions[] = {
- // num action object speech
+ // num action object speech
{ -1, kVerbLook, 154, 329 },
{ -1, kVerbTalk, 154, 330 },
- // -------------------------------
+ // ----------------------------------
{ -1, kVerbMove, 155, 48 },
{ -1, kVerbTalk, 155, 331 },
- // -------------------------------
+ // ----------------------------------
{ -1, kVerbLook, 156, 35 },
{ -1, kVerbMove, 156, 48 },
- { -1, kVerbTalk, 156, 50 },
+ { -1, kVerbTalk, 156, 50 }
+};
+
+RoomTalkAction room14Actions[] = {
+ // num action object speech
+ { -1, kVerbLook, 200, 165 },
+ // ----------------------------------
+ { -1, kVerbLook, 201, 166 },
+ // ----------------------------------
+ { -1, kVerbLook, 202, 167 },
+ // ----------------------------------
+ { -1, kVerbLook, 203, 168 },
+ { -1, kVerbPick, 203, 170 },
+ { -1, kVerbMove, 203, 170 },
+ { -1, kVerbTalk, 203, 169 },
+ // ----------------------------------
+ { -1, kVerbLook, 204, 171 }
};
bool DrasculaEngine::roomParse(RoomTalkAction* roomActions, int fl) {
@@ -505,6 +521,9 @@ bool DrasculaEngine::room_13(int fl) {
}
void DrasculaEngine::room_14(int fl) {
+ if (roomParse(room14Actions, fl))
+ return;
+
if (pickedObject == kVerbTalk && fl == 54 && flags[39] == 0)
animation_12_2();
else if (pickedObject == kVerbTalk && fl == 54 && flags[39] == 1)
@@ -517,22 +536,6 @@ void DrasculaEngine::room_14(int fl) {
animation_36_2();
else if (pickedObject == kVerbTalk && fl == 53)
animation_13_2();
- else if (pickedObject == kVerbLook && fl == 200)
- talk(165);
- else if (pickedObject == kVerbLook && fl == 201)
- talk(166);
- else if (pickedObject == kVerbLook && fl == 202)
- talk(167);
- else if (pickedObject == kVerbLook && fl == 203)
- talk(168);
- else if (pickedObject == kVerbPick && fl == 203)
- talk(170);
- else if (pickedObject == kVerbMove && fl == 203)
- talk(170);
- else if (pickedObject == kVerbTalk && fl == 203)
- talk(169);
- else if (pickedObject == kVerbLook && fl == 204)
- talk(171);
else
hasAnswer = 0;
}