aboutsummaryrefslogtreecommitdiff
path: root/engines/drascula
diff options
context:
space:
mode:
authorPaweł Kołodziejski2008-03-08 18:00:04 +0000
committerPaweł Kołodziejski2008-03-08 18:00:04 +0000
commit1c155a4be77667ef7bec9a917c190f47dcd15d77 (patch)
tree2d8c96e94f03231d032c7b8b7dd92a985889b553 /engines/drascula
parent8b454a176c85d52771042cd45999088b4ceeca4f (diff)
downloadscummvm-rg350-1c155a4be77667ef7bec9a917c190f47dcd15d77.tar.gz
scummvm-rg350-1c155a4be77667ef7bec9a917c190f47dcd15d77.tar.bz2
scummvm-rg350-1c155a4be77667ef7bec9a917c190f47dcd15d77.zip
more merge fixes for drascula
svn-id: r31063
Diffstat (limited to 'engines/drascula')
-rw-r--r--engines/drascula/drascula.cpp49
1 files changed, 29 insertions, 20 deletions
diff --git a/engines/drascula/drascula.cpp b/engines/drascula/drascula.cpp
index b23142ff8c..528740c4ce 100644
--- a/engines/drascula/drascula.cpp
+++ b/engines/drascula/drascula.cpp
@@ -177,9 +177,6 @@ int DrasculaEngine::go() {
descomprime_dibujo(dir_mesa, 1);
}
- if (num_ejec == 6)
- dir_pendulo = dir_dibujo3;
-
if (num_ejec == 1) {
con_voces = 0;
lee_dibujos("96.alg");
@@ -1445,7 +1442,7 @@ static char *getLine(Common::File *fp, char *buf, int len) {
}
void DrasculaEngine::carga_escoba(const char *nom_fich) {
- int soc, l, martin = 0, obj_salir;
+ int soc, l, martin = 0, obj_salir = 0;
float chiquez = 0, pequegnez = 0;
char pant1[20], pant2[20], pant3[20], pant4[20];
char para_codificar[20];
@@ -1588,7 +1585,6 @@ martini:
}
}
- obj_salir = -1;
for (l = 0; l < objs_room; l++) {
if (num_obj[l] == obj_saliendo)
obj_salir = l;
@@ -1596,7 +1592,6 @@ martini:
if (num_ejec == 2) {
if (hare_x == -1) {
- assert(obj_salir != -1);
hare_x = x_alakeva[obj_salir];
hare_y = y_alakeva[obj_salir] - alto_hare;
}
@@ -1653,7 +1648,6 @@ martini:
if (num_ejec != 2) {
if (hare_x == -1) {
- assert(obj_salir != -1);
hare_x = x_alakeva[obj_salir];
hare_y = y_alakeva[obj_salir];
alto_hare = (ALTO_PERSONAJE * factor_red[hare_y]) / 100;
@@ -2714,7 +2708,7 @@ void DrasculaEngine::pon_dr() {
pos_dr[0] = 47;
else if (sentido_dr == 0)
pos_dr[0] = 1;
- else if (sentido_dr == 3)
+ else if (sentido_dr == 3 && num_ejec == 1)
pos_dr[0] = 93;
pos_dr[1] = 122;
pos_dr[2] = x_dr;
@@ -2722,7 +2716,10 @@ void DrasculaEngine::pon_dr() {
pos_dr[4] = 45;
pos_dr[5] = 77;
- DIBUJA_BLOQUE_CUT(pos_dr, dir_hare_fondo, dir_zona_pantalla);
+ if (num_ejec == 6)
+ DIBUJA_BLOQUE_CUT(pos_dr, dir_dibujo2, dir_zona_pantalla);
+ else
+ DIBUJA_BLOQUE_CUT(pos_dr, dir_hare_fondo, dir_zona_pantalla);
}
void DrasculaEngine::pon_bj() {
@@ -2855,9 +2852,14 @@ bucless:
pon_igor();
pon_dr();
+ if (num_ejec == 6)
+ pon_hare();
DIBUJA_FONDO(x_dr, y_dr, x_dr, y_dr, 38, 31, dir_dibujo1, dir_zona_pantalla);
- DIBUJA_BLOQUE(x_habla[cara], 90, x_dr, y_dr, 38, 31, dir_hare_fondo, dir_zona_pantalla);
+ if (num_ejec == 6)
+ DIBUJA_BLOQUE(x_habla[cara], 90, x_dr, y_dr, 38, 31, dir_dibujo2, dir_zona_pantalla);
+ else
+ DIBUJA_BLOQUE(x_habla[cara], 90, x_dr, y_dr, 38, 31, dir_hare_fondo, dir_zona_pantalla);
actualiza_refresco();
@@ -2930,9 +2932,14 @@ bucless:
pon_igor();
pon_dr();
+ if (num_ejec == 6)
+ pon_hare();
DIBUJA_FONDO(x_dr, y_dr, x_dr, y_dr, 45, 31, dir_dibujo1, dir_zona_pantalla);
- DIBUJA_BLOQUE(x_habla[cara], 58, x_dr + 7, y_dr, 38, 31, dir_hare_fondo, dir_zona_pantalla);
+ if (num_ejec != 6)
+ DIBUJA_BLOQUE(x_habla[cara], 58, x_dr + 7, y_dr, 38, 31, dir_hare_fondo, dir_zona_pantalla);
+ else
+ DIBUJA_BLOQUE(x_habla[cara], 58, x_dr + 7, y_dr, 38, 31, dir_dibujo2, dir_zona_pantalla);
actualiza_refresco();
@@ -2961,9 +2968,13 @@ bucless:
goto bucless;
}
- DIBUJA_FONDO(0, 0, 0, 0, 320, 200, dir_dibujo1, dir_zona_pantalla);
+ if (num_ejec == 6)
+ refresca_pantalla();
+
pon_igor();
pon_dr();
+ if (num_ejec == 6)
+ pon_hare();
VUELCA_PANTALLA(0, 0, 0, 0, 320, 200, dir_zona_pantalla);
}
@@ -3299,7 +3310,7 @@ void DrasculaEngine::hablar(const char *dicho, const char *filename) {
long tiempol;
int suma_1_pixel = 0;
- if (num_ejec == 1)
+ if (num_ejec == 1 || num_ejec == 6)
suma_1_pixel = 1;
int y_mask_habla = 170;
@@ -3325,7 +3336,7 @@ void DrasculaEngine::hablar(const char *dicho, const char *filename) {
tiempou = (unsigned int)tiempol / 2;
_rnd->setSeed(tiempou);
- if (num_ejec == 1) {
+ if (num_ejec == 1 || num_ejec == 6) {
if (factor_red[hare_y + alto_hare] == 100)
suma_1_pixel = 0;
}
@@ -4016,7 +4027,6 @@ bool DrasculaEngine::sal_de_la_habitacion(int l) {
hablar(TEXT442, "442.als");
else {
puertas_cerradas(l);
-
if (espuerta[l] != 0) {
lleva_al_hare(sitiobj_x[l], sitiobj_y[l]);
sentido_hare = sentidobj[l];
@@ -4132,7 +4142,6 @@ bool DrasculaEngine::sal_de_la_habitacion(int l) {
}
} else if (num_ejec == 6) {
puertas_cerradas(l);
-
if (espuerta[l] != 0) {
lleva_al_hare(sitiobj_x[l], sitiobj_y[l]);
sentido_hare = sentidobj[l];
@@ -4549,7 +4558,7 @@ bool DrasculaEngine::banderas(int fl) {
} else
hay_respuesta = 0;
} else if (num_ejec == 6) {
- if (objeto_que_lleva == MIRAR && fl == 50 && flags[0] == 0)
+ if (objeto_que_lleva == MIRAR && fl == 50 && flags[0] == 1)
hablar(TEXT308, "308.als");
else if (objeto_que_lleva == MIRAR && fl == 50 && flags[0] == 0)
hablar(TEXT310, "250.als" );
@@ -5471,13 +5480,13 @@ void DrasculaEngine::conversa(const char *nom_fich) {
respuesta3 = 31;
}
- if (num_ejec == 6 && !strcmp(nom_fich, "op_5.cal") && flags[7] == 1) {
+ if (num_ejec == 6 && !strcmp(nom_fich, "op_12.cal") && flags[7] == 1) {
strcpy(frase3, TEXT273);
strcpy(suena3, "273.als");
respuesta3 = 14;
}
- if (num_ejec == 6 && !strcmp(nom_fich, "op_5.cal") && flags[10] == 1) {
+ if (num_ejec == 6 && !strcmp(nom_fich, "op_12.cal") && flags[10] == 1) {
strcpy(frase3, ".cuanto.queda.para.que.acabe.el.partido?");
strcpy(suena3, "274.als");
respuesta3 = 15;
@@ -8892,7 +8901,7 @@ void DrasculaEngine::animacion_1_6() {
habla_igor_frente(TEXTI12, "I12.als");
habla_dr_dch(TEXTD34, "d34.als");
sentido_dr = 0;
- habla_dr_izq(TEXTD35,"d35.als");
+ habla_dr_izq(TEXTD35, "d35.als");
borra_pantalla();
carga_escoba("102.ald");
activa_pendulo();