aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/teenagent/callbacks.cpp34
-rw-r--r--engines/teenagent/resources.h8
2 files changed, 40 insertions, 2 deletions
diff --git a/engines/teenagent/callbacks.cpp b/engines/teenagent/callbacks.cpp
index 4b83448c2c..aeb1083f99 100644
--- a/engines/teenagent/callbacks.cpp
+++ b/engines/teenagent/callbacks.cpp
@@ -1444,6 +1444,10 @@ bool TeenAgentEngine::processCallback(uint16 addr) {
displayMessage(dsAddr_emptyMsg); // "It's Empty"
break;
+ case 0x56b3:
+ rejectMessage();
+ break;
+
case 0x56b7:
playSound(66, 5);
playSound(67, 11);
@@ -1511,6 +1515,11 @@ bool TeenAgentEngine::processCallback(uint16 addr) {
displayMessage(dsAddr_pullObjMsg2);
break;
+ case 0x5854:
+ loadScene(15, Common::Point(157, 199));
+ scene->setOrientation(1);
+ break;
+
case 0x586e:
loadScene(21, Common::Point(24, 187));
scene->setOrientation(2);
@@ -1521,6 +1530,11 @@ bool TeenAgentEngine::processCallback(uint16 addr) {
scene->setOrientation(2);
break;
+ case 0x590a:
+ loadScene(20, Common::Point(304, 190));
+ scene->setOrientation(4);
+ break;
+
case 0x5924:
loadScene(25, Common::Point(298, 146));
scene->setOrientation(4);
@@ -1592,6 +1606,10 @@ bool TeenAgentEngine::processCallback(uint16 addr) {
displayMessage(dsAddr_CantJumpMsg); // "No way I can jump so high, cause, err, white men can't jump"
break;
+ case 0x5faf:
+ displayMessage(dsAddr_noSecretPassageMsg); // "I don't think there's any secret passage inside"
+ break;
+
case 0x5fe5:
displayMessage(dsAddr_jugMeMsg); // "They can jug me if I steal this"
break;
@@ -1634,6 +1652,10 @@ bool TeenAgentEngine::processCallback(uint16 addr) {
}
break;
+ case 0x6074:
+ rejectMessage();
+ break;
+
case 0x6078:
displayMessage(dsAddr_tooBigMsg); // "It's too big and I doubt if I'll ever need it"
break;
@@ -1672,6 +1694,10 @@ bool TeenAgentEngine::processCallback(uint16 addr) {
displayMessage(dsAddr_rockWalkingGeeMsg); // "Yeah, great idea. Let's take this rock and walk around a bit. Gee..."
break;
+ case 0x63ae:
+ displayMessage(dsAddr_notSureIfAliveMsg); // "I'm not sure if it's alive"
+ break;
+
case 0x63bc:
playMusic(6);
loadScene(25, 151, 156, 2);
@@ -1681,6 +1707,10 @@ bool TeenAgentEngine::processCallback(uint16 addr) {
dialog->showMono(86, scene, 0, 0xd1, 0);
break;
+ case 0x63e3:
+ displayMessage(dsAddr_holeTooNarrowMsg); // "The hole is too narrow to fit my hand"
+ break;
+
case 0x646e:
case 0x6475:
dialog->showMono(85, scene, 0, 0xd1, 0);
@@ -4632,7 +4662,9 @@ bool TeenAgentEngine::processCallback(uint16 addr) {
default:
warning("unknown callback %04x called", addr);
- // FIXME - unknown non-trivial callback 0x5b44 called! Need to analyse cseg data to work out what this is.
+ // FIXME - unknown non-trivial callback 0x5b44 called!
+ // This is the doorbell use callback on House #2 i.e.
+ // Granny and Anne's House. Need to analyse cseg data.
// try decoding trivial callbacks by cseg if not in switch
byte *code = res->cseg.ptr(addr);
diff --git a/engines/teenagent/resources.h b/engines/teenagent/resources.h
index 5b09df162e..68fde34cc2 100644
--- a/engines/teenagent/resources.h
+++ b/engines/teenagent/resources.h
@@ -329,7 +329,8 @@ const uint16 dsAddr_notTakingSocksMsg = 0x42c7; // "I really don't want to walk
const uint16 dsAddr_notTiredMsg = 0x4306; // "Thanks, I'm not tired"
// Too Big Message : 0x431e to 0x434d
const uint16 dsAddr_tooBigMsg = 0x431e; // "It's too big and I doubt if I'll ever need it"
-
+// No Secret Passage Message : 0x434e to 0x437f
+const uint16 dsAddr_noSecretPassageMsg = 0x434e; // "I don't think there's any secret passage inside"
// No Fruit Message : 0x4380 to 0x43ab
const uint16 dsAddr_noFruitMsg = 0x4380; // "There are no more interesting fruits here"
// Jug Me Message : 0x43ac to 0x43cd
@@ -382,6 +383,11 @@ const uint16 dsAddr_noHandsSharpThornsMsg = 0x465e; // "I can't remove it with m
// Rock Walking Gee Message : 0x46f7 to 0x473c
const uint16 dsAddr_rockWalkingGeeMsg = 0x46f7; // "Yeah, great idea. Let's take this rock and walk around a bit. Gee..."
+// Not Sure If Alive Message : 0x477b to 0x4797
+const uint16 dsAddr_notSureIfAliveMsg = 0x477b; // "I'm not sure if it's alive"
+
+// Hole Too Narrow Message : 0x47bf to 0x47e6
+const uint16 dsAddr_holeTooNarrowMsg = 0x47bf; // "The hole is too narrow to fit my hand"
// Bird Attack Message : 0x47e7 to 0x4807
const uint16 dsAddr_birdAttackMsg = 0x47e7; // "Hey You! Wake up! Bird attack!"
// No Search Warrant Message : 0x4808 to 0x4827