diff options
author | Vladimir Menshakov | 2009-11-08 23:56:06 +0000 |
---|---|---|
committer | Vladimir Menshakov | 2009-11-08 23:56:06 +0000 |
commit | 99b68b3a1349f41ea149e48192d750361c088cba (patch) | |
tree | b38f3d5afcc755472daae747499f0df768d485e9 /engines/teenagent | |
parent | 83713e92fac141bfdf79e81ca30d79bed9d1a44e (diff) | |
download | scummvm-rg350-99b68b3a1349f41ea149e48192d750361c088cba.tar.gz scummvm-rg350-99b68b3a1349f41ea149e48192d750361c088cba.tar.bz2 scummvm-rg350-99b68b3a1349f41ea149e48192d750361c088cba.zip |
fixed boat bug
svn-id: r45770
Diffstat (limited to 'engines/teenagent')
-rw-r--r-- | engines/teenagent/callbacks.cpp | 6 | ||||
-rw-r--r-- | engines/teenagent/scene.cpp | 11 |
2 files changed, 9 insertions, 8 deletions
diff --git a/engines/teenagent/callbacks.cpp b/engines/teenagent/callbacks.cpp index ee31b53fdb..3ef25dc67f 100644 --- a/engines/teenagent/callbacks.cpp +++ b/engines/teenagent/callbacks.cpp @@ -1326,9 +1326,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) { inventory->add(10); disableObject(2); setOns(1, 10); - - byte * scene_15_ons = scene->getOns(15); //patch ons for the scene 15 - scene_15_ons[1] = 0; + setOns(1, 0, 15); byte f = GET_FLAG(0xDB98) + 1; SET_FLAG(0xDB98, f); if (f >= 2) { @@ -2373,11 +2371,11 @@ bool TeenAgentEngine::processCallback(uint16 addr) { playSound(20, 9); playActorAnimation(530); loadScene(16, 236, 95, 1); - setOns(0, 9); playActorAnimation(531); playSound(36, 4); playActorAnimation(532); playActorAnimation(533); + setOns(0, 9); moveTo(236, 95, 1, true); playMusic(9); return true; diff --git a/engines/teenagent/scene.cpp b/engines/teenagent/scene.cpp index b1abd902e8..a7f3ae0919 100644 --- a/engines/teenagent/scene.cpp +++ b/engines/teenagent/scene.cpp @@ -383,6 +383,13 @@ bool Scene::render(OSystem *system) { Graphics::Surface *surface = system->lockScreen(); + //render on + if (on.pixels != NULL) { + if (_id != 16 || getOns(16)[0] != 0) { + on.render(surface); //do not render boat on isle. I double checked all callbacks, there's no code switching off the boat :( + } + } + if (ons != NULL) { for (uint32 i = 0; i < ons_count; ++i) { Surface *s = ons + i; @@ -488,10 +495,6 @@ bool Scene::render(OSystem *system) { } } - //render on - if (on.pixels != NULL) { - on.render(surface); - } if (!message.empty()) { bool visible = true; |