2008-05-02 12:00:58 +00:00
|
|
|
/* ScummVM - Graphic Adventure Engine
|
|
|
|
*
|
|
|
|
* ScummVM is the legal property of its developers, whose names
|
|
|
|
* are too numerous to list here. Please refer to the COPYRIGHT
|
|
|
|
* file distributed with this source distribution.
|
|
|
|
*
|
|
|
|
* This program is free software; you can redistribute it and/or
|
|
|
|
* modify it under the terms of the GNU General Public License
|
|
|
|
* as published by the Free Software Foundation; either version 2
|
|
|
|
* of the License, or (at your option) any later version.
|
|
|
|
|
|
|
|
* This program is distributed in the hope that it will be useful,
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
* GNU General Public License for more details.
|
|
|
|
|
|
|
|
* You should have received a copy of the GNU General Public License
|
|
|
|
* along with this program; if not, write to the Free Software
|
|
|
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
|
|
*
|
|
|
|
* $URL$
|
|
|
|
* $Id$
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
|
|
|
|
#include "drascula/drascula.h"
|
2008-05-30 20:42:31 +00:00
|
|
|
#include "drascula/staticdata.h"
|
2008-05-02 12:00:58 +00:00
|
|
|
|
|
|
|
namespace Drascula {
|
|
|
|
|
2008-05-27 07:45:13 +00:00
|
|
|
bool DrasculaEngine::roomParse(RoomTalkAction* roomActions, int fl) {
|
|
|
|
bool didAction = false;
|
2008-05-26 17:50:26 +00:00
|
|
|
|
|
|
|
for (int i = 0; i < ARRAYSIZE(roomActions); i++) {
|
2008-06-03 18:17:56 +00:00
|
|
|
if (roomActions[i].chapter == currentChapter ||
|
|
|
|
roomActions[i].chapter == -1) {
|
2008-05-27 12:02:26 +00:00
|
|
|
if (roomActions[i].action == pickedObject ||
|
|
|
|
roomActions[i].action == kVerbDefault) {
|
2008-05-26 18:52:25 +00:00
|
|
|
if (roomActions[i].objectID == fl ||
|
2008-05-26 17:50:26 +00:00
|
|
|
roomActions[i].objectID == -1) {
|
|
|
|
talk(roomActions[i].speechID);
|
|
|
|
didAction = true;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
return didAction;
|
|
|
|
}
|
|
|
|
|
2008-05-02 12:00:58 +00:00
|
|
|
void DrasculaEngine::room_0() {
|
2008-05-30 20:42:31 +00:00
|
|
|
static const int mirar_t[3] = {100, 101, 54};
|
|
|
|
static const int poder_t[6] = {11, 109, 111, 110, 115, 116};
|
|
|
|
|
2008-05-27 07:45:13 +00:00
|
|
|
if (roomParse(room0Actions, -1))
|
2008-05-26 17:50:26 +00:00
|
|
|
return;
|
|
|
|
|
|
|
|
// non-default actions
|
2008-05-31 10:01:13 +00:00
|
|
|
if (currentChapter == 2 || currentChapter == 4 ||
|
2008-05-31 09:16:26 +00:00
|
|
|
currentChapter == 5 || currentChapter == 6) {
|
2008-05-27 12:02:26 +00:00
|
|
|
if (pickedObject == kVerbLook) {
|
2008-05-30 20:42:31 +00:00
|
|
|
talk(mirar_t[c_mirar]);
|
2008-05-02 12:00:58 +00:00
|
|
|
c_mirar++;
|
|
|
|
if (c_mirar == 3)
|
|
|
|
c_mirar = 0;
|
2008-05-27 12:02:26 +00:00
|
|
|
} else if (pickedObject == kVerbPick) {
|
2008-05-30 20:42:31 +00:00
|
|
|
talk(poder_t[c_poder]);
|
2008-05-02 12:00:58 +00:00
|
|
|
c_poder++;
|
|
|
|
if (c_poder == 6)
|
|
|
|
c_poder = 0;
|
2008-05-26 17:50:26 +00:00
|
|
|
} else {
|
2008-05-30 20:42:31 +00:00
|
|
|
talk(poder_t[c_poder]);
|
2008-05-02 12:00:58 +00:00
|
|
|
c_poder++;
|
|
|
|
if (c_poder == 6)
|
|
|
|
c_poder = 0;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
void DrasculaEngine::room_1(int fl) {
|
2008-05-27 07:45:13 +00:00
|
|
|
if (roomParse(room1Actions, fl))
|
2008-05-26 17:50:26 +00:00
|
|
|
return;
|
|
|
|
|
2008-05-27 12:02:26 +00:00
|
|
|
if (pickedObject == kVerbLook && fl == 118) {
|
2008-05-26 18:52:25 +00:00
|
|
|
talk(1);
|
2008-05-02 12:00:58 +00:00
|
|
|
pause(10);
|
2008-05-26 18:52:25 +00:00
|
|
|
talk(2);
|
2008-05-27 12:02:26 +00:00
|
|
|
} else if (pickedObject == kVerbLook && fl == 120 && flags[8] == 0)
|
2008-05-26 18:52:25 +00:00
|
|
|
talk(14);
|
2008-05-02 12:00:58 +00:00
|
|
|
else
|
2008-05-29 22:34:03 +00:00
|
|
|
hasAnswer = 0;
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void DrasculaEngine::room_3(int fl) {
|
2008-05-27 07:45:13 +00:00
|
|
|
if (roomParse(room3Actions, fl))
|
|
|
|
return;
|
|
|
|
|
2008-05-27 12:02:26 +00:00
|
|
|
if (pickedObject == kVerbTalk && fl == 129) {
|
2008-05-26 18:52:25 +00:00
|
|
|
talk(23);
|
2008-05-02 12:00:58 +00:00
|
|
|
pause(6);
|
2008-06-04 09:02:23 +00:00
|
|
|
talk_sync(_text[_lang][50], "50.als", "11111111111144432554433");
|
2008-05-27 12:02:26 +00:00
|
|
|
} else if (pickedObject == kVerbTalk && fl == 133) {
|
2008-06-04 09:02:23 +00:00
|
|
|
talk_sync(_text[_lang][322], "322.als", "13333334125433333333");
|
2008-05-02 12:00:58 +00:00
|
|
|
updateRoom();
|
2008-05-31 12:40:02 +00:00
|
|
|
updateScreen();
|
2008-05-02 12:00:58 +00:00
|
|
|
pause(25);
|
2008-05-26 18:52:25 +00:00
|
|
|
talk(33);
|
2008-05-27 12:02:26 +00:00
|
|
|
} else if (pickedObject == kVerbLook && fl == 165) {
|
2008-05-26 18:52:25 +00:00
|
|
|
talk(149);
|
|
|
|
talk(150);
|
2008-05-27 12:02:26 +00:00
|
|
|
} else if (pickedObject == kVerbPick && fl == 165) {
|
2008-05-30 07:09:36 +00:00
|
|
|
copyBackground(0, 0, 0,0, 320, 200, drawSurface1, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
updateRefresh_pre();
|
2008-06-02 23:09:19 +00:00
|
|
|
copyRect(44, 1, curX, curY, 41, 70, drawSurface2, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
updateRefresh();
|
2008-05-31 12:40:02 +00:00
|
|
|
updateScreen();
|
2008-05-02 12:00:58 +00:00
|
|
|
pause(4);
|
2008-05-11 11:20:40 +00:00
|
|
|
pickObject(10);
|
2008-05-02 12:00:58 +00:00
|
|
|
flags[3] = 1;
|
|
|
|
visible[8] = 0;
|
2008-05-27 12:02:26 +00:00
|
|
|
} else if (pickedObject == 14 && fl == 166 && flags[37] == 0) {
|
2008-05-02 12:00:58 +00:00
|
|
|
animation_7_2();
|
2008-05-11 11:20:40 +00:00
|
|
|
pickObject(8);
|
2008-05-27 12:02:26 +00:00
|
|
|
} else if (pickedObject == 14 && fl == 166 && flags[37] == 1)
|
2008-05-26 18:52:25 +00:00
|
|
|
talk(323);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbTalk && fl == 211) {
|
2008-05-26 18:52:25 +00:00
|
|
|
talk(185);
|
|
|
|
talk(186);
|
2008-05-02 12:00:58 +00:00
|
|
|
} else
|
2008-05-29 22:34:03 +00:00
|
|
|
hasAnswer = 0;
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void DrasculaEngine::room_4(int fl) {
|
2008-05-27 07:45:13 +00:00
|
|
|
if (roomParse(room4Actions, fl))
|
|
|
|
return;
|
|
|
|
|
2008-05-27 12:02:26 +00:00
|
|
|
if (pickedObject == kVerbMove && fl == 189 && flags[34] == 0) {
|
2008-05-26 17:50:26 +00:00
|
|
|
talk(327);
|
2008-05-11 11:20:40 +00:00
|
|
|
pickObject(13);
|
2008-05-02 12:00:58 +00:00
|
|
|
flags[34] = 1;
|
|
|
|
if (flags[7] == 1 && flags[26] == 1 && flags[34] == 1 && flags[35] == 1 && flags[37] == 1)
|
|
|
|
flags[38] = 1;
|
2008-05-27 07:45:13 +00:00
|
|
|
} else
|
2008-05-29 22:34:03 +00:00
|
|
|
hasAnswer = 0;
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void DrasculaEngine::room_5(int fl) {
|
2008-05-27 11:49:36 +00:00
|
|
|
if (roomParse(room5Actions, fl))
|
|
|
|
return;
|
|
|
|
|
2008-05-31 10:01:13 +00:00
|
|
|
if (pickedObject == kVerbLook && fl == 136 && flags[8] == 0)
|
2008-05-27 11:49:36 +00:00
|
|
|
talk(14);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == 10 && fl == 136) {
|
2008-05-02 12:00:58 +00:00
|
|
|
animation_5_2();
|
2008-05-29 22:34:03 +00:00
|
|
|
removeObject(10);
|
2008-05-27 11:49:36 +00:00
|
|
|
} else
|
2008-05-29 22:34:03 +00:00
|
|
|
hasAnswer = 0;
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void DrasculaEngine::room_6(int fl){
|
2008-05-27 11:49:36 +00:00
|
|
|
if (roomParse(room6Actions, fl))
|
|
|
|
return;
|
|
|
|
|
2008-05-27 12:02:26 +00:00
|
|
|
if (pickedObject == kVerbLook && fl==144) {
|
2008-05-26 18:52:25 +00:00
|
|
|
talk(41);
|
|
|
|
talk(42);
|
2008-05-27 12:02:26 +00:00
|
|
|
} else if (pickedObject == kVerbOpen && fl == 138)
|
2008-05-11 11:20:40 +00:00
|
|
|
openDoor(0, 1);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbClose && fl == 138)
|
2008-05-27 07:17:15 +00:00
|
|
|
closeDoor(0, 1);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbOpen && fl == 143 && flags[2] == 0) {
|
2008-05-30 07:09:36 +00:00
|
|
|
copyBackground(0, 0, 0, 0, 320, 200, drawSurface1, screenSurface);
|
2008-05-27 11:49:36 +00:00
|
|
|
updateRefresh_pre();
|
2008-06-02 23:09:19 +00:00
|
|
|
copyRect(228, 102, curX + 5, curY - 1, 47, 73, drawSurface3, screenSurface);
|
2008-05-31 12:40:02 +00:00
|
|
|
updateScreen();
|
2008-05-27 11:49:36 +00:00
|
|
|
pause(10);
|
2008-05-30 11:04:40 +00:00
|
|
|
playSound(3);
|
2008-05-27 11:49:36 +00:00
|
|
|
flags[2] = 1;
|
|
|
|
updateRoom();
|
2008-05-31 12:40:02 +00:00
|
|
|
updateScreen();
|
2008-06-01 20:58:05 +00:00
|
|
|
finishSound();
|
2008-05-27 12:02:26 +00:00
|
|
|
} else if (pickedObject == kVerbClose && fl == 143 && flags[2] == 1) {
|
2008-05-30 07:09:36 +00:00
|
|
|
copyBackground(0, 0, 0, 0, 320, 200, drawSurface1, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
flags[2] = 0;
|
|
|
|
updateRefresh_pre();
|
2008-06-02 23:09:19 +00:00
|
|
|
copyRect(228, 102, curX + 5, curY - 1, 47, 73, drawSurface3, screenSurface);
|
2008-05-31 12:40:02 +00:00
|
|
|
updateScreen();
|
2008-05-02 12:00:58 +00:00
|
|
|
pause(5);
|
2008-05-30 11:04:40 +00:00
|
|
|
playSound(4);
|
2008-05-02 12:00:58 +00:00
|
|
|
updateRoom();
|
2008-05-31 12:40:02 +00:00
|
|
|
updateScreen();
|
2008-06-01 20:58:05 +00:00
|
|
|
finishSound();
|
2008-05-27 12:02:26 +00:00
|
|
|
} else if (pickedObject == kVerbOpen && fl == 139 && flags[1] == 0) {
|
2008-05-30 07:09:36 +00:00
|
|
|
copyBackground(0, 0, 0, 0, 320, 200, drawSurface1, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
updateRefresh_pre();
|
2008-06-02 23:09:19 +00:00
|
|
|
copyRect(267, 1, curX - 14, curY - 2, 52, 73, drawSurface3, screenSurface);
|
2008-05-31 12:40:02 +00:00
|
|
|
updateScreen();
|
2008-05-02 12:00:58 +00:00
|
|
|
pause(19);
|
2008-05-30 11:04:40 +00:00
|
|
|
playSound(3);
|
2008-05-02 12:00:58 +00:00
|
|
|
flags[1] = 1;
|
|
|
|
visible[4] = 1;
|
|
|
|
visible[2] = 0;
|
|
|
|
updateRoom();
|
2008-05-31 12:40:02 +00:00
|
|
|
updateScreen();
|
2008-06-01 20:58:05 +00:00
|
|
|
finishSound();
|
2008-05-27 12:02:26 +00:00
|
|
|
} else if (pickedObject == kVerbPick && fl == 140) {
|
2008-05-30 07:09:36 +00:00
|
|
|
copyBackground(0, 0, 0, 0, 320, 200, drawSurface1, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
updateRefresh_pre();
|
2008-06-02 23:09:19 +00:00
|
|
|
copyRect(267, 1, curX - 14, curY - 2, 52, 73, drawSurface3, screenSurface);
|
2008-05-31 12:40:02 +00:00
|
|
|
updateScreen();
|
2008-05-02 12:00:58 +00:00
|
|
|
pause(19);
|
2008-05-11 11:20:40 +00:00
|
|
|
pickObject(9);
|
2008-05-02 12:00:58 +00:00
|
|
|
visible[4] = 0;
|
|
|
|
flags[10] = 1;
|
2008-05-27 12:02:26 +00:00
|
|
|
} else if (pickedObject == kVerbOpen && fl == 140)
|
2008-05-29 22:34:03 +00:00
|
|
|
hasAnswer = 1;
|
2008-05-02 12:00:58 +00:00
|
|
|
else
|
2008-05-29 22:34:03 +00:00
|
|
|
hasAnswer = 0;
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void DrasculaEngine::room_7(int fl){
|
2008-05-27 12:02:26 +00:00
|
|
|
if (pickedObject == kVerbLook && fl == 169)
|
2008-05-26 18:52:25 +00:00
|
|
|
talk(44);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbLook && fl == 164)
|
2008-05-26 18:52:25 +00:00
|
|
|
talk(35);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbPick && fl == 190) {
|
2008-05-11 11:20:40 +00:00
|
|
|
pickObject(17);
|
2008-05-02 12:00:58 +00:00
|
|
|
flags[35] = 1;
|
|
|
|
visible[3] = 0;
|
|
|
|
if (flags[7] == 1 && flags[26] == 1 && flags[34] == 1 && flags[35] == 1 && flags[37] == 1)
|
|
|
|
flags[38] = 1;
|
|
|
|
} else
|
2008-05-29 22:34:03 +00:00
|
|
|
hasAnswer = 0;
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void DrasculaEngine::room_8(int fl) {
|
2008-05-27 12:02:26 +00:00
|
|
|
if (pickedObject == kVerbLook && fl == 147 && flags[7] == 0) {
|
2008-05-26 18:52:25 +00:00
|
|
|
talk(58);
|
2008-05-11 11:20:40 +00:00
|
|
|
pickObject(15);
|
2008-05-02 12:00:58 +00:00
|
|
|
flags[7] = 1;
|
|
|
|
if (flags[7] == 1 && flags[26] == 1 && flags[34] == 1 && flags[35] == 1 && flags[37] == 1)
|
|
|
|
flags[38] = 1;
|
2008-05-27 12:02:26 +00:00
|
|
|
} else if (pickedObject == kVerbLook && fl == 147)
|
2008-05-26 18:52:25 +00:00
|
|
|
talk(59);
|
2008-05-02 12:00:58 +00:00
|
|
|
else
|
2008-05-29 22:34:03 +00:00
|
|
|
hasAnswer = 0;
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void DrasculaEngine::room_9(int fl){
|
2008-05-27 12:02:26 +00:00
|
|
|
if (pickedObject == kVerbLook && fl == 150)
|
2008-05-26 18:52:25 +00:00
|
|
|
talk(35);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbTalk && fl == 150)
|
2008-05-26 18:52:25 +00:00
|
|
|
talk(6);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbLook && fl == 51)
|
2008-05-26 18:52:25 +00:00
|
|
|
talk(60);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbTalk && fl == 51 && flags[4] == 0)
|
2008-05-02 12:00:58 +00:00
|
|
|
animation_4_2();
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbTalk && fl == 51 && flags[4] == 1)
|
2008-05-02 12:00:58 +00:00
|
|
|
animation_33_2();
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == 7 && fl == 51) {
|
2008-05-02 12:00:58 +00:00
|
|
|
animation_6_2();
|
2008-05-29 22:34:03 +00:00
|
|
|
removeObject(7);
|
2008-05-11 11:20:40 +00:00
|
|
|
pickObject(14);}
|
2008-05-02 12:00:58 +00:00
|
|
|
else
|
2008-05-29 22:34:03 +00:00
|
|
|
hasAnswer = 0;
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void DrasculaEngine::room_12(int fl){
|
2008-05-27 07:45:13 +00:00
|
|
|
if (roomParse(room12Actions, fl))
|
|
|
|
return;
|
|
|
|
|
2008-05-27 12:02:26 +00:00
|
|
|
if (pickedObject == kVerbOpen && fl == 156)
|
2008-05-11 11:20:40 +00:00
|
|
|
openDoor(16, 4);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbClose && fl == 156)
|
2008-05-27 07:17:15 +00:00
|
|
|
closeDoor(16, 4);
|
2008-05-02 12:00:58 +00:00
|
|
|
else
|
2008-05-29 22:34:03 +00:00
|
|
|
hasAnswer = 0;
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
bool DrasculaEngine::room_13(int fl) {
|
2008-05-27 12:02:26 +00:00
|
|
|
if (pickedObject == kVerbLook && fl == 51) {
|
2008-05-26 18:52:25 +00:00
|
|
|
talk(411);
|
2008-06-03 08:54:49 +00:00
|
|
|
trackProtagonist = 3;
|
2008-05-26 18:52:25 +00:00
|
|
|
talk(412);
|
2008-05-11 11:20:40 +00:00
|
|
|
strcpy(objName[1], "yoda");
|
2008-05-27 12:02:26 +00:00
|
|
|
} else if (pickedObject == kVerbTalk && fl == 51)
|
2008-05-29 22:34:03 +00:00
|
|
|
converse("op_7.cal");
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == 19 && fl == 51)
|
2008-05-02 12:00:58 +00:00
|
|
|
animation_1_3();
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == 9 && fl == 51) {
|
2008-05-02 12:00:58 +00:00
|
|
|
animation_2_3();
|
|
|
|
return true;
|
|
|
|
} else
|
2008-05-29 22:34:03 +00:00
|
|
|
hasAnswer = 0;
|
2008-05-02 12:00:58 +00:00
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
void DrasculaEngine::room_14(int fl) {
|
2008-05-30 14:58:09 +00:00
|
|
|
if (roomParse(room14Actions, fl))
|
|
|
|
return;
|
|
|
|
|
2008-05-27 12:02:26 +00:00
|
|
|
if (pickedObject == kVerbTalk && fl == 54 && flags[39] == 0)
|
2008-05-02 12:00:58 +00:00
|
|
|
animation_12_2();
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbTalk && fl == 54 && flags[39] == 1)
|
2008-05-26 18:52:25 +00:00
|
|
|
talk(109);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == 12 && fl == 54)
|
2008-05-02 12:00:58 +00:00
|
|
|
animation_26_2();
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbTalk && fl == 52 && flags[5] == 0)
|
2008-05-02 12:00:58 +00:00
|
|
|
animation_11_2();
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbTalk && fl == 52 && flags[5] == 1)
|
2008-05-02 12:00:58 +00:00
|
|
|
animation_36_2();
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbTalk && fl == 53)
|
2008-05-02 12:00:58 +00:00
|
|
|
animation_13_2();
|
|
|
|
else
|
2008-05-29 22:34:03 +00:00
|
|
|
hasAnswer = 0;
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void DrasculaEngine::room_15(int fl) {
|
2008-06-03 18:17:56 +00:00
|
|
|
if (roomParse(room15Actions, fl))
|
|
|
|
return;
|
|
|
|
|
|
|
|
if (pickedObject == 19 && fl == 188 && flags[27] == 0)
|
2008-05-26 18:52:25 +00:00
|
|
|
talk(335);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == 19 && fl == 188 && flags[27] == 1) {
|
2008-05-26 18:52:25 +00:00
|
|
|
talk(336);
|
2008-06-03 08:54:49 +00:00
|
|
|
trackProtagonist = 3;
|
2008-05-26 18:52:25 +00:00
|
|
|
talk(337);
|
2008-06-04 09:02:23 +00:00
|
|
|
talk_sync(_text[_lang][46], "46.als", "4442444244244");
|
2008-06-03 08:54:49 +00:00
|
|
|
trackProtagonist = 1;
|
2008-05-27 12:02:26 +00:00
|
|
|
} else if (pickedObject == 18 && fl == 188 && flags[26] == 0) {
|
2008-05-30 07:09:36 +00:00
|
|
|
copyBackground(0, 0, 0, 0, 320, 200, drawSurface1, screenSurface);
|
2008-06-02 23:09:19 +00:00
|
|
|
copyRect(133, 135, curX + 6, curY, 39, 63, drawSurface3, screenSurface);
|
2008-05-31 12:40:02 +00:00
|
|
|
updateScreen();
|
2008-05-30 11:04:40 +00:00
|
|
|
playSound(8);
|
2008-06-01 20:58:05 +00:00
|
|
|
finishSound();
|
2008-05-30 08:48:01 +00:00
|
|
|
talk(338);
|
2008-05-02 12:00:58 +00:00
|
|
|
flags[27] = 0;
|
2008-05-11 11:20:40 +00:00
|
|
|
pickObject(19);
|
2008-05-29 22:34:03 +00:00
|
|
|
removeObject(18);
|
2008-05-27 12:02:26 +00:00
|
|
|
} else if (pickedObject == kVerbMove && fl == 188 && flags[27] == 0) {
|
2008-05-02 12:00:58 +00:00
|
|
|
animation_34_2();
|
2008-05-26 18:52:25 +00:00
|
|
|
talk(339);
|
2008-05-11 11:20:40 +00:00
|
|
|
pickObject(16);
|
2008-05-02 12:00:58 +00:00
|
|
|
flags[26] = 1;
|
|
|
|
flags[27] = 1;
|
|
|
|
if (flags[7] == 1 && flags[26] == 1 && flags[34] == 1 && flags[35] == 1 && flags[37] == 1)
|
|
|
|
flags[38] = 1;
|
2008-06-03 18:17:56 +00:00
|
|
|
} else
|
2008-05-29 22:34:03 +00:00
|
|
|
hasAnswer = 0;
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void DrasculaEngine::room_16(int fl) {
|
2008-06-03 18:17:56 +00:00
|
|
|
if (roomParse(room16Actions, fl))
|
|
|
|
return;
|
|
|
|
|
|
|
|
if (pickedObject == kVerbOpen && fl == 163)
|
2008-05-11 11:20:40 +00:00
|
|
|
openDoor(17, 0);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbClose && fl == 163)
|
2008-05-27 07:17:15 +00:00
|
|
|
closeDoor(17, 0);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbTalk && fl == 183) {
|
2008-05-30 08:48:01 +00:00
|
|
|
talk(341);
|
2008-05-02 12:00:58 +00:00
|
|
|
pause(10);
|
2008-06-04 09:02:23 +00:00
|
|
|
talk_sync(_text[_lang][50], "50.als", "11111111111144432554433");
|
2008-05-02 12:00:58 +00:00
|
|
|
pause(3);
|
2008-06-02 10:58:45 +00:00
|
|
|
talk_baul(83);
|
2008-05-27 12:02:26 +00:00
|
|
|
} else if (pickedObject == kVerbOpen && fl == 183) {
|
2008-05-11 11:20:40 +00:00
|
|
|
openDoor(19, NO_DOOR);
|
2008-05-02 12:00:58 +00:00
|
|
|
if (flags[20] == 0) {
|
|
|
|
flags[20] = 1;
|
2008-06-03 08:54:49 +00:00
|
|
|
trackProtagonist = 3;
|
2008-05-02 12:00:58 +00:00
|
|
|
updateRoom();
|
2008-05-31 12:40:02 +00:00
|
|
|
updateScreen();
|
2008-05-30 08:48:01 +00:00
|
|
|
talk(342);
|
2008-05-11 11:20:40 +00:00
|
|
|
pickObject(22);
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
2008-05-27 12:02:26 +00:00
|
|
|
} else if (pickedObject == kVerbClose && fl == 183)
|
2008-05-27 07:17:15 +00:00
|
|
|
closeDoor(19, NO_DOOR);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbLook && fl == 187) {
|
2008-05-30 08:48:01 +00:00
|
|
|
talk(343);
|
2008-06-03 08:54:49 +00:00
|
|
|
trackProtagonist = 3;
|
2008-05-02 12:00:58 +00:00
|
|
|
updateRoom();
|
2008-05-31 12:40:02 +00:00
|
|
|
updateScreen();
|
2008-05-30 08:48:01 +00:00
|
|
|
talk(344);
|
2008-06-03 18:17:56 +00:00
|
|
|
} else
|
2008-05-29 22:34:03 +00:00
|
|
|
hasAnswer = 0;
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void DrasculaEngine::room_17(int fl) {
|
2008-05-27 12:02:26 +00:00
|
|
|
if (pickedObject == kVerbLook && fl == 177)
|
2008-05-30 09:28:52 +00:00
|
|
|
talk(35);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbTalk && fl == 177 && flags[18] == 0)
|
2008-05-30 09:28:52 +00:00
|
|
|
talk(6);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbTalk && fl == 177 && flags[18] == 1)
|
2008-05-02 12:00:58 +00:00
|
|
|
animation_18_2();
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbOpen && fl == 177 && flags[18] == 1)
|
2008-05-30 08:48:01 +00:00
|
|
|
talk(346);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbOpen && fl == 177 && flags[14] == 0 && flags[18] == 0)
|
2008-05-02 12:00:58 +00:00
|
|
|
animation_22_2();
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbOpen && fl == 177 && flags[14] == 1)
|
2008-05-11 11:20:40 +00:00
|
|
|
openDoor(15, 1);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbClose && fl == 177 && flags[14] == 1)
|
2008-05-27 07:17:15 +00:00
|
|
|
closeDoor(15, 1);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == 11 && fl == 50 && flags[22] == 0) {
|
2008-05-30 08:48:01 +00:00
|
|
|
talk(347);
|
2008-05-02 12:00:58 +00:00
|
|
|
flags[29] = 1;
|
2008-05-11 11:20:40 +00:00
|
|
|
pickObject(23);
|
2008-05-29 22:34:03 +00:00
|
|
|
removeObject(11);
|
2008-05-02 12:00:58 +00:00
|
|
|
} else
|
2008-05-29 22:34:03 +00:00
|
|
|
hasAnswer = 0;
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void DrasculaEngine::room_18(int fl) {
|
2008-06-03 18:17:56 +00:00
|
|
|
if (roomParse(room18Actions, fl))
|
|
|
|
return;
|
|
|
|
|
2008-05-27 12:02:26 +00:00
|
|
|
if (pickedObject == kVerbTalk && fl == 55 && flags[36] == 0)
|
2008-05-02 12:00:58 +00:00
|
|
|
animation_24_2();
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbTalk && fl == 55 && flags[36] == 1)
|
2008-05-30 08:48:01 +00:00
|
|
|
talk(109);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbPick && fl == 182) {
|
2008-05-30 07:09:36 +00:00
|
|
|
copyBackground(0, 0, 0, 0, 320, 200, drawSurface1, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
updateRefresh_pre();
|
2008-06-02 23:09:19 +00:00
|
|
|
copyRect(44, 1, curX, curY, 41, 70, drawSurface2, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
updateRefresh();
|
2008-05-31 12:40:02 +00:00
|
|
|
updateScreen();
|
2008-05-02 12:00:58 +00:00
|
|
|
pause(4);
|
2008-05-11 11:20:40 +00:00
|
|
|
pickObject(12);
|
2008-05-02 12:00:58 +00:00
|
|
|
visible[2] = 0;
|
|
|
|
flags[28] = 1;
|
2008-05-30 14:25:03 +00:00
|
|
|
} else if (fl == 55 && flags[38] == 0 && flags[33] == 0) {
|
|
|
|
if (pickedObject == 8 || pickedObject == 13 || pickedObject == 15 ||
|
|
|
|
pickedObject == 16 || pickedObject == 17)
|
|
|
|
talk(349);
|
|
|
|
} else if (fl == 55 && flags[38] == 1 && flags[33] == 1) {
|
|
|
|
if (pickedObject == 8 || pickedObject == 13 || pickedObject == 15 ||
|
|
|
|
pickedObject == 16 || pickedObject == 17)
|
|
|
|
animation_24_2();
|
|
|
|
}
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == 11 && fl == 50 && flags[22] == 0) {
|
2008-06-03 08:54:49 +00:00
|
|
|
trackProtagonist = 3;
|
2008-05-02 12:00:58 +00:00
|
|
|
updateRoom();
|
2008-05-31 12:40:02 +00:00
|
|
|
updateScreen();
|
2008-05-30 07:09:36 +00:00
|
|
|
copyBackground(0, 0, 0, 0, 320, 200, drawSurface1, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
updateRefresh_pre();
|
2008-06-02 23:09:19 +00:00
|
|
|
copyRect(1, 1, curX - 1, curY + 3, 42, 67, drawSurface2, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
updateRefresh();
|
2008-05-31 12:40:02 +00:00
|
|
|
updateScreen();
|
2008-05-02 12:00:58 +00:00
|
|
|
pause(6);
|
2008-05-30 08:48:01 +00:00
|
|
|
talk(347);
|
2008-05-02 12:00:58 +00:00
|
|
|
flags[29] = 1;
|
2008-05-11 11:20:40 +00:00
|
|
|
pickObject(23);
|
2008-05-29 22:34:03 +00:00
|
|
|
removeObject(11);
|
2008-05-02 12:00:58 +00:00
|
|
|
} else
|
2008-05-29 22:34:03 +00:00
|
|
|
hasAnswer = 0;
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void DrasculaEngine::room_19(int fl) {
|
2008-05-27 12:02:26 +00:00
|
|
|
if (pickedObject == kVerbLook && fl == 214)
|
2008-05-30 08:48:01 +00:00
|
|
|
talk(191);
|
2008-05-02 12:00:58 +00:00
|
|
|
else
|
2008-05-29 22:34:03 +00:00
|
|
|
hasAnswer = 0;
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
bool DrasculaEngine::room_21(int fl) {
|
2008-05-27 12:02:26 +00:00
|
|
|
if (pickedObject == kVerbOpen && fl == 101 && flags[28] == 0)
|
2008-05-30 08:48:01 +00:00
|
|
|
talk(419);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbOpen && fl == 101 && flags[28] == 1)
|
2008-05-11 11:20:40 +00:00
|
|
|
openDoor(0, 1);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbClose && fl == 101)
|
2008-05-27 07:17:15 +00:00
|
|
|
closeDoor(0, 1);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if(pickedObject == kVerbPick && fl == 141) {
|
2008-05-11 11:20:40 +00:00
|
|
|
pickObject(19);
|
2008-05-02 12:00:58 +00:00
|
|
|
visible[2] = 0;
|
|
|
|
flags[10] = 1;
|
2008-05-27 12:02:26 +00:00
|
|
|
} else if(pickedObject == 7 && fl == 101) {
|
2008-05-02 12:00:58 +00:00
|
|
|
flags[28] = 1;
|
2008-05-11 11:20:40 +00:00
|
|
|
openDoor(0, 1);
|
|
|
|
withoutVerb();
|
2008-05-27 12:02:26 +00:00
|
|
|
} else if (pickedObject == 21 && fl == 179) {
|
2008-05-02 12:00:58 +00:00
|
|
|
animation_9_4();
|
|
|
|
return true;
|
|
|
|
} else
|
2008-05-29 22:34:03 +00:00
|
|
|
hasAnswer = 0;
|
2008-05-02 12:00:58 +00:00
|
|
|
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
void DrasculaEngine::room_22(int fl) {
|
2008-05-27 12:02:26 +00:00
|
|
|
if (pickedObject == kVerbPick && fl == 140)
|
2008-05-30 09:28:52 +00:00
|
|
|
talk(7);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == 11 && fl == 140) {
|
2008-05-11 11:20:40 +00:00
|
|
|
pickObject(18);
|
2008-05-02 12:00:58 +00:00
|
|
|
visible[1] = 0;
|
|
|
|
flags[24] = 1;
|
2008-05-27 12:02:26 +00:00
|
|
|
} else if (pickedObject == 22 && fl == 52) {
|
2008-05-30 07:24:32 +00:00
|
|
|
animate("up.bin",14);
|
2008-05-02 12:00:58 +00:00
|
|
|
flags[26]=1;
|
2008-05-30 11:04:40 +00:00
|
|
|
playSound(1);
|
2008-05-29 22:34:03 +00:00
|
|
|
hiccup(14);
|
2008-06-01 20:58:05 +00:00
|
|
|
finishSound();
|
2008-05-11 11:20:40 +00:00
|
|
|
withoutVerb();
|
2008-05-29 22:34:03 +00:00
|
|
|
removeObject(22);
|
2008-05-31 09:16:26 +00:00
|
|
|
updateVisible();
|
2008-06-03 08:54:49 +00:00
|
|
|
trackProtagonist = 3;
|
2008-05-30 08:48:01 +00:00
|
|
|
talk(499);
|
|
|
|
talk(500);
|
2008-05-27 12:02:26 +00:00
|
|
|
} else if (pickedObject == kVerbLook && fl == 52)
|
2008-05-30 08:48:01 +00:00
|
|
|
talk(497);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbTalk && fl == 52)
|
2008-05-30 08:48:01 +00:00
|
|
|
talk(498);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbPick && fl == 180 && flags[26] == 0)
|
2008-05-30 08:48:01 +00:00
|
|
|
talk(420);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbPick && fl == 180 && flags[26] == 1) {
|
2008-05-11 11:20:40 +00:00
|
|
|
pickObject(7);
|
2008-05-02 12:00:58 +00:00
|
|
|
visible[3] = 0;
|
|
|
|
flags[27] = 1;
|
|
|
|
} else
|
2008-05-29 22:34:03 +00:00
|
|
|
hasAnswer = 0;
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void DrasculaEngine::room_23(int fl) {
|
2008-05-27 12:02:26 +00:00
|
|
|
if (pickedObject == kVerbOpen && fl == 103) {
|
2008-05-11 11:20:40 +00:00
|
|
|
openDoor(0, 0);
|
2008-05-31 09:16:26 +00:00
|
|
|
updateVisible();
|
2008-05-27 12:02:26 +00:00
|
|
|
} else if(pickedObject == kVerbClose && fl == 103) {
|
2008-05-27 07:17:15 +00:00
|
|
|
closeDoor(0, 0);
|
2008-05-31 09:16:26 +00:00
|
|
|
updateVisible();
|
2008-05-27 12:02:26 +00:00
|
|
|
} else if(pickedObject == kVerbOpen && fl == 104)
|
2008-05-11 11:20:40 +00:00
|
|
|
openDoor(1, 1);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if(pickedObject == kVerbClose && fl == 104)
|
2008-05-27 07:17:15 +00:00
|
|
|
closeDoor(1, 1);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if(pickedObject == kVerbPick && fl == 142) {
|
2008-05-11 11:20:40 +00:00
|
|
|
pickObject(8);
|
2008-05-02 12:00:58 +00:00
|
|
|
visible[2] = 0;
|
|
|
|
flags[11] = 1;
|
|
|
|
if (flags[22] == 1 && flags[14] == 1)
|
|
|
|
flags[18] = 1;
|
|
|
|
if (flags[18] == 1)
|
|
|
|
animation_6_4();
|
|
|
|
} else
|
2008-05-29 22:34:03 +00:00
|
|
|
hasAnswer = 0;
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void DrasculaEngine::room_24(int fl) {
|
2008-05-27 12:02:26 +00:00
|
|
|
if (pickedObject == kVerbOpen && fl == 105)
|
2008-05-11 11:20:40 +00:00
|
|
|
openDoor(1, 0);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbClose && fl == 105)
|
2008-05-27 07:17:15 +00:00
|
|
|
closeDoor(1, 0);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbOpen && fl == 106)
|
2008-05-11 11:20:40 +00:00
|
|
|
openDoor(2, 1);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbClose && fl == 106)
|
2008-05-27 07:17:15 +00:00
|
|
|
closeDoor(2, 1);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbLook && fl == 151)
|
2008-05-30 08:48:01 +00:00
|
|
|
talk(461);
|
2008-05-02 12:00:58 +00:00
|
|
|
else
|
2008-05-29 22:34:03 +00:00
|
|
|
hasAnswer = 0;
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void DrasculaEngine::room_26(int fl) {
|
2008-06-03 18:17:56 +00:00
|
|
|
if (roomParse(room26Actions, fl))
|
|
|
|
return;
|
|
|
|
|
2008-05-27 12:02:26 +00:00
|
|
|
if (pickedObject == kVerbOpen && fl == 107 && flags[30] == 0)
|
2008-05-11 11:20:40 +00:00
|
|
|
openDoor(2, 0);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbOpen && fl == 107 && flags[30] == 1)
|
2008-05-30 08:48:01 +00:00
|
|
|
talk(421);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbClose && fl == 107)
|
2008-05-27 07:17:15 +00:00
|
|
|
closeDoor(2, 0);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == 10 && fl == 50 && flags[18] == 1 && flags[12] == 1)
|
2008-05-02 12:00:58 +00:00
|
|
|
animation_5_4();
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == 8 && fl == 50 && flags[18] == 1 && flags[12] == 1)
|
2008-05-02 12:00:58 +00:00
|
|
|
animation_5_4();
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == 12 && fl == 50 && flags[18] == 1 && flags[12] == 1)
|
2008-05-02 12:00:58 +00:00
|
|
|
animation_5_4();
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == 16 && fl == 50 && flags[18] == 1 && flags[12] == 1)
|
2008-05-02 12:00:58 +00:00
|
|
|
animation_5_4();
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbPick && fl == 143 && flags[18] == 1) {
|
2008-06-03 08:54:49 +00:00
|
|
|
gotoObject(260, 180);
|
2008-05-11 11:20:40 +00:00
|
|
|
pickObject(10);
|
2008-05-02 12:00:58 +00:00
|
|
|
visible[1] = 0;
|
|
|
|
flags[12] = 1;
|
2008-05-27 07:17:15 +00:00
|
|
|
closeDoor(2, 0);
|
2008-06-03 08:54:49 +00:00
|
|
|
trackProtagonist = 2;
|
2008-06-02 20:32:36 +00:00
|
|
|
talk_igor(27, kIgorDoor);
|
2008-05-02 12:00:58 +00:00
|
|
|
flags[30] = 1;
|
2008-06-02 20:32:36 +00:00
|
|
|
talk_igor(28, kIgorDoor);
|
2008-06-03 08:54:49 +00:00
|
|
|
gotoObject(153, 180);
|
2008-05-27 12:02:26 +00:00
|
|
|
} else if (pickedObject == kVerbPick && fl == 143 && flags[18] == 0) {
|
2008-06-03 08:54:49 +00:00
|
|
|
gotoObject(260, 180);
|
2008-05-30 07:09:36 +00:00
|
|
|
copyBackground(80, 78, 199, 94, 38, 27, drawSurface3, screenSurface);
|
|
|
|
updateScreen(199, 94, 199, 94, 38, 27, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
pause(3);
|
2008-06-02 20:32:36 +00:00
|
|
|
talk_igor(25, kIgorWig);
|
2008-06-03 08:54:49 +00:00
|
|
|
gotoObject(153, 180);
|
2008-05-27 12:02:26 +00:00
|
|
|
} else if (pickedObject == kVerbTalk && fl == 51)
|
2008-05-02 12:00:58 +00:00
|
|
|
animation_1_4();
|
|
|
|
else
|
2008-05-29 22:34:03 +00:00
|
|
|
hasAnswer = 0;
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void DrasculaEngine::room_27(int fl) {
|
2008-05-27 12:02:26 +00:00
|
|
|
if (pickedObject == kVerbOpen && fl == 110)
|
2008-05-11 11:20:40 +00:00
|
|
|
openDoor(6, 1);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbClose && fl == 110)
|
2008-05-27 07:17:15 +00:00
|
|
|
closeDoor(6, 1);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbOpen && fl == 116 && flags[23] == 0)
|
2008-05-30 08:48:01 +00:00
|
|
|
talk(419);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbOpen && fl == 116 && flags[23] == 1)
|
2008-05-11 11:20:40 +00:00
|
|
|
openDoor(5, 3);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == 17 && fl == 116) {
|
2008-05-02 12:00:58 +00:00
|
|
|
flags[23] = 1;
|
2008-05-11 11:20:40 +00:00
|
|
|
openDoor(5,3);
|
|
|
|
withoutVerb();
|
2008-05-27 12:02:26 +00:00
|
|
|
} else if (pickedObject == kVerbLook && fl == 175)
|
2008-05-30 08:48:01 +00:00
|
|
|
talk(429);
|
2008-05-02 12:00:58 +00:00
|
|
|
else if (fl == 150)
|
2008-05-30 08:48:01 +00:00
|
|
|
talk(460);
|
2008-05-02 12:00:58 +00:00
|
|
|
else
|
2008-05-29 22:34:03 +00:00
|
|
|
hasAnswer = 0;
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void DrasculaEngine::room_29(int fl) {
|
2008-06-03 18:17:56 +00:00
|
|
|
if (roomParse(room29Actions, fl))
|
|
|
|
return;
|
|
|
|
|
2008-05-27 12:02:26 +00:00
|
|
|
if (pickedObject == kVerbOpen && fl == 114)
|
2008-05-11 11:20:40 +00:00
|
|
|
openDoor(4, 1);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbClose && fl == 114)
|
2008-05-27 07:17:15 +00:00
|
|
|
closeDoor(4, 1);
|
2008-05-02 12:00:58 +00:00
|
|
|
else
|
2008-05-29 22:34:03 +00:00
|
|
|
hasAnswer = 0;
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void DrasculaEngine::room_30(int fl) {
|
2008-05-27 12:02:26 +00:00
|
|
|
if (pickedObject == kVerbOpen && fl == 115)
|
2008-05-11 11:20:40 +00:00
|
|
|
openDoor(4, 0);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbClose && fl == 115)
|
2008-05-27 07:17:15 +00:00
|
|
|
closeDoor(4, 0);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbOpen && fl == 144 && flags[19] == 0)
|
2008-05-30 08:48:01 +00:00
|
|
|
talk(422);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbOpen && fl == 144 && flags[19] == 1 && flags[22] == 1)
|
2008-05-11 11:20:40 +00:00
|
|
|
openDoor(16, 1);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbOpen && fl == 144 && flags[19] == 1 && flags[22] == 0) {
|
2008-05-11 11:20:40 +00:00
|
|
|
openDoor(16, 1);
|
2008-05-30 08:48:01 +00:00
|
|
|
talk(423);
|
2008-05-02 12:00:58 +00:00
|
|
|
flags[22] = 1;
|
2008-05-11 11:20:40 +00:00
|
|
|
pickObject(12);
|
2008-05-02 12:00:58 +00:00
|
|
|
if (flags[11] == 1 && flags[14] == 1)
|
|
|
|
flags[18] = 1;
|
|
|
|
if (flags[18] == 1)
|
|
|
|
animation_6_4();
|
2008-05-27 12:02:26 +00:00
|
|
|
} else if (pickedObject == kVerbClose && fl == 144)
|
2008-05-27 07:17:15 +00:00
|
|
|
closeDoor(16, 1);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == 13 && fl == 144) {
|
2008-05-30 08:48:01 +00:00
|
|
|
talk(424);
|
2008-05-02 12:00:58 +00:00
|
|
|
flags[19] = 1;
|
2008-05-27 12:02:26 +00:00
|
|
|
} else if (pickedObject == kVerbOpen && fl == 157)
|
2008-05-30 08:48:01 +00:00
|
|
|
talk(468);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbLook && fl == 158)
|
2008-05-30 08:48:01 +00:00
|
|
|
talk(469);
|
2008-05-02 12:00:58 +00:00
|
|
|
else
|
2008-05-29 22:34:03 +00:00
|
|
|
hasAnswer = 0;
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void DrasculaEngine::room_31(int fl) {
|
2008-05-27 12:02:26 +00:00
|
|
|
if (pickedObject == kVerbPick && fl == 145) {
|
2008-05-11 11:20:40 +00:00
|
|
|
pickObject(11);
|
2008-05-02 12:00:58 +00:00
|
|
|
visible[1] = 0;
|
|
|
|
flags[13] = 1;
|
2008-05-27 12:02:26 +00:00
|
|
|
} else if (pickedObject == kVerbOpen && fl == 117)
|
2008-05-11 11:20:40 +00:00
|
|
|
openDoor(5, 0);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbClose && fl == 117)
|
2008-05-27 07:17:15 +00:00
|
|
|
closeDoor(5, 0);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbLook && fl == 161)
|
2008-05-30 08:48:01 +00:00
|
|
|
talk(470);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbOpen && fl == 161)
|
2008-05-30 08:48:01 +00:00
|
|
|
talk(471);
|
2008-05-02 12:00:58 +00:00
|
|
|
else
|
2008-05-29 22:34:03 +00:00
|
|
|
hasAnswer = 0;
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void DrasculaEngine::room_34(int fl) {
|
2008-05-27 12:02:26 +00:00
|
|
|
if (pickedObject == kVerbMove && fl == 146)
|
2008-05-02 12:00:58 +00:00
|
|
|
animation_8_4();
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbLook && fl == 146)
|
2008-05-30 08:48:01 +00:00
|
|
|
talk(458);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbPick && fl == 146)
|
2008-05-30 08:48:01 +00:00
|
|
|
talk(459);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbOpen && fl == 120 && flags[25] == 1)
|
2008-05-11 11:20:40 +00:00
|
|
|
openDoor(8, 2);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbOpen && fl == 120 && flags[25] == 0) {
|
2008-05-11 11:20:40 +00:00
|
|
|
openDoor(8, 2);
|
2008-06-03 08:54:49 +00:00
|
|
|
trackProtagonist = 3;
|
2008-05-30 08:48:01 +00:00
|
|
|
talk(425);
|
2008-05-11 11:20:40 +00:00
|
|
|
pickObject(14);
|
2008-05-02 12:00:58 +00:00
|
|
|
flags[25] = 1;
|
2008-05-27 12:02:26 +00:00
|
|
|
} else if (pickedObject == kVerbClose && fl == 120)
|
2008-05-27 07:17:15 +00:00
|
|
|
closeDoor(8, 2);
|
2008-05-02 12:00:58 +00:00
|
|
|
else
|
2008-05-29 22:34:03 +00:00
|
|
|
hasAnswer=0;
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void DrasculaEngine::room_35(int fl) {
|
2008-05-27 12:02:26 +00:00
|
|
|
if (pickedObject == kVerbPick && fl == 148) {
|
2008-05-11 11:20:40 +00:00
|
|
|
pickObject(16);
|
2008-05-02 12:00:58 +00:00
|
|
|
visible[2] = 0;
|
|
|
|
flags[14] = 1;
|
|
|
|
if (flags[11] == 1 && flags[22] == 1)
|
|
|
|
flags[18] = 1;
|
|
|
|
if (flags[18] == 1)
|
|
|
|
animation_6_4();
|
2008-05-27 12:02:26 +00:00
|
|
|
} else if (pickedObject == kVerbPick && fl == 147) {
|
2008-05-30 08:48:01 +00:00
|
|
|
talk(426);
|
2008-05-11 11:20:40 +00:00
|
|
|
pickObject(15);
|
2008-05-02 12:00:58 +00:00
|
|
|
visible[1] = 0;
|
|
|
|
flags[15] = 1;
|
|
|
|
flags[17] = 1;
|
2008-05-31 09:16:26 +00:00
|
|
|
updateVisible();
|
2008-05-27 12:02:26 +00:00
|
|
|
} else if (pickedObject == kVerbPick && fl == 149) {
|
2008-05-11 11:20:40 +00:00
|
|
|
pickObject(13);
|
2008-05-02 12:00:58 +00:00
|
|
|
visible[3] = 0;
|
|
|
|
flags[17] = 0;
|
|
|
|
} else
|
2008-05-29 22:34:03 +00:00
|
|
|
hasAnswer = 0;
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void DrasculaEngine::room_44(int fl) {
|
2008-05-27 12:02:26 +00:00
|
|
|
if (pickedObject == kVerbLook && fl == 172)
|
2008-05-30 08:48:01 +00:00
|
|
|
talk(428);
|
2008-05-02 12:00:58 +00:00
|
|
|
else
|
2008-05-29 22:34:03 +00:00
|
|
|
hasAnswer = 0;
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void DrasculaEngine::room_49(int fl){
|
2008-05-27 12:02:26 +00:00
|
|
|
if (pickedObject == kVerbTalk && fl ==51)
|
2008-05-29 22:34:03 +00:00
|
|
|
converse("op_9.cal");
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbLook && fl == 51)
|
2008-05-30 08:48:01 +00:00
|
|
|
talk(132);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if ((pickedObject == 8 && fl == 51) || (pickedObject == 8 && fl == 203))
|
2008-05-02 12:00:58 +00:00
|
|
|
animation_5_5();
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbLook && fl == 200)
|
2008-05-30 08:48:01 +00:00
|
|
|
talk(133);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbTalk && fl == 200)
|
2008-05-30 08:48:01 +00:00
|
|
|
talk(134);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbLook && fl == 201)
|
2008-05-30 08:48:01 +00:00
|
|
|
talk(135);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbLook && fl == 203)
|
2008-05-30 08:48:01 +00:00
|
|
|
talk(137);
|
2008-05-02 12:00:58 +00:00
|
|
|
else
|
2008-05-29 22:34:03 +00:00
|
|
|
hasAnswer = 0;
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void DrasculaEngine::room_53(int fl) {
|
2008-05-27 12:02:26 +00:00
|
|
|
if (pickedObject == kVerbPick && fl == 120) {
|
2008-05-11 11:20:40 +00:00
|
|
|
pickObject(16);
|
2008-05-02 12:00:58 +00:00
|
|
|
visible[3] = 0;
|
2008-05-27 12:02:26 +00:00
|
|
|
} else if (pickedObject == kVerbLook && fl == 121)
|
2008-05-30 08:48:01 +00:00
|
|
|
talk(128);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbLook && fl == 209)
|
2008-05-30 08:48:01 +00:00
|
|
|
talk(129);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbMove && fl == 123)
|
2008-05-02 12:00:58 +00:00
|
|
|
animation_11_5();
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbLook && fl == 52)
|
2008-05-30 08:48:01 +00:00
|
|
|
talk(447);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbTalk && fl == 52)
|
2008-05-30 08:48:01 +00:00
|
|
|
talk(131);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == 12 && fl == 52)
|
2008-05-02 12:00:58 +00:00
|
|
|
animation_10_5();
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == 15 && fl == 52)
|
2008-05-02 12:00:58 +00:00
|
|
|
animation_9_5();
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == 16 && fl == 121) {
|
2008-05-02 12:00:58 +00:00
|
|
|
flags[2] = 1;
|
2008-05-11 11:20:40 +00:00
|
|
|
withoutVerb();
|
2008-05-31 09:16:26 +00:00
|
|
|
updateVisible();
|
2008-05-27 12:02:26 +00:00
|
|
|
} else if (pickedObject == 16) {
|
2008-05-30 08:48:01 +00:00
|
|
|
talk(439);
|
2008-05-11 11:20:40 +00:00
|
|
|
withoutVerb();
|
2008-05-02 12:00:58 +00:00
|
|
|
visible[3] = 1;
|
|
|
|
} else
|
2008-05-29 22:34:03 +00:00
|
|
|
hasAnswer = 0;
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void DrasculaEngine::room_54(int fl) {
|
2008-05-27 12:02:26 +00:00
|
|
|
if ((pickedObject == kVerbTalk && fl == 118) || (pickedObject == kVerbLook && fl == 118 && flags[0] == 0))
|
2008-05-02 12:00:58 +00:00
|
|
|
animation_1_5();
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbLook && fl == 118 && flags[0]==1)
|
2008-05-30 08:48:01 +00:00
|
|
|
talk(124);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbLook && fl == 53)
|
2008-05-30 08:48:01 +00:00
|
|
|
talk(127);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbTalk && fl == 53 && flags[14] == 0) {
|
2008-05-30 08:48:01 +00:00
|
|
|
talk(288);
|
2008-05-02 12:00:58 +00:00
|
|
|
flags[12] = 1;
|
|
|
|
pause(10);
|
2008-05-30 14:25:03 +00:00
|
|
|
talk_mus(1);
|
2008-05-30 08:48:01 +00:00
|
|
|
talk(289);
|
2008-05-30 14:25:03 +00:00
|
|
|
talk_mus(2);
|
|
|
|
talk_mus(3);
|
2008-05-29 22:34:03 +00:00
|
|
|
converse("op_10.cal");
|
2008-05-02 12:00:58 +00:00
|
|
|
flags[12] = 0;
|
|
|
|
flags[14] = 1;
|
2008-05-27 12:02:26 +00:00
|
|
|
} else if (pickedObject == kVerbTalk && fl == 53 && flags[14] == 1)
|
2008-05-30 08:48:01 +00:00
|
|
|
talk(109);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbPick && fl == 9999 && flags[13] == 0) {
|
2008-05-11 11:20:40 +00:00
|
|
|
pickObject(8);
|
2008-05-02 12:00:58 +00:00
|
|
|
flags[13] = 1;
|
2008-05-30 14:25:03 +00:00
|
|
|
talk_mus(10);
|
2008-05-31 09:16:26 +00:00
|
|
|
updateVisible();
|
2008-05-27 12:02:26 +00:00
|
|
|
} else if (pickedObject == kVerbOpen && fl == 119)
|
2008-05-30 08:48:01 +00:00
|
|
|
talk(125);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbLook && fl == 119)
|
2008-05-30 08:48:01 +00:00
|
|
|
talk(126);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == 10 && fl == 119) {
|
2008-05-02 12:00:58 +00:00
|
|
|
pause(4);
|
2008-05-30 08:48:01 +00:00
|
|
|
talk(436);
|
2008-05-11 11:20:40 +00:00
|
|
|
withoutVerb();
|
2008-05-29 22:34:03 +00:00
|
|
|
removeObject(10);
|
2008-05-02 12:00:58 +00:00
|
|
|
} else
|
2008-05-29 22:34:03 +00:00
|
|
|
hasAnswer = 0;
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void DrasculaEngine::room_55(int fl) {
|
2008-05-27 12:02:26 +00:00
|
|
|
if (pickedObject == kVerbPick && fl == 122) {
|
2008-05-11 11:20:40 +00:00
|
|
|
pickObject(12);
|
2008-05-02 12:00:58 +00:00
|
|
|
flags[8] = 1;
|
2008-05-31 09:16:26 +00:00
|
|
|
updateVisible();
|
2008-05-27 12:02:26 +00:00
|
|
|
} else if (pickedObject == kVerbLook && fl == 122)
|
2008-05-30 08:48:01 +00:00
|
|
|
talk(138);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbLook && fl == 204)
|
2008-05-30 08:48:01 +00:00
|
|
|
talk(139);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbLook && fl == 205)
|
2008-05-30 08:48:01 +00:00
|
|
|
talk(140);
|
2008-05-02 12:00:58 +00:00
|
|
|
else if (fl == 206) {
|
2008-05-30 11:04:40 +00:00
|
|
|
playSound(11);
|
2008-05-30 07:24:32 +00:00
|
|
|
animate("det.bin", 17);
|
2008-06-01 20:58:05 +00:00
|
|
|
finishSound();
|
2008-06-03 08:54:49 +00:00
|
|
|
gotoObject(curX - 3, curY + curHeight + 6);
|
2008-05-02 12:00:58 +00:00
|
|
|
} else
|
2008-05-29 22:34:03 +00:00
|
|
|
hasAnswer = 0;
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
bool DrasculaEngine::room_56(int fl) {
|
2008-05-27 12:02:26 +00:00
|
|
|
if (pickedObject == kVerbOpen && fl == 124) {
|
2008-05-02 12:00:58 +00:00
|
|
|
animation_14_5();
|
|
|
|
return true;
|
2008-05-27 12:02:26 +00:00
|
|
|
} else if (pickedObject == kVerbLook && fl == 124)
|
2008-05-30 08:48:01 +00:00
|
|
|
talk(450);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbOpen && fl == 207)
|
2008-05-30 08:48:01 +00:00
|
|
|
talk(141);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbLook && fl == 208)
|
2008-05-30 08:48:01 +00:00
|
|
|
talk(142);
|
2008-05-02 12:00:58 +00:00
|
|
|
else
|
2008-05-29 22:34:03 +00:00
|
|
|
hasAnswer = 0;
|
2008-05-02 12:00:58 +00:00
|
|
|
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
void DrasculaEngine::room_58(int fl) {
|
2008-05-27 12:02:26 +00:00
|
|
|
if (pickedObject == kVerbMove && fl == 103)
|
2008-05-02 12:00:58 +00:00
|
|
|
animation_7_6();
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbLook && fl == 104)
|
2008-05-30 08:48:01 +00:00
|
|
|
talk(454);
|
2008-05-02 12:00:58 +00:00
|
|
|
else
|
2008-05-29 22:34:03 +00:00
|
|
|
hasAnswer = 0;
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void DrasculaEngine::room_59(int fl) {
|
2008-05-27 12:02:26 +00:00
|
|
|
if ((pickedObject == kVerbTalk && fl == 51) || (pickedObject == kVerbLook && fl == 51)) {
|
2008-05-02 12:00:58 +00:00
|
|
|
flags[9] = 1;
|
2008-05-27 16:13:41 +00:00
|
|
|
talk(259);
|
2008-05-29 22:34:03 +00:00
|
|
|
talk_bj_bed(13);
|
2008-05-27 16:13:41 +00:00
|
|
|
talk(263);
|
2008-05-29 22:34:03 +00:00
|
|
|
talk_bj_bed(14);
|
2008-05-02 12:00:58 +00:00
|
|
|
pause(40);
|
2008-05-27 16:13:41 +00:00
|
|
|
talk(264);
|
2008-05-29 22:34:03 +00:00
|
|
|
talk_bj_bed(15);
|
2008-05-27 16:13:41 +00:00
|
|
|
talk(265);
|
2008-05-02 12:00:58 +00:00
|
|
|
flags[9] = 0;
|
|
|
|
if (flags[11] == 0) {
|
2008-05-30 11:04:40 +00:00
|
|
|
playSound(12);
|
2008-05-02 12:00:58 +00:00
|
|
|
delay(40);
|
2008-06-01 20:58:05 +00:00
|
|
|
finishSound();
|
2008-05-02 12:00:58 +00:00
|
|
|
delay(10);
|
2008-06-03 08:54:49 +00:00
|
|
|
gotoObject(174, 168);
|
|
|
|
trackProtagonist = 2;
|
2008-05-02 12:00:58 +00:00
|
|
|
updateRoom();
|
2008-05-31 12:40:02 +00:00
|
|
|
updateScreen();
|
2008-05-02 12:00:58 +00:00
|
|
|
pause(40);
|
2008-05-30 11:04:40 +00:00
|
|
|
playSound(12);
|
2008-05-02 12:00:58 +00:00
|
|
|
pause(19);
|
2008-06-01 20:58:05 +00:00
|
|
|
stopSound();
|
2008-05-02 12:00:58 +00:00
|
|
|
hare_se_ve = 0;
|
|
|
|
updateRoom();
|
2008-06-02 23:09:19 +00:00
|
|
|
copyRect(101, 34, curX - 4, curY - 1, 37, 70, drawSurface3, screenSurface);
|
2008-05-30 07:09:36 +00:00
|
|
|
copyBackground(0, 0, 0, 0, 320, 200, screenSurface, drawSurface1);
|
2008-05-31 12:40:02 +00:00
|
|
|
updateScreen();
|
2008-05-02 12:00:58 +00:00
|
|
|
hare_se_ve = 1;
|
|
|
|
clearRoom();
|
2008-06-02 04:42:19 +00:00
|
|
|
loadPic("tlef0.alg", drawSurface1, COMPLETE_PAL);
|
|
|
|
loadPic("tlef1.alg", drawSurface3, 1);
|
|
|
|
loadPic("tlef2.alg", frontSurface, 1);
|
|
|
|
loadPic("tlef3.alg", backSurface, 1);
|
2008-05-30 14:25:03 +00:00
|
|
|
talk_htel(240);
|
2008-05-02 12:00:58 +00:00
|
|
|
|
2008-05-30 07:16:17 +00:00
|
|
|
color_abc(kColorBrown);
|
2008-05-02 15:09:20 +00:00
|
|
|
talk_solo(_textvb[_lang][58], "VB58.als");
|
2008-05-30 14:25:03 +00:00
|
|
|
talk_htel(241);
|
2008-05-30 07:16:17 +00:00
|
|
|
color_abc(kColorBrown);
|
2008-05-02 15:09:20 +00:00
|
|
|
talk_solo(_textvb[_lang][59], "VB59.als");
|
2008-05-30 14:25:03 +00:00
|
|
|
talk_htel(242);
|
2008-05-30 07:16:17 +00:00
|
|
|
color_abc(kColorBrown);
|
2008-05-02 15:09:20 +00:00
|
|
|
talk_solo(_textvb[_lang][60], "VB60.als");
|
2008-05-30 14:25:03 +00:00
|
|
|
talk_htel(196);
|
2008-05-30 07:16:17 +00:00
|
|
|
color_abc(kColorBrown);
|
2008-05-02 15:09:20 +00:00
|
|
|
talk_solo(_textvb[_lang][61],"VB61.als");
|
2008-05-30 14:25:03 +00:00
|
|
|
talk_htel(244);
|
2008-05-30 07:16:17 +00:00
|
|
|
color_abc(kColorBrown);
|
2008-05-02 15:09:20 +00:00
|
|
|
talk_solo(_textvb[_lang][62], "VB62.als");
|
2008-05-02 12:00:58 +00:00
|
|
|
clearRoom();
|
2008-06-02 04:42:19 +00:00
|
|
|
loadPic("aux59.alg", drawSurface3, 1);
|
|
|
|
loadPic("96.alg", frontSurface, COMPLETE_PAL);
|
|
|
|
loadPic("99.alg", backSurface, 1);
|
|
|
|
loadPic("59.alg", drawSurface1, HALF_PAL);
|
2008-06-03 08:54:49 +00:00
|
|
|
trackProtagonist = 3;
|
2008-05-30 08:48:01 +00:00
|
|
|
talk(245);
|
2008-05-11 11:20:40 +00:00
|
|
|
withoutVerb();
|
2008-05-02 12:00:58 +00:00
|
|
|
flags[11] = 1;
|
|
|
|
}
|
|
|
|
} else
|
2008-05-29 22:34:03 +00:00
|
|
|
hasAnswer = 0;
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
bool DrasculaEngine::room_60(int fl) {
|
2008-05-27 12:02:26 +00:00
|
|
|
if (pickedObject == kVerbMove && fl == 112)
|
2008-05-02 12:00:58 +00:00
|
|
|
animation_10_6();
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbLook && fl == 112)
|
2008-05-30 08:48:01 +00:00
|
|
|
talk(440);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbTalk && fl == 52) {
|
2008-05-30 08:48:01 +00:00
|
|
|
talk(266);
|
2008-06-01 22:38:29 +00:00
|
|
|
talk_bartender(1, 1);
|
2008-05-29 22:34:03 +00:00
|
|
|
converse("op_12.cal");
|
2008-05-11 11:20:40 +00:00
|
|
|
withoutVerb();
|
2008-05-27 12:02:26 +00:00
|
|
|
pickedObject = 0;
|
|
|
|
} else if (pickedObject == kVerbTalk && fl == 115)
|
2008-05-30 08:48:01 +00:00
|
|
|
talk(455);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbTalk && fl == 56)
|
2008-05-30 08:48:01 +00:00
|
|
|
talk(455);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbLook && fl == 114)
|
2008-05-30 08:48:01 +00:00
|
|
|
talk(167);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbLook && fl == 113)
|
2008-05-30 08:48:01 +00:00
|
|
|
talk(168);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbPick && fl == 113)
|
2008-05-30 08:48:01 +00:00
|
|
|
talk(170);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbMove && fl == 113)
|
2008-05-30 08:48:01 +00:00
|
|
|
talk(170);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbTalk && fl == 113)
|
2008-05-30 08:48:01 +00:00
|
|
|
talk(169);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == 21 && fl == 56)
|
2008-05-02 12:00:58 +00:00
|
|
|
animation_18_6();
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == 9 && fl == 56 && flags[6] == 1) {
|
2008-05-02 12:00:58 +00:00
|
|
|
animation_9_6();
|
|
|
|
return true;
|
2008-05-27 12:02:26 +00:00
|
|
|
} else if (pickedObject == 9 && fl == 56 && flags[6] == 0) {
|
2008-05-30 07:24:32 +00:00
|
|
|
animate("cnf.bin", 14);
|
2008-05-30 08:48:01 +00:00
|
|
|
talk(455);
|
2008-05-02 12:00:58 +00:00
|
|
|
} else
|
2008-05-29 22:34:03 +00:00
|
|
|
hasAnswer = 0;
|
2008-05-02 12:00:58 +00:00
|
|
|
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
void DrasculaEngine::room_61(int fl) {
|
2008-05-27 12:02:26 +00:00
|
|
|
if (pickedObject == kVerbLook && fl == 116)
|
2008-05-30 08:48:01 +00:00
|
|
|
talk(172);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbLook && fl == 117)
|
2008-05-30 08:48:01 +00:00
|
|
|
talk(173);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbMove && fl == 117)
|
2008-05-30 08:48:01 +00:00
|
|
|
talk(174);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbOpen && fl == 117)
|
2008-05-30 08:48:01 +00:00
|
|
|
talk(174);
|
2008-05-02 12:00:58 +00:00
|
|
|
else
|
2008-05-29 22:34:03 +00:00
|
|
|
hasAnswer = 0;
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void DrasculaEngine::room_62(int fl) {
|
2008-05-27 12:02:26 +00:00
|
|
|
if (pickedObject == kVerbTalk && fl == 53)
|
2008-05-29 22:34:03 +00:00
|
|
|
converse("op_13.cal");
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbTalk && fl == 52 && flags[0] == 0)
|
2008-05-02 12:00:58 +00:00
|
|
|
animation_3_1();
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbTalk && fl == 52 && flags[0] == 1)
|
2008-05-30 08:48:01 +00:00
|
|
|
talk(109);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbTalk && fl == 54)
|
2008-05-02 12:00:58 +00:00
|
|
|
animation_4_1();
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbLook && fl == 100)
|
2008-05-30 08:48:01 +00:00
|
|
|
talk(168);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbTalk && fl == 100)
|
2008-05-30 08:48:01 +00:00
|
|
|
talk(169);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbPick && fl == 100)
|
2008-05-30 08:48:01 +00:00
|
|
|
talk(170);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbLook && fl == 101)
|
2008-05-30 08:48:01 +00:00
|
|
|
talk(171);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbLook && fl == 102)
|
2008-05-30 08:48:01 +00:00
|
|
|
talk(167);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbLook && fl == 103)
|
2008-05-30 08:48:01 +00:00
|
|
|
talk(166);
|
2008-05-29 22:34:03 +00:00
|
|
|
else hasAnswer = 0;
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void DrasculaEngine::room_63(int fl) {
|
2008-05-27 12:02:26 +00:00
|
|
|
if (pickedObject == kVerbLook && fl == 110)
|
2008-05-30 08:48:01 +00:00
|
|
|
talk(172);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbLook && fl == 109)
|
2008-05-30 08:48:01 +00:00
|
|
|
talk(173);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbMove && fl == 109)
|
2008-05-30 08:48:01 +00:00
|
|
|
talk(174);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbLook && fl == 108)
|
2008-05-30 08:48:01 +00:00
|
|
|
talk(334);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbTalk && fl == 108)
|
2008-05-30 08:48:01 +00:00
|
|
|
talk(333);
|
2008-05-02 12:00:58 +00:00
|
|
|
else
|
2008-05-29 22:34:03 +00:00
|
|
|
hasAnswer = 0;
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
|
|
|
|
2008-05-29 22:34:03 +00:00
|
|
|
void DrasculaEngine::room_pendulum(int fl) {
|
2008-05-27 12:02:26 +00:00
|
|
|
if (pickedObject == kVerbLook && fl == 100)
|
2008-05-30 08:48:01 +00:00
|
|
|
talk(452);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbLook && fl == 101)
|
2008-05-30 08:48:01 +00:00
|
|
|
talk(123);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbPick && fl == 101)
|
2008-05-11 11:20:40 +00:00
|
|
|
pickObject(20);
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == 20 && fl == 100)
|
2008-05-02 12:00:58 +00:00
|
|
|
animation_6_6();
|
2008-05-27 12:02:26 +00:00
|
|
|
else if (pickedObject == kVerbPick || pickedObject == kVerbOpen)
|
2008-05-30 08:48:01 +00:00
|
|
|
talk(453);
|
2008-05-02 12:00:58 +00:00
|
|
|
else
|
2008-05-29 22:34:03 +00:00
|
|
|
hasAnswer = 0;
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void DrasculaEngine::updateRefresh() {
|
2008-05-31 09:16:26 +00:00
|
|
|
if (currentChapter == 1) {
|
2008-05-27 09:03:22 +00:00
|
|
|
if (roomNumber == 63)
|
2008-05-02 12:00:58 +00:00
|
|
|
update_63();
|
2008-05-27 09:03:22 +00:00
|
|
|
else if (roomNumber == 62)
|
2008-05-02 12:00:58 +00:00
|
|
|
update_62();
|
2008-05-31 09:16:26 +00:00
|
|
|
} else if (currentChapter == 2) {
|
2008-05-27 09:03:22 +00:00
|
|
|
if (roomNumber == 3)
|
2008-05-02 12:00:58 +00:00
|
|
|
update_3();
|
2008-05-27 09:03:22 +00:00
|
|
|
else if (roomNumber == 2)
|
2008-05-02 12:00:58 +00:00
|
|
|
update_2();
|
2008-05-27 09:03:22 +00:00
|
|
|
else if (roomNumber == 4)
|
2008-05-02 12:00:58 +00:00
|
|
|
update_4();
|
2008-05-27 09:03:22 +00:00
|
|
|
else if (roomNumber == 5)
|
2008-05-02 12:00:58 +00:00
|
|
|
update_5();
|
2008-05-27 09:03:22 +00:00
|
|
|
else if (roomNumber == 15)
|
2008-05-02 12:00:58 +00:00
|
|
|
update_15();
|
2008-05-27 09:03:22 +00:00
|
|
|
else if (roomNumber == 17)
|
2008-05-02 12:00:58 +00:00
|
|
|
update_17();
|
2008-05-27 09:03:22 +00:00
|
|
|
else if (roomNumber == 18)
|
2008-05-02 12:00:58 +00:00
|
|
|
update_18();
|
2008-05-27 09:03:22 +00:00
|
|
|
else if (roomNumber == 10)
|
2008-05-29 22:34:03 +00:00
|
|
|
showMap();
|
2008-05-31 09:16:26 +00:00
|
|
|
} else if (currentChapter == 3) {
|
2008-05-27 09:03:22 +00:00
|
|
|
if (roomNumber == 20)
|
2008-05-02 12:00:58 +00:00
|
|
|
update_20();
|
2008-05-27 09:03:22 +00:00
|
|
|
else if (roomNumber == 13)
|
2008-05-02 12:00:58 +00:00
|
|
|
update_13();
|
2008-05-31 09:16:26 +00:00
|
|
|
} else if (currentChapter == 4) {
|
2008-05-27 09:03:22 +00:00
|
|
|
if (roomNumber == 29)
|
2008-05-02 12:00:58 +00:00
|
|
|
update_29();
|
2008-05-27 09:03:22 +00:00
|
|
|
else if (roomNumber == 26)
|
2008-05-02 12:00:58 +00:00
|
|
|
update_26();
|
2008-05-27 09:03:22 +00:00
|
|
|
else if (roomNumber == 27)
|
2008-05-02 12:00:58 +00:00
|
|
|
update_27();
|
2008-05-27 09:03:22 +00:00
|
|
|
else if (roomNumber == 31)
|
2008-05-02 12:00:58 +00:00
|
|
|
update_31();
|
2008-05-27 09:03:22 +00:00
|
|
|
else if (roomNumber == 34)
|
2008-05-02 12:00:58 +00:00
|
|
|
update_34();
|
2008-05-27 09:03:22 +00:00
|
|
|
else if (roomNumber == 35)
|
2008-05-02 12:00:58 +00:00
|
|
|
update_35();
|
2008-05-31 09:16:26 +00:00
|
|
|
} else if (currentChapter == 5) {
|
2008-05-27 09:03:22 +00:00
|
|
|
if (roomNumber == 45)
|
2008-05-29 22:34:03 +00:00
|
|
|
showMap();
|
2008-05-27 09:03:22 +00:00
|
|
|
else if (roomNumber == 50)
|
2008-05-02 12:00:58 +00:00
|
|
|
update_50();
|
2008-05-27 09:03:22 +00:00
|
|
|
else if (roomNumber == 57)
|
2008-05-02 12:00:58 +00:00
|
|
|
update_57();
|
2008-05-31 09:16:26 +00:00
|
|
|
} else if (currentChapter == 6) {
|
2008-05-27 09:03:22 +00:00
|
|
|
if (roomNumber == 60)
|
2008-05-02 12:00:58 +00:00
|
|
|
update_60();
|
2008-05-27 09:03:22 +00:00
|
|
|
else if (roomNumber == 61)
|
2008-05-02 12:00:58 +00:00
|
|
|
update_61();
|
2008-05-27 09:03:22 +00:00
|
|
|
else if (roomNumber == 58)
|
2008-05-02 12:00:58 +00:00
|
|
|
update_58();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
void DrasculaEngine::updateRefresh_pre() {
|
2008-05-31 09:16:26 +00:00
|
|
|
if (currentChapter == 1) {
|
2008-05-27 09:03:22 +00:00
|
|
|
if (roomNumber == 62)
|
2008-05-02 12:00:58 +00:00
|
|
|
update_62_pre();
|
2008-05-27 09:03:22 +00:00
|
|
|
else if (roomNumber == 16)
|
2008-05-29 22:34:03 +00:00
|
|
|
placeBJ();
|
2008-05-31 09:16:26 +00:00
|
|
|
} else if (currentChapter == 2) {
|
2008-05-27 09:03:22 +00:00
|
|
|
if (roomNumber == 1)
|
2008-05-02 12:00:58 +00:00
|
|
|
update_1_pre();
|
2008-05-27 09:03:22 +00:00
|
|
|
else if (roomNumber == 3)
|
2008-05-02 12:00:58 +00:00
|
|
|
update_3_pre();
|
2008-05-27 09:03:22 +00:00
|
|
|
else if (roomNumber == 5)
|
2008-05-02 12:00:58 +00:00
|
|
|
update_5_pre();
|
2008-05-27 09:03:22 +00:00
|
|
|
else if (roomNumber == 6)
|
2008-05-02 12:00:58 +00:00
|
|
|
update_6_pre();
|
2008-05-27 09:03:22 +00:00
|
|
|
else if (roomNumber == 7)
|
2008-05-02 12:00:58 +00:00
|
|
|
update_7_pre();
|
2008-05-27 09:03:22 +00:00
|
|
|
else if (roomNumber == 9)
|
2008-05-02 12:00:58 +00:00
|
|
|
update_9_pre();
|
2008-05-27 09:03:22 +00:00
|
|
|
else if (roomNumber == 12)
|
2008-05-02 12:00:58 +00:00
|
|
|
update_12_pre();
|
2008-05-27 09:03:22 +00:00
|
|
|
else if (roomNumber == 14)
|
2008-05-02 12:00:58 +00:00
|
|
|
update_14_pre();
|
2008-05-27 09:03:22 +00:00
|
|
|
else if (roomNumber == 16)
|
2008-05-02 12:00:58 +00:00
|
|
|
update_16_pre();
|
2008-05-27 09:03:22 +00:00
|
|
|
else if (roomNumber == 17)
|
2008-05-02 12:00:58 +00:00
|
|
|
update_17_pre();
|
2008-05-27 09:03:22 +00:00
|
|
|
else if (roomNumber == 18)
|
2008-05-02 12:00:58 +00:00
|
|
|
update_18_pre();
|
2008-05-31 09:16:26 +00:00
|
|
|
} else if (currentChapter == 3) {
|
2008-05-02 12:00:58 +00:00
|
|
|
// nothing
|
2008-05-31 09:16:26 +00:00
|
|
|
} else if (currentChapter == 4) {
|
2008-05-27 09:03:22 +00:00
|
|
|
if (roomNumber == 21)
|
2008-05-02 12:00:58 +00:00
|
|
|
update_21_pre();
|
2008-05-27 09:03:22 +00:00
|
|
|
else if (roomNumber == 22)
|
2008-05-02 12:00:58 +00:00
|
|
|
update_22_pre();
|
2008-05-27 09:03:22 +00:00
|
|
|
else if (roomNumber == 23)
|
2008-05-02 12:00:58 +00:00
|
|
|
update_23_pre();
|
2008-05-27 09:03:22 +00:00
|
|
|
else if (roomNumber == 24)
|
2008-05-02 12:00:58 +00:00
|
|
|
update_24_pre();
|
2008-05-27 09:03:22 +00:00
|
|
|
else if (roomNumber == 26)
|
2008-05-02 12:00:58 +00:00
|
|
|
update_26_pre();
|
2008-05-27 09:03:22 +00:00
|
|
|
else if (roomNumber == 27)
|
2008-05-02 12:00:58 +00:00
|
|
|
update_27_pre();
|
2008-05-27 09:03:22 +00:00
|
|
|
else if (roomNumber == 29)
|
2008-05-02 12:00:58 +00:00
|
|
|
update_29_pre();
|
2008-05-27 09:03:22 +00:00
|
|
|
else if (roomNumber == 30)
|
2008-05-02 12:00:58 +00:00
|
|
|
update_30_pre();
|
2008-05-27 09:03:22 +00:00
|
|
|
else if (roomNumber == 31)
|
2008-05-02 12:00:58 +00:00
|
|
|
update_31_pre();
|
2008-05-27 09:03:22 +00:00
|
|
|
else if (roomNumber == 34)
|
2008-05-02 12:00:58 +00:00
|
|
|
update_34_pre();
|
2008-05-27 09:03:22 +00:00
|
|
|
else if (roomNumber == 35)
|
2008-05-02 12:00:58 +00:00
|
|
|
update_35_pre();
|
2008-05-31 09:16:26 +00:00
|
|
|
} else if (currentChapter == 5) {
|
2008-05-27 09:03:22 +00:00
|
|
|
if (roomNumber == 49)
|
2008-05-02 12:00:58 +00:00
|
|
|
update_49_pre();
|
2008-05-27 09:03:22 +00:00
|
|
|
else if (roomNumber == 53)
|
2008-05-02 12:00:58 +00:00
|
|
|
update_53_pre();
|
2008-05-27 09:03:22 +00:00
|
|
|
else if (roomNumber == 54)
|
2008-05-02 12:00:58 +00:00
|
|
|
update_54_pre();
|
2008-05-27 09:03:22 +00:00
|
|
|
else if (roomNumber == 56)
|
2008-05-02 12:00:58 +00:00
|
|
|
update_56_pre();
|
2008-05-31 09:16:26 +00:00
|
|
|
} else if (currentChapter == 6) {
|
2008-05-27 09:03:22 +00:00
|
|
|
if (roomNumber == 102)
|
2008-05-29 22:34:03 +00:00
|
|
|
update_pendulum();
|
2008-05-27 09:03:22 +00:00
|
|
|
else if (roomNumber == 58)
|
2008-05-02 12:00:58 +00:00
|
|
|
update_58_pre();
|
2008-05-27 09:03:22 +00:00
|
|
|
else if (roomNumber == 59)
|
2008-05-02 12:00:58 +00:00
|
|
|
update_59_pre();
|
2008-05-27 09:03:22 +00:00
|
|
|
else if (roomNumber == 60)
|
2008-05-02 12:00:58 +00:00
|
|
|
update_60_pre();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
void DrasculaEngine::update_1_pre() {
|
2008-06-04 07:58:34 +00:00
|
|
|
if (curX > 98 && curX < 153) {
|
2008-05-29 22:34:03 +00:00
|
|
|
changeColor = 1;
|
2008-06-04 07:58:34 +00:00
|
|
|
setDarkPalette();
|
|
|
|
} else {
|
2008-05-29 22:34:03 +00:00
|
|
|
changeColor = 0;
|
2008-06-04 07:58:34 +00:00
|
|
|
setBrightPalette();
|
|
|
|
}
|
2008-05-02 12:00:58 +00:00
|
|
|
|
|
|
|
if (flags[8] == 0)
|
2008-05-30 07:09:36 +00:00
|
|
|
copyBackground(2, 158, 208, 67, 27, 40, drawSurface3, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void DrasculaEngine::update_2(){
|
2008-06-04 07:58:34 +00:00
|
|
|
int batPos[6];
|
2008-05-30 08:14:01 +00:00
|
|
|
int difference;
|
2008-06-04 07:58:34 +00:00
|
|
|
int batX[] = {0, 38, 76, 114, 152, 190, 228, 266,
|
2008-05-02 12:00:58 +00:00
|
|
|
0, 38, 76, 114, 152, 190, 228, 266,
|
|
|
|
0, 38, 76, 114, 152, 190,
|
|
|
|
0, 48, 96, 144, 192, 240,
|
|
|
|
30, 88, 146, 204, 262,
|
|
|
|
88, 146, 204, 262,
|
|
|
|
88, 146, 204, 262};
|
|
|
|
|
2008-06-04 07:58:34 +00:00
|
|
|
int batY[] = {179, 179, 179, 179, 179, 179, 179, 179,
|
2008-05-02 12:00:58 +00:00
|
|
|
158, 158, 158, 158, 158, 158, 158, 158,
|
|
|
|
137, 137, 137, 137, 137, 137,
|
|
|
|
115, 115, 115, 115, 115, 115,
|
|
|
|
78, 78, 78, 78, 78,
|
|
|
|
41, 41, 41, 41,
|
|
|
|
4, 4, 4, 4};
|
|
|
|
|
2008-05-29 22:34:03 +00:00
|
|
|
if (frame_bat == 41)
|
|
|
|
frame_bat = 0;
|
2008-05-02 12:00:58 +00:00
|
|
|
|
2008-06-04 07:58:34 +00:00
|
|
|
batPos[0] = batX[frame_bat];
|
|
|
|
batPos[1] = batY[frame_bat];
|
2008-05-02 12:00:58 +00:00
|
|
|
|
2008-05-29 22:34:03 +00:00
|
|
|
if (frame_bat < 22) {
|
2008-06-04 07:58:34 +00:00
|
|
|
batPos[4] = 37;
|
|
|
|
batPos[5] = 21;
|
2008-05-29 22:34:03 +00:00
|
|
|
} else if (frame_bat > 27) {
|
2008-06-04 07:58:34 +00:00
|
|
|
batPos[4] = 57;
|
|
|
|
batPos[5] = 36;
|
2008-05-02 12:00:58 +00:00
|
|
|
} else {
|
2008-06-04 07:58:34 +00:00
|
|
|
batPos[4] = 47;
|
|
|
|
batPos[5] = 22;
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
|
|
|
|
2008-06-04 07:58:34 +00:00
|
|
|
batPos[2] = 239;
|
|
|
|
batPos[3] = 19;
|
2008-05-02 12:00:58 +00:00
|
|
|
|
2008-06-04 07:58:34 +00:00
|
|
|
copyRectClip(batPos, drawSurface3, screenSurface);
|
|
|
|
difference = getTime() - savedTime;
|
2008-05-30 08:14:01 +00:00
|
|
|
if (difference >= 6) {
|
2008-05-29 22:34:03 +00:00
|
|
|
frame_bat++;
|
2008-06-04 07:58:34 +00:00
|
|
|
savedTime = getTime();
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
|
|
|
|
2008-05-30 07:09:36 +00:00
|
|
|
copyRect(29, 37, 58, 114, 57, 39, drawSurface3, screenSurface);
|
2008-05-29 22:34:03 +00:00
|
|
|
showMap();
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void DrasculaEngine::update_3_pre() {
|
|
|
|
if (flags[3] == 1)
|
2008-05-30 07:09:36 +00:00
|
|
|
copyBackground(258, 110, 85, 44, 23, 53, drawSurface3, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void DrasculaEngine::update_3() {
|
2008-06-02 23:09:19 +00:00
|
|
|
if (curY + curHeight < 118)
|
2008-05-30 07:09:36 +00:00
|
|
|
copyRect(129, 110, 194, 36, 126, 88, drawSurface3, screenSurface);
|
|
|
|
copyRect(47, 57, 277, 143, 43, 50, drawSurface3, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void DrasculaEngine::update_4() {
|
2008-06-04 07:58:34 +00:00
|
|
|
if (curX > 190) {
|
2008-05-29 22:34:03 +00:00
|
|
|
changeColor = 1;
|
2008-06-04 07:58:34 +00:00
|
|
|
setDarkPalette();
|
|
|
|
} else {
|
2008-05-29 22:34:03 +00:00
|
|
|
changeColor = 0;
|
2008-06-04 07:58:34 +00:00
|
|
|
setBrightPalette();
|
|
|
|
}
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void DrasculaEngine::update_5_pre(){
|
|
|
|
if (flags[8] == 0)
|
2008-05-30 07:09:36 +00:00
|
|
|
copyBackground(256, 152, 208, 67, 27, 40, drawSurface3, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void DrasculaEngine::update_5() {
|
2008-05-30 07:09:36 +00:00
|
|
|
copyRect(114, 130, 211, 87, 109, 69, drawSurface3, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void DrasculaEngine::update_6_pre() {
|
2008-06-02 23:09:19 +00:00
|
|
|
if ((curX > 149 && curY + curHeight > 160 && curX < 220 && curY + curHeight < 188) ||
|
2008-06-04 07:58:34 +00:00
|
|
|
(curX > 75 && curY + curHeight > 183 && curX < 145)) {
|
2008-05-29 22:34:03 +00:00
|
|
|
changeColor = 0;
|
2008-06-04 07:58:34 +00:00
|
|
|
setBrightPalette();
|
|
|
|
} else {
|
2008-05-29 22:34:03 +00:00
|
|
|
changeColor = 1;
|
2008-06-04 07:58:34 +00:00
|
|
|
setDarkPalette();
|
|
|
|
}
|
2008-05-02 12:00:58 +00:00
|
|
|
|
|
|
|
if (flags[0] == 0)
|
2008-05-30 07:09:36 +00:00
|
|
|
copyBackground(3, 103, 185, 69, 23, 76, drawSurface3, screenSurface);
|
2008-06-04 07:58:34 +00:00
|
|
|
if (flags[1] == 0)
|
|
|
|
copyBackground(97, 117, 34, 148, 36, 31, drawSurface3, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
if (flags[2] == 0)
|
2008-05-30 07:09:36 +00:00
|
|
|
copyBackground(28, 100, 219, 72, 64, 97, drawSurface3, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void DrasculaEngine::update_7_pre() {
|
|
|
|
if (flags[35] == 0)
|
2008-05-30 07:09:36 +00:00
|
|
|
copyBackground(1, 72, 158, 162, 19, 12, drawSurface3, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void DrasculaEngine::update_9_pre() {
|
2008-06-04 07:58:34 +00:00
|
|
|
int blindX[] = {26, 68, 110, 152, 194, 236, 278, 26, 68};
|
|
|
|
int blindY[] = {51, 51, 51, 51, 51, 51, 51, 127, 127};
|
2008-05-30 08:14:01 +00:00
|
|
|
int difference;
|
2008-05-02 12:00:58 +00:00
|
|
|
|
2008-06-04 07:58:34 +00:00
|
|
|
copyRect(blindX[frame_blind], blindY[frame_blind], 122, 57, 41, 72, drawSurface3, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
if (flags[9] == 0) {
|
2008-06-04 07:58:34 +00:00
|
|
|
difference = getTime() - savedTime;
|
2008-05-30 08:14:01 +00:00
|
|
|
if (difference >= 11) {
|
2008-05-29 22:34:03 +00:00
|
|
|
frame_blind++;
|
2008-06-04 07:58:34 +00:00
|
|
|
savedTime = getTime();
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
2008-05-29 22:34:03 +00:00
|
|
|
if (frame_blind == 9)
|
|
|
|
frame_blind = 0;
|
2008-05-02 12:00:58 +00:00
|
|
|
} else
|
2008-05-29 22:34:03 +00:00
|
|
|
frame_blind = 3;
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void DrasculaEngine::update_12_pre() {
|
|
|
|
if (flags[16] == 0)
|
2008-05-30 07:09:36 +00:00
|
|
|
copyBackground(1, 131, 106, 117, 55, 68, drawSurface3, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void DrasculaEngine::update_13() {
|
2008-06-02 23:09:19 +00:00
|
|
|
if (curX > 55 && flags[3] == 0)
|
2008-05-02 12:00:58 +00:00
|
|
|
animation_6_3();
|
|
|
|
if (flags[1] == 0)
|
2008-05-30 07:09:36 +00:00
|
|
|
copyRect(185, 110, 121, 65, 67, 88, drawSurface3, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
if (flags[2] == 0)
|
2008-05-30 07:09:36 +00:00
|
|
|
copyRect(185, 21, 121, 63, 67, 88, drawSurface3, screenSurface);
|
|
|
|
copyRect(3, 127, 99, 102, 181, 71, drawSurface3, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void DrasculaEngine::update_14_pre() {
|
2008-06-03 08:54:49 +00:00
|
|
|
int candleY[] = {158, 172, 186};
|
|
|
|
int candleX[] = {14, 19, 24};
|
|
|
|
int pianistX[] = {1, 91, 61, 31, 91, 31, 1, 61, 31};
|
|
|
|
int drunkX[] = {1, 42, 83, 124, 165, 206, 247, 1};
|
2008-05-30 08:14:01 +00:00
|
|
|
int difference;
|
2008-05-02 12:00:58 +00:00
|
|
|
|
2008-06-03 08:54:49 +00:00
|
|
|
copyBackground(123, candleY[frame_candles], 142, 14, 39, 13, drawSurface3, screenSurface);
|
|
|
|
copyBackground(candleX[frame_candles], 146, 311, 80, 4, 8, drawSurface3, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
|
2008-05-29 22:34:03 +00:00
|
|
|
if (blinking == 5)
|
2008-05-30 07:09:36 +00:00
|
|
|
copyBackground(1, 149, 127, 52, 9, 5, drawSurface3, screenSurface);
|
2008-06-02 23:09:19 +00:00
|
|
|
if (curX > 101 && curX < 155)
|
2008-05-30 07:09:36 +00:00
|
|
|
copyBackground(31, 138, 178, 51, 18, 16, drawSurface3, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
if (flags[11] == 0)
|
2008-06-03 08:54:49 +00:00
|
|
|
copyBackground(pianistX[frame_piano], 157, 245, 130, 29, 42, drawSurface3, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
else if (flags[5] == 0)
|
2008-05-30 07:09:36 +00:00
|
|
|
copyBackground(145, 139, 228, 112, 47, 60, extraSurface, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
else
|
2008-05-30 07:09:36 +00:00
|
|
|
copyBackground(165, 140, 229, 117, 43, 59, drawSurface3, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
|
|
|
|
if (flags[12] == 1)
|
2008-06-03 08:54:49 +00:00
|
|
|
copyBackground(drunkX[frame_drunk], 82, 170, 50, 40, 53, drawSurface3, screenSurface);
|
2008-06-04 07:58:34 +00:00
|
|
|
difference = getTime() - savedTime;
|
2008-05-30 08:14:01 +00:00
|
|
|
if (difference > 6) {
|
2008-05-02 12:00:58 +00:00
|
|
|
if (flags[12] == 1) {
|
2008-05-29 22:34:03 +00:00
|
|
|
frame_drunk++;
|
|
|
|
if (frame_drunk == 8) {
|
|
|
|
frame_drunk = 0;
|
2008-05-02 12:00:58 +00:00
|
|
|
flags[12] = 0;
|
|
|
|
}
|
|
|
|
} else if ((_rnd->getRandomNumber(94) == 15) && (flags[13] == 0))
|
|
|
|
flags[12] = 1;
|
|
|
|
|
2008-05-31 00:06:05 +00:00
|
|
|
frame_candles++;
|
|
|
|
if (frame_candles == 3)
|
|
|
|
frame_candles = 0;
|
2008-05-02 12:00:58 +00:00
|
|
|
frame_piano++;
|
|
|
|
if (frame_piano == 9)
|
|
|
|
frame_piano = 0;
|
2008-05-29 22:34:03 +00:00
|
|
|
blinking = _rnd->getRandomNumber(10);
|
2008-06-04 07:58:34 +00:00
|
|
|
savedTime = getTime();
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
void DrasculaEngine::update_15() {
|
2008-05-30 07:09:36 +00:00
|
|
|
copyRect(1, 154, 83, 122, 131, 44, drawSurface3, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void DrasculaEngine::update_16_pre() {
|
|
|
|
if (flags[17] == 0)
|
2008-05-30 07:09:36 +00:00
|
|
|
copyBackground(1, 103, 24, 72, 33, 95, drawSurface3, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
if (flags[19] == 1)
|
2008-05-30 07:09:36 +00:00
|
|
|
copyBackground(37, 151, 224, 115, 56, 47, drawSurface3, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void DrasculaEngine::update_17_pre() {
|
|
|
|
if (flags[15] == 1)
|
2008-05-30 07:09:36 +00:00
|
|
|
copyBackground(1, 135, 108, 65, 44, 63, drawSurface3, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void DrasculaEngine::update_17() {
|
2008-05-30 07:09:36 +00:00
|
|
|
copyRect(48, 135, 78, 139, 80, 30, drawSurface3, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void DrasculaEngine::update_18_pre() {
|
2008-05-30 08:14:01 +00:00
|
|
|
int difference;
|
2008-05-29 22:34:03 +00:00
|
|
|
int snore_x[] = {95, 136, 95, 136, 95, 95, 95, 95, 136, 95, 95, 95, 95, 95, 95, 95};
|
|
|
|
int snore_y[] = {18, 18, 56, 56, 94, 94, 94, 94, 94, 18, 18, 18, 18, 18, 18, 18};
|
2008-05-02 12:00:58 +00:00
|
|
|
|
|
|
|
if (flags[21] == 0) {
|
2008-05-30 07:09:36 +00:00
|
|
|
copyBackground(1, 69, 120, 58, 56, 61, drawSurface3, screenSurface);
|
|
|
|
copyBackground(snore_x[frame_snore], snore_y[frame_snore], 124, 59, 40, 37, drawSurface3, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
} else
|
2008-06-03 08:54:49 +00:00
|
|
|
moveVB();
|
2008-05-02 12:00:58 +00:00
|
|
|
|
2008-06-04 07:58:34 +00:00
|
|
|
difference = getTime() - savedTime;
|
2008-05-30 08:14:01 +00:00
|
|
|
if (difference > 9) {
|
2008-05-29 22:34:03 +00:00
|
|
|
frame_snore++;
|
|
|
|
if (frame_snore == 16)
|
|
|
|
frame_snore = 0;
|
2008-06-04 07:58:34 +00:00
|
|
|
savedTime = getTime();
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
void DrasculaEngine::update_18() {
|
|
|
|
if (flags[24] == 1)
|
2008-05-30 07:09:36 +00:00
|
|
|
copyRect(177, 1, 69, 29, 142, 130, drawSurface3, screenSurface);
|
|
|
|
copyRect(105, 132, 109, 108, 196, 65, drawSurface3, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void DrasculaEngine::update_20() {
|
2008-05-30 07:09:36 +00:00
|
|
|
copyRect(1, 137, 106, 121, 213, 61, drawSurface3, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void DrasculaEngine::update_21_pre() {
|
|
|
|
if (flags[0] == 1)
|
2008-05-30 07:09:36 +00:00
|
|
|
copyBackground(2, 171, 84, 126, 17, 26, drawSurface3, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
|
|
|
|
if (flags[10] == 1)
|
2008-05-30 07:09:36 +00:00
|
|
|
copyBackground(20, 163, 257, 149, 14, 34, drawSurface3, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void DrasculaEngine::update_22_pre() {
|
|
|
|
if (flags[24] == 1)
|
2008-05-30 07:09:36 +00:00
|
|
|
copyBackground(2, 187, 107, 106, 62, 12, drawSurface3, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
|
|
|
|
if (flags[27] == 0)
|
2008-05-30 07:09:36 +00:00
|
|
|
copyBackground(32, 181, 203, 88, 13, 5, drawSurface3, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
|
|
|
|
if (flags[26] == 0)
|
2008-05-30 07:09:36 +00:00
|
|
|
copyBackground(2, 133, 137, 83, 29, 53, drawSurface3, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
else
|
2008-05-30 07:09:36 +00:00
|
|
|
copyBackground(65, 174, 109, 145, 55, 25, drawSurface3, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void DrasculaEngine::update_23_pre() {
|
|
|
|
if (flags[11] == 1 && flags[0] == 0)
|
2008-05-30 07:09:36 +00:00
|
|
|
copyBackground(87, 171, 237, 110, 20, 28, drawSurface3, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
|
|
|
|
if (flags[0] == 1)
|
2008-05-30 07:09:36 +00:00
|
|
|
copyBackground(29, 126, 239, 94, 57, 73, drawSurface3, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
|
|
|
|
if (flags[1] == 1)
|
2008-05-30 07:09:36 +00:00
|
|
|
copyRect(1, 135, 7, 94, 27, 64, drawSurface3, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void DrasculaEngine::update_24_pre() {
|
|
|
|
if (flags[1] == 1)
|
2008-05-30 07:09:36 +00:00
|
|
|
copyBackground(1, 163, 225, 124, 12, 36, drawSurface3, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
|
|
|
|
if (flags[2] == 1)
|
2008-05-30 07:09:36 +00:00
|
|
|
copyBackground(14, 153, 30, 107, 23, 46, drawSurface3, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void DrasculaEngine::update_26_pre() {
|
2008-05-30 08:14:01 +00:00
|
|
|
int difference;
|
2008-05-02 12:00:58 +00:00
|
|
|
|
|
|
|
if (flags[2] == 1)
|
2008-05-30 07:09:36 +00:00
|
|
|
copyBackground(1, 130, 87, 44, 50, 69, drawSurface3, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
|
|
|
|
if (flags[12] == 1)
|
2008-05-30 07:09:36 +00:00
|
|
|
copyBackground(52, 177, 272, 103, 27, 22, drawSurface3, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
|
|
|
|
if (flags[18] == 0)
|
2008-05-30 07:09:36 +00:00
|
|
|
copyBackground(80, 133, 199, 95, 50, 66, drawSurface3, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
|
2008-05-29 22:34:03 +00:00
|
|
|
if (blinking == 5 && flags[18] == 0)
|
2008-05-30 07:09:36 +00:00
|
|
|
copyBackground(52, 172, 226, 106, 3, 4, drawSurface3, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
|
2008-06-04 07:58:34 +00:00
|
|
|
difference = getTime() - savedTime;
|
2008-05-30 08:14:01 +00:00
|
|
|
if (difference >= 10) {
|
2008-05-29 22:34:03 +00:00
|
|
|
blinking = _rnd->getRandomNumber(10);
|
2008-06-04 07:58:34 +00:00
|
|
|
savedTime = getTime();
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
if (flags[20] == 1)
|
2008-05-30 07:09:36 +00:00
|
|
|
copyBackground(182, 133, 199, 95, 50, 66, drawSurface3, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void DrasculaEngine::update_26() {
|
|
|
|
if (flags[29] == 1)
|
2008-06-02 23:09:19 +00:00
|
|
|
copyRect(93, 1, curX, curY, 45, 78, backSurface, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
|
2008-05-30 07:09:36 +00:00
|
|
|
copyRect(233, 107, 17, 102, 66, 92, drawSurface3, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void DrasculaEngine::update_27_pre() {
|
|
|
|
if (flags[5] == 1)
|
2008-05-30 07:09:36 +00:00
|
|
|
copyRect(1, 175, 59, 109, 17, 24, drawSurface3, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
|
|
|
|
if (flags[6] == 1)
|
2008-05-30 07:09:36 +00:00
|
|
|
copyRect(19, 177, 161, 103, 18, 22, drawSurface3, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void DrasculaEngine::update_27() {
|
2008-05-30 07:09:36 +00:00
|
|
|
copyRect(38, 177, 103, 171, 21, 22, drawSurface3, screenSurface);
|
|
|
|
copyRect(60, 162, 228, 156, 18, 37, drawSurface3, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void DrasculaEngine::update_29_pre() {
|
|
|
|
if (flags[4] == 1)
|
2008-05-30 07:09:36 +00:00
|
|
|
copyBackground(12, 113, 247, 49, 41, 84, drawSurface3, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void DrasculaEngine::update_29() {
|
2008-05-30 07:09:36 +00:00
|
|
|
copyRect(1, 180, 150, 126, 10, 17, drawSurface3, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void DrasculaEngine::update_30_pre() {
|
|
|
|
if (flags[4] == 1)
|
2008-05-30 07:09:36 +00:00
|
|
|
copyBackground(1, 148, 148, 66, 35, 51, drawSurface3, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
|
|
|
|
if (flags[16] == 1)
|
2008-05-30 07:09:36 +00:00
|
|
|
copyBackground(37, 173, 109, 84, 20, 26, drawSurface3, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void DrasculaEngine::update_31_pre() {
|
|
|
|
if (flags[13] == 1)
|
2008-05-30 07:09:36 +00:00
|
|
|
copyBackground(1, 163, 116, 41, 61, 36, drawSurface3, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
|
|
|
|
if (flags[5] == 1)
|
2008-05-30 07:09:36 +00:00
|
|
|
copyBackground(1, 78, 245, 63, 30, 84, drawSurface3, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void DrasculaEngine::update_31() {
|
2008-05-30 07:09:36 +00:00
|
|
|
copyRect(63, 190, 223, 157, 17, 9, drawSurface3, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void DrasculaEngine::update_34_pre() {
|
|
|
|
if (flags[7] == 1)
|
2008-05-30 07:09:36 +00:00
|
|
|
copyBackground(99, 127, 73, 41, 79, 72, drawSurface3, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
|
|
|
|
if (flags[8] == 1)
|
2008-05-30 07:09:36 +00:00
|
|
|
copyBackground(36, 129, 153, 41, 62, 65, drawSurface3, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void DrasculaEngine::update_34() {
|
2008-05-30 07:09:36 +00:00
|
|
|
copyRect(5, 171, 234, 126, 29, 23, drawSurface3, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void DrasculaEngine::update_35_pre() {
|
|
|
|
if (flags[14] == 1)
|
2008-05-30 07:09:36 +00:00
|
|
|
copyBackground(1, 86, 246, 65, 68, 87, drawSurface3, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
|
|
|
|
if (flags[17] == 0 && flags[15] == 1)
|
2008-05-30 07:09:36 +00:00
|
|
|
copyBackground(111, 150, 118, 52, 40, 23, drawSurface3, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
|
|
|
|
if (flags[17] == 1)
|
2008-05-30 07:09:36 +00:00
|
|
|
copyBackground(70, 150, 118, 52, 40, 23, drawSurface3, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void DrasculaEngine::update_35() {
|
2008-05-30 07:09:36 +00:00
|
|
|
copyRect(1, 174, 54, 152, 195, 25, drawSurface3, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void DrasculaEngine::update_49_pre() {
|
|
|
|
if (flags[6] == 0)
|
2008-05-30 07:09:36 +00:00
|
|
|
copyBackground(2, 136, 176, 81, 49, 62, drawSurface3, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void DrasculaEngine::update_50() {
|
2008-05-30 07:09:36 +00:00
|
|
|
copyRect(4, 153, 118, 95, 67, 44, drawSurface3, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void DrasculaEngine::update_53_pre() {
|
|
|
|
if (flags[1] == 0)
|
2008-05-30 07:09:36 +00:00
|
|
|
copyRect(2, 113, 205, 50, 38, 86, drawSurface3, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
if (flags[2] == 0)
|
2008-05-30 07:09:36 +00:00
|
|
|
copyBackground(41, 159, 27, 117, 25, 40, drawSurface3, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
if (flags[9] == 1)
|
2008-05-30 07:09:36 +00:00
|
|
|
copyBackground(67, 184, 56, 93, 32, 15, drawSurface3, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void DrasculaEngine::update_54_pre() {
|
|
|
|
if (flags[5] == 1)
|
2008-05-30 07:09:36 +00:00
|
|
|
copyBackground(168, 156, 187, 111, 7, 11, drawSurface3, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
if (flags[12] == 1)
|
2008-05-30 07:09:36 +00:00
|
|
|
copyBackground(16, 156, 190, 64, 18, 24, drawSurface3, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void DrasculaEngine::update_56_pre() {
|
|
|
|
if (flags[10] == 0)
|
2008-05-30 07:09:36 +00:00
|
|
|
copyBackground(2, 126, 42, 67, 57, 67, drawSurface3, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
if (flags[11] == 1)
|
2008-05-30 07:09:36 +00:00
|
|
|
copyBackground(60, 160, 128, 97, 103, 38, drawSurface3, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void DrasculaEngine::update_57() {
|
2008-05-30 07:09:36 +00:00
|
|
|
copyRect(7, 113, 166, 61, 62, 82, drawSurface3, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void DrasculaEngine::update_58_pre() {
|
|
|
|
if (flags[0] == 0)
|
2008-05-30 07:09:36 +00:00
|
|
|
copyBackground(1, 156, 143, 120, 120, 43, drawSurface3, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
if (flags[1] == 2)
|
2008-05-30 07:09:36 +00:00
|
|
|
copyRect(252, 171, 173, 116, 25, 28, drawSurface3, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
if (flags[1] == 0 && flags[0] == 0)
|
2008-05-30 07:09:36 +00:00
|
|
|
copyRect(278, 171, 173, 116, 25, 28, drawSurface3, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
if (flags[2] == 0) {
|
2008-05-29 22:34:03 +00:00
|
|
|
placeIgor();
|
|
|
|
placeDrascula();
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
|
|
|
if (flags[3] == 1)
|
2008-05-30 07:09:36 +00:00
|
|
|
copyRect(1, 29, 204, 0, 18, 125, drawSurface3, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
if (flags[8] == 1)
|
2008-05-30 07:09:36 +00:00
|
|
|
copyBackground(20, 60, 30, 64, 46, 95, drawSurface3, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void DrasculaEngine::update_58() {
|
|
|
|
if (hare_se_ve == 1)
|
2008-05-30 07:09:36 +00:00
|
|
|
copyRect(67, 139, 140, 147, 12, 16, drawSurface3, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void DrasculaEngine::update_59_pre() {
|
|
|
|
if (flags[4] == 0)
|
2008-05-30 07:09:36 +00:00
|
|
|
copyRect(1, 146, 65, 106, 83, 40, drawSurface3, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
if (flags[9] == 1) {
|
2008-05-30 07:09:36 +00:00
|
|
|
copyBackground(65, 103, 65, 103, 49, 38, drawSurface1, screenSurface);
|
|
|
|
copyRect(1, 105, 65, 103, 49, 38, drawSurface3, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
void DrasculaEngine::update_60_pre() {
|
2008-06-03 08:54:49 +00:00
|
|
|
int candleY[] = {158, 172, 186};
|
2008-05-30 08:14:01 +00:00
|
|
|
int difference;
|
2008-05-02 12:00:58 +00:00
|
|
|
|
|
|
|
if (flags[5] == 0)
|
2008-05-29 22:34:03 +00:00
|
|
|
placeDrascula();
|
2008-05-02 12:00:58 +00:00
|
|
|
|
2008-06-03 08:54:49 +00:00
|
|
|
copyBackground(123, candleY[frame_candles], 142, 14, 39, 13, drawSurface3, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
|
|
|
|
if (flag_tv == 1)
|
2008-05-30 07:09:36 +00:00
|
|
|
copyBackground(114, 158, 8, 30, 8, 23, drawSurface3, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
|
2008-06-04 07:58:34 +00:00
|
|
|
difference = getTime() - savedTime;
|
2008-05-29 22:34:03 +00:00
|
|
|
blinking = _rnd->getRandomNumber(7);
|
|
|
|
if (blinking == 5 && flag_tv == 0)
|
2008-05-02 12:00:58 +00:00
|
|
|
flag_tv = 1;
|
2008-05-29 22:34:03 +00:00
|
|
|
else if (blinking == 5 && flag_tv == 1)
|
2008-05-02 12:00:58 +00:00
|
|
|
flag_tv = 0;
|
2008-05-30 08:14:01 +00:00
|
|
|
if (difference > 6) {
|
2008-05-31 00:06:05 +00:00
|
|
|
frame_candles++;
|
|
|
|
if (frame_candles == 3)
|
|
|
|
frame_candles = 0;
|
2008-06-04 07:58:34 +00:00
|
|
|
savedTime = getTime();
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
void DrasculaEngine::update_60() {
|
2008-06-02 23:09:19 +00:00
|
|
|
if (curY - 10 < y_dr && flags[5] == 0)
|
2008-05-29 22:34:03 +00:00
|
|
|
placeDrascula();
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void DrasculaEngine::update_61() {
|
2008-05-30 07:09:36 +00:00
|
|
|
copyRect(1, 154, 83, 122, 131, 44, drawSurface3, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void DrasculaEngine::update_62_pre() {
|
2008-06-03 08:54:49 +00:00
|
|
|
int candleY[] = { 158, 172, 186 };
|
|
|
|
int candleX[] = { 14, 19, 24 };
|
|
|
|
int pianistX[] = {1, 91, 61, 31, 91, 31, 1, 61, 31 };
|
|
|
|
int drunkX[] = {1, 42, 83, 124, 165, 206, 247, 1 };
|
2008-05-30 08:14:01 +00:00
|
|
|
int difference;
|
2008-05-02 12:00:58 +00:00
|
|
|
|
2008-06-03 08:54:49 +00:00
|
|
|
copyBackground(123, candleY[frame_candles], 142, 14, 39, 13, drawSurface3, screenSurface);
|
|
|
|
copyBackground(candleX[frame_candles], 146, 311, 80, 4, 8, drawSurface3, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
|
2008-05-29 22:34:03 +00:00
|
|
|
if (blinking == 5)
|
2008-05-30 07:09:36 +00:00
|
|
|
copyBackground(1, 149, 127, 52, 9, 5, drawSurface3, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
|
2008-06-02 23:09:19 +00:00
|
|
|
if (curX > 101 && curX < 155)
|
2008-05-30 07:09:36 +00:00
|
|
|
copyBackground(31, 138, 178, 51, 18, 16, drawSurface3, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
|
|
|
|
if (flags[11] == 0)
|
2008-06-03 08:54:49 +00:00
|
|
|
copyBackground(pianistX[frame_piano], 157, 245, 130, 29, 42, drawSurface3, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
else if (flags[5] == 0)
|
2008-05-30 07:09:36 +00:00
|
|
|
copyBackground(145, 139, 228, 112, 47, 60, extraSurface, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
else
|
2008-05-30 07:09:36 +00:00
|
|
|
copyBackground(165, 140, 229, 117, 43, 59, drawSurface3, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
|
|
|
|
if (flags[12] == 1)
|
2008-06-03 08:54:49 +00:00
|
|
|
copyBackground(drunkX[frame_drunk], 82, 170, 50, 40, 53, drawSurface3, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
|
2008-06-04 07:58:34 +00:00
|
|
|
difference = getTime() - savedTime;
|
2008-05-30 08:14:01 +00:00
|
|
|
if (difference > 6) {
|
2008-05-02 12:00:58 +00:00
|
|
|
if (flags[12] == 1) {
|
2008-05-29 22:34:03 +00:00
|
|
|
frame_drunk++;
|
|
|
|
if (frame_drunk == 8) {
|
|
|
|
frame_drunk = 0;
|
2008-05-02 12:00:58 +00:00
|
|
|
flags[12] = 0;
|
|
|
|
}
|
|
|
|
} else if ((_rnd->getRandomNumber(94) == 15) && (flags[13] == 0))
|
|
|
|
flags[12] = 1;
|
|
|
|
|
2008-05-31 00:06:05 +00:00
|
|
|
frame_candles++;
|
|
|
|
if (frame_candles == 3)
|
|
|
|
frame_candles = 0;
|
2008-05-02 12:00:58 +00:00
|
|
|
frame_piano++;
|
|
|
|
if (frame_piano == 9)
|
|
|
|
frame_piano = 0;
|
2008-05-29 22:34:03 +00:00
|
|
|
blinking = _rnd->getRandomNumber(10);
|
2008-06-04 07:58:34 +00:00
|
|
|
savedTime = getTime();
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
void DrasculaEngine::update_62() {
|
2008-06-03 08:54:49 +00:00
|
|
|
int drunkX[] = { 1, 42, 83, 124, 165, 206, 247, 1 };
|
2008-05-02 12:00:58 +00:00
|
|
|
|
2008-05-30 07:09:36 +00:00
|
|
|
copyRect(1, 1, 0, 0, 62, 142, drawSurface2, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
|
2008-06-02 23:09:19 +00:00
|
|
|
if (curY + curHeight < 89) {
|
2008-05-30 07:09:36 +00:00
|
|
|
copyRect(205, 1, 180, 9, 82, 80, drawSurface3, screenSurface);
|
2008-06-03 08:54:49 +00:00
|
|
|
copyBackground(drunkX[frame_drunk], 82, 170, 50, 40, 53, drawSurface3, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
void DrasculaEngine::update_63() {
|
2008-05-30 07:09:36 +00:00
|
|
|
copyRect(1, 154, 83, 122, 131, 44, drawSurface3, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
|
|
|
|
2008-05-29 22:34:03 +00:00
|
|
|
void DrasculaEngine::update_pendulum() {
|
|
|
|
int pendulum_x[] = {40, 96, 152, 208, 264, 40, 96, 152, 208, 208, 152, 264, 40, 96, 152, 208, 264};
|
2008-05-30 08:14:01 +00:00
|
|
|
int difference;
|
2008-05-02 12:00:58 +00:00
|
|
|
|
|
|
|
if (frame_pen <= 4)
|
2008-05-30 07:09:36 +00:00
|
|
|
pendulumSurface = drawSurface3;
|
2008-05-02 12:00:58 +00:00
|
|
|
else if (frame_pen <= 11)
|
2008-05-30 07:09:36 +00:00
|
|
|
pendulumSurface = extraSurface;
|
2008-05-02 12:00:58 +00:00
|
|
|
else
|
2008-05-30 07:09:36 +00:00
|
|
|
pendulumSurface = frontSurface;
|
2008-05-02 12:00:58 +00:00
|
|
|
|
2008-05-30 07:09:36 +00:00
|
|
|
copyBackground(pendulum_x[frame_pen], 19, 152, 0, 55, 125, pendulumSurface, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
|
|
|
|
if (flags[1] == 2)
|
2008-05-30 07:09:36 +00:00
|
|
|
copyRect(18, 145, 145, 105, 25, 29, drawSurface3, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
|
|
|
|
if (flags[1] == 0)
|
2008-05-30 07:09:36 +00:00
|
|
|
copyRect(44, 145, 145, 105, 25, 29, drawSurface3, screenSurface);
|
2008-05-02 12:00:58 +00:00
|
|
|
|
2008-06-04 07:58:34 +00:00
|
|
|
difference = getTime() - savedTime;
|
2008-05-30 08:14:01 +00:00
|
|
|
if (difference > 8) {
|
2008-05-02 12:00:58 +00:00
|
|
|
frame_pen++;
|
|
|
|
if (frame_pen == 17)
|
|
|
|
frame_pen = 0;
|
2008-06-04 07:58:34 +00:00
|
|
|
savedTime = getTime();
|
2008-05-02 12:00:58 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2008-05-30 23:43:47 +00:00
|
|
|
bool DrasculaEngine::checkFlag(int fl) {
|
|
|
|
characterMoved = 0;
|
|
|
|
updateRoom();
|
2008-05-31 12:40:02 +00:00
|
|
|
updateScreen();
|
2008-05-30 23:43:47 +00:00
|
|
|
|
|
|
|
hasAnswer = 1;
|
|
|
|
|
|
|
|
if (menuScreen == 1) {
|
2008-05-31 09:16:26 +00:00
|
|
|
if (currentChapter == 1) {
|
2008-05-30 23:43:47 +00:00
|
|
|
if (pickedObject == kVerbLook && fl == 28)
|
|
|
|
talk(328);
|
2008-05-31 09:16:26 +00:00
|
|
|
} else if (currentChapter == 2) {
|
2008-05-30 23:43:47 +00:00
|
|
|
if ((pickedObject == kVerbLook && fl == 22 && flags[23] == 0)
|
|
|
|
|| (pickedObject == kVerbOpen && fl == 22 && flags[23] == 0)) {
|
|
|
|
talk(164);
|
|
|
|
flags[23] = 1;
|
|
|
|
withoutVerb();
|
|
|
|
addObject(7);
|
|
|
|
addObject(18);
|
|
|
|
} else if (pickedObject == kVerbLook && fl == 22 && flags[23] == 1)
|
|
|
|
talk(307);
|
|
|
|
else if (pickedObject == kVerbLook && fl == 28)
|
|
|
|
talk(328);
|
|
|
|
else if (pickedObject == kVerbLook && fl == 7)
|
|
|
|
talk(143);
|
|
|
|
else if (pickedObject == kVerbTalk && fl == 7)
|
|
|
|
talk(144);
|
|
|
|
else if (pickedObject == kVerbLook && fl == 8)
|
|
|
|
talk(145);
|
|
|
|
else if (pickedObject == kVerbTalk && fl == 8)
|
|
|
|
talk(146);
|
|
|
|
else if (pickedObject == kVerbLook && fl == 9)
|
|
|
|
talk(147);
|
|
|
|
else if (pickedObject == kVerbTalk && fl == 9)
|
|
|
|
talk(148);
|
|
|
|
else if (pickedObject == kVerbLook && fl == 10)
|
|
|
|
talk(151);
|
|
|
|
else if (pickedObject == kVerbLook && fl == 11)
|
|
|
|
talk(152);
|
|
|
|
else if (pickedObject == kVerbTalk && fl == 11)
|
|
|
|
talk(153);
|
|
|
|
else if (pickedObject == kVerbLook && fl == 12)
|
|
|
|
talk(154);
|
|
|
|
else if (pickedObject == kVerbLook && fl == 13)
|
|
|
|
talk(155);
|
|
|
|
else if (pickedObject == kVerbLook && fl == 14)
|
|
|
|
talk(157);
|
|
|
|
else if (pickedObject == kVerbLook && fl == 15)
|
|
|
|
talk(58);
|
|
|
|
else if (pickedObject == kVerbLook && fl == 16)
|
|
|
|
talk(158);
|
|
|
|
else if (pickedObject == kVerbLook && fl == 17)
|
|
|
|
talk(159);
|
|
|
|
else if (pickedObject == kVerbLook && fl == 18)
|
|
|
|
talk(160);
|
|
|
|
else if (pickedObject == kVerbLook && fl == 19)
|
|
|
|
talk(161);
|
|
|
|
else if (pickedObject == kVerbLook && fl == 20)
|
|
|
|
talk(162);
|
|
|
|
else if (pickedObject == kVerbLook && fl == 23)
|
|
|
|
talk(152);
|
|
|
|
else
|
|
|
|
hasAnswer = 0;
|
2008-05-31 09:16:26 +00:00
|
|
|
} else if (currentChapter == 3) {
|
2008-05-30 23:43:47 +00:00
|
|
|
if (pickedObject == kVerbLook && fl == 22)
|
|
|
|
talk(307);
|
|
|
|
else if (pickedObject == kVerbLook && fl == 28)
|
|
|
|
talk(328);
|
|
|
|
else if (pickedObject == kVerbLook && fl == 7)
|
|
|
|
talk(143);
|
|
|
|
else if (pickedObject == kVerbTalk && fl == 7)
|
|
|
|
talk(144);
|
|
|
|
else if (pickedObject == kVerbLook && fl == 8)
|
|
|
|
talk(145);
|
|
|
|
else if (pickedObject == kVerbTalk && fl == 8)
|
|
|
|
talk(146);
|
|
|
|
else if (pickedObject == kVerbLook && fl == 9)
|
|
|
|
talk(147);
|
|
|
|
else if (pickedObject == kVerbTalk && fl == 9)
|
|
|
|
talk(148);
|
|
|
|
else if (pickedObject == kVerbLook && fl == 10)
|
|
|
|
talk(151);
|
|
|
|
else if (pickedObject == kVerbLook && fl == 11)
|
|
|
|
talk(152);
|
|
|
|
else if (pickedObject == kVerbTalk && fl == 11)
|
|
|
|
talk(153);
|
|
|
|
else if (pickedObject == kVerbLook && fl == 12)
|
|
|
|
talk(154);
|
|
|
|
else if (pickedObject == kVerbLook && fl == 13)
|
|
|
|
talk(155);
|
|
|
|
else if (pickedObject == kVerbLook && fl == 14)
|
|
|
|
talk(157);
|
|
|
|
else if (pickedObject == kVerbLook && fl == 15)
|
|
|
|
talk(58);
|
|
|
|
else if (pickedObject == kVerbLook && fl == 16)
|
|
|
|
talk(158);
|
|
|
|
else if (pickedObject == kVerbLook && fl == 17)
|
|
|
|
talk(159);
|
|
|
|
else if (pickedObject == kVerbLook && fl == 18)
|
|
|
|
talk(160);
|
|
|
|
else if (pickedObject == kVerbLook && fl == 19)
|
|
|
|
talk(161);
|
|
|
|
else if (pickedObject == kVerbLook && fl == 20)
|
|
|
|
talk(162);
|
|
|
|
else if (pickedObject == kVerbLook && fl == 23)
|
|
|
|
talk(152);
|
|
|
|
else
|
|
|
|
hasAnswer = 0;
|
2008-05-31 09:16:26 +00:00
|
|
|
} else if (currentChapter == 4) {
|
2008-05-30 23:43:47 +00:00
|
|
|
if ((pickedObject == 18 && fl == 19) || (pickedObject == 19 && fl == 18)) {
|
|
|
|
withoutVerb();
|
|
|
|
chooseObject(21);
|
|
|
|
removeObject(18);
|
|
|
|
removeObject(19);
|
|
|
|
} else if ((pickedObject == 14 && fl == 19) || (pickedObject == 19 && fl == 14))
|
|
|
|
talk(484);
|
|
|
|
else if (pickedObject == kVerbLook && fl == 28)
|
|
|
|
talk(328);
|
|
|
|
else if (pickedObject == kVerbLook && fl == 7)
|
|
|
|
talk(478);
|
|
|
|
else if (pickedObject == kVerbLook && fl == 8)
|
|
|
|
talk(480);
|
|
|
|
else if (pickedObject == kVerbLook && fl == 9) {
|
|
|
|
talk(482);
|
|
|
|
talk(483);
|
|
|
|
} else if (pickedObject == kVerbLook && fl == 10)
|
|
|
|
talk(485);
|
|
|
|
else if (pickedObject == kVerbLook && fl == 11)
|
|
|
|
talk(488);
|
|
|
|
else if (pickedObject == kVerbLook && fl == 12)
|
|
|
|
talk(486);
|
|
|
|
else if (pickedObject == kVerbLook && fl == 13)
|
|
|
|
talk(490);
|
|
|
|
else if (pickedObject == kVerbLook && fl == 14)
|
|
|
|
talk(122);
|
|
|
|
else if (pickedObject == kVerbLook && fl == 15)
|
|
|
|
talk(117);
|
|
|
|
else if (pickedObject == kVerbTalk && fl == 15)
|
|
|
|
talk(118);
|
|
|
|
else if (pickedObject == kVerbOpen && fl == 15)
|
|
|
|
talk(119);
|
|
|
|
else if (pickedObject == kVerbLook && fl == 16)
|
|
|
|
talk(491);
|
|
|
|
else if (pickedObject == kVerbLook && fl == 17)
|
|
|
|
talk(478);
|
|
|
|
else if (pickedObject == kVerbLook && fl == 18)
|
|
|
|
talk(493);
|
|
|
|
else if (pickedObject == kVerbLook && fl == 19) {
|
|
|
|
talk(494);
|
|
|
|
talk(495);
|
|
|
|
} else if (pickedObject == kVerbLook && fl == 20)
|
|
|
|
talk(162);
|
|
|
|
else if (pickedObject == kVerbLook && fl == 21)
|
|
|
|
talk(496);
|
|
|
|
else if (pickedObject == kVerbLook && fl == 22)
|
|
|
|
talk(161);
|
|
|
|
else
|
|
|
|
hasAnswer = 0;
|
2008-05-31 09:16:26 +00:00
|
|
|
} else if (currentChapter == 5) {
|
2008-05-30 23:43:47 +00:00
|
|
|
if (pickedObject == kVerbLook && fl == 28)
|
|
|
|
talk(328);
|
|
|
|
else if (pickedObject == kVerbLook && fl == 7)
|
|
|
|
talk(478);
|
|
|
|
else if (pickedObject == kVerbLook && fl == 8)
|
|
|
|
talk(120);
|
|
|
|
else if (pickedObject == kVerbLook && fl == 9) {
|
|
|
|
talk(482);
|
|
|
|
talk(483);
|
|
|
|
} else if (pickedObject == kVerbLook && fl == 11)
|
|
|
|
talk(488);
|
|
|
|
else if (pickedObject == kVerbLook && fl == 13)
|
|
|
|
talk(490);
|
|
|
|
else if (pickedObject == kVerbLook && fl == 14)
|
|
|
|
talk(121);
|
|
|
|
else if (pickedObject == kVerbLook && fl == 15)
|
|
|
|
talk(117);
|
|
|
|
else if (pickedObject == kVerbTalk && fl == 15)
|
|
|
|
talk(118);
|
|
|
|
else if (pickedObject == kVerbOpen && fl == 15)
|
|
|
|
talk(119);
|
|
|
|
else if (pickedObject == kVerbLook && fl == 17)
|
|
|
|
talk(478);
|
|
|
|
else if (pickedObject == kVerbLook && fl == 20)
|
2008-05-31 10:01:13 +00:00
|
|
|
talk(162);
|
2008-05-30 23:43:47 +00:00
|
|
|
else
|
|
|
|
hasAnswer = 0;
|
2008-05-31 09:16:26 +00:00
|
|
|
} else if (currentChapter == 6) {
|
2008-05-30 23:43:47 +00:00
|
|
|
if (pickedObject == kVerbLook && fl == 28)
|
|
|
|
talk(328);
|
|
|
|
else if (pickedObject == kVerbLook && fl == 9) {
|
|
|
|
talk(482);
|
|
|
|
talk(483);
|
|
|
|
} else if (pickedObject == kVerbLook && fl == 20)
|
|
|
|
talk(123);
|
|
|
|
else if (pickedObject == kVerbLook && fl == 21)
|
|
|
|
talk(441);
|
|
|
|
else
|
|
|
|
hasAnswer = 0;
|
|
|
|
}
|
|
|
|
} else {
|
2008-05-31 09:16:26 +00:00
|
|
|
if (currentChapter == 1) {
|
2008-05-30 23:43:47 +00:00
|
|
|
if (pickedObject == kVerbLook && fl == 50)
|
|
|
|
talk(308);
|
|
|
|
else if (pickedObject == kVerbOpen && fl == 50)
|
|
|
|
talk(310);
|
|
|
|
else if (pickedObject == kVerbClose && fl == 50)
|
|
|
|
talk(311);
|
|
|
|
else if (pickedObject == kVerbMove && fl == 50)
|
|
|
|
talk(312);
|
|
|
|
else if (pickedObject == kVerbPick && fl == 50)
|
|
|
|
talk(313);
|
|
|
|
else if (pickedObject == kVerbTalk && fl == 50)
|
|
|
|
talk(314);
|
|
|
|
else if (roomNumber == 62)
|
|
|
|
room_62(fl);
|
|
|
|
else if (roomNumber == 63)
|
|
|
|
room_63(fl);
|
|
|
|
else
|
|
|
|
hasAnswer = 0;
|
2008-05-31 09:16:26 +00:00
|
|
|
} else if (currentChapter == 2) {
|
2008-05-30 23:43:47 +00:00
|
|
|
if (pickedObject == kVerbLook && fl == 50)
|
|
|
|
talk(308);
|
|
|
|
else if (pickedObject == kVerbOpen && fl == 50)
|
|
|
|
talk(310);
|
|
|
|
else if (pickedObject == kVerbClose && fl == 50)
|
|
|
|
talk(311);
|
|
|
|
else if (pickedObject == kVerbMove && fl == 50)
|
|
|
|
talk(312);
|
|
|
|
else if (pickedObject == kVerbPick && fl == 50)
|
|
|
|
talk(313);
|
|
|
|
else if (pickedObject == kVerbTalk && fl == 50)
|
|
|
|
talk(314);
|
|
|
|
// Note: the original check was strcmp(num_room, "18.alg")
|
|
|
|
else if (pickedObject == 11 && fl == 50 && flags[22] == 0 && roomNumber != 18)
|
|
|
|
talk(315);
|
|
|
|
else if (pickedObject == 13 && fl == 50)
|
|
|
|
talk(156);
|
|
|
|
else if (pickedObject == 20 && fl == 50)
|
|
|
|
talk(163);
|
|
|
|
else if (roomNumber == 1)
|
|
|
|
room_1(fl);
|
|
|
|
else if (roomNumber == 3)
|
|
|
|
room_3(fl);
|
|
|
|
else if (roomNumber == 4)
|
|
|
|
room_4(fl);
|
|
|
|
else if (roomNumber == 5)
|
|
|
|
room_5(fl);
|
|
|
|
else if (roomNumber == 6)
|
|
|
|
room_6(fl);
|
|
|
|
else if (roomNumber == 7)
|
|
|
|
room_7(fl);
|
|
|
|
else if (roomNumber == 8)
|
|
|
|
room_8(fl);
|
|
|
|
else if (roomNumber == 9)
|
|
|
|
room_9(fl);
|
|
|
|
else if (roomNumber == 12)
|
|
|
|
room_12(fl);
|
|
|
|
else if (roomNumber == 14)
|
|
|
|
room_14(fl);
|
|
|
|
else if (roomNumber == 15)
|
|
|
|
room_15(fl);
|
|
|
|
else if (roomNumber == 16)
|
|
|
|
room_16(fl);
|
|
|
|
else if (roomNumber == 17)
|
|
|
|
room_17(fl);
|
|
|
|
else if (roomNumber == 18)
|
|
|
|
room_18(fl);
|
|
|
|
else if (roomNumber == 19)
|
|
|
|
room_19(fl);
|
|
|
|
else
|
|
|
|
hasAnswer = 0;
|
2008-05-31 09:16:26 +00:00
|
|
|
} else if (currentChapter == 3) {
|
2008-05-30 23:43:47 +00:00
|
|
|
if (pickedObject == kVerbLook && fl == 50)
|
|
|
|
talk(309);
|
|
|
|
else if (pickedObject == kVerbOpen && fl == 50)
|
|
|
|
talk(310);
|
|
|
|
else if (pickedObject == kVerbClose && fl == 50)
|
|
|
|
talk(311);
|
|
|
|
else if (pickedObject == kVerbMove && fl == 50)
|
|
|
|
talk(312);
|
|
|
|
else if (pickedObject == kVerbPick && fl == 50)
|
|
|
|
talk(313);
|
|
|
|
else if (pickedObject == kVerbTalk && fl == 50)
|
|
|
|
talk(314);
|
|
|
|
else if (roomNumber == 13) {
|
|
|
|
if (room_13(fl))
|
|
|
|
return true;
|
|
|
|
} else
|
|
|
|
hasAnswer = 0;
|
2008-05-31 09:16:26 +00:00
|
|
|
} else if (currentChapter == 4) {
|
2008-05-30 23:43:47 +00:00
|
|
|
if (roomNumber == 28)
|
|
|
|
talk(178);
|
|
|
|
else if (pickedObject == kVerbLook && fl == 50)
|
|
|
|
talk(309);
|
|
|
|
else if (pickedObject == kVerbOpen && fl == 50)
|
|
|
|
talk(310);
|
|
|
|
else if (pickedObject == kVerbClose && fl == 50)
|
|
|
|
talk(311);
|
|
|
|
else if (pickedObject == kVerbMove && fl == 50)
|
|
|
|
talk(312);
|
|
|
|
else if (pickedObject == kVerbPick && fl == 50)
|
|
|
|
talk(313);
|
|
|
|
else if (pickedObject == kVerbTalk && fl == 50)
|
|
|
|
talk(314);
|
|
|
|
else if (pickedObject == 8 && fl == 50 && flags[18] == 0)
|
|
|
|
talk(481);
|
|
|
|
else if (pickedObject == 9 && fl == 50)
|
|
|
|
talk(484);
|
|
|
|
else if (pickedObject == 12 && fl == 50 && flags[18] == 0)
|
|
|
|
talk(487);
|
|
|
|
else if (pickedObject == 20 && fl == 50)
|
|
|
|
talk(487);
|
|
|
|
else if (roomNumber == 21) {
|
|
|
|
if (room_21(fl))
|
|
|
|
return true;
|
|
|
|
} else if (roomNumber == 22)
|
|
|
|
room_22(fl);
|
|
|
|
else if (roomNumber == 23)
|
|
|
|
room_23(fl);
|
|
|
|
else if (roomNumber == 24)
|
|
|
|
room_24(fl);
|
|
|
|
else if (roomNumber == 26)
|
|
|
|
room_26(fl);
|
|
|
|
else if (roomNumber == 27)
|
|
|
|
room_27(fl);
|
|
|
|
else if (roomNumber == 29)
|
|
|
|
room_29(fl);
|
|
|
|
else if (roomNumber == 30)
|
|
|
|
room_30(fl);
|
|
|
|
else if (roomNumber == 31)
|
|
|
|
room_31(fl);
|
|
|
|
else if (roomNumber == 34)
|
|
|
|
room_34(fl);
|
|
|
|
else if (roomNumber == 35)
|
|
|
|
room_35(fl);
|
|
|
|
else if (roomNumber == 44)
|
|
|
|
room_44(fl);
|
|
|
|
else
|
|
|
|
hasAnswer = 0;
|
2008-05-31 09:16:26 +00:00
|
|
|
} else if (currentChapter == 5) {
|
2008-06-03 08:54:49 +00:00
|
|
|
// TODO: These are not translated
|
2008-05-30 23:43:47 +00:00
|
|
|
if (pickedObject == kVerbLook && fl == 50)
|
|
|
|
talk("Cuanto mas me miro, mas me gusto", "54.als");
|
|
|
|
else if (pickedObject == kVerbOpen && fl == 50)
|
|
|
|
talk("y luego como me cierro", "19.als");
|
|
|
|
else if (pickedObject == kVerbClose && fl == 50)
|
|
|
|
talk("Tendre que abrirme primero no", "19.als");
|
|
|
|
else if (pickedObject == kVerbMove && fl == 50)
|
|
|
|
talk("Estoy bien donde estoy", "19.als");
|
|
|
|
else if (pickedObject == kVerbPick && fl == 50)
|
|
|
|
talk("Ya me tengo", "11.als");
|
|
|
|
else if (pickedObject == kVerbTalk && fl == 50)
|
|
|
|
talk("hola yo", "16.als");
|
|
|
|
else if (pickedObject == 20 && fl == 50)
|
|
|
|
talk(487);
|
|
|
|
else if (roomNumber == 49)
|
|
|
|
room_49(fl);
|
|
|
|
else if (roomNumber == 53)
|
|
|
|
room_53(fl);
|
|
|
|
else if (roomNumber == 54)
|
|
|
|
room_54(fl);
|
|
|
|
else if (roomNumber == 55)
|
|
|
|
room_55(fl);
|
|
|
|
else if (roomNumber == 56) {
|
|
|
|
if (room_56(fl))
|
|
|
|
return true;
|
|
|
|
} else
|
|
|
|
hasAnswer = 0;
|
2008-05-31 09:16:26 +00:00
|
|
|
} else if (currentChapter == 6) {
|
2008-05-30 23:43:47 +00:00
|
|
|
if (pickedObject == kVerbLook && fl == 50 && flags[0] == 1)
|
|
|
|
talk(308);
|
|
|
|
else if (pickedObject == kVerbLook && fl == 50 && flags[0] == 0)
|
2008-06-03 08:54:49 +00:00
|
|
|
talk(310);
|
2008-05-30 23:43:47 +00:00
|
|
|
else if (pickedObject == kVerbOpen && fl == 50)
|
2008-06-03 08:54:49 +00:00
|
|
|
talk(310);
|
2008-05-30 23:43:47 +00:00
|
|
|
else if (pickedObject == kVerbClose && fl == 50)
|
2008-06-03 08:54:49 +00:00
|
|
|
talk(311);
|
2008-05-30 23:43:47 +00:00
|
|
|
else if (pickedObject == kVerbMove && fl == 50)
|
2008-06-03 08:54:49 +00:00
|
|
|
talk(312);
|
2008-05-30 23:43:47 +00:00
|
|
|
else if (pickedObject == kVerbPick && fl == 50)
|
2008-06-03 08:54:49 +00:00
|
|
|
talk(313);
|
2008-05-30 23:43:47 +00:00
|
|
|
else if (pickedObject == kVerbTalk && fl == 50)
|
2008-06-03 08:54:49 +00:00
|
|
|
talk(314);
|
2008-05-30 23:43:47 +00:00
|
|
|
else if (roomNumber == 102)
|
|
|
|
room_pendulum(fl);
|
|
|
|
else if (roomNumber == 58)
|
|
|
|
room_58(fl);
|
|
|
|
else if (roomNumber == 59)
|
|
|
|
room_59(fl);
|
|
|
|
else if (roomNumber == 60) {
|
|
|
|
if (room_60(fl))
|
|
|
|
return true;
|
|
|
|
} else if (roomNumber == 61)
|
|
|
|
room_61(fl);
|
|
|
|
else
|
|
|
|
hasAnswer = 0;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (hasAnswer == 0 && hasName == 1)
|
|
|
|
room_0();
|
|
|
|
else if (hasAnswer == 0 && menuScreen == 1)
|
|
|
|
room_0();
|
|
|
|
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
2008-05-02 12:00:58 +00:00
|
|
|
} // End of namespace Drascula
|