aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorstrangerke2011-04-15 23:04:29 +0200
committerstrangerke2011-04-15 23:04:29 +0200
commitab2626f201dde85ecb811980ea06fef263881fd5 (patch)
tree0a58023165f4359a484f61fd3dde5ab843568a52 /engines
parent9ca6562dc60a769199a3085beab0a72b72382deb (diff)
downloadscummvm-rg350-ab2626f201dde85ecb811980ea06fef263881fd5.tar.gz
scummvm-rg350-ab2626f201dde85ecb811980ea06fef263881fd5.tar.bz2
scummvm-rg350-ab2626f201dde85ecb811980ea06fef263881fd5.zip
TSAGE: Fix several problems in scene 40, including the blocking one (killing the assassin)
Diffstat (limited to 'engines')
-rw-r--r--engines/tsage/ringworld_scenes1.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/engines/tsage/ringworld_scenes1.cpp b/engines/tsage/ringworld_scenes1.cpp
index aad415b1d7..1e540f0e25 100644
--- a/engines/tsage/ringworld_scenes1.cpp
+++ b/engines/tsage/ringworld_scenes1.cpp
@@ -1207,7 +1207,7 @@ void Scene40::Action5::signal() {
switch (_actionIndex++) {
case 0:
- setDelay(_globals->_randomSource.getRandomNumber(120));
+ setDelay(_globals->_randomSource.getRandomNumber(119) + 120);
break;
case 1:
scene->_object2.animate(ANIM_MODE_8, 1, this);
@@ -1223,12 +1223,13 @@ void Scene40::Action6::signal() {
scene->_object1.postInit();
scene->_object1.setVisage(16);
scene->_object1.setStrip2(6);
+ scene->_object1._moveDiff = Common::Point(40, 40);
scene->_object1.setPosition(Common::Point(313, 53));
scene->_object1._field7A = 60;
Common::Point pt(141, 194);
NpcMover *mover = new NpcMover();
- scene->_object1.addMover(mover, &pt, this);
+ scene->_object1.addMover(mover, &pt, NULL);
scene->_object1.animate(ANIM_MODE_5, NULL);
scene->_doorway.postInit();
@@ -1256,6 +1257,7 @@ void Scene40::Action7::signal() {
switch (_actionIndex++) {
case 0:
+ // TODO: check if it's rand(500) or rand(499)+500
setDelay(_globals->_randomSource.getRandomNumber(500));
break;
case 1:
@@ -1269,6 +1271,8 @@ void Scene40::Action7::signal() {
scene->_object7.setPosition(Common::Point(305, 61));
scene->_object7.setFrame(15);
}
+ scene->_object7.animate(ANIM_MODE_5, this);
+ scene->_soundHandler.startSound(25);
break;
case 2:
scene->_object7.remove();
@@ -1363,6 +1367,7 @@ void Scene40::Assassin::doAction(int action) {
Common::Point pt(230, 187);
NpcMover *mover = new NpcMover();
addMover(mover, &pt, NULL);
+ scene->setAction(&scene->_action2);
}
break;
case OBJECT_SCANNER: