aboutsummaryrefslogtreecommitdiff
path: root/engines/teenagent
diff options
context:
space:
mode:
authorD G Turner2012-07-31 13:17:56 +0100
committerD G Turner2012-07-31 13:17:56 +0100
commitb01fdfeec64ff2753aff28c109e6cedaf9b85e02 (patch)
tree2ec373ef4d2568c4b507903e0be950ca60b930e5 /engines/teenagent
parent8c37d72897b733ed49a234bcff501c13dca2b06d (diff)
downloadscummvm-rg350-b01fdfeec64ff2753aff28c109e6cedaf9b85e02.tar.gz
scummvm-rg350-b01fdfeec64ff2753aff28c109e6cedaf9b85e02.tar.bz2
scummvm-rg350-b01fdfeec64ff2753aff28c109e6cedaf9b85e02.zip
TEENAGENT: Add symbols for remaining missing message strings.
By doing this, have tracked down most of the remaining missing trivial callbacks using these strings. Some strings are either unused or are used in odd places, marked these with FIXME. Also discovered another unimplemented non-trivial callback.
Diffstat (limited to 'engines/teenagent')
-rw-r--r--engines/teenagent/callbacks.cpp94
-rw-r--r--engines/teenagent/objects.cpp2
-rw-r--r--engines/teenagent/resources.h75
3 files changed, 158 insertions, 13 deletions
diff --git a/engines/teenagent/callbacks.cpp b/engines/teenagent/callbacks.cpp
index c92ddc5f9a..8963ac52fd 100644
--- a/engines/teenagent/callbacks.cpp
+++ b/engines/teenagent/callbacks.cpp
@@ -1273,6 +1273,11 @@ bool TeenAgentEngine::processCallback(uint16 addr) {
displayMessage(dsAddr_wallTooSmoothMsg); // "The wall surface is too smooth to climb"
break;
+ case 0x5066:
+ loadScene(11, Common::Point(183, 109));
+ scene->setOrientation(3);
+ break;
+
case 0x5080:
loadScene(13, Common::Point(290, 181));
scene->setOrientation(4);
@@ -1432,12 +1437,15 @@ bool TeenAgentEngine::processCallback(uint16 addr) {
displayMessage(dsAddr_hmmGrassMsg); // "Hmmm. Grass..."
break;
-
case 0x5674:
loadScene(18, Common::Point(94, 115));
scene->setOrientation(3);
break;
+ case 0x568e:
+ displayMessage(dsAddr_notHornyMsg); // "I'm not horny"
+ break;
+
case 0x5695:
displayMessage(dsAddr_dontNeedToOpenMsg); // "I don't need to open it"
break;
@@ -1515,6 +1523,15 @@ bool TeenAgentEngine::processCallback(uint16 addr) {
displayMessage(dsAddr_dontNeedItMsg); // "I don't need it"
break;
+ case 0x5801:
+ rejectMessage();
+ break;
+
+ case 0x583f:
+ case 0x5846:
+ displayMessage(dsAddr_dontNeedToOpenMsg);
+ break;
+
case 0x584d:
displayMessage(dsAddr_pullObjMsg2);
break;
@@ -1534,6 +1551,10 @@ bool TeenAgentEngine::processCallback(uint16 addr) {
scene->setOrientation(2);
break;
+ case 0x5903:
+ displayMessage(dsAddr_keepItOpenMsg); // "I'd like to keep it open"
+ break;
+
case 0x590a:
loadScene(20, Common::Point(304, 190));
scene->setOrientation(4);
@@ -1548,6 +1569,12 @@ bool TeenAgentEngine::processCallback(uint16 addr) {
displayMessage(dsAddr_notTakingSocksMsg); // "I really don't want to walk around with someone else's socks"
break;
+ case 0x597f:
+ case 0x5986:
+ case 0x598d:
+ displayMessage(dsAddr_dontNeedToOpenMsg); // "I don't need to open it"
+ break;
+
case 0x5c72:
displayMessage(dsAddr_notTiredMsg); // "Thanks, I'm not tired"
break;
@@ -1698,6 +1725,11 @@ bool TeenAgentEngine::processCallback(uint16 addr) {
displayMessage(dsAddr_rockWalkingGeeMsg); // "Yeah, great idea. Let's take this rock and walk around a bit. Gee..."
break;
+ case 0x63a0:
+ case 0x63a7:
+ displayMessage(dsAddr_butterflyMsg); // "I'd better leave them alone, they make this place beautiful"
+ break;
+
case 0x63ae:
displayMessage(dsAddr_notSureIfAliveMsg); // "I'm not sure if it's alive"
break;
@@ -1736,6 +1768,14 @@ bool TeenAgentEngine::processCallback(uint16 addr) {
scene->setOrientation(3);
break;
+ case 0x6635:
+ displayMessage(dsAddr_uninterestingHaystackMsg); // "I don't see anything interesting about this haystack"
+ break;
+
+ case 0x666a:
+ displayMessage(dsAddr_moreComplicatedMsg); // "It's more complicated than that"
+ break;
+
case 0x65c3:
if (CHECK_FLAG(dsAddr_mouseHoleState, 1)) {
playActorAnimation(635);
@@ -1876,10 +1916,18 @@ bool TeenAgentEngine::processCallback(uint16 addr) {
displayMessage(dsAddr_notMineMsg); // "I can't take it. It's not mine."
break;
+ case 0x7851:
+ displayMessage(dsAddr_lockedMsg); // "It's Locked!"
+ break;
+
case 0x7858:
displayMessage(dsAddr_lockedMsg); // "It's Locked!"
break;
+ case 0x785f:
+ displayMessage(dsAddr_pullObjMsg2); // "I can't reach it"
+ break;
+
case 0x7866:
if (CHECK_FLAG(0xdbdd, 3))
displayMessage(dsAddr_gotchaMsg); // "Gotcha"
@@ -1988,6 +2036,10 @@ bool TeenAgentEngine::processCallback(uint16 addr) {
displayMessage(dsAddr_fenceBlocksMsg); // "The fence blocks the way"
break;
+ case 0x7bf6:
+ displayMessage(dsAddr_noDiggingKnifeMsg); // "Digging it out with the knife could take a hundred years"
+ break;
+
case 0x7bfd:
playSound(76, 18);
playSound(76, 22);
@@ -2022,6 +2074,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {
break;
case 0x7cc9:
+ case 0x7cd0:
displayMessage(dsAddr_throwCrumbsToBirdQMsg); // "Should I throw the crumbs to the bird?"
break;
@@ -2174,6 +2227,26 @@ bool TeenAgentEngine::processCallback(uint16 addr) {
displayMessage(dsAddr_trySomewhereElseMsg); // "I'd better try somewhere else - I suppose this side is heavily guarded"
break;
+ case 0x85dd:
+ displayMessage(dsAddr_branchNotPaddleMsg); // "This branch is not a paddle. It doesn't even look like one"
+ break;
+
+ case 0x85e4:
+ displayMessage(dsAddr_sharpenNotPulverizeMsg); // "I needed to sharpen it, not pulverize"
+ break;
+
+ case 0x8d42:
+ displayMessage(dsAddr_bluntSickleMsg); // "The sickle is too blunt"
+ break;
+
+ case 0x8d49:
+ displayMessage(dsAddr_noChainsawFuelMsg); // "There's no fuel in the chainsaw"
+ break;
+
+ case 0x8d50:
+ displayMessage(dsAddr_thornsTooThinMsg); // "Thorns are too thin, the chainsaw is useless here"
+ break;
+
// Shore
case 0x5348:
@@ -4133,6 +4206,10 @@ bool TeenAgentEngine::processCallback(uint16 addr) {
disableObject(8);
break;
+ case 0x7218:
+ rejectMessage();
+ break;
+
case 0x7291:
playSound(89, 3);
playActorAnimation(975);
@@ -4346,6 +4423,10 @@ bool TeenAgentEngine::processCallback(uint16 addr) {
}
break;
+ case 0x9247:
+ displayMessage(dsAddr_sameBottleMsg); // "The bottle's the same, but I doubt if it's enough to fool anyone"
+ break;
+
case 0x924e:
setOns(2, 64);
playSound(5, 3);
@@ -4536,6 +4617,10 @@ bool TeenAgentEngine::processCallback(uint16 addr) {
SET_FLAG(0xdbc8, 1);
break;
+ case 0x966c:
+ displayMessage(dsAddr_cantRecordNoBatteriesMsg); // "I can't record anything until I find some batteries"
+ break;
+
case 0x9673: // hit fatso - final scene
playSound(5, 3);
playSound(24, 10);
@@ -4616,6 +4701,9 @@ bool TeenAgentEngine::processCallback(uint16 addr) {
break;
case 0x9921: // using diving eq
+ // FIXME - Some code is missing here as displayMessage(dsAddr_cantTalkUnderwaterMsg),
+ // displayMessage(dsAddr_notSwimmingThereMsg), displayMessage(dsAddr_tooLittleAirMsg)
+ // displayMessage(dsAddr_fishDontWorryMsg) are never called.
{
int id = scene->getId();
if (id != 15) {
@@ -4800,6 +4888,10 @@ bool TeenAgentEngine::processCallback(uint16 addr) {
// This is the doorbell use callback on House #2 i.e.
// Granny and Anne's House. Need to analyse cseg data.
+ // FIXME - unknown non-trivial callback 0x4056 called!
+ // This is the bird use callback in the first act at
+ // the mudpool. Need to analyse cseg data.
+
// try decoding trivial callbacks by cseg if not in switch
byte *code = res->cseg.ptr(addr);
if (code[0] == 0xbb && code[3] == 0xe8 && code[6] == 0xc3) {
diff --git a/engines/teenagent/objects.cpp b/engines/teenagent/objects.cpp
index 72a4ce92a9..171d991114 100644
--- a/engines/teenagent/objects.cpp
+++ b/engines/teenagent/objects.cpp
@@ -117,7 +117,7 @@ Common::String Object::parse_description(const char *name) {
if (!result.empty())
result.deleteLastChar();
else
- result = "Cool.";
+ result = "Cool."; // FIXME - Use dsAddr_coolMsg ?
return result;
}
diff --git a/engines/teenagent/resources.h b/engines/teenagent/resources.h
index 4fd317f30b..ed22383f52 100644
--- a/engines/teenagent/resources.h
+++ b/engines/teenagent/resources.h
@@ -117,7 +117,8 @@ const uint16 dsAddr_rejectMsg1 = 0x33ca; // "I can't imagine what I could do wit
const uint16 dsAddr_rejectMsg2 = 0x33f6; // "I can't figure out what I should do with this"
// Reject Message #3 : 0x3426 to 0x344f
const uint16 dsAddr_rejectMsg3 = 0x3426; // "I can't find any reason to mess with it"
-
+// Cool Message : 0x3450 to 0x3456
+const uint16 dsAddr_coolMsg = 0x3450; // "Cool."
// Object Usage Error Message : 0x3457 to 0x3467
const uint16 dsAddr_objErrorMsg = 0x3457; // "That's no good"
// Car Jack Message : 0x3468 to 0x348f
@@ -180,7 +181,12 @@ const uint16 dsAddr_needSunglassesMsg = 0x387c; // "Sorry buddy, but I need your
const uint16 dsAddr_notBestPlaceMsg = 0x38a7; // "It's not the best place for diving"
// Not Here Message : 0x38ce to 0x38da
const uint16 dsAddr_notHereMsg = 0x38ce; // "Not here"
-
+// Can't Talk Underwater Message : 0x38db to 0x38fe
+const uint16 dsAddr_cantTalkUnderwaterMsg = 0x38db; // "I really can't talk underwater!"
+// Not Swimming There Message : 0x38ff to 0x3931
+const uint16 dsAddr_notSwimmingThereMsg = 0x38ff; // "I don't think swimming there is worth the effort"
+// Too Little Air Message : 0x3932 to 0x3988
+const uint16 dsAddr_tooLittleAirMsg = 0x3932; // "If I want to get this anchor I have to swim there when I have more air in my lungs"
// Hooked Anchor Message : 0x3989 to 0x39ad
const uint16 dsAddr_hookedAnchorMsg = 0x3989; // "I was really hooked on this anchor!"
// Seaweed Message : 0x39ae to 0x39f5
@@ -189,7 +195,8 @@ const uint16 dsAddr_seaweedMsg = 0x39ae; // "This seaweed is just like the flowe
const uint16 dsAddr_fishBoatMsg = 0x39f6; // "I wonder what fish do inside this boat at night"
// Fish Something Message : 0x3a28 to 0x3a59
const uint16 dsAddr_fishSomethingMsg = 0x3a28; // "I think I have to fish out something down there"
-
+// Fish Don't Worry Message : 0x3a5a to 0x3a84
+const uint16 dsAddr_fishDontWorryMsg = 0x3a5a; // "At least fish don't worry about the rain"
// Not Red Herring Message : 0x3a85 to 0x3ab6
const uint16 dsAddr_notRedHerringMsg = 0x3a85; // "I hope all this fish stuff is not a red herring"
// Nice Down Message : 0x3ab7 to 0x3acd
@@ -312,7 +319,8 @@ const uint16 dsAddr_dontNeedToOpenMsg = 0x4164; // "I don't need to open it"
const uint16 dsAddr_hmmGrassMsg = 0x417e; // "Hmmm. Grass..."
// Find Nut Message : 0x41b1 to 0x41ee
const uint16 dsAddr_findNutMsg = 0x41b1; // "I won't find the nut just like that. The grass is too dense"
-
+// Not Horny Message : 0x41ef to 0x41fe
+const uint16 dsAddr_notHornyMsg = 0x41ef; // "I'm not horny"
// Can't Jump So High Message : 0x41ff to 0x423e
const uint16 dsAddr_CantJumpMsg = 0x41ff; // "No way I can jump so high, cause, err, white men can't jump"
// Don't Need It Message : 0x423f to 0x4250
@@ -323,7 +331,8 @@ const uint16 dsAddr_notSantaClausMsg = 0x4251; // "I'm not Santa Claus"
const uint16 dsAddr_noPlasticImitationsMsg = 0x4267; // "I don't need plastic imitations"
// Too Fragile Message : 0x4289 to 0x42ab
const uint16 dsAddr_tooFragileMsg = 0x4289; // "It's too fragile to carry around"
-
+// Keep It Open Message : 0x42ac to 0x42c6
+const uint16 dsAddr_keepItOpenMsg = 0x42ac; // "I'd like to keep it open"
// Not Taking Socks Message : 0x42c7 to 0x4305
const uint16 dsAddr_notTakingSocksMsg = 0x42c7; // "I really don't want to walk around with someone else's socks"
// Not Tired Message : 0x4306 to 0x431d
@@ -380,27 +389,45 @@ const uint16 dsAddr_yawnMsg = 0x464a; // "(yawn)"
const uint16 dsAddr_laughterMsg = 0x4652; // "(laughter)"
// No Hands Sharp Thorns Message : 0x465e to 0x46a0
const uint16 dsAddr_noHandsSharpThornsMsg = 0x465e; // "I can't remove it with my hands. these thorns look really sharp"
-
+// No Chainsaw Fuel Message : 0x46a1 to 0x46c2
+const uint16 dsAddr_noChainsawFuelMsg = 0x46a1; // "There's no fuel in the chainsaw"
+// Thorns Too Thin Message : 0x46c3 to 0x46f6
+const uint16 dsAddr_thornsTooThinMsg = 0x46c3; // "Thorns are too thin, the chainsaw is useless here"
// 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..."
-
+// Butterfly Message : 0x473d to 0x477a
+const uint16 dsAddr_butterflyMsg = 0x473d; // "I'd better leave them alone, they make this place beautiful"
// Not Sure If Alive Message : 0x477b to 0x4797
const uint16 dsAddr_notSureIfAliveMsg = 0x477b; // "I'm not sure if it's alive"
+// FIXME - Unknown where this is used.. Talking to SOMETHING...
+// Unknown Language Message : 0x4798 to 0x47be
+const uint16 dsAddr_unknownLanguageMsg = 0x4798; // "I don't know what language it speaks"
+
// 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
const uint16 dsAddr_noSearchWarrantMsg = 0x4808; // "I don't have a search-warrant"
-
+// Uninteresting Haystack Message : 0x4828 to 0x485f
+const uint16 dsAddr_uninterestingHaystackMsg = 0x4828; // "I don't see anything interesting about this haystack"
+// More Complicated Message : 0x4860 to 0x4881
+const uint16 dsAddr_moreComplicatedMsg = 0x4860; // "It's more complicated than that"
// Nut Rake Message : 0x4882 to 0x48be
const uint16 dsAddr_nutRakeMsg = 0x4882; // "It's pointless, the nut will slip between the rake's teeth"
// Paddle Broken Message : 0x48bf to 0x48d5
const uint16 dsAddr_paddleBrokenMsg = 0x48bf; // "The paddle is BROKEN"
-
+// Branch Not Paddle Message : 0x48d6 to 0x4912
+const uint16 dsAddr_branchNotPaddleMsg = 0x48d6; // "This branch is not a paddle. It doesn't even look like one"
// Try Somewhere Else Message : 0x4913 to 0x495b
const uint16 dsAddr_trySomewhereElseMsg = 0x4913; // "I'd better try somewhere else - I suppose this side is heavily guarded"
+// Sharpen Not Pulverize Message : 0x495c to 0x4983
+const uint16 dsAddr_sharpenNotPulverizeMsg = 0x495c; // "I needed to sharpen it, not pulverize"
+
+// FIXME - Can't find where this is used. Cellar?
+// Can't Do Anything Too Dark Message : 0x4984 to 0x49ad
+const uint16 dsAddr_cantDoTooDarkMsg = 0x4984; // "I can't do anything here, it's too dark"
// Bribe Message : 0x49ae to 0x49d0
const uint16 dsAddr_BribeMsg = 0x49ae; // "Here, let's make your pocket fat."
@@ -470,12 +497,19 @@ const uint16 dsAddr_enoughPhotosMsg = 0x4de6; // "I don't need any more photos"
const uint16 dsAddr_recordScareMsg = 0x4e05; // "Yeah, I can record this and scare the cats"
// Already Recorded Message : 0x4e32 to 0x4e57
const uint16 dsAddr_alreadyRecordedMsg = 0x4e32; // "I already recorded what I wanted to"
+// Can't Record No Batteries Message : 0x4e58 to 0x4e8d
+const uint16 dsAddr_cantRecordNoBatteriesMsg = 0x4e58; // "I can't record anything until I find some batteries"
+
+// FIXME - Not sure how to get this message. Dictaphone with no batteries somewhere? Radio?
+// No Batteries No Fun Message : 0x4e8e to 0x4ea4
+const uint16 dsAddr_NoBatteriesNoFunMsg = 0x4e8e; // "No batteries, no fun"
// Not Right Moment Message : 0x4ea5 to 0x4ecd
const uint16 dsAddr_notRightMomentMsg = 0x4ea5; // "I don't think this is the right moment"
// Cook Around Message : 0x4ece to 0x4ef9
const uint16 dsAddr_cookAroundMsg = 0x4ece; // "I can't do anything with this cook around"
-
+// Same Bottle Message : 0x4efa to 0x4f3c
+const uint16 dsAddr_sameBottleMsg = 0x4efa; // "The bottle's the same, but I doubt if it's enough to fool anyone"
// Break Flatten Message : 0x4f3d to 0x4f68
const uint16 dsAddr_breakFlattenMsg = 0x4f3d; // "I wanted to break it, not to flatten it!"
// What Inside Message : 0x4f69 to 0x4f9a
@@ -720,17 +754,36 @@ const uint16 dsAddr_notMineMsg = 0x5d87; // "I can't take it. It's not mine."
// Hey What's The Matter Message : 0x5da8 to 0x5dc1
const uint16 dsAddr_HeyWtmQMsg = 0x5da8; // "Hey! What's the matter?!"
+// FIXME - Where is this used?!
+// Its Open Message : 0x5dc2 to 0x5dcd
+const uint16 dsAddr_ItsOpenMsg = 0x5dc2; // "It's Open!"
+
// Out Of Order Message : 0x5dce to 0x5de1
const uint16 dsAddr_outOfOrderMsg = 0x5dce; // "It's out of order"
// Captain Watching Message : 0x5de2 to 0x5e0a
const uint16 dsAddr_captainWatchingMsg = 0x5de2; // "with captain watching? Better not"
-
+// Blunt Sickle Message : 0x5e0b to 0x5e24
+const uint16 dsAddr_bluntSickleMsg = 0x5e0b; // "The sickle is too blunt"
// First Business Message : 0x5e25 to 0x5e53
const uint16 dsAddr_firstBusinessMsg = 0x5e25; // "First I've got some business to take care of"
+// No Digging Knife Message : 0x5e54 to 0x5e8e
+const uint16 dsAddr_noDiggingKnifeMsg = 0x5e54; // "Digging it out with the knife could take a hundred years"
+
+// FIXME - Where is this message used?!
+// No Mess On Table Message : 0x5e8f to 0x5ebd
+const uint16 dsAddr_noMessOnTableMsg = 0x5e8f; // "I don't want to make more mess on this table"
// Throw Crumbs To Bird Question Message : 0x5ebe to 0x5ee5
const uint16 dsAddr_throwCrumbsToBirdQMsg = 0x5ebe; // "Should I throw the crumbs to the bird?"
+// FIXME - Where is this message used?!
+// Don't Waste Crumbs Message : 0x5ee6 to 0x5f10
+const uint16 dsAddr_dontWasteCrumbs = 0x5ee6; // "I don't want to waste these tasty crumbs"
+
+// FIXME - Where is this message used?!
+// Might Slip Fall In Message : 0x5f11 to 0x5f3b
+const uint16 dsAddr_mightSlipFallInMsg = 0x5f11; // "Better not... I might slip and fall in..."
+
// Book Color Message Address Pointers : (6 * 2-byte) = 0x5f3c to 0x5f47
const uint16 dsAddr_bookColorMsgPtr = 0x5f3c;
// Book Color Message #0 : 0x5f48 to 0x5f60