aboutsummaryrefslogtreecommitdiff
path: root/sword1
diff options
context:
space:
mode:
authorRobert Göffringmann2003-12-30 16:19:30 +0000
committerRobert Göffringmann2003-12-30 16:19:30 +0000
commit1567e39469f80b55d105057332d04fd0983ceace (patch)
tree9a96634976f36b3814a592a16f893411946d23a8 /sword1
parentd91b30c9336abc3640551855056635092f2f322f (diff)
downloadscummvm-rg350-1567e39469f80b55d105057332d04fd0983ceace.tar.gz
scummvm-rg350-1567e39469f80b55d105057332d04fd0983ceace.tar.bz2
scummvm-rg350-1567e39469f80b55d105057332d04fd0983ceace.zip
fixed fnFace() and added workaround for missing animation on train roof
svn-id: r12032
Diffstat (limited to 'sword1')
-rw-r--r--sword1/logic.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/sword1/logic.cpp b/sword1/logic.cpp
index 43fcf4eb94..2ec0777589 100644
--- a/sword1/logic.cpp
+++ b/sword1/logic.cpp
@@ -31,6 +31,7 @@
#include "mouse.h"
#include "sword1.h"
#include "music.h"
+#include "swordres.h"
#include "debug.h"
@@ -1044,6 +1045,10 @@ int SwordLogic::fnWipeHands(BsObject *cpt, int32 id, int32 c, int32 d, int32 e,
int SwordLogic::fnISpeak(BsObject *cpt, int32 id, int32 cdt, int32 textNo, int32 spr, int32 f, int32 z, int32 x) {
_speechClickDelay = 3;
+ if (((textNo & ~1) == 0x3f0012) && (!cdt) && (!spr)) {
+ cdt = GEOSTDLCDT; // workaround for missing animation when examining
+ spr = GEOSTDL; // the conductor on the train roof
+ }
_mouse->flushEvents(); // prevent player from accidently clicking text away within first three frames
cpt->o_logic = LOGIC_speech;
@@ -1419,7 +1424,7 @@ int SwordLogic::fnFace(BsObject *cpt, int32 id, int32 targetId, int32 b, int32 c
y = target->o_ycoord;
} else {
x = (target->o_mouse_x1 + target->o_mouse_x2) / 2;
- y = (target->o_mouse_y1 + target->o_mouse_y2) / 2;
+ y = target->o_mouse_y2;
}
int32 megaTarDir = whatTarget(cpt->o_xcoord, cpt->o_ycoord, x, y);
fnTurn(cpt, id, megaTarDir, 0, 0, 0, 0, 0);