TEENAGENT: Annotate Symbols for Inventory Object Callback Table.

This commit is contained in:
D G Turner 2012-09-12 06:32:54 +01:00
parent 31cb5ce3f1
commit df6c4fbdf0
2 changed files with 25 additions and 6 deletions

View File

@ -3878,7 +3878,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {
SET_FLAG(dsAddr_MansionPutBurningPaperInFridgeFlag, 1);
break;
case 0x98fa: // Right click to open toolbox
case csAddr_openFullToolbox: // Right click to open toolbox
inventory->remove(invItemToolboxFull);
inventory->add(invItemToolboxHalfEmpty);
inventory->add(invItemCarJack);
@ -3887,7 +3887,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {
displayMessage(dsAddr_carJackMsg); // "Wow! There's a car jack inside! Great!"
break;
case 0x9910:
case csAddr_openHalfEmptyToolbox:
inventory->remove(invItemToolboxHalfEmpty);
inventory->add(invItemSpanner);
inventory->activate(false);
@ -4744,7 +4744,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {
scene->push(SceneEvent(SceneEvent::kQuit));
break;
case 0x9921: // using diving eq
case csAddr_useDivingEquipment: // using diving eq
// FIXME - Some code is missing here as displayMessage(dsAddr_cantTalkUnderwaterMsg),
// displayMessage(dsAddr_notSwimmingThereMsg), displayMessage(dsAddr_tooLittleAirMsg)
// displayMessage(dsAddr_fishDontWorryMsg) are never called.
@ -4810,7 +4810,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {
fnGetOutOfLake();
break;
case 0x9aca:
case csAddr_digMansionWall:
if (scene->getId() == 13) {
moveTo(172, 181, 1);
playSound(26, 19);
@ -4852,13 +4852,13 @@ bool TeenAgentEngine::processCallback(uint16 addr) {
displayMessage(dsAddr_notThinkRightPlaceMsg); // "I don't think this is the right place"
break;
case 0x9c6d:
case csAddr_examineBanknote:
displayMessage(dsAddr_bankNoteMsg); // "It's a note from some bank..."
SET_FLAG(dsAddr_examinedBanknoteFlag, 1);
retVal = false;
break;
case 0x9c79: // use pills
case csAddr_useTimePills: // use pills
if (scene->getId() != 36) {
displayMessage(dsAddr_notTryNowMsg); // "There's no need to try them now"
} else if (CHECK_FLAG(dsAddr_mansionAlreadyUsedTimePillsFlag, 1)) {

View File

@ -80,12 +80,24 @@ const uint16 csAddr_mouseOutOfHoleTimeout = 0x8d79;
const uint16 csAddr_robotSafeAlreadyUnlockedCheck = 0x9166;
// Robot Safe (Mike) Unlock Check function : 0x9175
const uint16 csAddr_robotSafeUnlockCheck = 0x9175;
// Open Full Toolbox function : 0x98fa
const uint16 csAddr_openFullToolbox = 0x98fa;
// Open Half Empty Toolbox function : 0x9910
const uint16 csAddr_openHalfEmptyToolbox = 0x9910;
// Use Diving Equipment function : 0x9921
const uint16 csAddr_useDivingEquipment = 0x9921;
// Successfully Got Anchor function : 0x99e0
const uint16 csAddr_gotAnchor = 0x99e0;
// No Anchor Timeout function : 0x9a1d
const uint16 csAddr_noAnchorTimeout = 0x9a1d;
// Get Out of Lake function : 0x9a7a
const uint16 csAddr_getOutOfLake = 0x9a7a;
// Dig Under Mansion Wall function : 0x9aca
const uint16 csAddr_digMansionWall = 0x9aca;
// Examine Banknote function : 0x9c6d
const uint16 csAddr_examineBanknote = 0x9c6d;
// Use Time Pills function : 0x9c79
const uint16 csAddr_useTimePills = 0x9c79;
// Mansion Intrusion Attempt function : 0x9d45
const uint16 csAddr_mansionIntrusionAttempt = 0x9d45;
// Second Mansion Intrusion function : 0x9d90
@ -848,6 +860,13 @@ const uint16 dsAddr_objUseCallbackTablePtr = 0xb89c;
// Inventory Object Callback Table (3 byte (id, callbackAddr) * 7) : 0xbb72 to 0xbb86
const uint16 dsAddr_objCallbackTablePtr = 0xbb72;
// invItemToolboxFull = csAddr_openFullToolbox
// invItemToolboxHalfEmpty = csAddr_openHalfEmptyToolbox
// invItemDiveEquipment = csAddr_useDivingEquipment
// invItemShovelAct2 = csAddr_digMansionWall
// 0xff = 0x9c66 // TODO: Disabled? - callback function implementation missing.
// invItemBanknote = csAddr_examineBanknote
// invItemTimePills = csAddr_useTimePills
// Scene Hotspots Table (2 byte LE address * ??) : 0xbb87 to 0x????
const uint16 dsAddr_sceneHotspotsPtr = 0xbb87;