aboutsummaryrefslogtreecommitdiff
path: root/engines/drascula/talk.cpp
diff options
context:
space:
mode:
authorFilippos Karapetis2008-05-30 10:14:27 +0000
committerFilippos Karapetis2008-05-30 10:14:27 +0000
commitd261c93049b9d14f4c8e70242229368f9f8eae00 (patch)
tree70967646150dfee004855ef35bc36a0811d40e72 /engines/drascula/talk.cpp
parentea276dd17744fba2b7fa54f6084c6bd52d9f873e (diff)
downloadscummvm-rg350-d261c93049b9d14f4c8e70242229368f9f8eae00.tar.gz
scummvm-rg350-d261c93049b9d14f4c8e70242229368f9f8eae00.tar.bz2
scummvm-rg350-d261c93049b9d14f4c8e70242229368f9f8eae00.zip
More simplification of talk code. Moved talk_dr_grande() from animation.cpp to talk.cpp
svn-id: r32390
Diffstat (limited to 'engines/drascula/talk.cpp')
-rw-r--r--engines/drascula/talk.cpp96
1 files changed, 48 insertions, 48 deletions
diff --git a/engines/drascula/talk.cpp b/engines/drascula/talk.cpp
index 0502ca44e6..c4e208b7df 100644
--- a/engines/drascula/talk.cpp
+++ b/engines/drascula/talk.cpp
@@ -28,6 +28,8 @@
namespace Drascula {
void DrasculaEngine::talkInit(const char *filename) {
+ _rnd->setSeed((unsigned int)_system->getMillis() / 2);
+
if (hay_sb == 1) {
sku = new Common::File;
sku->open(filename);
@@ -51,8 +53,6 @@ void DrasculaEngine::talk_igor_dch(const char *said, const char *filename) {
int face;
int length = strlen(said);
- _rnd->setSeed((unsigned int)_system->getMillis() / 2);
-
color_abc(kColorWhite);
talkInit(filename);
@@ -113,8 +113,6 @@ void DrasculaEngine::talk_dr_izq(const char *said, const char *filename) {
int face;
int length = strlen(said);
- _rnd->setSeed((unsigned int)_system->getMillis() / 2);
-
color_abc(kColorRed);
talkInit(filename);
@@ -181,8 +179,6 @@ void DrasculaEngine::talk_dr_dch(const char *said, const char *filename) {
int face;
int length = strlen(said);
- _rnd->setSeed((unsigned int)_system->getMillis() / 2);
-
color_abc(kColorRed);
talkInit(filename);
@@ -244,8 +240,6 @@ bucless:
void DrasculaEngine::talk_solo(const char *said, const char *filename) {
int length = strlen(said);
- _rnd->setSeed((unsigned int)_system->getMillis() / 2);
-
if (num_ejec == 1)
color_abc(color_solo);
else if (num_ejec == 4)
@@ -295,8 +289,6 @@ void DrasculaEngine::talk_igor_front(const char *said, const char *filename) {
int face;
int length = strlen(said);
- _rnd->setSeed((unsigned int)_system->getMillis() / 2);
-
color_abc(kColorWhite);
talkInit(filename);
@@ -366,8 +358,6 @@ void DrasculaEngine::talk_tabernero(const char *said, const char *filename) {
int face;
int length = strlen(said);
- _rnd->setSeed((unsigned int)_system->getMillis() / 2);
-
color_abc(kColorMaroon);
talkInit(filename);
@@ -428,8 +418,6 @@ void DrasculaEngine::talk_bj(const char *said, const char *filename) {
int face;
int length = strlen(said);
- _rnd->setSeed((unsigned int)_system->getMillis() / 2);
-
color_abc(kColorWhite);
talkInit(filename);
@@ -514,8 +502,6 @@ void DrasculaEngine::talk(const char *said, const char *filename) {
}
}
- _rnd->setSeed((unsigned int)_system->getMillis() / 2);
-
if (num_ejec != 2) {
if (factor_red[hare_y + alto_hare] == 100)
suma_1_pixel = 0;
@@ -634,8 +620,6 @@ void DrasculaEngine::talk_pianista(const char *said, const char *filename) {
int face;
int length = strlen(said);
- _rnd->setSeed((unsigned int)_system->getMillis() / 2);
-
color_abc(kColorWhite);
talkInit(filename);
@@ -684,8 +668,6 @@ void DrasculaEngine::talk_drunk(const char *said, const char *filename) {
int face;
int length = strlen(said);
- _rnd->setSeed((unsigned int)_system->getMillis() / 2);
-
if (num_ejec == 1) {
loadPic("an11y13.alg");
decompressPic(frontSurface, 1);
@@ -768,8 +750,6 @@ void DrasculaEngine::talk_vb(const char *said, const char *filename) {
int face;
int length = strlen(said);
- _rnd->setSeed((unsigned int)_system->getMillis() / 2);
-
color_abc(kColorBrown);
talkInit(filename);
@@ -827,8 +807,6 @@ void DrasculaEngine::talk_vbpuerta(int index) {
void DrasculaEngine::talk_vbpuerta(const char *said, const char *filename) {
int length = strlen(said);
- _rnd->setSeed((unsigned int)_system->getMillis() / 2);
-
color_abc(kColorBrown);
talkInit(filename);
@@ -935,8 +913,6 @@ bucless:
void DrasculaEngine::talk_hacker(const char *said, const char *filename) {
int length = strlen(said);
- _rnd->setSeed((unsigned int)_system->getMillis() / 2);
-
copyBackground(0, 0, 0, 0, 320, 200, drawSurface1, screenSurface);
updateScreen(0, 0, 0, 0, 320, 200, screenSurface);
@@ -972,8 +948,6 @@ void DrasculaEngine::talk_wolf(const char *said, const char *filename) {
int face;
int length = strlen(said);
- _rnd->setSeed((unsigned int)_system->getMillis() / 2);
-
color_abc(kColorRed);
talkInit(filename);
@@ -1021,8 +995,6 @@ void DrasculaEngine::talk_mus(const char *said, const char *filename) {
int face;
int length = strlen(said);
- _rnd->setSeed((unsigned int)_system->getMillis() / 2);
-
color_abc(kColorWhite);
talkInit(filename);
@@ -1076,8 +1048,6 @@ void DrasculaEngine::talk_pen(const char *said, const char *filename) {
copyRect(44, 145, 145, 105, 25, 29, drawSurface3, screenSurface);
updateScreen(0, 0, 0, 0, 320, 200, screenSurface);
- _rnd->setSeed((unsigned int)_system->getMillis() / 2);
-
color_abc(kColorYellow);
talkInit(filename);
@@ -1129,8 +1099,6 @@ void DrasculaEngine::talk_pen2(const char *said, const char *filename) {
flags[1] = 1;
- _rnd->setSeed((unsigned int)_system->getMillis() / 2);
-
color_abc(kColorYellow);
talkInit(filename);
@@ -1186,8 +1154,6 @@ void DrasculaEngine::talk_taber2(const char *said, const char *filename) {
int face;
int length = strlen(said);
- _rnd->setSeed((unsigned int)_system->getMillis() / 2);
-
color_abc(kColorMaroon);
talkInit(filename);
@@ -1241,8 +1207,6 @@ void DrasculaEngine::talk_bj_bed(const char *said, const char *filename) {
int face;
int length = strlen(said);
- _rnd->setSeed((unsigned int)_system->getMillis() / 2);
-
color_abc(kColorWhite);
talkInit(filename);
@@ -1291,8 +1255,6 @@ void DrasculaEngine::talk_htel(const char *said, const char *filename) {
int face, pantalla;
int length = strlen(said);
- _rnd->setSeed((unsigned int)_system->getMillis() / 2);
-
color_abc(kColorYellow);
talkInit(filename);
@@ -1442,8 +1404,6 @@ void DrasculaEngine::talk_baul(const char *said, const char *filename) {
int face = 0, cara_antes;
int length = strlen(said);
- _rnd->setSeed((unsigned int)_system->getMillis() / 2);
-
cara_antes = flags[19];
color_abc(kColorMaroon);
@@ -1490,8 +1450,6 @@ bucless:
void DrasculaEngine::talk_igor_door(const char *said, const char *filename) {
int length = strlen(said);
- _rnd->setSeed((unsigned int)_system->getMillis() / 2);
-
color_abc(kColorWhite);
talkInit(filename);
@@ -1527,8 +1485,6 @@ void DrasculaEngine::talk_igor_seated(const char *said, const char *filename) {
int face;
int length = strlen(said);
- _rnd->setSeed((unsigned int)_system->getMillis() / 2);
-
color_abc(kColorWhite);
talkInit(filename);
@@ -1576,8 +1532,6 @@ void DrasculaEngine::talk_igor_wig(const char *said, const char *filename) {
int face = 0;
int length = strlen(said);
- _rnd->setSeed((unsigned int)_system->getMillis() / 2);
-
color_abc(kColorWhite);
talkInit(filename);
@@ -1620,4 +1574,50 @@ bucless:
updateScreen(0, 0, 0, 0, 320, 200, screenSurface);
}
+void DrasculaEngine::talk_dr_grande(const char *said, const char *filename) {
+ int x_talk[4] = {47, 93, 139, 185};
+ int face;
+ int l = 0;
+ int length = strlen(said);
+
+ color_abc(kColorRed);
+
+ talkInit(filename);
+
+bucless:
+
+ face = _rnd->getRandomNumber(3);
+ copyBackground(0, 0, 0, 0, 320, 200, drawSurface1, screenSurface);
+ copyBackground(interf_x[l] + 24, interf_y[l], 0, 45, 39, 31, drawSurface2, screenSurface);
+ copyBackground(x_talk[face], 1, 171, 68, 45, 48, drawSurface2, screenSurface);
+ l++;
+ if (l == 7)
+ l = 0;
+
+ if (withVoices == 0)
+ centerText(said, 191, 69);
+
+ updateScreen(0, 0, 0, 0, 320, 200, screenSurface);
+
+ pause(3);
+
+ byte key = getScan();
+ if (key == Common::KEYCODE_ESCAPE)
+ term_int = 1;
+
+ if (key != 0)
+ ctvd_stop();
+ if (hay_sb == 1) {
+ if (LookForFree() != 0)
+ goto bucless;
+ delete sku;
+ sku = NULL;
+ ctvd_terminate();
+ } else {
+ length -= 2;
+ if (length > 0)
+ goto bucless;
+ }
+}
+
} // End of namespace Drascula