diff options
Diffstat (limited to 'engines')
-rw-r--r-- | engines/drascula/rooms.cpp | 99 |
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; } |