diff options
author | Paweł Kołodziejski | 2007-10-08 09:37:57 +0000 |
---|---|---|
committer | Paweł Kołodziejski | 2007-10-08 09:37:57 +0000 |
commit | 8db35c8a6227764bf95c2acf28d0fe778537509e (patch) | |
tree | c0a14c10fcf88252830cf9c6fc138e3c048805e8 | |
parent | 521f0a298795f79bd3f41f303384bc9093867040 (diff) | |
download | scummvm-rg350-8db35c8a6227764bf95c2acf28d0fe778537509e.tar.gz scummvm-rg350-8db35c8a6227764bf95c2acf28d0fe778537509e.tar.bz2 scummvm-rg350-8db35c8a6227764bf95c2acf28d0fe778537509e.zip |
fixes after merges
svn-id: r29174
-rw-r--r-- | engines/drascula/drascula.cpp | 190 | ||||
-rw-r--r-- | engines/drascula/drascula.h | 9 |
2 files changed, 178 insertions, 21 deletions
diff --git a/engines/drascula/drascula.cpp b/engines/drascula/drascula.cpp index f8bdb6b5ff..60ac9e32d9 100644 --- a/engines/drascula/drascula.cpp +++ b/engines/drascula/drascula.cpp @@ -3153,8 +3153,10 @@ bucless: actualiza_refresco_antes(); pon_igor(); - pon_dr(); - DIBUJA_FONDO(x_igor, y_igor, x_igor, y_igor, 29, 25, dir_dibujo1, dir_zona_pantalla); + if (num_ejec != 4) { + pon_dr(); + DIBUJA_FONDO(x_igor, y_igor, x_igor, y_igor, 29, 25, dir_dibujo1, dir_zona_pantalla); + } DIBUJA_BLOQUE(x_habla[cara], 173, x_igor, y_igor, 29, 25, dir_hare_frente, dir_zona_pantalla); actualiza_refresco(); @@ -3183,9 +3185,11 @@ bucless: goto bucless; } - DIBUJA_FONDO(0, 0, 0, 0, 320, 200, dir_dibujo1, dir_zona_pantalla); - pon_igor(); - pon_dr(); + if (num_ejec != 4) { + DIBUJA_FONDO(0, 0, 0, 0, 320, 200, dir_dibujo1, dir_zona_pantalla); + pon_igor(); + pon_dr(); + } VUELCA_PANTALLA(0, 0, 0, 0, 320, 200, dir_zona_pantalla); } @@ -4602,7 +4606,8 @@ bool DrasculaEngine::banderas(int fl) { else if (objeto_que_lleva == 20 && fl == 50) hablar(TEXT487, "487.als"); else if (!strcmp(num_room, "21.alg")) - pantalla_21(fl); + if (pantalla_21(fl)) + return true; else if (!strcmp(num_room, "22.alg")) pantalla_22(fl); else if (!strcmp(num_room, "23.alg")) @@ -11519,7 +11524,7 @@ void DrasculaEngine::animacion_33_2() { flags[9] = 0; } -void DrasculaEngine::pantalla_21(int fl) { +bool DrasculaEngine::pantalla_21(int fl) { if (objeto_que_lleva == ABRIR && fl == 101 && flags[28] == 0) hablar(TEXT419, "419.als"); else if (objeto_que_lleva == ABRIR && fl == 101 && flags[28] == 1) @@ -11534,10 +11539,13 @@ void DrasculaEngine::pantalla_21(int fl) { flags[28] = 1; abre_puerta(0, 1); sin_verbo(); - } else if (objeto_que_lleva == 21 && fl == 179) - animacion_9_2(); - else + } else if (objeto_que_lleva == 21 && fl == 179) { + animacion_9_4(); + return true; + } else hay_respuesta = 0; + + return false; } void DrasculaEngine::pantalla_22(int fl) { @@ -11591,7 +11599,7 @@ void DrasculaEngine::pantalla_23(int fl) { if (flags[22] == 1 && flags[14] == 1) flags[18] = 1; if (flags[18] == 1) - animacion_6_2(); + animacion_6_4(); } else hay_respuesta = 0; } @@ -11619,13 +11627,13 @@ void DrasculaEngine::pantalla_26(int fl) { else if (objeto_que_lleva == CERRAR && fl == 107) cierra_puerta(2, 0); else if (objeto_que_lleva == 10 && fl == 50 && flags[18] == 1 && flags[12] == 1) - animacion_5_2(); + animacion_5_4(); else if (objeto_que_lleva == 8 && fl == 50 && flags[18] == 1 && flags[12] == 1) - animacion_5_2(); + animacion_5_4(); else if (objeto_que_lleva == 12 && fl == 50 && flags[18] == 1 && flags[12] == 1) - animacion_5_2(); + animacion_5_4(); else if (objeto_que_lleva == 16 && fl == 50 && flags[18] == 1 && flags[12] == 1) - animacion_5_2(); + animacion_5_4(); else if (objeto_que_lleva == COGER && fl == 143 && flags[18] == 1) { lleva_al_hare(260, 180); agarra_objeto(10); @@ -11645,7 +11653,7 @@ void DrasculaEngine::pantalla_26(int fl) { habla_igor_peluca(TEXTI25, "I25.als"); lleva_al_hare(153, 180); } else if (objeto_que_lleva == HABLAR && fl == 51) - animacion_1_2(); + animacion_1_4(); else if (objeto_que_lleva == ABRIR && fl == 167) hablar(TEXT467, "467.als"); else if (objeto_que_lleva == MIRAR && fl == 164) @@ -11756,7 +11764,7 @@ void DrasculaEngine::pantalla_31(int fl) { void DrasculaEngine::pantalla_34(int fl) { if (objeto_que_lleva == MOVER && fl == 146) - animacion_8_2(); + animacion_8_4(); else if (objeto_que_lleva == MIRAR && fl == 146) hablar(TEXT458, "458.als"); else if (objeto_que_lleva == COGER && fl == 146) @@ -11783,7 +11791,7 @@ void DrasculaEngine::pantalla_35(int fl) { if (flags[11] == 1 && flags[22] == 1) flags[18] = 1; if (flags[18] == 1) - animacion_6_2(); + animacion_6_4(); } else if (objeto_que_lleva == COGER && fl == 147) { hablar(TEXT426, "426.als"); agarra_objeto(15); @@ -11843,7 +11851,7 @@ bucless: if (key != 0) ctvd_stop(); buffer_teclado(); - if (hay_sb==1){ + if (hay_sb == 1) { if (LookForFree() != 0) goto bucless; delete sku; @@ -11925,4 +11933,148 @@ bucless: VUELCA_PANTALLA(0, 0, 0, 0, 320, 200, dir_zona_pantalla); } +void DrasculaEngine::animacion_1_4() { + if (flags[21] == 0) { + strcpy(nombre_obj[2], "igor"); + hablar(TEXT275, "275.als"); + + actualiza_refresco_antes(); + + DIBUJA_FONDO(131, 133, 199, 95, 50, 66, dir_dibujo3, dir_zona_pantalla); + VUELCA_PANTALLA(199, 95, 199, 95, 50, 66, dir_zona_pantalla); + + pausa(3); + + actualiza_refresco_antes(); + + DIBUJA_FONDO(182, 133, 199, 95, 50, 66, dir_dibujo3, dir_zona_pantalla); + pon_hare(); + + VUELCA_PANTALLA(0, 0, 0, 0, 320, 200, dir_zona_pantalla); + + pausa(3); + flags[18] = 1; + flags[20] = 1; + + habla_igor_sentado(TEXTI13, "I13.als"); + habla_igor_sentado(TEXTI14, "I14.als"); + habla_igor_sentado(TEXTI15, "I15.als"); + flags[21] = 1; + } else { + hablar(TEXT356, "356.als"); + + actualiza_refresco_antes(); + + DIBUJA_FONDO(131, 133, 199, 95, 50, 66, dir_dibujo3, dir_zona_pantalla); + VUELCA_PANTALLA(199, 95, 199, 95, 50, 66, dir_zona_pantalla); + pausa(2); + + actualiza_refresco_antes(); + + DIBUJA_FONDO(182, 133, 199, 95, 50, 66, dir_dibujo3, dir_zona_pantalla); + pon_hare(); + + VUELCA_PANTALLA(0, 0, 0, 0, 320, 200, dir_zona_pantalla); + + flags[18] = 1; + flags[20] = 1; + + hablar(TEXT276, "276.als"); + pausa(14); + habla_igor_sentado(TEXTI6, "I6.als"); + } + + conversa("op_6.cal"); + flags[20] = 0; + flags[18] = 0; +} + +void DrasculaEngine::animacion_5_4(){ + sentido_hare = 3; + lee_dibujos("anh_dr.alg"); + descomprime_dibujo(dir_hare_fondo, 1); + lleva_al_hare(99, 160); + lleva_al_hare(38, 177); + hare_se_ve = 0; + refresca_pantalla(); + VUELCA_PANTALLA(0, 0, 0, 0, 320, 200, dir_zona_pantalla); + delay(800); + anima("bio.bin", 14); + flags[29] = 1; + hare_x = 95; + hare_y = 82; + refresca_pantalla(); + VUELCA_PANTALLA(0, 0, 0, 0, 320, 200, dir_zona_pantalla); + abre_puerta(2, 0); + lee_dibujos("auxigor.alg"); + descomprime_dibujo(dir_hare_frente, 1); + x_igor = 100; + y_igor = 65; + habla_igor_frente(TEXTI29, "I29.ALS"); + habla_igor_frente(TEXTI30, "I30.als"); + lee_dibujos("96.alg"); + descomprime_dibujo(dir_hare_frente, 1); + lee_dibujos("99.alg"); + descomprime_dibujo(dir_hare_fondo, 1); + hare_se_ve = 1; + FundeAlNegro(0); + sal_de_la_habitacion(0); +} + +void DrasculaEngine::animacion_6_4() { + char room[13]; + + strcpy(room, num_room); + strcpy(num_room, "26.alg"); + borra_pantalla(); + lee_dibujos("26.alg"); + descomprime_dibujo(dir_dibujo1, MEDIA); + lee_dibujos("aux26.alg"); + descomprime_dibujo(dir_dibujo3, 1); + lee_dibujos("auxigor.alg"); + descomprime_dibujo(dir_hare_frente, 1); + DIBUJA_FONDO(0, 0, 0, 0, 320, 200, dir_dibujo1, dir_zona_pantalla); + refresca_26_antes(); + x_igor = 104; + y_igor = 71; + pon_igor(); + VUELCA_PANTALLA(0, 0, 0, 0, 320, 200, dir_zona_pantalla); + pausa(40); + habla_igor_frente(TEXTI26, "I26.als"); + strcpy(num_room, room); + borra_pantalla(); + lee_dibujos("96.alg"); + descomprime_dibujo(dir_hare_frente, 1); + lee_dibujos(pantalla_disco); + descomprime_dibujo(dir_dibujo3, 1); + lee_dibujos(num_room); + descomprime_dibujo(dir_dibujo1, MEDIA); + sin_verbo(); + refresca_pantalla(); +} + +void DrasculaEngine::animacion_8_4() { + int frame; + int estanteria_x[] = {1, 75, 149, 223, 1, 75, 149, 223, 149, 223, 149, 223, 149, 223}; + int estanteria_y[] = {1, 1, 1, 1, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74}; + + lee_dibujos("an_8.alg"); + descomprime_dibujo(dir_hare_frente, 1); + + for (frame = 0; frame < 14; frame++) { + pausa(2); + DIBUJA_FONDO(estanteria_x[frame], estanteria_y[frame], 77, 45, 73, 72, dir_hare_frente, dir_zona_pantalla); + VUELCA_PANTALLA(77, 45, 77, 45, 73, 72, dir_zona_pantalla); + } + + lee_dibujos("96.alg"); + descomprime_dibujo(dir_hare_frente, 1); + abre_puerta(7, 2); +} + +void DrasculaEngine::animacion_9_4() { + anima("st.bin", 14); + FundeAlNegro(1); +} + } // End of namespace Drascula diff --git a/engines/drascula/drascula.h b/engines/drascula/drascula.h index d88530d704..aea3590217 100644 --- a/engines/drascula/drascula.h +++ b/engines/drascula/drascula.h @@ -713,7 +713,7 @@ public: void pantalla_17(int); void pantalla_18(int); void pantalla_19(int); - void pantalla_21(int); + bool pantalla_21(int); void pantalla_22(int); void pantalla_23(int); void pantalla_24(int); @@ -750,11 +750,16 @@ public: void animacion_4_3(); void animacion_5_3(); void animacion_6_3(); - void animacion_7_4(); void animacion_rayo(); + void animacion_1_4(); void animacion_2_4(); void animacion_3_4(); void animacion_4_4(); + void animacion_5_4(); + void animacion_6_4(); + void animacion_7_4(); + void animacion_8_4(); + void animacion_9_4(); void animacion_1_5(); void animacion_2_5(); void animacion_3_5(); |