mirror of
https://github.com/libretro/scummvm.git
synced 2025-05-13 09:36:21 +00:00
TEENAGENT: Migrate remaining callback flag variables to symbols.
This commit is contained in:
parent
ed86d58bda
commit
520234c200
@ -124,7 +124,7 @@ void TeenAgentEngine::fnPoleClimbFail() {
|
||||
}
|
||||
|
||||
void TeenAgentEngine::fnGotAnchor() {
|
||||
SET_FLAG(0x0000, 0);
|
||||
SET_FLAG(dsAddr_timedCallbackState, 0);
|
||||
setTimerCallback(0, 0);
|
||||
scene->getActorAnimation()->free();
|
||||
playSound(64, 7);
|
||||
@ -148,10 +148,10 @@ void TeenAgentEngine::fnGetOutOfLake() {
|
||||
}
|
||||
|
||||
void TeenAgentEngine::fnGuardDrinking() {
|
||||
SET_FLAG(0x0000, 0);
|
||||
SET_FLAG(dsAddr_timedCallbackState, 0);
|
||||
setTimerCallback(0, 0);
|
||||
scene->getAnimation(0)->free();
|
||||
SET_FLAG(0xdb9c, 1);
|
||||
SET_FLAG(dsAddr_scaredGuardAlreadyFlag, 1);
|
||||
|
||||
displayAsyncMessage(dsAddr_BooMsg, 300, 130, 1, 5); // "Booo!"
|
||||
setOns(0, 16);
|
||||
@ -161,8 +161,8 @@ void TeenAgentEngine::fnGuardDrinking() {
|
||||
playAnimation(545, 0);
|
||||
|
||||
dialog->show(5, scene, 0, 546, 0xd1, 0xd9, 0, 1);
|
||||
SET_FLAG(0xda96, 1);
|
||||
SET_FLAG(0xda97, 0);
|
||||
SET_FLAG(dsAddr_spokenWithMansionGuardFlag, 1);
|
||||
SET_FLAG(dsAddr_haveNotSpokenWithMansionGuardFlag, 0);
|
||||
}
|
||||
|
||||
void TeenAgentEngine::fnEgoDefaultPosition() {
|
||||
@ -188,7 +188,7 @@ void TeenAgentEngine::fnEnterCave() {
|
||||
}
|
||||
|
||||
void TeenAgentEngine::fnEgoScaredBySpider() {
|
||||
if (CHECK_FLAG(0xdbae, 1)) {
|
||||
if (CHECK_FLAG(dsAddr_egoAlreadyScaredBySpiderFlag, 1)) {
|
||||
fnMoveToLadderAndLeaveCellar();
|
||||
dialog->showMark(75, scene);
|
||||
} else {
|
||||
@ -196,6 +196,7 @@ void TeenAgentEngine::fnEgoScaredBySpider() {
|
||||
fnMoveToLadderAndLeaveCellar();
|
||||
wait(100);
|
||||
dialog->showMark(74, scene);
|
||||
// FIXME : Missing code here? SET_FLAG(dsAddr_egoAlreadyScaredBySpiderFlag, 1); ?
|
||||
}
|
||||
}
|
||||
|
||||
@ -219,22 +220,22 @@ void TeenAgentEngine::fnLeaveCellar() {
|
||||
}
|
||||
|
||||
void TeenAgentEngine::fnPutRockInHole() {
|
||||
if (CHECK_FLAG(0x0000, 0)) {
|
||||
if (CHECK_FLAG(dsAddr_timedCallbackState, 0)) {
|
||||
playSound(5, 2);
|
||||
playSound(15, 12);
|
||||
playActorAnimation(638);
|
||||
inventory->remove(invItemMouse);
|
||||
setTimerCallback(csAddr_mouseOutOfHoleTimeout, 100);
|
||||
SET_FLAG(0x0000, 1);
|
||||
} else if (CHECK_FLAG(0x0000, 1)) {
|
||||
SET_FLAG(dsAddr_timedCallbackState, 1);
|
||||
} else if (CHECK_FLAG(dsAddr_timedCallbackState, 1)) {
|
||||
playSound(5, 2);
|
||||
playSound(52, 13);
|
||||
playActorAnimation(648);
|
||||
setOns(1, 46);
|
||||
inventory->remove(invItemRock);
|
||||
setTimerCallback(csAddr_mouseOutOfHoleTimeout, 100);
|
||||
SET_FLAG(0x0000, 2);
|
||||
} else if (CHECK_FLAG(0x0000, 2)) {
|
||||
SET_FLAG(dsAddr_timedCallbackState, 2);
|
||||
} else if (CHECK_FLAG(dsAddr_timedCallbackState, 2)) {
|
||||
playActorAnimation(649);
|
||||
setOns(1, 47);
|
||||
wait(300);
|
||||
@ -245,7 +246,7 @@ void TeenAgentEngine::fnPutRockInHole() {
|
||||
enableObject(6);
|
||||
disableObject(5);
|
||||
SET_FLAG(dsAddr_mouseGotGoldNuggetFlag, 1);
|
||||
SET_FLAG(0x0000, 0);
|
||||
SET_FLAG(dsAddr_timedCallbackState, 0);
|
||||
setTimerCallback(0, 0);
|
||||
}
|
||||
}
|
||||
@ -1004,7 +1005,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {
|
||||
break;
|
||||
|
||||
case 0x4f14: // use the hollow
|
||||
if (CHECK_FLAG(0xdba1, 1))
|
||||
if (CHECK_FLAG(dsAddr_mansionTreeHollowEmptyFlag, 1))
|
||||
displayMessage(dsAddr_totalEmptyMsg); // "I can see it's totally empty"
|
||||
else
|
||||
displayMessage(dsAddr_noHandsMsg); // "I'd better not put my hands in there..."
|
||||
@ -1156,7 +1157,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {
|
||||
break;
|
||||
|
||||
case 0x4cf1: // talking with mansion guard
|
||||
SET_FLAG(0xda96, 1);
|
||||
SET_FLAG(dsAddr_spokenWithMansionGuardFlag, 1);
|
||||
if (dialog->pop(scene, 0xdaa6, 0, 529, 0xd1, 0xd9, 0, 1) == 0x1b4) {
|
||||
Common::Point p = scene->getPosition();
|
||||
moveTo(189, 159, 0);
|
||||
@ -1236,8 +1237,8 @@ bool TeenAgentEngine::processCallback(uint16 addr) {
|
||||
break;
|
||||
|
||||
case 0x4f32: // use tree near the mansion
|
||||
if (CHECK_FLAG(0xdba1, 1)) {
|
||||
if (CHECK_FLAG(0xdba2, 1)) {
|
||||
if (CHECK_FLAG(dsAddr_mansionTreeHollowEmptyFlag, 1)) {
|
||||
if (CHECK_FLAG(dsAddr_climbedMansionTreeAlreadyFlag, 1)) {
|
||||
displayMessage(dsAddr_noChanceMsg); // "I won't take my chances a second time"
|
||||
} else {
|
||||
playSound(26, 13);
|
||||
@ -1254,7 +1255,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {
|
||||
playActorAnimation(591);
|
||||
wait(50);
|
||||
displayMessage(dsAddr_oneSmallStepMsg); // "One small step for man, one big pain in the head"
|
||||
SET_FLAG(0xdba2, 1);
|
||||
SET_FLAG(dsAddr_climbedMansionTreeAlreadyFlag, 1);
|
||||
fnMansionIntrusionAttempt();
|
||||
}
|
||||
} else {
|
||||
@ -1271,10 +1272,10 @@ bool TeenAgentEngine::processCallback(uint16 addr) {
|
||||
break;
|
||||
|
||||
case 0x500d: // picking up wild plant
|
||||
if (CHECK_FLAG(0xdb9e, 1)) {
|
||||
if (CHECK_FLAG(dsAddr_gotPotatoAlreadyFlag, 1)) {
|
||||
displayMessage(dsAddr_noPotatoMsg); // "There are no more potatoes"
|
||||
} else {
|
||||
SET_FLAG(0xdb9e, 1);
|
||||
SET_FLAG(dsAddr_gotPotatoAlreadyFlag, 1);
|
||||
setOns(2, 0);
|
||||
playSound(21, 9);
|
||||
playSound(34, 21);
|
||||
@ -1309,16 +1310,16 @@ bool TeenAgentEngine::processCallback(uint16 addr) {
|
||||
|
||||
case 0x5104:
|
||||
loadScene(11, 319, 198, 4);
|
||||
if (!CHECK_FLAG(0xdb9c, 1)) {
|
||||
if (!CHECK_FLAG(dsAddr_scaredGuardAlreadyFlag, 1)) {
|
||||
// guard is drinking
|
||||
SET_FLAG(0x0000, 3);
|
||||
SET_FLAG(dsAddr_timedCallbackState, 3);
|
||||
setTimerCallback(csAddr_guardScareTimeout, 40);
|
||||
playAnimation(544, 0, true, true); // ignore busy flag for this animation
|
||||
}
|
||||
break;
|
||||
|
||||
case csAddr_guardScareTimeout: // too late to scare guard, resetting
|
||||
SET_FLAG(0x0000, 0);
|
||||
SET_FLAG(dsAddr_timedCallbackState, 0);
|
||||
break;
|
||||
|
||||
case csAddr_guardDrinking:
|
||||
@ -1347,7 +1348,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {
|
||||
break;
|
||||
|
||||
case 0x5217:
|
||||
if (CHECK_FLAG(0xdb9f, 1))
|
||||
if (CHECK_FLAG(dsAddr_beesGoneFlag, 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!"
|
||||
@ -1362,9 +1363,9 @@ bool TeenAgentEngine::processCallback(uint16 addr) {
|
||||
break;
|
||||
|
||||
case 0x5237:
|
||||
if (!CHECK_FLAG(0xdb9f, 1)) {
|
||||
if (!CHECK_FLAG(dsAddr_beesGoneFlag, 1)) {
|
||||
displayMessage(dsAddr_avoidBeesMsg); // "I'm going to stay at least five meters away from these bees!"
|
||||
} else if (CHECK_FLAG(0xdba0, 1))
|
||||
} else if (CHECK_FLAG(dsAddr_mansionTunnelDoneFlag, 1))
|
||||
displayMessage(dsAddr_roadNowhereMsg); // "Nah. It's a road to nowhere"
|
||||
else {
|
||||
moveTo(173, 138, 2);
|
||||
@ -1383,7 +1384,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {
|
||||
playActorAnimation(586);
|
||||
moveTo(138, 163, 3);
|
||||
displayMessage(dsAddr_lifeBrutalMsg); // "Life is really brutal"
|
||||
SET_FLAG(0xdba0, 1);
|
||||
SET_FLAG(dsAddr_mansionTunnelDoneFlag, 1);
|
||||
fnMansionIntrusionAttempt();
|
||||
}
|
||||
break;
|
||||
@ -1439,7 +1440,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {
|
||||
wait(50);
|
||||
displayMessage(dsAddr_ThanksMsg); // "Thanks."
|
||||
disableObject(5);
|
||||
SET_FLAG(0xdbb0, 1);
|
||||
SET_FLAG(dsAddr_squirrelNutState, 1);
|
||||
} else if (d != 0x2c9b) {
|
||||
waitLanAnimationFrame(1, 0x23);
|
||||
playSound(52, 9);
|
||||
@ -1451,7 +1452,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {
|
||||
break;
|
||||
|
||||
case 0x5663:
|
||||
if (CHECK_FLAG(0xdbb0, 1))
|
||||
if (CHECK_FLAG(dsAddr_squirrelNutState, 1))
|
||||
displayMessage(dsAddr_findNutMsg); // "I won't find the nut just like that. The grass is too dense"
|
||||
else
|
||||
displayMessage(dsAddr_hmmGrassMsg); // "Hmmm. Grass..."
|
||||
@ -1524,12 +1525,12 @@ bool TeenAgentEngine::processCallback(uint16 addr) {
|
||||
break;
|
||||
|
||||
case 0x5793:
|
||||
if (!CHECK_FLAG(0xdb94, 1)) {
|
||||
if (!CHECK_FLAG(dsAddr_alreadyPulledTrunkReleaseLeverFlag, 1)) {
|
||||
displayMessage(dsAddr_shutTightMsg); // "It's shut tight"
|
||||
} else if (CHECK_FLAG(0xdb95, 1)) {
|
||||
} else if (CHECK_FLAG(dsAddr_carTrunkEmptyFlag, 1)) {
|
||||
displayMessage(dsAddr_bootEmptyMsg); // "There's nothing else in the boot"
|
||||
} else {
|
||||
SET_FLAG(0xdb95, 1);
|
||||
SET_FLAG(dsAddr_carTrunkEmptyFlag, 1);
|
||||
moveTo(188, 179, 0);
|
||||
playSound(7, 16);
|
||||
playActorAnimation(519);
|
||||
@ -1621,8 +1622,8 @@ bool TeenAgentEngine::processCallback(uint16 addr) {
|
||||
break;
|
||||
|
||||
case 0x5d88:
|
||||
if (CHECK_FLAG(0xdba5, 1)) { // dry laundry
|
||||
SET_FLAG(0xdba5, 2);
|
||||
if (CHECK_FLAG(dsAddr_laundryState, 1)) { // dry laundry
|
||||
SET_FLAG(dsAddr_laundryState, 2);
|
||||
dialog->show(46, scene, 0, 523, 0xd1, 0xe5, 0, 1);
|
||||
//waitLanAnimationFrame(1, 1); // another long waiting
|
||||
playAnimation(604, 0);
|
||||
@ -1670,7 +1671,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {
|
||||
break;
|
||||
|
||||
case 0x5ff3: // get duster
|
||||
if (CHECK_FLAG(0xdb9a, 0)) {
|
||||
if (CHECK_FLAG(dsAddr_givenFlowerToOldLadyAlreadyFlag, 0)) {
|
||||
dialog->pop(scene, 0xdaf6, 0, 523, 0xd1, 0xe5, 0, 1);
|
||||
} else {
|
||||
dialog->show(43, scene, 0, 523, 0xd1, 0xe5, 0, 1);
|
||||
@ -1777,7 +1778,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {
|
||||
break;
|
||||
|
||||
case 0x6507:
|
||||
if (CHECK_FLAG(0xdb96, 1))
|
||||
if (CHECK_FLAG(dsAddr_birdsGoneFromScarecrowFlag, 1))
|
||||
rejectMessage();
|
||||
else
|
||||
displayMessage(dsAddr_birdAttackMsg); // "Hey You! Wake up! Bird attack!"
|
||||
@ -1809,7 +1810,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {
|
||||
moveTo(scene->getPosition().x - 1, 139, 1, true);
|
||||
displayMessage(dsAddr_yikesMsg); // "Yikes!"
|
||||
SET_FLAG(dsAddr_mouseHoleState, 2);
|
||||
SET_FLAG(0xdba8, 0);
|
||||
SET_FLAG(dsAddr_HankerchiefInMouseholeFlag, 0);
|
||||
} else
|
||||
displayMessage(dsAddr_noSearchWarrantMsg); // "I don't have a search-warrant"
|
||||
break;
|
||||
@ -1999,7 +2000,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {
|
||||
break;
|
||||
|
||||
case 0x78ce:
|
||||
if (!CHECK_FLAG(0xdba1, 1))
|
||||
if (!CHECK_FLAG(dsAddr_mansionTreeHollowEmptyFlag, 1))
|
||||
displayMessage(dsAddr_monstersMsg); // "Who knows what monsters live in there"
|
||||
else
|
||||
retVal = false;
|
||||
@ -2007,9 +2008,9 @@ bool TeenAgentEngine::processCallback(uint16 addr) {
|
||||
|
||||
case 0x792b: // left click on ann
|
||||
moveTo(245, 198, 1);
|
||||
if (!CHECK_FLAG(0xdbaf, 1)) {
|
||||
if (!CHECK_FLAG(dsAddr_alreadySaidAnneBeautifulFlag, 1)) {
|
||||
dialog->showMono(50, scene, 0, 0xd1, 0);
|
||||
SET_FLAG(0xdbaf, 1);
|
||||
SET_FLAG(dsAddr_alreadySaidAnneBeautifulFlag, 1);
|
||||
} else
|
||||
retVal = false;
|
||||
break;
|
||||
@ -2277,10 +2278,10 @@ bool TeenAgentEngine::processCallback(uint16 addr) {
|
||||
// Shore
|
||||
|
||||
case 0x5348:
|
||||
if (CHECK_FLAG(0xdb99, 1)) { // got broken paddle from boat
|
||||
if (CHECK_FLAG(dsAddr_alreadyGotBrokenPaddleFlag, 1)) { // got broken paddle from boat
|
||||
displayMessage(dsAddr_boatEmptyMsg); // "There's nothing else in the boat"
|
||||
} else {
|
||||
SET_FLAG(0xdb99, 1);
|
||||
SET_FLAG(dsAddr_alreadyGotBrokenPaddleFlag, 1);
|
||||
playSound(57, 6);
|
||||
playActorAnimation(536);
|
||||
dialog->showMono(77, scene, 0, 0xd1, 0);
|
||||
@ -2317,8 +2318,8 @@ bool TeenAgentEngine::processCallback(uint16 addr) {
|
||||
byte *scene_15_ons = scene->getOns(15); // patch ons for the scene 15
|
||||
scene_15_ons[0] = 0;
|
||||
|
||||
byte f = GET_FLAG(0xdb98) + 1;
|
||||
SET_FLAG(0xdb98, f);
|
||||
byte f = GET_FLAG(dsAddr_flowerIsleState) + 1;
|
||||
SET_FLAG(dsAddr_flowerIsleState, f);
|
||||
if (f >= 2) {
|
||||
// disable object boat for scene 15!!
|
||||
disableObject(1, 15);
|
||||
@ -2336,8 +2337,8 @@ bool TeenAgentEngine::processCallback(uint16 addr) {
|
||||
disableObject(2);
|
||||
setOns(1, 10);
|
||||
setOns(1, 0, 15);
|
||||
byte f = GET_FLAG(0xdb98) + 1;
|
||||
SET_FLAG(0xdb98, f);
|
||||
byte f = GET_FLAG(dsAddr_flowerIsleState) + 1;
|
||||
SET_FLAG(dsAddr_flowerIsleState, f);
|
||||
if (f >= 2) {
|
||||
// disable object boat for scene 15!!
|
||||
disableObject(1, 15);
|
||||
@ -2407,7 +2408,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {
|
||||
|
||||
case 0x58a2:
|
||||
dialog->pop(scene, 0xdaba, 0, 502, 0xd1, 0xe5, 0, 1);
|
||||
scene->getObject(13)->setName((const char *)res->dseg.ptr(0x92e5));
|
||||
scene->getObject(13)->setName((const char *)res->dseg.ptr(dsAddr_scnObjNameSonny));
|
||||
break;
|
||||
|
||||
case 0x58b7: // Get comb from car
|
||||
@ -2420,7 +2421,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {
|
||||
break;
|
||||
|
||||
case 0x58df: // Pull trunk lever in car
|
||||
SET_FLAG(0xdb94, 1);
|
||||
SET_FLAG(dsAddr_alreadyPulledTrunkReleaseLeverFlag, 1);
|
||||
playSound(6, 1);
|
||||
setOns(3, 6);
|
||||
playActorAnimation(515);
|
||||
@ -2454,17 +2455,17 @@ bool TeenAgentEngine::processCallback(uint16 addr) {
|
||||
playAnimation(656, 0);
|
||||
wait(50);
|
||||
displayMessage(dsAddr_goodDoggyMsg); // "I understand. Good doggy"
|
||||
} else if (!CHECK_FLAG(0xdba3, 1)) { // Dog has bone
|
||||
} else if (!CHECK_FLAG(dsAddr_cellarDoorOpenFlag, 1)) { // Dog has bone
|
||||
playSound(28, 3);
|
||||
playActorAnimation(596);
|
||||
setOns(1, 30);
|
||||
SET_FLAG(0xdba3, 1);
|
||||
SET_FLAG(dsAddr_cellarDoorOpenFlag, 1);
|
||||
enableObject(8);
|
||||
} else {
|
||||
setOns(1, 0);
|
||||
playSound(4, 4);
|
||||
playActorAnimation(597);
|
||||
SET_FLAG(0xdba3, 0);
|
||||
SET_FLAG(dsAddr_cellarDoorOpenFlag, 0);
|
||||
disableObject(8);
|
||||
displayMessage(dsAddr_wallShakenMsg); // "Wow! This must have shaken all the nearby walls!"
|
||||
setOns(1, 32, 24);
|
||||
@ -2506,10 +2507,10 @@ bool TeenAgentEngine::processCallback(uint16 addr) {
|
||||
break;
|
||||
|
||||
case 0x5c0d: // grandpa - drawers
|
||||
if (CHECK_FLAG(0xdba7, 1)) {
|
||||
if (CHECK_FLAG(dsAddr_SearchedGrandpaDrawersFlag, 1)) {
|
||||
displayMessage(dsAddr_drawersEmptyMsg); // "There's nothing else in the drawers"
|
||||
} else {
|
||||
if (!CHECK_FLAG(0xdb92, 1))
|
||||
if (!CHECK_FLAG(dsAddr_alreadyAdjustedHoopPoleFlag, 1))
|
||||
dialog->show(24, scene, 0, 522, 0xd1, 0xd8, 0, 1);
|
||||
|
||||
playSound(66, 5);
|
||||
@ -2517,12 +2518,12 @@ bool TeenAgentEngine::processCallback(uint16 addr) {
|
||||
playSound(5, 23);
|
||||
playActorAnimation(631);
|
||||
inventory->add(invItemHandkerchief);
|
||||
SET_FLAG(0xdba7, 1);
|
||||
SET_FLAG(dsAddr_SearchedGrandpaDrawersFlag, 1);
|
||||
}
|
||||
break;
|
||||
|
||||
case 0x5c84:
|
||||
if (CHECK_FLAG(0xdb92, 1)) {
|
||||
if (CHECK_FLAG(dsAddr_alreadyAdjustedHoopPoleFlag, 1)) {
|
||||
inventory->add(invItemShotgun);
|
||||
disableObject(7);
|
||||
playSound(32, 7);
|
||||
@ -2540,7 +2541,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {
|
||||
break;
|
||||
|
||||
case 0x5d24: // getting the fan
|
||||
if (CHECK_FLAG(0xdb92, 1)) {
|
||||
if (CHECK_FLAG(dsAddr_alreadyAdjustedHoopPoleFlag, 1)) {
|
||||
setLan(2, 0);
|
||||
playSound(32, 7);
|
||||
playActorAnimation(508);
|
||||
@ -2552,13 +2553,13 @@ bool TeenAgentEngine::processCallback(uint16 addr) {
|
||||
break;
|
||||
|
||||
case 0x5e4d: // right click on ann
|
||||
if (!CHECK_FLAG(0xdb97, 0)) {
|
||||
if (!CHECK_FLAG(dsAddr_alreadySpokenToAnneFlag, 0)) {
|
||||
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);
|
||||
//waitLanAnimationFrame(2, 1); // too long, about 200 frames! seems to be present in original game (sic)
|
||||
SET_FLAG(0xdb97, 1);
|
||||
SET_FLAG(dsAddr_alreadySpokenToAnneFlag, 1);
|
||||
for (byte i = 10; i <= 20; i += 2)
|
||||
playSound(13, i);
|
||||
playAnimation(528, 1);
|
||||
@ -2579,7 +2580,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {
|
||||
playActorAnimation(527);
|
||||
wait(50);
|
||||
dialog->show(52, scene, 0, 524, 0xd1, 0xe5, 0, 2);
|
||||
scene->getObject(2)->setName((const char *)res->dseg.ptr(0x9820));
|
||||
scene->getObject(2)->setName((const char *)res->dseg.ptr(dsAddr_scnObjNameAnne));
|
||||
}
|
||||
break;
|
||||
|
||||
@ -2685,7 +2686,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {
|
||||
break;
|
||||
|
||||
case 0x6480: // dive mask
|
||||
if (CHECK_FLAG(0xdb96, 1)) {
|
||||
if (CHECK_FLAG(dsAddr_birdsGoneFromScarecrowFlag, 1)) {
|
||||
playSound(56, 7);
|
||||
playSound(5, 15);
|
||||
playActorAnimation(613);
|
||||
@ -2698,7 +2699,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {
|
||||
break;
|
||||
|
||||
case 0x64c4: // flippers
|
||||
if (CHECK_FLAG(0xdb96, 1)) {
|
||||
if (CHECK_FLAG(dsAddr_birdsGoneFromScarecrowFlag, 1)) {
|
||||
setOns(2, 35);
|
||||
playSound(63, 8);
|
||||
playSound(24, 10);
|
||||
@ -2710,7 +2711,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {
|
||||
break;
|
||||
|
||||
case 0x7907: // Describe car lever
|
||||
if (CHECK_FLAG(0xdb94, 1)) { // Already pulled lever?
|
||||
if (CHECK_FLAG(dsAddr_alreadyPulledTrunkReleaseLeverFlag, 1)) { // Already pulled lever?
|
||||
displayMessage(dsAddr_openBootMsg); // "It opens the boot"
|
||||
} else
|
||||
retVal = false;
|
||||
@ -2733,7 +2734,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {
|
||||
break;
|
||||
|
||||
case 0x6351:
|
||||
if (CHECK_FLAG(0xdaca, 1)) { // cave bush is cut down
|
||||
if (CHECK_FLAG(dsAddr_caveThornsCutDownFlag, 1)) { // cave bush is cut down
|
||||
playMusic(8);
|
||||
loadScene(26, 319, 169, 4);
|
||||
} else
|
||||
@ -2749,10 +2750,10 @@ bool TeenAgentEngine::processCallback(uint16 addr) {
|
||||
break;
|
||||
|
||||
case 0x6411: // Kick hen
|
||||
if (CHECK_FLAG(0xdb93, 1)) { // already kicked hen
|
||||
if (CHECK_FLAG(dsAddr_alreadyKickedHenFlag, 1)) { // already kicked hen
|
||||
displayMessage(dsAddr_ridFrustationsMsg); // "I'd already got rid of my frustrations"
|
||||
} else {
|
||||
SET_FLAG(0xdb93, 1);
|
||||
SET_FLAG(dsAddr_alreadyKickedHenFlag, 1);
|
||||
displayMessage(dsAddr_henFlyMsg); // "I wonder if hens can fly. Come here, baby"
|
||||
waitLanAnimationFrame(1, 87);
|
||||
playSound(30, 26);
|
||||
@ -2791,10 +2792,10 @@ bool TeenAgentEngine::processCallback(uint16 addr) {
|
||||
break;
|
||||
|
||||
case 0x655b: // Get needle from haystack
|
||||
if (CHECK_FLAG(0xdb9d, 1)) { // already have needle
|
||||
if (CHECK_FLAG(dsAddr_gotNeedleAlreadyFlag, 1)) { // already have needle
|
||||
displayMessage(dsAddr_dontPushLuckMsg); // "I don't think I should push my luck"
|
||||
} else {
|
||||
SET_FLAG(0xdb9d, 1);
|
||||
SET_FLAG(dsAddr_gotNeedleAlreadyFlag, 1);
|
||||
playSound(49, 3);
|
||||
playActorAnimation(548);
|
||||
inventory->add(invItemNeedle);
|
||||
@ -3180,14 +3181,14 @@ bool TeenAgentEngine::processCallback(uint16 addr) {
|
||||
break;
|
||||
|
||||
case 0x78f5:
|
||||
if (CHECK_FLAG(0xdb95, 1)) {
|
||||
if (CHECK_FLAG(dsAddr_carTrunkEmptyFlag, 1)) {
|
||||
displayMessage(dsAddr_bootEmptyMsg); // "There's nothing else in the boot"
|
||||
} else
|
||||
retVal = false;
|
||||
break;
|
||||
|
||||
case 0x7919:
|
||||
if (!CHECK_FLAG(0xdba5, 1))
|
||||
if (!CHECK_FLAG(dsAddr_laundryState, 1))
|
||||
retVal = false;
|
||||
else
|
||||
displayMessage(dsAddr_clothesDryMsg); // "The clothes are dry now."
|
||||
@ -3218,7 +3219,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {
|
||||
break;
|
||||
|
||||
case 0x79d2:
|
||||
if (!CHECK_FLAG(0xdb9d, 1))
|
||||
if (!CHECK_FLAG(dsAddr_gotNeedleAlreadyFlag, 1))
|
||||
retVal = false;
|
||||
else
|
||||
displayMessage(dsAddr_ordinaryHaystackMsg); // "Just an ordinary hay stack. Now."
|
||||
@ -3276,7 +3277,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {
|
||||
wait(50);
|
||||
displayMessage(dsAddr_itsGoneMsg); // "At least it's gone"
|
||||
inventory->remove(invItemPaintedPotato);
|
||||
SET_FLAG(0xdba1, 1);
|
||||
SET_FLAG(dsAddr_mansionTreeHollowEmptyFlag, 1);
|
||||
break;
|
||||
|
||||
case 0x823d: // grappling hook on the wall
|
||||
@ -3357,7 +3358,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {
|
||||
playSound(55, 18);
|
||||
playAnimation(581, 1);
|
||||
disableObject(2);
|
||||
SET_FLAG(0xdb9f, 1);
|
||||
SET_FLAG(dsAddr_beesGoneFlag, 1);
|
||||
break;
|
||||
|
||||
case 0x84c7: // using paddle on boat
|
||||
@ -3393,14 +3394,14 @@ bool TeenAgentEngine::processCallback(uint16 addr) {
|
||||
break;
|
||||
|
||||
case 0x85eb:
|
||||
if (CHECK_FLAG(0xdbb0, 1)) {
|
||||
if (CHECK_FLAG(dsAddr_squirrelNutState, 1)) {
|
||||
enableObject(6);
|
||||
playSound(25, 10);
|
||||
playSound(25, 14);
|
||||
playSound(25, 18);
|
||||
playActorAnimation(559);
|
||||
setOns(1, 23);
|
||||
SET_FLAG(0xdbb0, 2);
|
||||
SET_FLAG(dsAddr_squirrelNutState, 2);
|
||||
} else
|
||||
displayMessage(dsAddr_dontWorkPurposeMsg); // "I usually don't work without a purpose"
|
||||
break;
|
||||
@ -3424,17 +3425,17 @@ bool TeenAgentEngine::processCallback(uint16 addr) {
|
||||
break;
|
||||
|
||||
case 0x862c:
|
||||
if (CHECK_FLAG(0xdbb0, 1))
|
||||
if (CHECK_FLAG(dsAddr_squirrelNutState, 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)) {
|
||||
if (CHECK_FLAG(dsAddr_alreadyAdjustedHoopPoleFlag, 1)) {
|
||||
displayMessage(dsAddr_noNeedMsg); // "No need to do it again"
|
||||
} else {
|
||||
SET_FLAG(0xdb92, 1);
|
||||
SET_FLAG(dsAddr_alreadyAdjustedHoopPoleFlag, 1);
|
||||
dialog->show(17, scene, 0, 502, 0xd0, 0xe5, 0, 1);
|
||||
waitLanAnimationFrame(1, 7);
|
||||
playSound(5, 16);
|
||||
@ -3515,11 +3516,11 @@ bool TeenAgentEngine::processCallback(uint16 addr) {
|
||||
break;
|
||||
|
||||
case 0x88c9: // give flower to old lady
|
||||
if (CHECK_FLAG(0xdb9a, 1))
|
||||
if (CHECK_FLAG(dsAddr_givenFlowerToOldLadyAlreadyFlag, 1))
|
||||
fnGiveAnotherFlowerToOldLady();
|
||||
else {
|
||||
inventory->remove(invItemFirstFlower);
|
||||
SET_FLAG(0xdb9a, 1);
|
||||
SET_FLAG(dsAddr_givenFlowerToOldLadyAlreadyFlag, 1);
|
||||
fnGivingFlowerToOldLady();
|
||||
}
|
||||
break;
|
||||
@ -3533,22 +3534,22 @@ bool TeenAgentEngine::processCallback(uint16 addr) {
|
||||
break;
|
||||
|
||||
case 0x8918: // give flower to old lady
|
||||
if (CHECK_FLAG(0xdb9a, 1))
|
||||
if (CHECK_FLAG(dsAddr_givenFlowerToOldLadyAlreadyFlag, 1))
|
||||
fnGiveAnotherFlowerToOldLady();
|
||||
else {
|
||||
inventory->remove(invItemSecondFlower);
|
||||
SET_FLAG(0xdb9a, 1);
|
||||
SET_FLAG(dsAddr_givenFlowerToOldLadyAlreadyFlag, 1);
|
||||
fnGivingFlowerToOldLady();
|
||||
}
|
||||
break;
|
||||
|
||||
case 0x892d:
|
||||
if (CHECK_FLAG(0xdb9b, 1))
|
||||
if (CHECK_FLAG(dsAddr_givenFlowerToAnneAlreadyFlag, 1))
|
||||
fnGiveAnotherFlowerToAnne();
|
||||
else {
|
||||
fnGivingFlowerToAnne();
|
||||
inventory->remove(invItemFirstFlower);
|
||||
SET_FLAG(0xdb9b, 1);
|
||||
SET_FLAG(dsAddr_givenFlowerToAnneAlreadyFlag, 1);
|
||||
}
|
||||
break;
|
||||
|
||||
@ -3561,12 +3562,12 @@ bool TeenAgentEngine::processCallback(uint16 addr) {
|
||||
break;
|
||||
|
||||
case 0x89b7:
|
||||
if (CHECK_FLAG(0xdb9b, 1))
|
||||
if (CHECK_FLAG(dsAddr_givenFlowerToAnneAlreadyFlag, 1))
|
||||
fnGiveAnotherFlowerToAnne();
|
||||
else {
|
||||
fnGivingFlowerToAnne();
|
||||
inventory->remove(invItemSecondFlower);
|
||||
SET_FLAG(0xdb9b, 1);
|
||||
SET_FLAG(dsAddr_givenFlowerToAnneAlreadyFlag, 1);
|
||||
}
|
||||
break;
|
||||
|
||||
@ -3640,7 +3641,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {
|
||||
playSound(5, 3);
|
||||
playActorAnimation(603);
|
||||
setOns(0, 27);
|
||||
SET_FLAG(0xdba5, 1);
|
||||
SET_FLAG(dsAddr_laundryState, 1);
|
||||
break;
|
||||
|
||||
case 0x8bfc: // Give bone to dog
|
||||
@ -3709,7 +3710,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {
|
||||
playActorAnimation(646);
|
||||
playSound(5, 21);
|
||||
playActorAnimation(647);
|
||||
SET_FLAG(0xdaca, 1);
|
||||
SET_FLAG(dsAddr_caveThornsCutDownFlag, 1);
|
||||
inventory->remove(invItemSickleSharp);
|
||||
disableObject(2);
|
||||
scene->getObject(3)->actor_rect.right = 156;
|
||||
@ -3717,7 +3718,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {
|
||||
break;
|
||||
|
||||
case csAddr_mouseOutOfHoleTimeout: // mouse falls back from the hole (cave)
|
||||
if (CHECK_FLAG(0x0000, 1)) {
|
||||
if (CHECK_FLAG(dsAddr_timedCallbackState, 1)) {
|
||||
inventory->add(invItemMouse);
|
||||
playSound(24, 26);
|
||||
playActorAnimation(650, true);
|
||||
@ -3740,7 +3741,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {
|
||||
enableObject(4, 27);
|
||||
SET_FLAG(dsAddr_mouseHoleState, 0);
|
||||
}
|
||||
SET_FLAG(0x0000, 0);
|
||||
SET_FLAG(dsAddr_timedCallbackState, 0);
|
||||
break;
|
||||
|
||||
case csAddr_putRockInHole:
|
||||
@ -3763,7 +3764,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {
|
||||
disableObject(2);
|
||||
disableObject(3);
|
||||
inventory->remove(invItemShotgun);
|
||||
SET_FLAG(0xdb96, 1);
|
||||
SET_FLAG(dsAddr_birdsGoneFromScarecrowFlag, 1);
|
||||
break;
|
||||
|
||||
case 0x8fc8:
|
||||
@ -3776,7 +3777,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {
|
||||
playSound(41, 10);
|
||||
playSound(41, 47);
|
||||
playSound(55, 52);
|
||||
if (CHECK_FLAG(0xdba8, 1)) {
|
||||
if (CHECK_FLAG(dsAddr_HankerchiefInMouseholeFlag, 1)) {
|
||||
setLan(2, 0);
|
||||
playActorAnimation(628, true);
|
||||
playAnimation(634, 1, true);
|
||||
@ -3802,7 +3803,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {
|
||||
setOns(5, 40);
|
||||
moveTo(239, 139, 0, true);
|
||||
playActorAnimation(633);
|
||||
SET_FLAG(0xdba8, 1);
|
||||
SET_FLAG(dsAddr_HankerchiefInMouseholeFlag, 1);
|
||||
inventory->remove(invItemHandkerchief);
|
||||
if (!CHECK_FLAG(dsAddr_mouseNerveMsgSaidFlag, 1)) {
|
||||
SET_FLAG(dsAddr_mouseNerveMsgSaidFlag, 1);
|
||||
@ -4080,7 +4081,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {
|
||||
case 0x6c83:
|
||||
waitLanAnimationFrame(1, 1);
|
||||
dialog->pop(scene, 0xdb2e, 0, 727, 0xd1, 0xef, 0, 1);
|
||||
scene->getObject(1)->setName((const char *)res->dseg.ptr(0xaa94));
|
||||
scene->getObject(1)->setName((const char *)res->dseg.ptr(dsAddr_scnObjNameMike));
|
||||
SET_FLAG(dsAddr_MansionRobotSafeUnlockedFlag, 1);
|
||||
break;
|
||||
|
||||
@ -4748,7 +4749,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {
|
||||
playSound(20, 26);
|
||||
playActorAnimation(615);
|
||||
loadScene(17, 156, 180, 3);
|
||||
SET_FLAG(0x0000, 4);
|
||||
SET_FLAG(dsAddr_timedCallbackState, 4);
|
||||
playSound(64, 7);
|
||||
playSound(64, 21);
|
||||
playSound(64, 42);
|
||||
@ -4760,10 +4761,10 @@ bool TeenAgentEngine::processCallback(uint16 addr) {
|
||||
break;
|
||||
|
||||
case csAddr_noAnchorTimeout: // no anchor, timeout
|
||||
SET_FLAG(0x0000, 0);
|
||||
SET_FLAG(dsAddr_timedCallbackState, 0);
|
||||
fnGetOutOfLake();
|
||||
INC_FLAG(0xdba6);
|
||||
switch (GET_FLAG(0xdba6)) {
|
||||
INC_FLAG(dsAddr_lakeDivingExitMessage);
|
||||
switch (GET_FLAG(dsAddr_lakeDivingExitMessage)) {
|
||||
case 1:
|
||||
displayMessage(dsAddr_seaweedMsg); // "This seaweed is just like the flowers I gave mum on her last birthday"
|
||||
break;
|
||||
|
@ -104,6 +104,9 @@ const uint16 csAddr_displayMsg = 0xa055;
|
||||
const uint16 csAddr_rejectMsg = 0xa4d6;
|
||||
|
||||
// Data Segment Addresses
|
||||
// Timed Callback State Variable : 0x0000
|
||||
const uint16 dsAddr_timedCallbackState = 0x0000; // 1 byte
|
||||
|
||||
// Cursor Graphic 8*12px : 0x00da to 0x0139 (Read Only)
|
||||
const uint16 dsAddr_cursor = 0x00da;
|
||||
|
||||
@ -825,6 +828,15 @@ const uint16 dsAddr_sceneZoomTablePtr = 0x70f4;
|
||||
// Scene Object Table (2 byte address * 42) : 0x7254 to 0x72a7
|
||||
const uint16 dsAddr_sceneObjectTablePtr = 0x7254;
|
||||
|
||||
// Scene Object Name : Sonny or whatever : 0x92e5 to 0x92f6
|
||||
const uint16 dsAddr_scnObjNameSonny = 0x92e5; // "Sonny or whatever"
|
||||
|
||||
// Scene Object Name - Anne : 0x9820 to 0x9824
|
||||
const uint16 dsAddr_scnObjNameAnne = 0x9820; // "Anne"
|
||||
|
||||
// Scene Object Name - Mike : 0xaa94 to 0xaa98
|
||||
const uint16 dsAddr_scnObjNameMike = 0xaa94; // "Mike"
|
||||
|
||||
// Current Scene Id : 0xb4f3
|
||||
const uint16 dsAddr_currentScene = 0xb4f3; // 1 byte
|
||||
|
||||
@ -859,23 +871,82 @@ const uint16 dsAddr_inventoryItemDataPtrTable = 0xc4a6;
|
||||
// Lans Animation Table (4 byte * ??) : 0xd89e to 0x????
|
||||
const uint16 dsAddr_lansAnimationTablePtr = 0xd89e;
|
||||
|
||||
// Spoken With Mansion Guard Flag : 0xda96
|
||||
// FIXME - This is probably unecessary as although this location is set, it
|
||||
// doesn't now appear to be read.
|
||||
const uint16 dsAddr_spokenWithMansionGuardFlag = 0xda96; // 1 byte
|
||||
// Have Not Spoken With Mansion Guard Flag : 0xda97
|
||||
// FIXME - This is probably unecessary as although this location is set, it
|
||||
// doesn't now appear to be read.
|
||||
const uint16 dsAddr_haveNotSpokenWithMansionGuardFlag = 0xda97; // 1 byte
|
||||
|
||||
// Cave Thorns Cut Down Flag : 0xdaca
|
||||
const uint16 dsAddr_caveThornsCutDownFlag = 0xdaca; // 1 byte
|
||||
|
||||
// Current Music Id Playing : 0xdb90
|
||||
const uint16 dsAddr_currentMusic = 0xdb90; // 1 byte
|
||||
|
||||
// Light On Flag : 0xdba4
|
||||
// Unused Byte : 0xdb91
|
||||
// Already Adjusted Hoop Pole Flag : 0xdb92
|
||||
const uint16 dsAddr_alreadyAdjustedHoopPoleFlag = 0xdb92; // 1 byte
|
||||
// Already Kicked Hen Flag : 0xdb93
|
||||
const uint16 dsAddr_alreadyKickedHenFlag = 0xdb93; // 1 byte
|
||||
// Already Pulled Trunk Release Lever Flag : 0xdb94
|
||||
const uint16 dsAddr_alreadyPulledTrunkReleaseLeverFlag = 0xdb94; // 1 byte
|
||||
// Car Trunk Empty Flag : 0xdb95
|
||||
const uint16 dsAddr_carTrunkEmptyFlag = 0xdb95; // 1 byte
|
||||
// Birds Gone From Scarecrow Flag : 0xdb96
|
||||
const uint16 dsAddr_birdsGoneFromScarecrowFlag = 0xdb96; // 1 byte
|
||||
// Already Spoken To Anne Flag : 0xdb97
|
||||
const uint16 dsAddr_alreadySpokenToAnneFlag = 0xdb97; // 1 byte
|
||||
// Flower Isle in Lake State (0 = Both Flowers Present, 1 = One Flower Taken, 2+ = Both Flowers Taken): 0xdb98
|
||||
const uint16 dsAddr_flowerIsleState = 0xdb98; // 1 byte
|
||||
// Already Got Broken Paddle Flag : 0xdb99
|
||||
const uint16 dsAddr_alreadyGotBrokenPaddleFlag = 0xdb99; // 1 byte
|
||||
// Given Flower To OldLady Already Flag : 0xdb9a
|
||||
const uint16 dsAddr_givenFlowerToOldLadyAlreadyFlag = 0xdb9a; // 1 byte
|
||||
// Given Flower To Anne Already Flag : 0xdb9b
|
||||
const uint16 dsAddr_givenFlowerToAnneAlreadyFlag = 0xdb9b; // 1 byte
|
||||
// Scared Guard Already Flag : 0xdb9c
|
||||
const uint16 dsAddr_scaredGuardAlreadyFlag = 0xdb9c; // 1 byte
|
||||
// Got Needle Already Flag : 0xdb9d
|
||||
const uint16 dsAddr_gotNeedleAlreadyFlag = 0xdb9d; // 1 byte
|
||||
// Got Potato Already Flag : 0xdb9e
|
||||
const uint16 dsAddr_gotPotatoAlreadyFlag = 0xdb9e; // 1 byte
|
||||
// Bees Gone Flag : 0xdb9f
|
||||
const uint16 dsAddr_beesGoneFlag = 0xdb9f; // 1 byte
|
||||
// Mansion Already Been Through Tunnel Flag : 0xdba0
|
||||
const uint16 dsAddr_mansionTunnelDoneFlag = 0xdba0; // 1 byte
|
||||
// Mansion Tree Hollow Empty Flag : 0xdba1
|
||||
const uint16 dsAddr_mansionTreeHollowEmptyFlag = 0xdba1; // 1 byte
|
||||
// Climbed Mansion Tree Already Flag : 0xdba2
|
||||
const uint16 dsAddr_climbedMansionTreeAlreadyFlag = 0xdba2; // 1 byte
|
||||
// Cellar Door Open Flag : 0xdba3
|
||||
const uint16 dsAddr_cellarDoorOpenFlag = 0xdba3; // 1 byte
|
||||
// Cellar Light On Flag : 0xdba4
|
||||
const uint16 dsAddr_lightOnFlag = 0xdba4; // 1 byte
|
||||
|
||||
|
||||
// Laundry State (0 = Wet on Line, 1 = Dry on Line, 2 = Not Present): 0xdba5
|
||||
const uint16 dsAddr_laundryState = 0xdba5; // 1 byte
|
||||
// Lake Diving Exit Message (0 to 5+) : 0xdba6
|
||||
const uint16 dsAddr_lakeDivingExitMessage = 0xdba6; // 1 byte
|
||||
// Searched Grandpa Drawers Flag : 0xdba7
|
||||
const uint16 dsAddr_SearchedGrandpaDrawersFlag = 0xdba7; // 1 byte
|
||||
// Hankerchief in Mousehole Flag : 0xdba8
|
||||
const uint16 dsAddr_HankerchiefInMouseholeFlag = 0xdba8; // 1 byte
|
||||
// Mouse Hole State : 0xdba9, 0 = Mouse Gone, 1 = Mouse Trapped, 2 = Mouse Success(?)
|
||||
const uint16 dsAddr_mouseHoleState = 0xdba9; // 1 byte
|
||||
// Mouse Nerve Message Said Flag : 0xdbaa
|
||||
const uint16 dsAddr_mouseNerveMsgSaidFlag = 0xdbaa; // 1 byte
|
||||
// Mouse Already Got Gold Nugget Flag : 0xdbab
|
||||
const uint16 dsAddr_mouseGotGoldNuggetFlag = 0xdbab; // 1 byte
|
||||
|
||||
// Unused Byte : 0xdbac
|
||||
// Dog Has Bone Flag : 0xdbad
|
||||
const uint16 dsAddr_dogHasBoneFlag = 0xdbad; // 1 byte
|
||||
|
||||
// Ego Already Scared By Spider Flag : 0xdbae
|
||||
const uint16 dsAddr_egoAlreadyScaredBySpiderFlag = 0xdbae; // 1 byte
|
||||
// Already Said That Anne is Beautiful Flag : 0xdbaf
|
||||
const uint16 dsAddr_alreadySaidAnneBeautifulFlag = 0xdbaf; // 1 byte
|
||||
// Squirrel's Nut State (0 = Nut in Tree, 1 = Nut in Grass, 2 = Nut Found with Rake) : 0xdbb0
|
||||
const uint16 dsAddr_squirrelNutState = 0xdbb0; // 1 byte
|
||||
// Nut Swapped For Apple in Fruit Bowl Flag : 0xdbb1
|
||||
const uint16 dsAddr_nutSwappedForAppleFlag = 0xdbb1; // 1 byte
|
||||
// Spoken To Man In Well Flag : 0xdbb2
|
||||
|
@ -100,8 +100,8 @@ bool TeenAgentEngine::trySelectedObject() {
|
||||
debugC(0, kDebugObject, "checking active object %u on %u", inv->id, _dstObject->id);
|
||||
|
||||
//mouse time challenge hack:
|
||||
if ((res->dseg.get_byte(0x0000) == 1 && inv->id == invItemRock && _dstObject->id == 5) ||
|
||||
(res->dseg.get_byte(0x0000) == 2 && inv->id == invItemSuperGlue && _dstObject->id == 5)) {
|
||||
if ((res->dseg.get_byte(dsAddr_timedCallbackState) == 1 && inv->id == invItemRock && _dstObject->id == 5) ||
|
||||
(res->dseg.get_byte(dsAddr_timedCallbackState) == 2 && inv->id == invItemSuperGlue && _dstObject->id == 5)) {
|
||||
//putting rock into hole or superglue on rock
|
||||
fnPutRockInHole();
|
||||
return true;
|
||||
@ -609,11 +609,11 @@ Common::Error TeenAgentEngine::run() {
|
||||
if (current_object == NULL)
|
||||
break;
|
||||
|
||||
if (res->dseg.get_byte(0x0000) == 3 && current_object->id == 1) {
|
||||
if (res->dseg.get_byte(dsAddr_timedCallbackState) == 3 && current_object->id == 1) {
|
||||
fnGuardDrinking();
|
||||
break;
|
||||
}
|
||||
if (res->dseg.get_byte(0x0000) == 4 && current_object->id == 5) {
|
||||
if (res->dseg.get_byte(dsAddr_timedCallbackState) == 4 && current_object->id == 5) {
|
||||
fnGotAnchor();
|
||||
break;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user