diff options
author | Paweł Kołodziejski | 2008-03-08 11:33:18 +0000 |
---|---|---|
committer | Paweł Kołodziejski | 2008-03-08 11:33:18 +0000 |
commit | 8b454a176c85d52771042cd45999088b4ceeca4f (patch) | |
tree | 8078867c2f6e9461250c0eeb4aeb1a22d20541c2 | |
parent | 939166bbda7132a352292b99888643a1474bfdbd (diff) | |
download | scummvm-rg350-8b454a176c85d52771042cd45999088b4ceeca4f.tar.gz scummvm-rg350-8b454a176c85d52771042cd45999088b4ceeca4f.tar.bz2 scummvm-rg350-8b454a176c85d52771042cd45999088b4ceeca4f.zip |
more fixes after merge parts of engine. now game reach final part 6
svn-id: r31061
-rw-r--r-- | engines/drascula/drascula.cpp | 87 |
1 files changed, 63 insertions, 24 deletions
diff --git a/engines/drascula/drascula.cpp b/engines/drascula/drascula.cpp index 7ddddaf020..b23142ff8c 100644 --- a/engines/drascula/drascula.cpp +++ b/engines/drascula/drascula.cpp @@ -162,6 +162,7 @@ int DrasculaEngine::go() { c_mirar = 0; c_poder = 0; ald = NULL; + sku = NULL; asigna_memoria(); @@ -2593,6 +2594,7 @@ void DrasculaEngine::animafin_sound_corte() { if (hay_sb == 1) { ctvd_stop(); delete sku; + sku = NULL; ctvd_terminate(); } } @@ -2676,6 +2678,7 @@ bucless: if (LookForFree() != 0) goto bucless; delete sku; + sku = NULL; ctvd_terminate(); } else { longitud = longitud - 2; @@ -2800,6 +2803,7 @@ bucless: if (LookForFree() != 0) goto bucless; delete sku; + sku = NULL; ctvd_terminate(); } else { longitud = longitud - 2; @@ -2874,6 +2878,7 @@ bucless: if (LookForFree() != 0) goto bucless; delete sku; + sku = NULL; ctvd_terminate(); } else { longitud = longitud - 2; @@ -2948,6 +2953,7 @@ bucless: if (LookForFree() != 0) goto bucless; delete sku; + sku = NULL; ctvd_terminate(); } else { longitud = longitud - 2; @@ -3001,6 +3007,7 @@ bucless: if (LookForFree() != 0) goto bucless; delete sku; + sku = NULL; ctvd_terminate(); } else { longitud = longitud - 2; @@ -3072,6 +3079,7 @@ bucless: if (LookForFree() != 0) goto bucless; delete sku; + sku = NULL; ctvd_terminate(); } else { longitud = longitud - 2; @@ -3200,6 +3208,7 @@ void DrasculaEngine::fin_sound() { if (hay_sb == 1) { while (LookForFree() != 0); delete sku; + sku = NULL; } } @@ -3233,27 +3242,35 @@ void DrasculaEngine::habla_bj(const char *dicho, const char *filename) { } bucless: + if (num_ejec != 5) { + cara = _rnd->getRandomNumber(4); - cara = _rnd->getRandomNumber(4); + DIBUJA_FONDO(0, 0, 0, 0, 320, 200, dir_dibujo1, dir_zona_pantalla); - DIBUJA_FONDO(0, 0, 0, 0, 320, 200, dir_dibujo1, dir_zona_pantalla); + actualiza_refresco_antes(); - actualiza_refresco_antes(); + DIBUJA_FONDO(x_bj + 2, y_bj - 1, x_bj + 2, y_bj - 1, 27, 40, + dir_dibujo1, dir_zona_pantalla); - DIBUJA_FONDO(x_bj + 2, y_bj - 1, x_bj + 2, y_bj - 1, 27, 40, - dir_dibujo1, dir_zona_pantalla); + DIBUJA_BLOQUE(x_habla[cara], 99, x_bj + 2, y_bj - 1, 27, 40, + dir_dibujo3, dir_zona_pantalla); + pon_hare(); + actualiza_refresco(); - DIBUJA_BLOQUE(x_habla[cara], 99, x_bj + 2, y_bj - 1, 27, 40, - dir_dibujo3, dir_zona_pantalla); - pon_hare(); - actualiza_refresco(); + if (con_voces == 0) + centra_texto(dicho, x_bj + 7, y_bj); - if (con_voces == 0) - centra_texto(dicho, x_bj + 7, y_bj); + VUELCA_PANTALLA(0, 0, 0, 0, 320, 200, dir_zona_pantalla); - VUELCA_PANTALLA(0, 0, 0, 0, 320, 200, dir_zona_pantalla); + pausa(3); + } else { + refresca_pantalla(); - pausa(3); + if (con_voces == 0) + centra_texto(dicho, 93, 80); + + VUELCA_PANTALLA(0, 0, 0, 0, 320, 200, dir_zona_pantalla); + } byte key = getscan(); if (key == Common::KEYCODE_ESCAPE) @@ -3265,6 +3282,7 @@ bucless: if (LookForFree() != 0) goto bucless; delete sku; + sku = NULL; ctvd_terminate(); } else { longitud = longitud - 2; @@ -3316,8 +3334,9 @@ void DrasculaEngine::hablar(const char *dicho, const char *filename) { buffer_teclado(); if (num_ejec == 4) { - if (strcmp(num_room, "24.alg") || flags[29] == 0) + if (strcmp(num_room, "24.alg") || flags[29] == 0) { color_abc(AMARILLO); + } } else { color_abc(AMARILLO); } @@ -3406,6 +3425,7 @@ bucless: if (LookForFree() != 0) goto bucless; delete sku; + sku = NULL; ctvd_terminate(); } else { longitud = longitud - 2; @@ -4473,10 +4493,10 @@ bool DrasculaEngine::banderas(int fl) { hablar(TEXT487, "487.als"); else if (objeto_que_lleva == 20 && fl == 50) hablar(TEXT487, "487.als"); - else if (!strcmp(num_room, "21.alg")) + else if (!strcmp(num_room, "21.alg")) { if (pantalla_21(fl)) return true; - else if (!strcmp(num_room, "22.alg")) + } else if (!strcmp(num_room, "22.alg")) pantalla_22(fl); else if (!strcmp(num_room, "23.alg")) pantalla_23(fl); @@ -4523,10 +4543,10 @@ bool DrasculaEngine::banderas(int fl) { pantalla_54(fl); else if (!strcmp(num_room, "55.alg")) pantalla_55(fl); - else if (!strcmp(num_room, "56.alg")) + else if (!strcmp(num_room, "56.alg")) { if (pantalla_56(fl)) return true; - else + } else hay_respuesta = 0; } else if (num_ejec == 6) { if (objeto_que_lleva == MIRAR && fl == 50 && flags[0] == 0) @@ -5961,6 +5981,7 @@ bucless: if (LookForFree() != 0) goto bucless; delete sku; + sku = NULL; ctvd_terminate(); } else { longitud = longitud - 2; @@ -6040,6 +6061,7 @@ bucless: if (LookForFree() != 0) goto bucless; delete sku; + sku = NULL; ctvd_terminate(); } else { longitud = longitud - 2; @@ -6083,6 +6105,7 @@ void DrasculaEngine::fin_sound_corte() { if (hay_sb == 1) { ctvd_stop(); delete sku; + sku = NULL; ctvd_terminate(); } } @@ -6991,6 +7014,7 @@ bucless: if (LookForFree() != 0) goto bucless; delete sku; + sku = NULL; ctvd_terminate(); } else { longitud = longitud - 2; @@ -7045,6 +7069,7 @@ bucless: if (LookForFree() != 0) goto bucless; delete sku; + sku = NULL; ctvd_terminate(); } else { longitud = longitud - 2; @@ -7151,6 +7176,7 @@ bucless: if (LookForFree() != 0) goto bucless; delete sku; + sku = NULL; ctvd_terminate(); } else { longitud = longitud - 2; @@ -7200,6 +7226,7 @@ bucless: if (LookForFree() != 0) goto bucless; delete sku; + sku = NULL; ctvd_terminate(); } else { longitud = longitud - 2; @@ -7323,23 +7350,22 @@ comienza: void DrasculaEngine::abre_puerta(int nflag, int n_puerta) { if (flags[nflag] == 0) { - if (num_ejec == 1 || num_ejec == 4) { - if (nflag == 7) { +/* if (num_ejec == 1 || num_ejec == 4) { + if (nflag != 7) { comienza_sound("s3.als"); flags[nflag] = 1; } - } else { + } else {*/ comienza_sound("s3.als"); flags[nflag] = 1; - } +// } if (n_puerta != NO_PUERTA) puertas_cerradas(n_puerta); refresca_pantalla(); VUELCA_PANTALLA(0, 0, 0, 0, 320, 200, dir_zona_pantalla); fin_sound(); - if (num_ejec != 5) - sin_verbo(); + sin_verbo(); } } @@ -7637,6 +7663,7 @@ bucless: if (LookForFree() != 0) goto bucless; delete sku; + sku = NULL; ctvd_terminate(); } else { longitud = longitud - 2; @@ -8080,6 +8107,7 @@ bucless: if (LookForFree() != 0) goto bucless; delete sku; + sku = NULL; ctvd_terminate(); } else { longitud = longitud - 2; @@ -8713,6 +8741,7 @@ bucless: if (LookForFree() != 0) goto bucless; delete sku; + sku = NULL; ctvd_terminate(); } else { longitud = longitud - 2; @@ -8780,6 +8809,7 @@ bucless: if (LookForFree() != 0) goto bucless; delete sku; + sku = NULL; ctvd_terminate(); } else { longitud = longitud - 2; @@ -9191,6 +9221,7 @@ bucless: if (LookForFree() != 0) goto bucless; delete sku; + sku = NULL; ctvd_terminate(); } else { longitud = longitud - 2; @@ -9262,6 +9293,7 @@ bucless: if (LookForFree() != 0) goto bucless; delete sku; + sku = NULL; ctvd_terminate(); } else { longitud = longitud - 2; @@ -9331,6 +9363,7 @@ bucless: if (LookForFree() != 0) goto bucless; delete sku; + sku = NULL; ctvd_terminate(); } else { longitud = longitud - 2; @@ -9600,6 +9633,7 @@ bucless: if (LookForFree() != 0) goto bucless; delete sku; + sku = NULL; ctvd_terminate(); } else { longitud = longitud - 2; @@ -9670,6 +9704,7 @@ bucless: if (LookForFree() != 0) goto bucless; delete sku; + sku = NULL; ctvd_terminate(); } else { longitud = longitud - 2; @@ -10483,6 +10518,7 @@ bucless: if (LookForFree() != 0) goto bucless; delete sku; + sku = NULL; ctvd_terminate(); } else { longitud = longitud - 2; @@ -10545,6 +10581,7 @@ bucless: if (LookForFree() != 0) goto bucless; delete sku; + sku = NULL; ctvd_terminate(); } else { longitud = longitud - 2; @@ -11688,6 +11725,7 @@ bucless: if (LookForFree() != 0) goto bucless; delete sku; + sku = NULL; ctvd_terminate(); } else { longitud = longitud - 2; @@ -11755,6 +11793,7 @@ bucless: if (LookForFree() != 0) goto bucless; delete sku; + sku = NULL; ctvd_terminate(); } else { longitud = longitud - 2; |