aboutsummaryrefslogtreecommitdiff
path: root/engines/teenagent
diff options
context:
space:
mode:
authorVladimir Menshakov2010-02-25 20:11:30 +0000
committerVladimir Menshakov2010-02-25 20:11:30 +0000
commit0057e63f259ab4b405a6b575ea76629fde97ab2f (patch)
tree4e88aad1241e41e9e470cc42d78294a69bd9542c /engines/teenagent
parentda286bf8280b72e68b49b7e8ef44c13ff0ea7d7c (diff)
downloadscummvm-rg350-0057e63f259ab4b405a6b575ea76629fde97ab2f.tar.gz
scummvm-rg350-0057e63f259ab4b405a6b575ea76629fde97ab2f.tar.bz2
scummvm-rg350-0057e63f259ab4b405a6b575ea76629fde97ab2f.zip
fixed haystack and fatso problems
svn-id: r48127
Diffstat (limited to 'engines/teenagent')
-rw-r--r--engines/teenagent/callbacks.cpp27
1 files changed, 12 insertions, 15 deletions
diff --git a/engines/teenagent/callbacks.cpp b/engines/teenagent/callbacks.cpp
index 9dd45ad828..1758791150 100644
--- a/engines/teenagent/callbacks.cpp
+++ b/engines/teenagent/callbacks.cpp
@@ -677,7 +677,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {
setOns(2, 50);
Dialog::show(scene, 0x36c7, 0, 666, 0xd1, 0xd0, 0, 2);
setOns(3, 0);
- SET_FLAG(0xDBEC, 0);
+ setFlag(0xDBEC, 0);
reloadLan();
playSound(82, 19);
playAnimation(669, 1);
@@ -823,7 +823,6 @@ 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);
@@ -840,7 +839,6 @@ 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
}
@@ -1867,11 +1865,11 @@ bool TeenAgentEngine::processCallback(uint16 addr) {
return true;
case 0x655b://Get needle from haystack
- if (CHECK_FLAG(0xdabb, 1)) { //already have needle
+ if (CHECK_FLAG(0xdb9d, 1)) { //already have needle
displayMessage(0x356a);
return true;
} else {
- SET_FLAG(0xdabb, 1);
+ SET_FLAG(0xdb9d, 1);
playSound(49, 3);
playActorAnimation(548);
inventory->add(0x11);
@@ -2299,7 +2297,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {
return processCallback(0x61fe);
case 0x79d2:
- if (CHECK_FLAG(0xDB9D, 1)) //bug in original game?
+ if (!CHECK_FLAG(0xDB9D, 1))
return false;
displayMessage(0x3590);
return true;
@@ -3876,7 +3874,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {
return true;
- case 0x9921: {
+ case 0x9921: { //using diving eq
int id = scene->getId();
if (id != 15) {
displayMessage(id == 16 ? 0x38ce : 0x38a7);
@@ -3895,9 +3893,8 @@ bool TeenAgentEngine::processCallback(uint16 addr) {
playSound(64, 21);
playSound(64, 42);
playSound(64, 63);
- setTimerCallback(0x9a1d, 40);
+ setTimerCallback(0x9a1d, 30);
playActorAnimation(617, false, true);
- //another time challenge!
}
}
return true;
@@ -4046,18 +4043,17 @@ bool TeenAgentEngine::processCallback(uint16 addr) {
return false;
uint16 ptr = res->dseg.get_word((attempts - 2) * 2 + 0x6035);
+ debug(0, "mansion callback = %04x", ptr);
byte id = scene->getId();
playMusic(11);
displayCutsceneMessage(0x580a, 30484);
processCallback(ptr);
playMusic(6);
- if (CHECK_FLAG(0xDBEC, 1) && ptr == 0x9f3e)
- return true;
- //some effect
- loadScene(id, scene->getPosition());
+ if (res->dseg.get_byte(0xdbec) != 1)
+ loadScene(id, scene->getPosition());
+ return true;
}
- return true;
case 0x9d90:
hideActor();
@@ -4130,10 +4126,11 @@ bool TeenAgentEngine::processCallback(uint16 addr) {
setOns(3, 51);
playAnimation(911, 1);
playAnimation(899, 1);
+ setFlag(0xDBEC, 1);
+ reloadLan();
wait(200);
enableObject(8);
setLan(2, 8);
- SET_FLAG(0xDBEC, 1);
return true;
}