diff options
author | Vladimir Menshakov | 2010-02-07 17:16:30 +0000 |
---|---|---|
committer | Vladimir Menshakov | 2010-02-07 17:16:30 +0000 |
commit | 7ebbe374e6935cb8669f81fe73d37c6aadda6b0c (patch) | |
tree | 89fbea61477e2dc1ce1a3d2856fc463b7022dac8 /engines/teenagent/callbacks.cpp | |
parent | 0e39a5ae45621e938c325a67ea096654b5e22eaf (diff) | |
download | scummvm-rg350-7ebbe374e6935cb8669f81fe73d37c6aadda6b0c.tar.gz scummvm-rg350-7ebbe374e6935cb8669f81fe73d37c6aadda6b0c.tar.bz2 scummvm-rg350-7ebbe374e6935cb8669f81fe73d37c6aadda6b0c.zip |
added missing haystack callback, fixed fatso visibility bug
svn-id: r47972
Diffstat (limited to 'engines/teenagent/callbacks.cpp')
-rw-r--r-- | engines/teenagent/callbacks.cpp | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/engines/teenagent/callbacks.cpp b/engines/teenagent/callbacks.cpp index 3cbdae3fa6..3d17659152 100644 --- a/engines/teenagent/callbacks.cpp +++ b/engines/teenagent/callbacks.cpp @@ -823,6 +823,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) { } else if (CHECK_FLAG(0xDBA0, 1)) displayMessage(0x3E31); else { + setFlag(0xdbec, 0); //workaround visible fatso bug(valve as last intrusion attempt) moveTo(173, 138, 2); playSound(28, 5); playActorAnimation(583); @@ -839,6 +840,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) { playActorAnimation(586); moveTo(138, 163, 3); displayMessage(0x3650); + setFlag(0xdbec, 1); SET_FLAG(0xDBA0, 1); processCallback(0x9d45); //another mansion try } @@ -2296,6 +2298,12 @@ bool TeenAgentEngine::processCallback(uint16 addr) { return false; return processCallback(0x61fe); + case 0x79d2: + if (CHECK_FLAG(0xDB9D, 1)) //bug in original game? + return false; + displayMessage(0x3590); + return true; + case 0x7af0: if (!processCallback(0x70e0)) return true; @@ -4028,12 +4036,12 @@ bool TeenAgentEngine::processCallback(uint16 addr) { case 0x9d45: { wait(50); - byte tries = ++ *(res->dseg.ptr(0xDBEA)); - debug(0, "another mansion try: %u", tries); - if (tries >= 7) + byte attempts = ++ *(res->dseg.ptr(0xDBEA)); + debug(0, "mansion intrusion attempt #%u", attempts); + if (attempts >= 7) return false; - uint16 ptr = res->dseg.get_word((tries - 2) * 2 + 0x6035); + uint16 ptr = res->dseg.get_word((attempts - 2) * 2 + 0x6035); byte id = scene->getId(); playMusic(11); |