diff options
-rw-r--r-- | engines/teenagent/callbacks.cpp | 530 | ||||
-rw-r--r-- | engines/teenagent/inventory.cpp | 2 | ||||
-rw-r--r-- | engines/teenagent/resources.h | 488 | ||||
-rw-r--r-- | engines/teenagent/teenagent.cpp | 2 |
4 files changed, 762 insertions, 260 deletions
diff --git a/engines/teenagent/callbacks.cpp b/engines/teenagent/callbacks.cpp index f8a356cc30..bc4720bec2 100644 --- a/engines/teenagent/callbacks.cpp +++ b/engines/teenagent/callbacks.cpp @@ -136,7 +136,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) { showActor(); moveTo(319, 150, 1, true); moveTo(63, 150, 1); - displayAsyncMessage(0x5da8, 4, 62, 18, 36); // hey, what's the matter? + displayAsyncMessage(dsAddr_HeyWtmQMsg, 4, 62, 18, 36); // hey, what's the matter? playAnimation(851, 0, true); playActorAnimation(930, true); waitAnimation(); @@ -172,15 +172,15 @@ bool TeenAgentEngine::processCallback(uint16 addr) { playActorAnimation(844); playActorAnimation(846); playActorAnimation(845); - displayMessage(0x5696); + displayMessage(dsAddr_pullObjMsg1); // "I can't pull it out" } else { - displayMessage(0x570f); + displayMessage(dsAddr_pullObjMsg2); // "I can't reach it" } break; case 0x4094: // climbing to the pole near mudpool if (CHECK_FLAG(0xdbe4, 1)) { - displayMessage(0x57b2); + displayMessage(dsAddr_poleClimbDoneMsg); // "Never Again!" } else { for (byte i = 11; i <= 27; i += 4) playSound(76, i); @@ -248,11 +248,11 @@ bool TeenAgentEngine::processCallback(uint16 addr) { playActorAnimation(842); wait(100); // shown in different positions - displayMessage(0x5656, 0xd1, 16, 68); + displayMessage(dsAddr_fnMsg2, 0xd1, 16, 68); // "And how am I supposed to get back?" wait(50); - displayMessage(0x567a, 0xd1, 92, 68); + displayMessage(dsAddr_fnMsg3, 0xd1, 92, 68); // "Great" wait(50); - displayMessage(0x5682, 0xd1, 62, 68); + displayMessage(dsAddr_fnMsg4, 0xd1, 62, 68); // "Oh, yeah, right" wait(50); playActorAnimation(843); showActor(); @@ -260,7 +260,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) { disableObject(7); disableObject(1); inventory->add(0x51); - displayMessage(0x5646); + displayMessage(dsAddr_fnMsg1); // "Piece of cake" break; case 0x4388: @@ -276,7 +276,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) { if (res->dseg.get_byte(0xdbdf) < 2) { wait(150); moveTo(134, 167, 2); - displayMessage(0x54f7); + displayMessage(dsAddr_firstTrialMsg); // "Sir, I'm Mark. A rookie" setLan(1, 0); playAnimation(812, 0, true); playActorAnimation(811); @@ -298,7 +298,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) { case 0x4482: if (CHECK_FLAG(0xdbdf, 0)) { playActorAnimation(968); - displayMessage(0x5511); + displayMessage(dsAddr_lockedMsg); // "It's Locked!" } else { playSound(80, 3); playSound(79, 4); @@ -319,7 +319,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) { case 0x44cb: if (CHECK_FLAG(0xdbe5, 1)) { - displayMessage(0x57c0); + displayMessage(dsAddr_vacMsg); // "What am I? A vacuum cleaner?!" } else { playSound(49, 14); playSound(5, 21); @@ -332,7 +332,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) { case 0x4539: // prison cell: use crates if (CHECK_FLAG(0xdbdd, 2)) { // finished the meal - trap - displayMessage(0x55c0); + displayMessage(dsAddr_mealFinishedMsg); // "Hey! I finished my meal." moveTo(306, 196, 2); wait(50); //playAnimation(825, 1); //very long empty animation. what for? @@ -349,7 +349,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) { loadScene(6, scene->getPosition()); setOns(3, 0x5b); wait(50); - displayMessage(0x55db); + displayMessage(dsAddr_bowlWeldedMsg); // "Wow. He got welded to the bowl" SET_FLAG(0xdbdd, 3); scene->getObject(4)->setName("body"); } else { @@ -364,7 +364,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) { wait(150); moveTo(scene->getPosition().x, scene->getPosition().y - 1, 2); wait(100); - displayMessage(0x551f); + displayMessage(dsAddr_ThanksMsg); // "Thanks." enableObject(4); SET_FLAG(0xdbdc, 1); } @@ -374,7 +374,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) { case 0x4662: if (CHECK_FLAG(0xdbdd, 3)) { if (CHECK_FLAG(0xdbde, 1)) { - displayMessage(0x5608); + displayMessage(dsAddr_noPocketMsg); // "I don't want to touch his pockets again." } else { moveTo(280, 179, 2); playSound(49, 7); @@ -384,23 +384,23 @@ bool TeenAgentEngine::processCallback(uint16 addr) { SET_FLAG(0xdbde, 1); } } else - displayMessage(0x5905); + displayMessage(dsAddr_foodAliveMsg); // "No, thanks. This food seems still alive" break; case 0x46af: // prison cell: use live cable if (CHECK_FLAG(0xdbdc, 1)) { - displayMessage(0x555d); + displayMessage(dsAddr_ideaMsg); // "That gives me an idea" setOns(2, 0); playActorAnimation(821); setOns(2, 0x5a); setOns(3, 0); playSound(22, 2); playActorAnimation(822); - displayMessage(0x5577); + displayMessage(dsAddr_checkWorksMsg); // "Now I got to check if it works" disableObject(5); SET_FLAG(0xdbdd, 1); } else - displayMessage(0x5528); + displayMessage(dsAddr_unkUsageMsg); // "I don't have any idea what to do with it right now" break; case 0x4705: // prison: getting lamp bulb @@ -431,7 +431,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) { if (res->dseg.get_byte(0xdbdf) >= 2) { loadScene(5, 287, 143); } else { - displayMessage(0x592f); + displayMessage(dsAddr_doorClosedMsg); // "The door is closed. What a surprise." } break; @@ -439,7 +439,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) { playSound(79, 5); playSound(1, 14); playActorAnimation(966); - displayMessage(0x5955); + displayMessage(dsAddr_emptyMsg); // "It's Empty" break; case 0x47db: // prison: use switch @@ -447,24 +447,24 @@ bool TeenAgentEngine::processCallback(uint16 addr) { playSound(71, 4); playActorAnimation(823); if (CHECK_FLAG(0xdbdd, 0)) { - displayMessage(0x4d80); + displayMessage(dsAddr_NotHappenMsg); // "Nothing happened" } else { playSound(74, 1); playAnimation(824, 1); if (CHECK_FLAG(0xdbdd, 1)) { wait(100); - displayMessage(0x559a); + displayMessage(dsAddr_timeToCallMsg); // "I think it is time to call captain" SET_FLAG(0xdbdd, 2); } } } else { - displayMessage(0x52f6); + displayMessage(dsAddr_nahMsg); // "Nah" } break; case 0x4871: playActorAnimation(965); - displayMessage(0x5511); + displayMessage(dsAddr_lockedMsg); // "It's Locked!" break; case 0x4893: // taking pills @@ -477,7 +477,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) { disableObject(7); } else { playActorAnimation(964); - displayMessage(0x5511); + displayMessage(dsAddr_lockedMsg); // "It's Locked!" } break; @@ -486,7 +486,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) { moveTo(140, 152, 1); if (CHECK_FLAG(0xdbe8, 1)) { dialog->showMono(177, scene, 0, 0xd1, 0); - displayMessage(0x5883, 0xef, 32, 67); + displayMessage(dsAddr_yeahRightMsg, 0xef, 32, 67); // "Yeah right!" //reloadLan(); setLan(1, 0); playAnimation(882, 0); @@ -500,7 +500,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) { disableObject(2); SET_FLAG(0xdbe9, 1); } else - displayMessage(0x5855); + displayMessage(dsAddr_talkNotNowMsg); // "I've got no reason to talk to him right now." } else { if (CHECK_FLAG(0xdbdf, 3)) { if (CHECK_FLAG(0xdbe3, 1)) { @@ -524,15 +524,17 @@ bool TeenAgentEngine::processCallback(uint16 addr) { break; case 0x4f14: // use the hollow - displayMessage(CHECK_FLAG(0xdba1, 1) ? 0x370f : 0x36c2); + if (CHECK_FLAG(0xdba1, 1)) + displayMessage(dsAddr_totalEmptyMsg); // "I can see it's totally empty" + else + displayMessage(dsAddr_noHandsMsg); // "I'd better not put my hands in there..." break; case 0x4a64: - if (CHECK_FLAG(0xdbf0, 1)) { - displayMessage(0x5e25); - } else { + if (CHECK_FLAG(0xdbf0, 1)) + displayMessage(dsAddr_firstBusinessMsg); // "First I've got some business to take care of" + else loadScene(5, 35, 162); - } break; case 0x4bf5: @@ -564,7 +566,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) { playActorAnimation(958); loadScene(9, 240, 182, 4); } else if (CHECK_FLAG(0xdbe7, 1)) { - displayMessage(0x5894); + displayMessage(dsAddr_barmanTooCloseMsg); // "The barman is too close" } else { dialog->pop(scene, 0xdb8a, 0, 857, 0xd1, 0xef, 0, 1); } @@ -619,15 +621,15 @@ bool TeenAgentEngine::processCallback(uint16 addr) { dialog->pop(scene, 0xdb40, 0, 809, 0xd1, 0xd0, 0, 1); } } else { - displayMessage(0x5722); + displayMessage(dsAddr_helloQMsg); // "Hello?" wait(100); - displayMessage(0x572a); + displayMessage(dsAddr_totallyAddictedMsg); // "He's totally addicted" } break; case 0x4c1c: playActorAnimation(960); - displayMessage(0x5511); + displayMessage(dsAddr_lockedMsg); // "It's Locked!" break; case 0x4cac: @@ -661,7 +663,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) { case 0x4d94: // talking with fatso dialog->show(87, scene, 0, 666, 0xd1, 0xd0, 0, 2); - displayAsyncMessage(0x49ae, 120, 109, 1, 10, 0xd0); // FIXME: Original (x,y) was (100, 78), rather than (120, 109)? + displayAsyncMessage(dsAddr_BribeMsg, 120, 109, 1, 10, 0xd0); // FIXME: Original (x,y) was (100, 78), rather than (120, 109)? playSound(5, 3); playAnimation(667, 1); playAnimation(668, 1); @@ -685,7 +687,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) { setOns(2, 0); playSound(5, 12); playActorAnimation(676); - displayMessage(0x4ab0); + displayMessage(dsAddr_WimpMsg); // "I'm a pathetic little wimp" disableObject(15); inventory->add(51); break; @@ -709,13 +711,13 @@ bool TeenAgentEngine::processCallback(uint16 addr) { case 0x4f25: playActorAnimation(967); - displayMessage(0x3542); + displayMessage(dsAddr_tooHardWoodMsg); // "This wood is too hard to break" break; case 0x4f32: // use tree near the mansion if (CHECK_FLAG(0xdba1, 1)) { if (CHECK_FLAG(0xdba2, 1)) { - displayMessage(0x3766); + displayMessage(dsAddr_noChanceMsg); // "I won't take my chances a second time" } else { playSound(26, 13); playSound(26, 15); @@ -730,7 +732,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) { playSound(60, 16); playActorAnimation(591); wait(50); - displayMessage(0x372e); + displayMessage(dsAddr_oneSmallStepMsg); // "One small step for man, one big pain in the head" SET_FLAG(0xdba2, 1); processCallback(0x9d45); } @@ -739,17 +741,17 @@ bool TeenAgentEngine::processCallback(uint16 addr) { playSound(56, 8); playSound(56, 12); playSound(49, 10); - displayAsyncMessage(0x4652, 219, 98, 16, 24); + displayAsyncMessage(dsAddr_laughterMsg, 219, 98, 16, 24); // "(laughter)" playActorAnimation(587); moveRel(0, 0, 2); wait(100); - displayMessage(0x3668); + displayMessage(dsAddr_tickledMsg); // "Something tickled me!" } break; case 0x500d: // picking up wild plant if (CHECK_FLAG(0xdb9e, 1)) { - displayMessage(0x35e8); // there are no more + displayMessage(dsAddr_noPotatoMsg); // "There are no more potatoes" } else { SET_FLAG(0xdb9e, 1); setOns(2, 0); @@ -782,7 +784,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) { scene->getAnimation(0)->free(); SET_FLAG(0xdb9c, 1); - displayAsyncMessage(0x3563, 300, 130, 1, 5); + displayAsyncMessage(dsAddr_BooMsg, 300, 130, 1, 5); // "Booo!" setOns(0, 16); enableObject(2); @@ -803,14 +805,17 @@ bool TeenAgentEngine::processCallback(uint16 addr) { break; case 0x5217: - displayMessage(CHECK_FLAG(0xdb9f, 1) ? 0x402e : 0x34e1); + if (CHECK_FLAG(0xdb9f, 1)) + displayMessage(dsAddr_notHungryMsg); // "Thanks, I'm not hungry" + else + displayMessage(dsAddr_avoidBeesMsg); // "I'm going to stay at least five meters away from these bees!" break; case 0x5237: if (!CHECK_FLAG(0xdb9f, 1)) { - displayMessage(0x34e1); + displayMessage(dsAddr_avoidBeesMsg); // "I'm going to stay at least five meters away from these bees!" } else if (CHECK_FLAG(0xdba0, 1)) - displayMessage(0x3e31); + displayMessage(dsAddr_roadNowhereMsg); // "Nah. It's a road to nowhere" else { moveTo(173, 138, 2); playSound(28, 5); @@ -827,7 +832,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) { playSound(28, 2); playActorAnimation(586); moveTo(138, 163, 3); - displayMessage(0x3650); + displayMessage(dsAddr_lifeBrutalMsg); // "Life is really brutal" SET_FLAG(0xdba0, 1); processCallback(0x9d45); // another mansion try } @@ -845,7 +850,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) { playSound(53, 32); playAnimation(570, 0); wait(50); - displayMessage(0x551f); + displayMessage(dsAddr_ThanksMsg); // "Thanks." disableObject(5); SET_FLAG(0xdbb0, 1); } else if (d != 0x2c9b) { @@ -859,20 +864,23 @@ bool TeenAgentEngine::processCallback(uint16 addr) { break; case 0x5663: - displayMessage(CHECK_FLAG(0xdbb0, 1) ? 0x41b1 : 0x417e); + if (CHECK_FLAG(0xdbb0, 1)) + displayMessage(dsAddr_findNutMsg); // "I won't find the nut just like that. The grass is too dense" + else + displayMessage(dsAddr_hmmGrassMsg); // "Hmmm. Grass..." break; case 0x569c: playSound(67, 5); playActorAnimation(983); - displayMessage(0x5955); + displayMessage(dsAddr_emptyMsg); // "It's Empty" break; case 0x56b7: playSound(66, 5); playSound(67, 11); playActorAnimation(984); - displayMessage(0x5955); + displayMessage(dsAddr_emptyMsg); // "It's Empty" break; case 0x5728: @@ -885,9 +893,9 @@ bool TeenAgentEngine::processCallback(uint16 addr) { case 0x5793: if (!CHECK_FLAG(0xdb94, 1)) { - displayMessage(0x3e63); + displayMessage(dsAddr_shutTightMsg); // "It's shut tight" } else if (CHECK_FLAG(0xdb95, 1)) { - displayMessage(0x3e75); + displayMessage(dsAddr_bootEmptyMsg); // "There's nothing else in the boot" } else { SET_FLAG(0xdb95, 1); moveTo(188, 179, 0); @@ -922,7 +930,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) { wait(100); moveRel(0, 0, 3); wait(50); - displayMessage(0x34d5); // I give up + displayMessage(dsAddr_giveUpMsg); // "I give up" wait(50); } } @@ -944,15 +952,15 @@ bool TeenAgentEngine::processCallback(uint16 addr) { case 0x603e: if (CHECK_FLAG(0xdbb3, 1)) { - displayMessage(0x44a7); + displayMessage(dsAddr_busyThinkingMsg); // "I'd better not interrupt it's thought process" } else { - displayMessage(0x4412); + displayMessage(dsAddr_mirrorMirrorMsg); // "Mirror, Mirror on the wall...." wait(150); - displayMessage(0x444f); + displayMessage(dsAddr_thinkTooLongMsg); // "Hey, don't think too long" wait(150); - displayMessage(0x446b); + displayMessage(dsAddr_HintMaleMsg); // "A hint: Someone in this room, a male" wait(150); - displayMessage(0x4492); + displayMessage(dsAddr_okWaitMsg); // "OK, take your time" wait(150); SET_FLAG(0xdbb3, 1); } @@ -960,14 +968,14 @@ bool TeenAgentEngine::processCallback(uint16 addr) { case 0x6205: if (CHECK_FLAG(0xdba4, 1)) - displayMessage(0x450e); + displayMessage(dsAddr_tooHeavyMsg); // "It's too heavy. Not that I'm wimp" else processCallback(0x61fe); break; case 0x6217: if (CHECK_FLAG(0xdba4, 1)) - displayMessage(0x44d6); + displayMessage(dsAddr_noDentistsMsg); // "I don't want to have anything in common with dentists" else processCallback(0x61fe); break; @@ -1001,7 +1009,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) { if (CHECK_FLAG(0xdb96, 1)) rejectMessage(); else - displayMessage(0x47e7); + displayMessage(dsAddr_birdAttackMsg); // "Hey You! Wake up! Bird attack!" break; case 0x65c3: @@ -1015,16 +1023,16 @@ bool TeenAgentEngine::processCallback(uint16 addr) { inventory->add(47); inventory->add(48); moveTo(scene->getPosition().x - 1, 139, 1, true); - displayMessage(0x3b83); + displayMessage(dsAddr_yikesMsg); // "Yikes!" SET_FLAG(0xdba9, 2); SET_FLAG(0xdba8, 0); } else - displayMessage(0x4808); + displayMessage(dsAddr_noSearchWarrantMsg); // "I don't have a search-warrant" break; case 0x7866: if (CHECK_FLAG(0xdbdd, 3)) - displayMessage(0x55ff); + displayMessage(dsAddr_gotchaMsg); // "Gotcha" else retVal = false; break; @@ -1037,22 +1045,22 @@ bool TeenAgentEngine::processCallback(uint16 addr) { switch (v) { case 1: - displayMessage(0x5411); + displayMessage(dsAddr_SavingFineMsg); // "Saving is a very fine thing..." break; case 2: - displayMessage(0x5463); + displayMessage(dsAddr_loveCaptainMsg); // "I love captain" break; case 3: - displayMessage(0x5475); + displayMessage(dsAddr_soccerRulzMsg); // "Soccer rulz" break; case 4: - displayMessage(0x5484); + displayMessage(dsAddr_treeCutMsg); // "Don't cut the trees..." break; case 5: - displayMessage(0x54c4); + displayMessage(dsAddr_visaAcceptedMsg); // "VISA Accepted" break; default: - displayMessage(0x54d5); + displayMessage(dsAddr_otherGraffitiMsg); // "The rest of graffiti is obscene" break; } } @@ -1060,21 +1068,21 @@ bool TeenAgentEngine::processCallback(uint16 addr) { case 0x78a9: if (CHECK_FLAG(0xdbe6, 1)) - displayMessage(0x5827); + displayMessage(dsAddr_nowOpenMsg); // "Now it's open" else retVal = false; break; case 0x78bb: if (CHECK_FLAG(0xdbe8, 1)) - displayMessage(0x58b0); + displayMessage(dsAddr_yuckMsg); // "Yuck!" else retVal = false; break; case 0x78ce: if (!CHECK_FLAG(0xdba1, 1)) - displayMessage(0x3694); + displayMessage(dsAddr_monstersMsg); // "Who knows what monsters live in there" else retVal = false; break; @@ -1127,7 +1135,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) { inventory->add(0x52); inventory->remove(0x51); } else - displayMessage(0x56da); + displayMessage(dsAddr_fenceBlocksMsg); // "The fence blocks the way" break; case 0x7bfd: @@ -1143,7 +1151,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) { playSound(76, 63); playActorAnimation(873); moveTo(240, 163, 4); - displayMessage(0x5837); + displayMessage(dsAddr_cmonBabyMsg); // "C'mon baby, it's all yours!" waitLanAnimationFrame(1, 0x22); playSound(77, 2); playSound(77, 12); @@ -1204,12 +1212,12 @@ bool TeenAgentEngine::processCallback(uint16 addr) { SET_FLAG(0xdbdf, 2); } else - displayMessage(0x52f6); + displayMessage(dsAddr_nahMsg); // "Nah" break; case 0x7e02: // tickling the captain if (CHECK_FLAG(0xdbe0, 1)) { - displayMessage(0x5632); + displayMessage(dsAddr_doesNotWorkMsg); // "That doesn't work" } else { playSound(5, 6); playSound(27, 49); @@ -1229,11 +1237,11 @@ bool TeenAgentEngine::processCallback(uint16 addr) { playSound(5, 3); playActorAnimation(852, true); playActorAnimation(853, true); - displayMessage(0x5742); - displayMessage(0x5757); - displayMessage(0x5770); - displayMessage(0x5782); - displayMessage(0x5799); + displayMessage(dsAddr_whatAboutMsg); // "What about a new" + displayMessage(dsAddr_hotOffMsg); // "hot off the press" + displayMessage(dsAddr_fullColorMsg); // "full-color" + displayMessage(dsAddr_specialEdMsg); // "special edition" + displayMessage(dsAddr_soldierNewsMsg); // "of Soldier News?!" playAnimation(856, 1); playSound(5, 3); //playActorAnimation(854); @@ -1280,10 +1288,9 @@ bool TeenAgentEngine::processCallback(uint16 addr) { case 0x808b: if (CHECK_FLAG(0xdbda, 1)) { - // already shown - displayMessage(0x53f2); + displayMessage(dsAddr_gotPermissionMsg); // "I already got the permission" } else { - displayMessage(0x53dd); + displayMessage(dsAddr_showPapersMsg); // "Here are my papers" playSound(5, 2); playSound(5, 18); playActorAnimation(810); @@ -1313,7 +1320,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) { case 0x5348: if (CHECK_FLAG(0xdb99, 1)) { // got broken paddle from boat - displayMessage(0x351f); + displayMessage(dsAddr_boatEmptyMsg); // "There's nothing else in the boat" } else { SET_FLAG(0xdb99, 1); playSound(57, 6); @@ -1325,18 +1332,18 @@ bool TeenAgentEngine::processCallback(uint16 addr) { case 0x53a1: if (CHECK_FLAG(0xdbb2, 1)) { // spoken to man in well - displayMessage(0x411d); + displayMessage(dsAddr_stillThereMsg); // "Are you still there?" } else { - displayMessage(0x408a); - displayMessage(0x4091, 0xe5, 248, 164); - displayMessage(0x4098); - displayMessage(0x40a7, 0xe5, 225, 164); - displayMessage(0x40b6); - displayMessage(0x40ce, 0xe5, 172, 164); - displayMessage(0x40e8); - displayMessage(0x410f, 0xe5, 232, 164); + displayMessage(dsAddr_echoMsg); // "Echo!" + displayMessage(dsAddr_loudEchoMsg, 0xe5, 248, 164); // "ECHO!" + displayMessage(dsAddr_whoThereMsg); // "Who's there?!" + displayMessage(dsAddr_loudWhoThereMsg, 0xe5, 225, 164); // "WHO'S THERE?!" + displayMessage(dsAddr_dontCopyMsg); // "DON'T COPY ME!" + displayMessage(dsAddr_loudDontCopyMsg, 0xe5, 172, 164); // "DON'T COPY ME!!!" + displayMessage(dsAddr_throwRockMsg); // "OR I WILL THROW A ROCK DOWN THERE!" + displayMessage(dsAddr_orIWillMsg, 0xe5, 232, 164); // "OR I WILL" wait(100); - displayMessage(0x4091, 0xe5, 248, 164); + displayMessage(dsAddr_loudEchoMsg, 0xe5, 248, 164); SET_FLAG(0xdbb2, 1); } break; @@ -1418,7 +1425,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) { playActorAnimation(626); disableObject(12); inventory->add(45); - displayMessage(0x3b04); + displayMessage(dsAddr_foundFoodMsg); // "People leave food in unbelievable places" break; case 0x5756: // Open car door @@ -1440,7 +1447,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) { case 0x5832: // Ring doorbell playActorAnimation(509); - displayMessage(0x5dce); + displayMessage(dsAddr_outOfOrderMsg); // "It's out of order" break; case 0x58a2: @@ -1492,7 +1499,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) { playActorAnimation(601); moveTo(230, 179, 3); if (!CHECK_FLAG(0xdba4, 1)) - displayMessage(0x37ea); // it's kinda dark here + displayMessage(dsAddr_kindaDarkMsg); // "It's kinda dark here" break; case 0x5a8b: @@ -1503,7 +1510,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) { playSound(42, 19); playAnimation(656, 0); wait(50); - displayMessage(0x3c16); + displayMessage(dsAddr_goodDoggyMsg); // "I understand. Good doggy" } else if (!CHECK_FLAG(0xdba3, 1)) { // Dog has bone playSound(28, 3); playActorAnimation(596); @@ -1516,7 +1523,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) { playActorAnimation(597); SET_FLAG(0xdba3, 0); disableObject(8); - displayMessage(0x37b8); + displayMessage(dsAddr_wallShakenMsg); // "Wow! This must have shaken all the nearby walls!" setOns(1, 32, 24); enableObject(4, 24); } @@ -1552,12 +1559,12 @@ bool TeenAgentEngine::processCallback(uint16 addr) { playSound(89, 5); playSound(67, 11); playActorAnimation(982); - displayMessage(0x5955); + displayMessage(dsAddr_emptyMsg); // "It's Empty" break; case 0x5c0d: // grandpa - drawers if (CHECK_FLAG(0xdba7, 1)) { - displayMessage(0x3bac); + displayMessage(dsAddr_drawersEmptyMsg); // "There's nothing else in the drawers" } else { if (!CHECK_FLAG(0xdb92, 1)) dialog->show(24, scene, 0, 522, 0xd1, 0xd8, 0, 1); @@ -1603,7 +1610,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) { case 0x5e4d: // right click on ann if (!CHECK_FLAG(0xdb97, 0)) { - displayMessage(0x3d59); + displayMessage(dsAddr_girlTalkMsg); // "I really don't know how to talk to girls" } else { moveTo(245, 198, 1); dialog->show(51, scene, 0, 524, 0xd1, 0xe5, 0, 2); @@ -1641,7 +1648,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) { case 0x5fba: if (CHECK_FLAG(0xdbb1, 1)) { - displayMessage(0x4380); + displayMessage(dsAddr_noFruitMsg); // "There are no more interesting fruits here" } else { dialog->pop(scene, 0xdafc, 0, 523, 0xd1, 0xe5, 0, 1); } @@ -1697,7 +1704,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) { case 0x6176: if (CHECK_FLAG(0xdba4, 1)) { - displayMessage(0x3801); + displayMessage(dsAddr_notInDarkMsg); // "I'm not going to wander here in the dark again" } else { playSound(71, 6); playActorAnimation(598); @@ -1724,27 +1731,27 @@ bool TeenAgentEngine::processCallback(uint16 addr) { byte v = GET_FLAG(0xdbb4); switch (v) { case 0: - displayMessage(0x4532); + displayMessage(dsAddr_whatGotMsg); // "Let's look what we've got here" moveRel(-34, 0, 1); - displayMessage(0x4555); + displayMessage(dsAddr_strawberryJamMsg); // "Strawberry jam" moveRel(20, 0, 1); - displayMessage(0x4568); + displayMessage(dsAddr_gooseberryJamMsg); // "Gooseberry jam" moveRel(20, 0, 1); - displayMessage(0x457b); + displayMessage(dsAddr_blackberryJamMsg); // "Blackberry jam" moveRel(20, 0, 1); - displayMessage(0x458e); + displayMessage(dsAddr_bilberryJamMsg); // "Bilberry jam" moveTo(p, 3); - displayMessage(0x459f); + displayMessage(dsAddr_getMeOutJamMsg); // "Get me out of this jam!" SET_FLAG(0xdbb4, 1); break; case 1: - displayMessage(0x45b8); + displayMessage(dsAddr_rosemaryJamMsg); // "Oh, and there is Rosemary jam" wait(100); - displayMessage(0x45da); + displayMessage(dsAddr_knowRosemaryMsg); // "I used to know someone called Rosemary" SET_FLAG(0xdbb4, 2); break; default: - displayMessage(0x4603); + displayMessage(dsAddr_unwantedJamsMsg); // "I don't want those jams" break; } } else @@ -1759,9 +1766,9 @@ bool TeenAgentEngine::processCallback(uint16 addr) { setOns(3, 36); inventory->add(39); disableObject(5); - displayMessage(0x387c); + displayMessage(dsAddr_needSunglassesMsg); // "Sorry buddy, but I need your sunglasses" } else - displayMessage(0x3eb2); + displayMessage(dsAddr_crowKillMsg); // "I'm sure these crows will kill me" break; case 0x64c4: // flippers @@ -1773,18 +1780,18 @@ bool TeenAgentEngine::processCallback(uint16 addr) { inventory->add(40); disableObject(6); } else - displayMessage(0x3eb2); + displayMessage(dsAddr_crowKillMsg); // "I'm sure these crows will kill me" break; case 0x7907: // Describe car lever if (CHECK_FLAG(0xdb94, 1)) { // Already pulled lever? - displayMessage(0x3e4f); + displayMessage(dsAddr_openBootMsg); // "It opens the boot" } else retVal = false; break; case 0x62d0: // Get bone from under rock - displayAsyncMessage(0x463c, 218, 96, 16, 24); + displayAsyncMessage(dsAddr_yeowMsg, 218, 96, 16, 24); // "YEEEOOOWWWW!" playSound(26, 6); playSound(26, 10); playSound(24, 13); @@ -1796,7 +1803,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) { inventory->add(36); playSound(5, 2); playActorAnimation(595); - displayMessage(0x3790); + displayMessage(dsAddr_dinoBoneMsg); // "I really hope this is DINOSAUR bone" break; case 0x6351: @@ -1804,7 +1811,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) { playMusic(8); loadScene(26, 319, 169, 4); } else - displayMessage(0x3bd2); + displayMessage(dsAddr_ridBushMsg); // "I must get rid of this bush first" break; case 0x63ea: @@ -1817,10 +1824,10 @@ bool TeenAgentEngine::processCallback(uint16 addr) { case 0x6411: // Kick hen if (CHECK_FLAG(0xdb93, 1)) { // already kicked hen - displayMessage(0x3e08); + displayMessage(dsAddr_ridFrustationsMsg); // "I'd already got rid of my frustrations" } else { SET_FLAG(0xdb93, 1); - displayMessage(0x3dc6); + displayMessage(dsAddr_henFlyMsg); // "I wonder if hens can fly. Come here, baby" waitLanAnimationFrame(1, 87); playSound(30, 26); playSound(29, 49); @@ -1829,7 +1836,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) { waitAnimation(); setOns(0, 1); enableObject(14); - displayMessage(0x3df4); + displayMessage(dsAddr_firstTestFailMsg); // "First test failed" } break; @@ -1839,7 +1846,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) { playActorAnimation(553); inventory->add(0x15); wait(50); - displayMessage(0x3605); + displayMessage(dsAddr_trousersMsg); // "Good I always asked mum for trousers with BIG pockets" disableObject(11); break; @@ -1859,13 +1866,13 @@ bool TeenAgentEngine::processCallback(uint16 addr) { case 0x655b: // Get needle from haystack if (CHECK_FLAG(0xdb9d, 1)) { // already have needle - displayMessage(0x356a); + displayMessage(dsAddr_dontPushLuckMsg); // "I don't think I should push my luck" } else { SET_FLAG(0xdb9d, 1); playSound(49, 3); playActorAnimation(548); inventory->add(0x11); - displayMessage(0x35b2); + displayMessage(dsAddr_needleHaystackMsg); // "And they say you can't find a needle in a haystack" } break; @@ -1884,7 +1891,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) { break; case 0x66a9: - displayMessage(0x4a7e); + displayMessage(dsAddr_dontLeaveMansionMsg); // "I don't want to leave the mansion, I want blood!" disableObject(4); break; @@ -1901,9 +1908,9 @@ bool TeenAgentEngine::processCallback(uint16 addr) { case 0x71ae: if (CHECK_FLAG(0xdbcd, 1)) { if (CHECK_FLAG(0xdbce, 1)) { - displayMessage(0x4f9b); + displayMessage(dsAddr_restUselessMsg); // "The rest is useless" } else { - displayMessage(0x4fb1); + displayMessage(dsAddr_twoBatteriesMsg); // "Wow! Two 1.5V batteries!" playSound(32, 6); playActorAnimation(717); inventory->add(66); @@ -1916,27 +1923,27 @@ bool TeenAgentEngine::processCallback(uint16 addr) { case 0x70c8: if (processCallback(0x70e0)) { moveTo(81, 160, 4); - displayMessage(0x5cac); + displayMessage(dsAddr_cognacMsg); // "Pfui! The cognac really didn't do any good" } break; case 0x70e0: if (!CHECK_FLAG(0xdbcc, 1)) { - displayMessage(0x4ece); + displayMessage(dsAddr_cookAroundMsg); // "I can't do anything with this cook around" retVal = false; } break; case 0x70ef: if (processCallback(0x70e0)) - displayMessage(0x5046); + displayMessage(dsAddr_tooHotMsg); // "It's too hot to touch!" break; case 0x70f9: if (inventory->has(68)) { inventory->remove(68); loadScene(29, 40, 176, 2); - displayMessage(0x500a); + displayMessage(dsAddr_paperBurntMsg); // "The paper burnt out completely!" } else loadScene(29, 40, 176, 2); break; @@ -1954,10 +1961,10 @@ bool TeenAgentEngine::processCallback(uint16 addr) { playSound(89, 4); playSound(89, 4); playSound(87, 45); - displayAsyncMessage(0x4fcb, 112, 108, 11, 35, 0xe5); + displayAsyncMessage(dsAddr_oneTakenMsg, 112, 108, 11, 35, 0xe5); // "This one's taken, OK?" playActorAnimation(718); wait(100); - displayMessage(0x4fe2); + displayMessage(dsAddr_slightMadMsg); // "It finally happened. I'm slightly mad" SET_FLAG(0xdbcf, 1); } } @@ -1974,7 +1981,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) { case 0x7244: if (processCallback(0x70e0)) - displayMessage(0x5c60); + displayMessage(dsAddr_neverLearntMsg); // "I never learnt to how use one" break; case 0x7255: @@ -1986,7 +1993,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) { inventory->add(69); } else { playActorAnimation(721); - displayMessage(0x505e); + displayMessage(dsAddr_frozenShelfMsg); // "It has frozen hard onto the shelf!" } break; @@ -2001,7 +2008,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) { case 0x7336: setOns(1, 0); playSound(5, 42); - displayAsyncMessage(0x4d02, 2, 102, 20, 38); + displayAsyncMessage(dsAddr_noDepraveMsg, 2, 102, 20, 38); // "Nah, I don't want to deprave the kids" playActorAnimation(697); inventory->add(56); disableObject(1); @@ -2016,7 +2023,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) { case 0x7408: if (CHECK_FLAG(0xdbc4, 1)) { - displayMessage(0x4d2a); + displayMessage(dsAddr_noReadAgainMsg); // "I don't want to read it again. I might like it." } else { setOns(0, 0); playSound(26, 17); @@ -2036,14 +2043,14 @@ bool TeenAgentEngine::processCallback(uint16 addr) { case 0x7476: if (CHECK_FLAG(0xdbc9, 1)) { - displayMessage(0x4dbb); + displayMessage(dsAddr_noSleepMsg); // "I don't want to sleep" } else { SET_FLAG(0xdbc9, 1); dialog->showMark(94, scene); playSound(61, 5); playSound(5, 14); playActorAnimation(705); - displayMessage(0x4dd3); + displayMessage(dsAddr_justCorkMsg); // "It's just a cork" inventory->add(59); } break; @@ -2153,9 +2160,9 @@ bool TeenAgentEngine::processCallback(uint16 addr) { loadScene(31, 298, 177, 4); SET_FLAG(0xdbd9, 1); } else - displayMessage(0x52fe); + displayMessage(dsAddr_ventFirstMsg); // "I'd better stop this ventilator first" } else - displayMessage(0x52cb); + displayMessage(dsAddr_noSaladMsg); // "I don't want to turn myself into a salad" break; case 0x783d: @@ -2185,7 +2192,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) { case 0x7ade: if (CHECK_FLAG(0xdbcd, 1)) - displayMessage(0x4f69); + displayMessage(dsAddr_whatInsideMsg); // "I was always curious what's inside these things" else retVal = false; break; @@ -2208,7 +2215,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) { inventory->remove(0x59); enableOn(true); } else - displayMessage(0x5de2); + displayMessage(dsAddr_captainWatchingMsg); // "with captain watching? Better not" break; case 0x505c: @@ -2234,7 +2241,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) { case 0x7802: if (CHECK_FLAG(0xdbd7, 1)) { if (CHECK_FLAG(0xdbd8, 1)) - displayMessage(0x52f6); + displayMessage(dsAddr_nahMsg); // "Nah" else { playSound(71, 4); playActorAnimation(796); @@ -2242,7 +2249,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) { SET_FLAG(0xdbd8, 1); } } else - displayMessage(0x52cb); + displayMessage(dsAddr_noSaladMsg); // "I don't want to turn myself into a salad" break; case 0x78e0: @@ -2262,7 +2269,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) { case 0x78f5: if (CHECK_FLAG(0xdb95, 1)) { - displayMessage(0x3575); + displayMessage(0x3575); // FIXME: Not sure this address is correct } else retVal = false; break; @@ -2271,21 +2278,21 @@ bool TeenAgentEngine::processCallback(uint16 addr) { if (!CHECK_FLAG(0xdba5, 1)) retVal = false; else - displayMessage(0x3e98); + displayMessage(dsAddr_clothesDryMsg); // "The clothes are dry now." break; case 0x7950: if (!CHECK_FLAG(0xdbb1, 1)) retVal = false; else - displayMessage(0x3daf); + displayMessage(dsAddr_nutRealMsg); // "Only the nut is real" break; case 0x7975: if (CHECK_FLAG(0xdba4, 1)) retVal = false; else - displayMessage(0x3832); + displayMessage(dsAddr_shutValveMsg); // "Shutting the valve shook the dirt from the wall..." break; case 0x7987: @@ -2302,7 +2309,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) { if (!CHECK_FLAG(0xdb9d, 1)) retVal = false; else - displayMessage(0x3590); + displayMessage(dsAddr_ordinaryHaystackMsg); // "Just an ordinary hay stack. Now." break; case 0x7af0: @@ -2355,7 +2362,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) { playActorAnimation(588, true); waitAnimation(); wait(50); - displayMessage(0x367f); + displayMessage(dsAddr_itsGoneMsg); // "At least it's gone" inventory->remove(34); SET_FLAG(0xdba1, 1); break; @@ -2369,19 +2376,19 @@ bool TeenAgentEngine::processCallback(uint16 addr) { for (byte i = 3; i <= 18; i += 3) playSound(56, i); - displayAsyncMessage(0x3ace, 38, 12, 20, 37, 0xd9); + displayAsyncMessage(dsAddr_heyLetGoMsg, 38, 12, 20, 37, 0xd9); // "Hey, let go, will ya?!" playActorAnimation(621, true); playAnimation(623, 1, true); waitAnimation(); - displayAsyncMessage(0x3ae6, 30, 12, 1, 9, 0xd9); + displayAsyncMessage(dsAddr_aaahhhMsg, 30, 12, 1, 9, 0xd9); // "Aaaaaaaaaaaaahhh!" playSound(35, 1); playActorAnimation(622, true); playAnimation(624, 0, true); waitAnimation(); wait(150); - displayMessage(0x3afd); + displayMessage(dsAddr_oopsMsg); // "Oops" inventory->remove(43); processCallback(0x9d45); @@ -2406,7 +2413,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) { waitAnimation(); disableObject(6); - displayMessage(0x363f); + displayMessage(dsAddr_lifeIsBrutalMsg); // "Life is brutal" inventory->remove(27); inventory->add(28); break; @@ -2479,7 +2486,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) { setOns(1, 23); SET_FLAG(0xdbb0, 2); } else - displayMessage(0x3d86); + displayMessage(dsAddr_dontWorkPurposeMsg); // "I usually don't work without a purpose" break; case 0x863d: @@ -2501,12 +2508,15 @@ bool TeenAgentEngine::processCallback(uint16 addr) { break; case 0x862c: - displayMessage(CHECK_FLAG(0xdbb0, 1) ? 0x4882 : 0x3457); + if (CHECK_FLAG(0xdbb0, 1)) + displayMessage(dsAddr_nutRakeMsg); // "It's pointless, the nut will slip between the rake's teeth" + else + displayMessage(dsAddr_objErrorMsg); // "That's no good" break; case 0x86a9: // correcting height of the pole with spanner if (CHECK_FLAG(0xdb92, 1)) { - displayMessage(0x3d40); + displayMessage(dsAddr_noNeedMsg); // "No need to do it again" } else { SET_FLAG(0xdb92, 1); dialog->show(17, scene, 0, 502, 0xd0, 0xe5, 0, 1); @@ -2528,7 +2538,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) { playSound(5, 43); playSound(61, 70); playSound(61, 91); - displayAsyncMessage(0x3cfb, 77, 90, 6, 17); + displayAsyncMessage(dsAddr_ConfusionMsg, 77, 90, 6, 17); // "!?&!" playActorAnimation(505, true); playAnimation(507, 0, true); waitAnimation(); @@ -2552,8 +2562,8 @@ bool TeenAgentEngine::processCallback(uint16 addr) { disableObject(15); disableObject(16); moveTo(162, 164, 2); - displayMessage(0x3d01, 0xe5, 70, 76); - displayMessage(0x3d20, 0xd8, 90, 76); + displayMessage(dsAddr_grandpaPromiseMsg, 0xe5, 70, 76); // "But grandpa, you promised!" + displayMessage(dsAddr_ohLetsGoMsg, 0xd8, 90, 76); // "Oh all right. Let's go" moveTo(162, 191, 2); setOns(1, 0); setOns(2, 0); @@ -2572,7 +2582,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) { playAnimation(512, 0); wait(100); - displayMessage(0x3d3a); + displayMessage(dsAddr_byeMsg); // "Bye." { Object *obj = scene->getObject(7); obj->actor_rect.left = obj->actor_rect.right = 228; @@ -2702,7 +2712,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) { //playAnimation(672, 1); playSound(83, 12); - displayAsyncMessage(0x4a5b, 204, 114, 23, 38, 0xe5); + displayAsyncMessage(dsAddr_hundredBucksMsg, 204, 114, 23, 38, 0xe5); // "A hundred bucks!!!" playActorAnimation(673); loadScene(11, scene->getPosition()); playSound(24, 31); @@ -2714,11 +2724,11 @@ bool TeenAgentEngine::processCallback(uint16 addr) { loadScene(28, 0, 167, 2); playMusic(10); moveTo(66, 167, 2); - displayMessage(0x4a6f); + displayMessage(dsAddr_wantBloodMsg); // "I want Blood!" inventory->clear(); inventory->add(29); } else - displayMessage(0x4a29); + displayMessage(dsAddr_showHerMoneyMsg); // "If I just show her the money, she might take it" break; case 0x8b82: // use fan on laundry @@ -2729,7 +2739,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) { playSound(92, 20); playSound(92, 38); playSound(92, 58); - displayAsyncMessage(0x464a, 30, 114, 58, 67); + displayAsyncMessage(dsAddr_yawnMsg, 30, 114, 58, 67); // "(yawn)" playActorAnimation(602); playSound(5, 3); playActorAnimation(603); @@ -2738,7 +2748,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) { break; case 0x8bfc: // Give bone to dog - displayMessage(0x3c31); + displayMessage(dsAddr_hereBoyMsg); // "Here, boy" playSound(5, 3); playSound(26, 13); playActorAnimation(657, true); @@ -2771,7 +2781,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) { w->save(); } wait(100); - displayMessage(0x3c3d); + displayMessage(dsAddr_friendsNowMsg); // "I hope we're friends now" break; case 0x8c6e: // Use car jack on rock @@ -2828,7 +2838,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) { playActorAnimation(654, true); playAnimation(655, 2, true); waitAnimation(); - displayMessage(0x3bf6); + displayMessage(dsAddr_mouseGoneMsg); // "The mouse has gone!" inventory->add(49); setLan(2, 4, 27); enableObject(4, 27); @@ -2875,7 +2885,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) { playSound(56, i); playSound(2, 64); playSound(3, 74); - displayAsyncMessage(0x34c7, 212, 80, 35, 50); + displayAsyncMessage(dsAddr_lastChanceMsg, 212, 80, 35, 50); // "Last chance?" playActorAnimation(516, true); playAnimation(517, 2, true); playAnimation(518, 3, true); @@ -2889,7 +2899,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) { break; case 0x8fc8: - displayMessage(0x3b2f); + displayMessage(dsAddr_comeHereMsg); // "Come here, I've got something for you" waitLanAnimationFrame(2, 4); playSound(5, 3); playActorAnimation(627, true); @@ -2904,19 +2914,19 @@ bool TeenAgentEngine::processCallback(uint16 addr) { playAnimation(634, 1, true); waitAnimation(); disableObject(4); - displayMessage(0x3b6c); + displayMessage(dsAddr_trappedMouseMsg); // "The mouse is trapped!" SET_FLAG(0xdba9, 1); } else { playActorAnimation(628, true); playAnimation(630, 1, true); waitAnimation(); - displayMessage(0x3b59); + displayMessage(dsAddr_cantCatchMsg); // "I can't catch it!" } break; case 0x9054: // mouse hole if (CHECK_FLAG(0xdbab, 1)) { - displayMessage(0x3c0b); + displayMessage(dsAddr_nonsenseMsg); // "Nonsense" } else { playSound(5, 11); playSound(49, 21); @@ -2928,7 +2938,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) { inventory->remove(47); if (!CHECK_FLAG(0xdbaa, 1)) { SET_FLAG(0xdbaa, 1); - displayMessage(0x3b8b); + displayMessage(dsAddr_mouseNerveMsg); // "Boy, this mouse has some nerve!" } } break; @@ -2936,7 +2946,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) { case 0x933d: if (processCallback(0x70e0)) { if (CHECK_FLAG(0xdbcd, 1)) - displayMessage(0x4f3d); + displayMessage(dsAddr_breakFlattenMsg); // "I wanted to break it, not to flatten it!" else { setOns(1, 0); playSound(5, 3); @@ -2973,12 +2983,12 @@ bool TeenAgentEngine::processCallback(uint16 addr) { playSound(88, 12); playSound(87, 24); playActorAnimation(723); - displayMessage(0x502b); + displayMessage(dsAddr_burnBabyMsg); // "Burn, baby, burn!" wait(100); playSound(89, 4); playActorAnimation(724); setOns(4, 68); - displayMessage(0x503e); + displayMessage(dsAddr_voilaMsg); // "Voila" inventory->remove(68); SET_FLAG(0xdbd0, 1); break; @@ -2989,7 +2999,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) { inventory->add(35); inventory->activate(false); inventory->resetSelectedObject(); - displayMessage(0x3468); + displayMessage(dsAddr_carJackMsg); // "Wow! There's a car jack inside! Great!" break; case 0x9910: @@ -2997,7 +3007,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) { inventory->add(5); inventory->activate(false); inventory->resetSelectedObject(); - displayMessage(0x3490); + displayMessage(dsAddr_spannerMsg); // "There's something else inside the toolbox! A spanner!" break; case 0x671d: // very last part of the game @@ -3022,7 +3032,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) { playSound(15, 8); playAnimation(693, 0); setOns(6, 0); - displayMessage(0x4cc7); + displayMessage(dsAddr_fullAutomaticMsg); // "Fully Automatic" inventory->add(54); disableObject(4); break; @@ -3039,14 +3049,14 @@ bool TeenAgentEngine::processCallback(uint16 addr) { case 0x687a: // using the book if (CHECK_FLAG(0xdbc2, 1)) { - displayMessage(0x4ca0); + displayMessage(dsAddr_dontMessMsg); // "I don't need to mess with it anymore" } else { playSound(49, 5); playSound(49, 17); playActorAnimation(691); if (!processCallback(0x68e6)) { if (!CHECK_FLAG(0xdbc0, 1)) { - displayMessage(0x4c61); + displayMessage(dsAddr_bookHeldMsg); // "Something's got hold of the book!" SET_FLAG(0xdbc0, 1); } } else { @@ -3054,7 +3064,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) { playAnimation(692, 0); setOns(6, 59); enableObject(4); - displayMessage(0x4c84); + displayMessage(dsAddr_secretCompartmentMsg); // "Wow! A secret compartment!" SET_FLAG(0xdbc2, 1); } } @@ -3077,7 +3087,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) { case 0x6918: if (inventory->has(55)) - displayMessage(0x4cd9); + displayMessage(dsAddr_noMoreSheetsMsg); // "Right now I don't need any more sheets" else { if (!CHECK_FLAG(0xdbc3, 1)) { playActorAnimation(695); @@ -3192,17 +3202,17 @@ bool TeenAgentEngine::processCallback(uint16 addr) { case 0x6b86: if (CHECK_FLAG(0xdbbd, 1)) - displayMessage(0x4b39); + displayMessage(dsAddr_drawerOpenMsg); // "I cannot open the drawer if the next one is open!" else { - displayMessage(0x4acd); - displayMessage(0x4b0d); + displayMessage(dsAddr_strangeDrawerMsg); // "Strange, but the drawer is stuck if the next drawer is open" + displayMessage(dsAddr_notOrdinaryDrawersMsg); // "Maybe these are not just ordinary drawers!" SET_FLAG(0xdbbd, 1); } break; case 0x6be1: // handle to the bathroom if (CHECK_FLAG(0xdbd9, 1)) - displayMessage(0x5326); // i'd better catch johnny + displayMessage(dsAddr_catchJohnFirstMsg); // "I'd better catch John Noty first" else { playSound(88, 4); playActorAnimation(808); @@ -3313,7 +3323,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) { case 0x6f20: if (CHECK_FLAG(0xdbd5, 1)) - displayMessage(0x51a7); + displayMessage(dsAddr_cantHideMsg); // "I can't hide here!" else rejectMessage(); break; @@ -3347,7 +3357,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) { showActor(); playActorAnimation(757); moveRel(0, 0, 1); - displayMessage(0x51e7); + displayMessage(dsAddr_wasCloseMsg); // "That was close" enableObject(8); disableObject(7); @@ -3356,17 +3366,17 @@ bool TeenAgentEngine::processCallback(uint16 addr) { case 0x6f4d: if (CHECK_FLAG(0xdbd5, 1)) - displayMessage(0x51bb); + displayMessage(dsAddr_johnOutsideMsg); // "There's John Noty outside! I can't go out!" else loadScene(31, 139, 172, 3); break; case 0x6f32: if (CHECK_FLAG(0xdbd5, 1)) { - displayMessage(0x51a7); + displayMessage(dsAddr_cantHideMsg); // "I can't hide here!" } else { playActorAnimation(977); - displayMessage(0x5511); + displayMessage(dsAddr_lockedMsg); // "It's Locked!" } break; @@ -3386,17 +3396,17 @@ bool TeenAgentEngine::processCallback(uint16 addr) { case 0x72c2: if (CHECK_FLAG(0xdbd6, 2)) { - displayMessage(0x522c); + displayMessage(dsAddr_enoughWaterMsg); // "There's enough water in the sink" } else { playSound(79, 6); playSound(84, 9); playActorAnimation(801); wait(50); if (CHECK_FLAG(0xdbd6, 1)) { - displayMessage(0x538d); + displayMessage(dsAddr_sinkFullMsg); // "The sink is full of hot water" SET_FLAG(0xdbd6, 2); } else - displayMessage(0x5372); + displayMessage(dsAddr_waterHotMsg); // "The water looks very hot" } break; @@ -3404,12 +3414,12 @@ bool TeenAgentEngine::processCallback(uint16 addr) { playSound(66, 5); playSound(67, 11); playActorAnimation(976); - displayMessage(0x5955); + displayMessage(dsAddr_emptyMsg); // "It's Empty" break; case 0x77d5: if (CHECK_FLAG(0xdbd7, 1) && !CHECK_FLAG(0xdbd8, 1)) { // disallow exiting through the first door until switch turned on, not present in original game - displayMessage(0x52cb); + displayMessage(dsAddr_noSaladMsg); // "I don't want to turn myself into a salad" } else { playSound(89, 6); playActorAnimation(978); @@ -3423,12 +3433,13 @@ bool TeenAgentEngine::processCallback(uint16 addr) { break; case 0x79eb: // color of the book + // FIXME - Replace with internal lookup and switch displayMessage(res->dseg.get_word(0x5f3c + GET_FLAG(0xdbc1) * 2 - 2)); break; case 0x79fd: if (CHECK_FLAG(0xdbb7, 1)) - displayMessage(0x4b6c); + displayMessage(dsAddr_blueInteriorMsg); // "It's got a blue interior" else retVal = false; break; @@ -3436,34 +3447,34 @@ bool TeenAgentEngine::processCallback(uint16 addr) { case 0x7a0f: if (CHECK_FLAG(0xdbb8, 1)) { if (!CHECK_FLAG(0xdbbf, 1)) { - displayMessage(0x4c32); + displayMessage(dsAddr_foundPolaroidMsg); // "There's a polaroid inside! I might need that" playSound(5, 11); playActorAnimation(690); inventory->add(53); SET_FLAG(0xdbbf, 1); } - displayMessage(0x4b87); + displayMessage(dsAddr_redInteriorMsg); // "It's got a red interior" } else retVal = false; break; case 0x7a49: if (CHECK_FLAG(0xdbb9, 1)) - displayMessage(0x4ba1); + displayMessage(dsAddr_greyInteriorMsg); // "It's got a grey interior" else retVal = false; break; case 0x7a5b: if (CHECK_FLAG(0xdbba, 1)) - displayMessage(0x4bbc); + displayMessage(dsAddr_greenInteriorMsg); // "It's got a green interior" else retVal = false; break; case 0x7a6d: if (CHECK_FLAG(0xdbbb, 1)) - displayMessage(0x4bd8); + displayMessage(dsAddr_brownInteriorMsg); // "It's got a brown interior" else retVal = false; break; @@ -3471,20 +3482,20 @@ bool TeenAgentEngine::processCallback(uint16 addr) { case 0x7a7f: if (CHECK_FLAG(0xdbbc, 1)) { if (!CHECK_FLAG(0xdbbe, 1)) { - displayMessage(0x4c0f); // there's a dictaphone inside! + displayMessage(dsAddr_dictaphoneInsideMsg); // "Wow! There's a dictaphone inside!" playSound(5, 12); playActorAnimation(689); inventory->add(52); SET_FLAG(0xdbbe, 1); } - displayMessage(0x4bf4); + displayMessage(dsAddr_pinkInteriorMsg); // "It's got a pink interior" } else retVal = false; break; case 0x7af7: if (CHECK_FLAG(0xdbd0, 1)) - displayMessage(0x5082); + displayMessage(dsAddr_yummyMsg); // "Yummy" else retVal = false; break; @@ -3494,10 +3505,10 @@ bool TeenAgentEngine::processCallback(uint16 addr) { byte v = GET_FLAG(0xdbd6); switch (v) { case 1: - displayMessage(0x51f8); + displayMessage(dsAddr_corkInHoleMsg); // "The cork is stuck in the hole" break; case 2: - displayMessage(0x538d); + displayMessage(dsAddr_sinkFullMsg); // "The sink is full of hot water" break; default: retVal = false; @@ -3508,7 +3519,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) { case 0x9166: if (!CHECK_FLAG(0xdbd1, 1)) { - displayMessage(0x50a6); + displayMessage(dsAddr_noReasonMsg); // "There's no reason to do it" retVal = false; } break; @@ -3540,17 +3551,17 @@ bool TeenAgentEngine::processCallback(uint16 addr) { case 0x90fc: // dictaphone on robot if (processCallback(0x9166)) { if (CHECK_FLAG(0xdbd2, 1)) { - displayMessage(0x50c3); + displayMessage(dsAddr_fooledOnceMsg); // "I'd already fooled him once" } else { if (!CHECK_FLAG(0xdbcb, 1)) { - displayMessage(0x5101); + displayMessage(dsAddr_notMyVoiceMsg); // "I won't cheat Mike with MY voice" } else { - displayMessage(0x50e1); + displayMessage(dsAddr_mikeVoiceTestMsg); // "Mike, activate the voice test" waitLanAnimationFrame(1, 1); playSound(5, 3); playSound(5, 39); - displayAsyncMessage(0x5124, 68, 126, 9, 35, 0xd0); + displayAsyncMessage(dsAddr_singingMsg, 68, 126, 9, 35, 0xd0); // "siiiiinging!" playActorAnimation(728); waitLanAnimationFrame(1, 1); @@ -3565,9 +3576,9 @@ bool TeenAgentEngine::processCallback(uint16 addr) { case 0x91cb: // use socks on robot if (processCallback(0x9166)) { if (CHECK_FLAG(0xdbd3, 1)) { - displayMessage(0x50c3); + displayMessage(dsAddr_fooledOnceMsg); // "I'd already fooled him once" } else { - displayMessage(0x5138); + displayMessage(dsAddr_mikeScentTestMsg); // "Mike, let's get on with the scent test" waitLanAnimationFrame(1, 1); playSound(5, 3); @@ -3585,9 +3596,9 @@ bool TeenAgentEngine::processCallback(uint16 addr) { case 0x9209: // photo on robot if (processCallback(0x9166)) { if (CHECK_FLAG(0xdbd4, 1)) { - displayMessage(0x50c3); + displayMessage(dsAddr_fooledOnceMsg); // "I'd already fooled him once" } else { - displayMessage(0x5161); + displayMessage(dsAddr_mikeViewTestMsg); // "Mike, run the view test" waitLanAnimationFrame(1, 1); playSound(5, 3); @@ -3651,7 +3662,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) { playSound(5, 4); playSound(19, 14); playActorAnimation(793); - displayMessage(0x5218); + displayMessage(dsAddr_fitsPerfectMsg); // "It fits perfectly!" inventory->remove(60); SET_FLAG(0xdbd6, 1); break; @@ -3660,7 +3671,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) { playSound(5, 4); playSound(63, 12); playActorAnimation(726); - displayMessage(0x508a); + displayMessage(dsAddr_dislikeVealMsg); // "I never liked veal anyway" inventory->remove(69); inventory->add(70); break; @@ -3670,12 +3681,12 @@ bool TeenAgentEngine::processCallback(uint16 addr) { playSound(5, 4); playSound(5, 25); playActorAnimation(802); - displayMessage(0x5272); + displayMessage(dsAddr_labelOffMsg); // "The label has come off!" inventory->remove(62); inventory->add(74); inventory->add(65); } else - displayMessage(0x524f); + displayMessage(dsAddr_noHotWaterMsg); // "There's no hot water in the sink" break; case 0x94d4: @@ -3689,14 +3700,14 @@ bool TeenAgentEngine::processCallback(uint16 addr) { inventory->remove(70); inventory->add(71); } else - displayMessage(0x53ad); + displayMessage(dsAddr_noSockStoreMsg); // "I don't have anything to store these socks in" break; case 0x951b: playSound(5, 4); playSound(5, 22); playActorAnimation(804); - displayMessage(0x528b); + displayMessage(dsAddr_corkTooSmallMsg); // "The cork is a bit too small" break; case 0x73a3: @@ -3710,7 +3721,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) { reloadLan(); if (CHECK_FLAG(0xdbc6, 1)) { - displayMessage(0x4da6); + displayMessage(dsAddr_muchBetterMsg); // "That's much better" } } else { SET_FLAG(0xdbc5, 1); @@ -3727,13 +3738,13 @@ bool TeenAgentEngine::processCallback(uint16 addr) { playSound(5, 16); playActorAnimation(703); if (!CHECK_FLAG(0xdbc8, 1)) - displayMessage(0x4d80); // nothing happened + displayMessage(dsAddr_NotHappenMsg); // "Nothing happened" else { //0x955a if (CHECK_FLAG(0xdbc6, 0)) { if (CHECK_FLAG(0xdbc5, 1)) { // tv on if (!CHECK_FLAG(0xdbc7, 1)) - displayMessage(0x4d93); // the tape started + displayMessage(dsAddr_tapeStartedMsg); // "The tape started!" SET_FLAG(0xdbc6, 1); reloadLan(); @@ -3742,12 +3753,12 @@ bool TeenAgentEngine::processCallback(uint16 addr) { SET_FLAG(0xdbc7, 1); } } else - displayMessage(0x4d5b); // i just realized that tv is off + displayMessage(dsAddr_tvOffMsg); // "I just realised that the TV is off" } else { SET_FLAG(0xdbc6, 0); if (CHECK_FLAG(0xdbc5, 1)) { // tv on reloadLan(); - displayMessage(0x4da6); // much better! + displayMessage(dsAddr_muchBetterMsg); // "That's much better" } } } @@ -3756,7 +3767,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) { case 0x95eb: // polaroid + tv if (CHECK_FLAG(0xdbc6, 1)) { if (CHECK_FLAG(0xdbca, 1)) { - displayMessage(0x4de6); + displayMessage(dsAddr_enoughPhotosMsg); // "I don't need any more photos" } else { playSound(5, 3); playSound(5, 24); @@ -3766,22 +3777,22 @@ bool TeenAgentEngine::processCallback(uint16 addr) { SET_FLAG(0xdbca, 1); } } else - displayMessage(0x4ea5); + displayMessage(dsAddr_notRightMomentMsg); // "I don't think this is the right moment" break; case 0x962f: // polaroid + tv if (CHECK_FLAG(0xdbc6, 1)) { if (CHECK_FLAG(0xdbcb, 1)) { - displayMessage(0x4e32); + displayMessage(dsAddr_alreadyRecordedMsg); // "I already recorded what I wanted to" } else { - displayMessage(0x4e05); + displayMessage(dsAddr_recordScareMsg); // "Yeah, I can record this and scare the cats" playSound(5, 3); playSound(5, 27); playActorAnimation(708); SET_FLAG(0xdbcb, 1); } } else - displayMessage(0x4ea5); + displayMessage(dsAddr_notRightMomentMsg); // "I don't think this is the right moment" break; case 0x95c8: @@ -3804,7 +3815,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) { wait(100); playActorAnimation(805); moveTo(50, 170, 3); - displayMessage(0x5349); + displayMessage(dsAddr_onlyChilliMsg); // "Good this red stuff is only a chilli" //moveTo(105, 157, 0, true); playMusic(3); loadScene(11, 105, 157, 4); @@ -3875,7 +3886,10 @@ bool TeenAgentEngine::processCallback(uint16 addr) { { int id = scene->getId(); if (id != 15) { - displayMessage(id == 16 ? 0x38ce : 0x38a7); + if (id == 16) + displayMessage(dsAddr_notHereMsg); // "Not here" + else + displayMessage(dsAddr_notBestPlaceMsg); // "It's not the best place for diving" } else { playSound(5, 3); playSound(38, 16); @@ -3903,22 +3917,22 @@ bool TeenAgentEngine::processCallback(uint16 addr) { INC_FLAG(0xdba6); switch (GET_FLAG(0xdba6)) { case 1: - displayMessage(0x39ae); + displayMessage(dsAddr_seaweedMsg); // "This seaweed is just like the flowers I gave mum on her last birthday" break; case 2: - displayMessage(0x39f6); + displayMessage(dsAddr_fishBoatMsg); // "I wonder what fish do inside this boat at night" break; case 3: - displayMessage(0x3a28); + displayMessage(dsAddr_fishSomethingMsg); // "I think I have to fish out something down there" break; case 4: - displayMessage(0x3a85); + displayMessage(dsAddr_notRedHerringMsg); // "I hope all this fish stuff is not a red herring" break; case 5: - displayMessage(0x39ae); + displayMessage(dsAddr_seaweedMsg); // "This seaweed is just like the flowers I gave mum on her last birthday" break; default: - displayMessage(0x39b7); + displayMessage(dsAddr_niceDownMsg); // "It's nice down there" break; } break; @@ -3935,7 +3949,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) { playActorAnimation(619); processCallback(0x9a7a); inventory->add(42); - displayMessage(0x3989); + displayMessage(dsAddr_hookedAnchorMsg); // "I was really hooked on this anchor!" break; case 0x9a7a: @@ -3980,26 +3994,26 @@ bool TeenAgentEngine::processCallback(uint16 addr) { playActorAnimation(664); playAnimation(665, 1); wait(100); - displayMessage(0x3cbc); + displayMessage(dsAddr_foundCrudeOilMsg); // "At least I found crude oil and I'll be rich" wait(100); - displayMessage(0x3cea); + displayMessage(dsAddr_myLifeMsg); // "That's my life" inventory->remove(37); processCallback(0x9d45); // another mansion try } else - displayMessage(0x3c58); + displayMessage(dsAddr_notThinkRightPlaceMsg); // "I don't think this is the right place" break; case 0x9c6d: - displayMessage(0x49d1); + displayMessage(dsAddr_bankNoteMsg); // "It's a note from some bank..." SET_FLAG(0xdbb5, 1); retVal = false; break; case 0x9c79: // use pills if (scene->getId() != 36) { - displayMessage(0x52a9); + displayMessage(dsAddr_notTryNowMsg); // "There's no need to try them now" } else if (CHECK_FLAG(0xdbf1, 1)) { - displayMessage(0x52f6); + displayMessage(dsAddr_nahMsg); // "Nah" } else { SET_FLAG(0xdbf1, 1); moveTo(102, 195, 2); diff --git a/engines/teenagent/inventory.cpp b/engines/teenagent/inventory.cpp index ec46936b7e..7e8d056220 100644 --- a/engines/teenagent/inventory.cpp +++ b/engines/teenagent/inventory.cpp @@ -228,7 +228,7 @@ bool Inventory::processEvent(const Common::Event &event) { } table += 5; } - _vm->displayMessage(0xc3e2); + _vm->displayMessage(dsAddr_objCombineErrorMsg); activate(false); resetSelectedObject(); return true; diff --git a/engines/teenagent/resources.h b/engines/teenagent/resources.h index 6fb1cbad1a..eec6b2b373 100644 --- a/engines/teenagent/resources.h +++ b/engines/teenagent/resources.h @@ -51,18 +51,503 @@ const uint16 dsAddr_cursor = 0x00da; // Reject Messages Address Pointers : (4 * 2-byte) = 0x339e to 0x33a5 const uint16 dsAddr_rejectMsg = 0x339e; +// Object Usage Error Message : 0x3457 to 0x3467 +const uint16 dsAddr_objErrorMsg = 0x3457; // "That's no good" +// Car Jack Message : 0x3468 to 0x348f +const uint16 dsAddr_carJackMsg = 0x3468; // "Wow! There's a car jack inside! Great!" +// Spanner Message : 0x3490 to 0x34c6 +const uint16 dsAddr_spannerMsg = 0x3490; // "There's something else inside the toolbox! A spanner!" +// Last Chance Message : 0x34c7 to 0x34d4 +const uint16 dsAddr_lastChanceMsg = 0x34c7; // "Last chance?" +// Give Up Message : 0x34d5 to 0x34e0 +const uint16 dsAddr_giveUpMsg = 0x34d5; // "I give up" +// Avoid Bees Message : 0x34e1 to 0x351e +const uint16 dsAddr_avoidBeesMsg = 0x34e1; // "I'm going to stay at least five meters away from these bees!" +// Boat Empty Message : 0x351f to 0x3541 +const uint16 dsAddr_boatEmptyMsg = 0x351f; // "There's nothing else in the boat" +// Too Hard Wood Message : 0x3542 to 0x3562 +const uint16 dsAddr_tooHardWoodMsg = 0x3542; // "This wood is too hard to break" +// Boo Message : 0x3563 to 0x3569 +const uint16 dsAddr_BooMsg = 0x3563; // "Booo!" +// Dont Push Luck Message : 0x356a to 0x358f +const uint16 dsAddr_dontPushLuckMsg = 0x356a; // "I don't think I should push my luck" +// Ordinary Haystack Message : 0x3590 to 0x35b1 +const uint16 dsAddr_ordinaryHaystackMsg = 0x3590; // "Just an ordinary hay stack. Now." +// Needle Haystack Message : 0x35b2 to 0x35e7 +const uint16 dsAddr_needleHaystackMsg = 0x35b2; // "And they say you can't find a needle in a haystack" +// No Potatoes Message : 0x35e8 to 0x3604 +const uint16 dsAddr_noPotatoMsg = 0x35e8; // "There are no more potatoes" +// Trousers Message : 0x3605 to 0x363e +const uint16 dsAddr_trousersMsg = 0x3605; // "Good I always asked mum for trousers with BIG pockets" +// Life Is Brutal Message : 0x363f to 0x364f +const uint16 dsAddr_lifeIsBrutalMsg = 0x363f; // "Life is brutal" +// Life Brutal Message : 0x3650 to 0x3667 +const uint16 dsAddr_lifeBrutalMsg = 0x3650; // "Life is really brutal" +// Tickled Message : 0x3668 to 0x367e +const uint16 dsAddr_tickledMsg = 0x3668; // "Something tickled me!" +// Its Gone Message : 0x367f to 0x3693 +const uint16 dsAddr_itsGoneMsg = 0x367f; // "At least it's gone" +// Monsters Message : 0x3694 to 0x36c1 +const uint16 dsAddr_monstersMsg = 0x3694; // "Who knows what monsters live in there" +// No Hands Message : 0x36c2 to 0x370e +const uint16 dsAddr_noHandsMsg = 0x36c2; // "I'd better not put my hands in there..." +// Totally Empty Message : 0x370f to 0x372d +const uint16 dsAddr_totalEmptyMsg = 0x370f; // "I can see it's totally empty" +// One Small Step Message : 0x372e to 0x3765 +const uint16 dsAddr_oneSmallStepMsg = 0x372e; // "One small step for man, one big pain in the head" +// No Chance Message : 0x3766 to 0x378f +const uint16 dsAddr_noChanceMsg = 0x3766; // "I won't take my chances a second time" +// Dinosaur Bone Message : 0x3790 to 0x37b7 +const uint16 dsAddr_dinoBoneMsg = 0x3790; // "I really hope this is DINOSAUR bone" +// Wall Shaken Message : 0x37b8 to 0x37e9 +const uint16 dsAddr_wallShakenMsg = 0x37b8; // "Wow! This must have shaken all the nearby walls!" +// Kinda Dark Message : 0x37ea to 0x3800 +const uint16 dsAddr_kindaDarkMsg = 0x37ea; // "It's kinda dark here" +// Not in Dark Message : 0x3801 to 0x3831 +const uint16 dsAddr_notInDarkMsg = 0x3801; // "I'm not going to wander here in the dark again" +// Shut Valve Message : 0x3832 to 0x387b +const uint16 dsAddr_shutValveMsg = 0x3832; // "Shutting the valve shook the dirt from the wall..." +// Need Sunglasses Message : 0x387c to 0x38a6 +const uint16 dsAddr_needSunglassesMsg = 0x387c; // "Sorry buddy, but I need your sunglasses" +// Not Best Place Message : 0x38a7 to 0x38cd +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" + +// Hooked Anchor Message : 0x3989 to 0x39ad +const uint16 dsAddr_hookedAnchorMsg = 0x3989; // "I was really hooked on this anchor!" +// Seaweed Message : 0x39ae to 0x39f5 +const uint16 dsAddr_seaweedMsg = 0x39ae; // "This seaweed is just like the flowers I gave mum on her last birthday" +// Fish Boat Message : 0x39f6 to 0x3a27 +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" + +// 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 +const uint16 dsAddr_niceDownMsg = 0x3ab7; // "It's nice down there" +// Hey Let Go Message : 0x3ace to 0x3ae5 +const uint16 dsAddr_heyLetGoMsg = 0x3ace; // "Hey, let go, will ya?!" +// Aaahhh Message : 0x3ae6 to 0x3afc +const uint16 dsAddr_aaahhhMsg = 0x3ae6; // "Aaaaaaaaaaaaahhh!" +// Oops Message : 0x3afd to 0x3b03 +const uint16 dsAddr_oopsMsg = 0x3afd; // "Oops" +// Found Food Message : 0x3b04 to 0x3b2e +const uint16 dsAddr_foundFoodMsg = 0x3b04; // "People leave food in unbelievable places" +// Come Here Message : 0x3b2f to 0x3b58 +const uint16 dsAddr_comeHereMsg = 0x3b2f; // "Come here, I've got something for you" +// Cant Catch Message : 0x3b59 to 0x3b6b +const uint16 dsAddr_cantCatchMsg = 0x3b59; // "I can't catch it!" +// Trapped Mouse Message : 0x3b6c to 0x3b82 +const uint16 dsAddr_trappedMouseMsg = 0x3b6c; // "The mouse is trapped!" +// Yikes Message : 0x3b83 to 0x3b8a +const uint16 dsAddr_yikesMsg = 0x3b83; // "Yikes!" +// Mouse Nerve Message : 0x3b8b to 0x3bab +const uint16 dsAddr_mouseNerveMsg = 0x3b8b; // "Boy, this mouse has some nerve!" +// Drawers Empty Message : 0x3bac to 0x3bd1 +const uint16 dsAddr_drawersEmptyMsg = 0x3bac; // "There's nothing else in the drawers" +// Rid Bush Message 0x3bd2 to 0x3bf5 +const uint16 dsAddr_ridBushMsg = 0x3bd2; // "I must get rid of this bush first" +// Mouse Gone Message : 0x3bf6 to 0x3c0a +const uint16 dsAddr_mouseGoneMsg = 0x3bf6; // "The mouse has gone!" +// Nonsense Message : 0x3c0b to 0x3c15 +const uint16 dsAddr_nonsenseMsg = 0x3c0b; // "Nonsense" +// Good Doggy Message : 0x3c16 to 0x3c30 +const uint16 dsAddr_goodDoggyMsg = 0x3c16; // "I understand. Good doggy" +// Here Boy Message : 0x3c31 to 0x3c3c +const uint16 dsAddr_hereBoyMsg = 0x3c31; // "Here, boy" +// Friends Now Message : 0x3c3d to 0x3c57 +const uint16 dsAddr_friendsNowMsg = 0x3c3d; // "I hope we're friends now" +// Not Think Right Place Message : 0x3c58 to 0x3c7f +const uint16 dsAddr_notThinkRightPlaceMsg = 0x3c58; // "I don't think this is the right place" // Cutscene Message A : 0x3c80 to 0x3c99 const uint16 dsAddr_cutsceneMsgA = 0x3c80; // "Hundred moments later" // Cutscene Message B : 0x3c9a to 0x3cbb const uint16 dsAddr_cutsceneMsgB = 0x3c9a; // "Another hundred moments later" +// Found Crude Oil Message : 0x3cbc to 0x3ce9 +const uint16 dsAddr_foundCrudeOilMsg = 0x3cbc; // "At least I found crude oil and I'll be rich" +// My Life Message : 0x3cea to 0x3cfa +const uint16 dsAddr_myLifeMsg = 0x3cea; // "That's my life" +// Confusion Message : 0x3cfb to 0x3d00 +const uint16 dsAddr_ConfusionMsg = 0x3cfb; // "!?&!" +// Grandpa Promise Message : 0x3d01 to 0x3d1f +const uint16 dsAddr_grandpaPromiseMsg = 0x3d01; // "But grandpa, you promised!" +// Oh Lets Go Message : 0x3d20 to 0x3d39 +const uint16 dsAddr_ohLetsGoMsg = 0x3d20; // "Oh all right. Let's go" +// Bye Message : 0x3d3a to 0x3d3f +const uint16 dsAddr_byeMsg = 0x3d3a; // "Bye." +// No Need Message : 0x3d40 to 0x3d58 +const uint16 dsAddr_noNeedMsg = 0x3d40; // "No need to do it again" +// Girl Talk Message : 0x3d59 to 0x3d85 +const uint16 dsAddr_girlTalkMsg = 0x3d59; // "I really don't know how to talk to girls" +// Dont Work Purpose Message : 0x3d86 to 0x3dae +const uint16 dsAddr_dontWorkPurposeMsg = 0x3d86; // "I usually don't work without a purpose" +// Nut Real Message : 0x3daf to 0x3dc5 +const uint16 dsAddr_nutRealMsg = 0x3daf; // "Only the nut is real" +// Hen Fly Message : 0x3dc6 to 0x3df3 +const uint16 dsAddr_henFlyMsg = 0x3dc6; // "I wonder if hens can fly. Come here, baby" +// First Test Fail Message : 0x3df4 to 0x3e07 +const uint16 dsAddr_firstTestFailMsg = 0x3df4; // "First test failed" +// Rid Frustations Message : 0x3e08 to 3e30 +const uint16 dsAddr_ridFrustationsMsg = 0x3e08; // "I'd already got rid of my frustrations" +// Road Nowhere Message : 0x3e31 to 0x3e4e +const uint16 dsAddr_roadNowhereMsg = 0x3e31; // "Nah. It's a road to nowhere" +// Open Boot Message 0x3e4f to 0x3e62 +const uint16 dsAddr_openBootMsg = 0x3e4f; // "It opens the boot" +// Shut Tight Message : 0x3e63 to 0x3e74 +const uint16 dsAddr_shutTightMsg = 0x3e63; // "It's shut tight" +// Boot Empty Message : 0x3e75 to 0x3e97 +const uint16 dsAddr_bootEmptyMsg = 0x3e75; // "There's nothing else in the boot" +// Clothes Dry Message : 0x3e98 to 0x3eb1 +const uint16 dsAddr_clothesDryMsg = 0x3e98; // "The clothes are dry now." +// Crow Kill Message : 0x3eb2 to 0x3ed5 +const uint16 dsAddr_crowKillMsg = 0x3eb2; // "I'm sure these crows will kill me" + +// Not Hungry Message : 0x402e to 0x4046 +const uint16 dsAddr_notHungryMsg = 0x402e; // "Thanks, I'm not hungry" + +// Echo Message : 0x408a to 0x4090 +const uint16 dsAddr_echoMsg = 0x408a; // "Echo!" +// Loud Echo Message : 0x4091 to 0x4097 +const uint16 dsAddr_loudEchoMsg = 0x4091; // "ECHO!" +// Who There Message : 0x4098 to 0x40a6 +const uint16 dsAddr_whoThereMsg = 0x4098; // "Who's there?!" +// Loud Who There Message : 0x40a7 to 0x40b5 +const uint16 dsAddr_loudWhoThereMsg = 0x40a7; // "WHO'S THERE?!" +// Dont Copy Message : 0x40b6 to 0x40cd +const uint16 dsAddr_dontCopyMsg = 0x40b6; // "DON'T COPY ME!" +// Loud Dont Copy Message : 0x40ce to 0x40e7 +const uint16 dsAddr_loudDontCopyMsg = 0x40ce; // "DON'T COPY ME!!!" +// Throw Rock Message : 0x40e8 to 0x410e +const uint16 dsAddr_throwRockMsg = 0x40e8; // "OR I WILL THROW A ROCK DOWN THERE!" +// Or I Will Message : 0x410f to 0x411c +const uint16 dsAddr_orIWillMsg = 0x410f; // "OR I WILL" +// Still There Message : 0x411d to 0x4132 +const uint16 dsAddr_stillThereMsg = 0x411d; // "Are you still there?" + +// Hmm Grass Message : 0x417e to 41b0 +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" + +// No Fruit Message : 0x4380 to 0x43ab +const uint16 dsAddr_noFruitMsg = 0x4380; // "There are no more interesting fruits here" + +// Mirror Mirror Message : 0x4412 to 0x444e +const uint16 dsAddr_mirrorMirrorMsg = 0x4412; // "Mirror, Mirror on the wall...." +// Think Too Long Message : 0x444f to 0x446a +const uint16 dsAddr_thinkTooLongMsg = 0x444f; // "Hey, don't think too long" +// Hint Male Message : 0x446b to 0x4491 +const uint16 dsAddr_HintMaleMsg = 0x446b; // "A hint: Someone in this room, a male" +// OK Wait Message : 0x4492 to 0x44a6 +const uint16 dsAddr_okWaitMsg = 0x4492; // "OK, take your time" +// Busy Thinking Message : 0x44a7 to 0x44d5 +const uint16 dsAddr_busyThinkingMsg = 0x44a7; // "I'd better not interrupt it's thought process" +// No Dentists Message : 0x44d6 to 0x450d +const uint16 dsAddr_noDentistsMsg = 0x44d6; // "I don't want to have anything in common with dentists" +// Too Heavy Message : 0x450e to 0x4531 +const uint16 dsAddr_tooHeavyMsg = 0x450e; // "It's too heavy. Not that I'm wimp" +// What Got Message : 0x4532 to 0x4554 +const uint16 dsAddr_whatGotMsg = 0x4532; // "Let's look what we've got here" +// Strawberry Jam Message : 0x4555 to 0x4567 +const uint16 dsAddr_strawberryJamMsg = 0x4555; // "Strawberry jam" +// Gooseberry Jam Message : 0x4568 to 0x457a +const uint16 dsAddr_gooseberryJamMsg = 0x4568; // "Gooseberry jam" +// Blackberry Jam Message : 0x457b to 0x458d +const uint16 dsAddr_blackberryJamMsg = 0x457b; // "Blackberry jam" +// Bilberry Jam Message : 0x458e to 0x459e +const uint16 dsAddr_bilberryJamMsg = 0x458e; // "Bilberry jam" +// Get Me Out Jam Message : 0x459f to 0x45b7 +const uint16 dsAddr_getMeOutJamMsg = 0x459f; // "Get me out of this jam!" +// Rosemary Jam Message : 0x45b8 to 0x45d9 +const uint16 dsAddr_rosemaryJamMsg = 0x45b8; // "Oh, and there is Rosemary jam" +// Know Rosemary Message : 0x45da to 0x4602 +const uint16 dsAddr_knowRosemaryMsg = 0x45da; // "I used to know someone called Rosemary" +// Umwanted Jams Message : 0x4603 to 0x461c +const uint16 dsAddr_unwantedJamsMsg = 0x4603; // "I don't want those jams" + +// Yeow Message : 0x463c to 0x4649 +const uint16 dsAddr_yeowMsg = 0x463c; // "YEEEOOOWWWW!" +// Yawn Message : 0x464a to 0x4651 +const uint16 dsAddr_yawnMsg = 0x464a; // "(yawn)" +// Laughter Message : 0x4652 to 0x465d +const uint16 dsAddr_laughterMsg = 0x4652; // "(laughter)" + +// 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" + +// Nut Rake Message : 0x4882 to 0x48be +const uint16 dsAddr_nutRakeMsg = 0x4882; // "It's pointless, the nut will slip between the rake's teeth" +// Bribe Message : 0x49ae to 0x49d0 +const uint16 dsAddr_BribeMsg = 0x49ae; // "Here, let's make your pocket fat." +// Bank Note Message : 0x49d1 to 0x4a28 +const uint16 dsAddr_bankNoteMsg = 0x49d1; // "It's a note from some bank..." +// Show Her Money Message : 0x4a29 to 0x4a5a +const uint16 dsAddr_showHerMoneyMsg = 0x4a29; // "If I just show her the money, she might take it" +// Hundred Bucks Message : 0x4a5b to 0x4a6e +const uint16 dsAddr_hundredBucksMsg = 0x4a5b; // "A hundred bucks!!!" +// Want Blood Message : 0x4a6f to 0x4a7d +const uint16 dsAddr_wantBloodMsg = 0x4a6f; // "I want Blood!" +// Dont Leave Mansion Message : 0x4a7e to 0x4aaf +const uint16 dsAddr_dontLeaveMansionMsg = 0x4a7e; // "I don't want to leave the mansion, I want blood!" +// Wimp Message : 0x4ab0 to 0x4acc +const uint16 dsAddr_WimpMsg = 0x4ab0; // "I'm a pathetic little wimp" +// Strange Drawer Message : 0x4acd to 0x4b0c +const uint16 dsAddr_strangeDrawerMsg = 0x4acd; // "Strange, but the drawer is stuck if the next drawer is open" +// Not Ordinary Drawers Message : 0x4b0d to 0x4b38 +const uint16 dsAddr_notOrdinaryDrawersMsg = 0x4b0d; // "Maybe these are not just ordinary drawers!" +// Drawer Open Message : 0x4b39 to 0x4b6b +const uint16 dsAddr_drawerOpenMsg = 0x4b39; // "I cannot open the drawer if the next one is open!" +// Blue Interior Message 0x4b6c to 0x4b86 +const uint16 dsAddr_blueInteriorMsg = 0x4b6c; // "It's got a blue interior" +// Red Interior Message : 0x4b87 to 0x4ba0 +const uint16 dsAddr_redInteriorMsg = 0x4b87; // "It's got a red interior" +// Grey Interior Message : 0x4ba1 to 0x4bbb +const uint16 dsAddr_greyInteriorMsg = 0x4ba1; // "It's got a grey interior" +// Green Interior Message : 0x4bbc to 0x4bd7 +const uint16 dsAddr_greenInteriorMsg = 0x4bbc; // "It's got a green interior" +// Brown Interior Message : 0x4bd8 to 0x4bf3 +const uint16 dsAddr_brownInteriorMsg = 0x4bd8; // "It's got a brown interior" +// Pink Interior Message : 0x4bf4 to 0x4c0e +const uint16 dsAddr_pinkInteriorMsg = 0x4bf4; // "It's got a pink interior" +// Dictaphone Inside Message : 0x4c0f to 0x4c31 +const uint16 dsAddr_dictaphoneInsideMsg = 0x4c0f; // "Wow! There's a dictaphone inside!" +// Found Polaroid Message : 0x4c32 to 0x4c60 +const uint16 dsAddr_foundPolaroidMsg = 0x4c32; // "There's a polaroid inside! I might need that" +// Book Held Message : 0x4c61 to 0x4c83 +const uint16 dsAddr_bookHeldMsg = 0x4c61; // "Something's got hold of the book!" +// Secret Compartment Message : 0x4c84 to 0x4c9f +const uint16 dsAddr_secretCompartmentMsg = 0x4c84; // "Wow! A secret compartment!" +// Dont Mess Message : 0x4ca0 to 0x4cc6 +const uint16 dsAddr_dontMessMsg = 0x4ca0; // "I don't need to mess with it anymore" +// Full Automatic Message : 0x4cc7 to 0x4cd8 +const uint16 dsAddr_fullAutomaticMsg = 0x4cc7; // "Fully Automatic" +// No More Sheets Message : 0x4cd9 to 0x4d01 +const uint16 dsAddr_noMoreSheetsMsg = 0x4cd9; // "Right now I don't need any more sheets" +// No Deprave Message : 0x4d02 to 0x4d29 +const uint16 dsAddr_noDepraveMsg = 0x4d02; // "Nah, I don't want to deprave the kids" +// No Read Again Message : 0x4d2a to 0x4d5a +const uint16 dsAddr_noReadAgainMsg = 0x4d2a; // "I don't want to read it again. I might like it." +// TV Off Message : 0x4d5b to 0x4d7f +const uint16 dsAddr_tvOffMsg = 0x4d5b; // "I just realised that the TV is off" +// Not Happen Message : 0x4d80 to 0x4d92 +const uint16 dsAddr_NotHappenMsg = 0x4d80; // "Nothing happened" +// Tape Started Message : 0x4d93 to 0x4da5 +const uint16 dsAddr_tapeStartedMsg = 0x4d93; // "The tape started!" +// Much Better Message : 0x4da6 to 0x4dba +const uint16 dsAddr_muchBetterMsg = 0x4da6; // "That's much better" +// No Sleep Message : 0x4dbb to 0x4dd2 +const uint16 dsAddr_noSleepMsg = 0x4dbb; // "I don't want to sleep" +// Just Cork Message : 0x4dd3 to 0x4de5 +const uint16 dsAddr_justCorkMsg = 0x4dd3; // "It's just a cork" +// Enough Photos Message : 0x4de6 to 0x4e04 +const uint16 dsAddr_enoughPhotosMsg = 0x4de6; // "I don't need any more photos" +// Record Scare Message : 0x4e05 to 0x4e31 +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" + +// 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" + +// 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 +const uint16 dsAddr_whatInsideMsg = 0x4f69; // "I was always curious what's inside these things" +// Rest Useless Message : 0x4f9b to 0x4fb0 +const uint16 dsAddr_restUselessMsg = 0x4f9b; // "The rest is useless" +// Two Batteries Message : 0x4fb1 to 0x4fca +const uint16 dsAddr_twoBatteriesMsg = 0x4fb1; // "Wow! Two 1.5V batteries!" +// One Taken Message : 0x4fcb to 0x4fe1 +const uint16 dsAddr_oneTakenMsg = 0x4fcb; // "This one's taken, OK?" +// Slight Mad Message : 0x4fe2 to 0x5009 +const uint16 dsAddr_slightMadMsg = 0x4fe2; // "It finally happened. I'm slightly mad" +// Paper Burnt Message : 0x500a to 0x502a +const uint16 dsAddr_paperBurntMsg = 0x500a; // "The paper burnt out completely!" +// Burn Baby Message : 0x502b to 0x503d +const uint16 dsAddr_burnBabyMsg = 0x502b; // "Burn, baby, burn!" +// Voila Message : 0x503e to 0x5045 +const uint16 dsAddr_voilaMsg = 0x503e; // "Voila" +// Too Hot Message : 0x5046 to 0x505d +const uint16 dsAddr_tooHotMsg = 0x5046; // "It's too hot to touch!" +// Frozen Shelf Message : 0x505e to 0x5081 +const uint16 dsAddr_frozenShelfMsg = 0x505e; // "It has frozen hard onto the shelf!" +// Yummy Message : 0x5082 to 0x5089 +const uint16 dsAddr_yummyMsg = 0x5082; // "Yummy" +// Dislike Veal Message : 0x508a to 0x50a5 +const uint16 dsAddr_dislikeVealMsg = 0x508a; // "I never liked veal anyway" +// No Reason Message : 0x50a6 to 0x50c2 +const uint16 dsAddr_noReasonMsg = 0x50a6; // "There's no reason to do it" +// Fooled Once Message : 0x50c3 to 0x50e0 +const uint16 dsAddr_fooledOnceMsg = 0x50c3; // "I'd already fooled him once" +// Mike Voice Test Message : 0x50e1 to 0x5100 +const uint16 dsAddr_mikeVoiceTestMsg = 0x50e1; // "Mike, activate the voice test" +// Not My Voice Message : 0x5101 to 0x5123 +const uint16 dsAddr_notMyVoiceMsg = 0x5101; // "I won't cheat Mike with MY voice" +// Singing Message : 0x5124 to 0x5137 +const uint16 dsAddr_singingMsg = 0x5124; // "siiiiinging!" +// Mike Scent Test Message : 0x5138 to 0x5160 +const uint16 dsAddr_mikeScentTestMsg = 0x5138; // "Mike, let's get on with the scent test" +// Mike View Test Message : 0x5161 to 0x517a +const uint16 dsAddr_mikeViewTestMsg = 0x5161; // "Mike, run the view test" // Cutscene Message #0 : 0x517b to 0x51a6 const uint16 dsAddr_cutsceneMsg0 = 0x517b; // "A secret diary of ..." +// Cant Hide Message : 0x51a7 to 0x51ba +const uint16 dsAddr_cantHideMsg = 0x51a7; // "I can't hide here!" +// John Outside Message : 0x51bb to 0x51e6 +const uint16 dsAddr_johnOutsideMsg = 0x51bb; // "There's John Noty outside! I can't go out!" +// Was Close Message : 0x51e7 to 0x51f7 +const uint16 dsAddr_wasCloseMsg = 0x51e7; // "That was close" +// Cork In Hole Message : 0x51f8 to 0x5217 +const uint16 dsAddr_corkInHoleMsg = 0x51f8; // "The cork is stuck in the hole" +// Fits Perfect Message : 0x5218 to 0x522b +const uint16 dsAddr_fitsPerfectMsg = 0x5218; // "It fits perfectly!" +// Enough Water Message : 0x522c to 0x524e +const uint16 dsAddr_enoughWaterMsg = 0x522c; // "There's enough water in the sink" +// No Hot Water Message : 0x524f to 0x5271 +const uint16 dsAddr_noHotWaterMsg = 0x524f; // "There's no hot water in the sink" +// Label Off Message : 0x5272 to 0x528a +const uint16 dsAddr_labelOffMsg = 0x5272; // "The label has come off!" +// Cork Too Small Message : 0x528b to 0x52a8 +const uint16 dsAddr_corkTooSmallMsg = 0x528b; // "The cork is a bit too small" +// Not Try Now Message : 0x52a9 to 0x52ca +const uint16 dsAddr_notTryNowMsg = 0x52a9; // "There's no need to try them now" +// No Salad Message : 0x52cb to 0x52f5 +const uint16 dsAddr_noSaladMsg = 0x52cb; // "I don't want to turn myself into a salad" +// Nah Message : 0x52f6 to 0x52fd +const uint16 dsAddr_nahMsg = 0x52f6; // "Nah" +// Vent First Message : 0x52fe to 0x5325 +const uint16 dsAddr_ventFirstMsg = 0x52fe; // "I'd better stop this ventilator first" +// Catch John First Message : 0x5326 to 0x5348 +const uint16 dsAddr_catchJohnFirstMsg = 0x5326; // "I'd better catch John Noty first" +// Only Chilli Message : 0x5349 to 0x5371 +const uint16 dsAddr_onlyChilliMsg = 0x5349; // "Good this red stuff is only a chilli" +// Water Hot Message : 0x5372 to 0x538c +const uint16 dsAddr_waterHotMsg = 0x5372; // "The water looks very hot" +// Sink Full Message : 0x538d to 0x53ac +const uint16 dsAddr_sinkFullMsg = 0x538d; // "The sink is full of hot water" +// No Sock Store Message : 0x53ad to 0x53dc +const uint16 dsAddr_noSockStoreMsg = 0x53ad; // "I don't have anything to store these socks in" +// Show Papers Message : 0x53dd to 0x53f1 +const uint16 dsAddr_showPapersMsg = 0x53dd; // "Here are my papers" +// Got Permission Message : 0x53f2 to 0x5410 +const uint16 dsAddr_gotPermissionMsg = 0x53f2; // "I already got the permission" +// Saving Fine Message : 0x5411 to 0x5462 +const uint16 dsAddr_SavingFineMsg = 0x5411; // "Saving is a very fine thing..." +// Love Captain Message : 0x5463 to 0x5474 +const uint16 dsAddr_loveCaptainMsg = 0x5463; // "I love captain" +// Soccer Rulz Message : 0x5475 to 0x5483 +const uint16 dsAddr_soccerRulzMsg = 0x5475; // "Soccer rulz" +// Tree Cut Message : 0x5484 to 0x54c3 +const uint16 dsAddr_treeCutMsg = 0x5484; // "Don't cut the trees..." +// Visa Accepted Message : 0x54c4 to 0x54d4 +const uint16 dsAddr_visaAcceptedMsg = 0x54c4; // "VISA Accepted" +// Other Graffiti Message : 0x54d5 to 0x54f6 +const uint16 dsAddr_otherGraffitiMsg = 0x54d5; // "The rest of graffiti is obscene" +// First Trial Message : 0x54f7 to 0x5510 +const uint16 dsAddr_firstTrialMsg = 0x54f7; // "Sir, I'm Mark. A rookie" +// Locked Message : 0x5511 to 0x551e +const uint16 dsAddr_lockedMsg = 0x5511; // "It's Locked!" +// Thanks Message : 0x551f to 0x5527 +const uint16 dsAddr_ThanksMsg = 0x551f; // "Thanks." +// Unknown Usage Message : 0x5528 to 0x555c +const uint16 dsAddr_unkUsageMsg = 0x5528; // "I don't have any idea what to do with it right now" +// Idea Message : 0x555d to 0x5576 +const uint16 dsAddr_ideaMsg = 0x555d; // "That gives me an idea" +// Check Works Message : 0x5577 to 0x5599 +const uint16 dsAddr_checkWorksMsg = 0x5577; // "Now I got to check if it works" +// Time To Call Message : 0x559a to 0x55bf +const uint16 dsAddr_timeToCallMsg = 0x559a; // "I think it is time to call captain" +// Meal Finished Message : 0x55c0 to 0x55da +const uint16 dsAddr_mealFinishedMsg = 0x55c0; // "Hey! I finished my meal." +// Bowl Welded Message : 0x55db to 0x55fe +const uint16 dsAddr_bowlWeldedMsg = 0x55db; // "Wow. He got welded to the bowl" +// Gotcha Message : 0x55ff to 0x5607 +const uint16 dsAddr_gotchaMsg = 0x55ff; // "Gotcha" +// No Pocket Message : 0x5608 to 0x5631 +const uint16 dsAddr_noPocketMsg = 0x5608; // "I don't want to touch his pockets again." +// Does Not Work Message : 0x5632 to 0x5645 +const uint16 dsAddr_doesNotWorkMsg = 0x5632; // "That doesn't work" +// Message : 0x5646 to 0x5655 +const uint16 dsAddr_fnMsg1 = 0x5646; // "Piece of cake" +// Message : 0x5656 to 0x5679 +const uint16 dsAddr_fnMsg2 = 0x5656; // "And how am I supposed to get back?" +// Message : 0x567a to 0x5681 +const uint16 dsAddr_fnMsg3 = 0x567a; // "Great" +// Message : 0x5682 to 0x5695 +const uint16 dsAddr_fnMsg4 = 0x5682; // "Oh, yeah, right" +// Pull Object Message #1 : 0x5696 to 0x56ab +const uint16 dsAddr_pullObjMsg1 = 0x5696; // "I can't pull it out" + +// Fence Blocks Message : 0x56da to 0x56f6 +const uint16 dsAddr_fenceBlocksMsg = 0x56da; // "The fence blocks the way" +// Pull Object Message #2 : 0x570f to 0x5721 +const uint16 dsAddr_pullObjMsg2 = 0x570f; // "I can't reach it" +// Hello Question Message : 0x5722 to 0x5729 +const uint16 dsAddr_helloQMsg = 0x5722; // "Hello?" +// Totally Addicted Message : 0x572a to 0x5741 +const uint16 dsAddr_totallyAddictedMsg = 0x572a; // "He's totally addicted" +// What About Message : 0x5742 to 0x5756 +const uint16 dsAddr_whatAboutMsg = 0x5742; // "What about a new" +// Hot Off Message : 0x5757 to 0x576f +const uint16 dsAddr_hotOffMsg = 0x5757; // "hot off the press" +// Full Color Message : 0x5770 to 0x5781 +const uint16 dsAddr_fullColorMsg = 0x5770; // "full-color" +// Special Edition Message : 0x5782 to 0x5798 +const uint16 dsAddr_specialEdMsg = 0x5782; // "special edition" +// Soldier News Message : 0x5799 to 0x57b1 +const uint16 dsAddr_soldierNewsMsg = 0x5799; // "of Soldier News?!" +// Pole Climb Done Message : 0x57b2 to 0x57bf +const uint16 dsAddr_poleClimbDoneMsg = 0x57b2; // "Never Again!" +// Vac Message : 0x57c0 to 0x57de +const uint16 dsAddr_vacMsg = 0x57c0; // "What am I? A vacuum cleaner?!" // Cutscene Message #1 : 0x57df to 0x5809 const uint16 dsAddr_cutsceneMsg1 = 0x57df; // "sixty seven rude words later" // Cutscene Message #2 : 0x580a to 0x5826 const uint16 dsAddr_cutsceneMsg2 = 0x580a; // "Meanwhile in the mansion" +// Now Open Message : 0x5827 to 0x5836 +const uint16 dsAddr_nowOpenMsg = 0x5827; // "Now it's open" +// Cmon Baby Message : 0x5837 to 0x5854 +const uint16 dsAddr_cmonBabyMsg = 0x5837; // "C'mon baby, it's all yours!" +// Talk Not Now Message : 0x5855 to 0x5882 +const uint16 dsAddr_talkNotNowMsg = 0x5855; // "I've got no reason to talk to him right now." +// Yeah Right Message : 0x5883 to 0x5893 +const uint16 dsAddr_yeahRightMsg = 0x5883; // "Yeah right!" +// Barman Too Close Message : 0x5894 to 0x58af +const uint16 dsAddr_barmanTooCloseMsg = 0x5894; // "The barman is too close" +// Yuck Message : 0x58b0 to 0x58b6 +const uint16 dsAddr_yuckMsg = 0x58b0; // "Yuck!" + +// Food Alive Message : 0x5905 to 0x592e +const uint16 dsAddr_foodAliveMsg = 0x5905; // "No, thanks. This food seems still alive" +// Door Closed Message : 0x592f to 0x5954 +const uint16 dsAddr_doorClosedMsg = 0x592f; // "The door is closed. What a surprise." +// Empty Message : 0x5955 to 0x5961 +const uint16 dsAddr_emptyMsg = 0x5955; // "It's Empty" + +// Never Learnt Message : 0x5c60 to 0x5c81 +const uint16 dsAddr_neverLearntMsg = 0x5c60; // "I never learnt to how use one" + +// Cognac Message : 0x5cac to 0x5cda +const uint16 dsAddr_cognacMsg = 0x5cac; // "Pfui! The cognac really didn't do any good" + +// Hey What's The Matter Message : 0x5da8 to 0x5dc1 +const uint16 dsAddr_HeyWtmQMsg = 0x5da8; // "Hey! What's the matter?!" + +// 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" + +// First Business Message : 0x5e25 to 0x5e53 +const uint16 dsAddr_firstBusinessMsg = 0x5e25; // "First I've got some business to take care of" // Save State Region : 0x6478 to 0xdbf1 const uint16 dsAddr_saveState = 0x6478; @@ -77,6 +562,9 @@ const uint16 dsAddr_egoY = 0x64b1; // 2 bytes // Current Scene Id : 0xb4f3 const uint16 dsAddr_currentScene = 0xb4f3; // 1 byte +// Object Combine Error Message : 0xc3e2 to 0xc41e +const uint16 dsAddr_objCombineErrorMsg = 0xc3e2; // "Using these two objects ..." + // Current Music Id Playing : 0xdb90 const uint16 dsAddr_currentMusic = 0xdb90; // 1 byte // Counter for Mansion Intrusion Attempts : 0xdbea diff --git a/engines/teenagent/teenagent.cpp b/engines/teenagent/teenagent.cpp index 62c972fb2b..112f84cbd1 100644 --- a/engines/teenagent/teenagent.cpp +++ b/engines/teenagent/teenagent.cpp @@ -114,7 +114,7 @@ bool TeenAgentEngine::trySelectedObject() { // error inventory->resetSelectedObject(); - displayMessage(0x3457); + displayMessage(dsAddr_objErrorMsg); // "That's no good" return true; } |