ASYLUM: fill in the rest of encounterData

This commit is contained in:
alxpnv 2021-09-24 17:38:52 +03:00
parent e83f2df2d7
commit f01aa6db73
2 changed files with 264 additions and 82 deletions

View File

@ -73,88 +73,168 @@ const ResourcePackId puzzleToScenes[17] = {
kResourcePackHive // Hive Control
};
#define ED_LISTEND {-1, kObjectNone, kObjectNone, 0, 0}
static const struct EncounterData {
int32 index;
uint32 objectId1;
uint32 objectId2;
ActorIndex actorIndex;
} encounterData[13][20] = {
uint32 subIndex;
} encounterData[13][31] = {
// TowerCells
{
{ 0, kObjectPreAlphaNut, kObjectPreAlphaNut, kActorMax},
{ 1, kObjectPreAlphaNut2, kObjectPreAlphaNut2, kActorMax},
{ 2, kObjectRocker, kObjectRocker, kActorMax},
{73, kObjectNone, kObjectNone, kActorMax},
{-1, kObjectNone, kObjectNone, kActorMax}
{ 0, kObjectPreAlphaNut, kObjectPreAlphaNut, 0, 0},
{ 1, kObjectPreAlphaNut2, kObjectPreAlphaNut2, 0, 0},
{ 2, kObjectRocker, kObjectRocker, 0, 0},
{73, kObjectNone, kObjectNone, 0, 0},
ED_LISTEND
},
// InnocentAbandoned
{
{ 3, 1072, 1091, kActorMax},
{ 4, 1061, 1072, kActorMax},
{ 5, 1200, 1199, kActorMax},
{ 7, 1105, 991, kActorMax},
{ 9, 1012, 1011, kActorMax},
{10, 993, 993, kActorMax},
{11, 1013, 1013, kActorMax},
{12, 1082, 1084, kActorMax},
{13, 1001, 1001, kActorMax},
{14, 1587, 2280, kActorMax},
{74, 2992, 2992, kActorMax},
{76, 2990, 2990, kActorMax},
{77, 2990, 2990, kActorMax},
{78, 2990, 2990, kActorMax},
{-1, kObjectNone, kObjectNone, kActorMax}
{ 3, kObjectJessieTalks, kObjectJessieStatusWhileUp, 0, 0},
{ 4, kObjectBillyTalks, kObjectBillyStatusUp, 0, 0},
{ 5, kObjectMariaPointsLeft, kObjectMarisStatusQuo, 0, 0},
{ 6, kObjectNone, kObjectNone, 1, 0},
{ 7, kObjectTalkToBallBoy, kObjectMarty02, 0, 0},
{ 8, kObjectNone, kObjectNone, 2, 0},
{ 9, kObjectDennisTalk, kObjectDennisStatusQuo, 0, 0},
{ 9, kObjectDennisTalkHide, kObjectDennisFoundSt, 0, 1},
{10, kObjectEleenOnGround, kObjectIleanStatusFrame, 0, 0},
{10, kObjectEileenTalkingWithShove, kObjectStqEileenTalkWithShov, 0, 1},
{10, kObjectEileenOnBench, kObjectEileenOnBench, 0, 2},
{11, kObjectSailorBoy, kObjectSailorBoy, 0, 0},
{12, kObjectNone, kObjectNone, 2, 0},
{12, kObjectSuckerTalks, kObjectSuckerSittingStatusQuo, 0, 1},
{13, kObjectFishingBoy, kObjectFishingBoy, 0, 0},
{14, kObjectMotherTalking, kObjectMotherTalkingSq, 0, 0},
{74, kObjectCarolsDiary, kObjectCarolsDiary, 0, 0},
{75, kObjectObituary, kObjectObituary, 0, 0},
{76, kObjectObituary, kObjectObituary, 0, 0},
{77, kObjectObituary, kObjectObituary, 0, 0},
{78, kObjectObituary, kObjectObituary, 0, 0},
ED_LISTEND
},
// CourtyardAndChapel
{
{36, 820, 820, kActorMax},
{37, 863, 863, kActorMax},
{38, 862, 1038, kActorMax},
{39, 844, 844, kActorMax},
{40, 845, 845, kActorMax},
{41, 846, 846, kActorMax},
{43, 873, 801, kActorMax},
{-1, kObjectNone, kObjectNone, kActorMax}
{32, kObjectNone, kObjectNone, 1, 0},
{33, kObjectNone, kObjectNone, 2, 0},
{34, kObjectNone, kObjectNone, 3, 0},
{35, kObjectNone, kObjectNone, 4, 0},
{36, kObjectNpc024TalkChurch, kObjectNPC024Church, 0, 0},
{36, kObjectNpc024DanceAway, kObjectNpc024DanceAway, 0, 1},
{36, kObjectNpc024TalkFount, kObjectNPC024Fountain, 0, 2},
{37, kObjectNpc025Talking, kObjectNpc025Talking, 0, 0},
{38, kObjectNPC026Talking, kObjectNPC026TalkStatusQuo, 0, 0},
{39, kObjectNPC027Dancing, kObjectNPC027Dancing, 0, 0},
{39, kObjectNpc027Talk, kObjectNPC027Sit, 0, 1},
{40, kObjectNPC028Dancing, kObjectNPC028Dancing, 0, 0},
{40, kObjectNpc028Talk, kObjectNPC028Sit, 0, 1},
{41, kObjectNpc029Dancing, kObjectNpc029Dancing, 0, 0},
{41, kObjectNpc029Talk, kObjectNPC029Sit, 0, 1},
{42, kObjectNone, kObjectNone, 5, 0},
{43, kObjectNpc000Talking, kObjectDrMorgan, 0, 0},
ED_LISTEND
},
// CircusOfFools
{
{-1, kObjectNone, kObjectNone, kActorMax}
{44, kObjectNpc032TalkOutside, kObjectNPC032StatusQuoOutside, 0, 0},
{44, kObjectRingmasterTalkTent, kObjectNPC032StatusQuoBigTop, 0, 1},
{45, kObjectNpc033Talking, kObjectNpc033SqNoBook, 0, 0},
{46, kObjectTattooingStrongMan, kObjectTattooingStrongMan, 0, 0},
{46, kObjectTattooGuy034Talk, kObjectTattooManStatusQuo, 0, 1},
{47, kObjectStrongman035Talk, kObjectStrongmanStatusQuo, 0, 0},
{47, kObjectStrongmanStatusQuo2, kObjectStrongmanStatusQuo2, 0, 1},
{48, kObjectInfernoTalk036, kObjectInfernoStatusQuo, 0, 0},
{49, kObjectJugglerWithPin, kObjectJugglerWithPin, 0, 0},
{49, kObjectJuggler, kObjectJuggler, 0, 1},
{50, kObjectClown038Talk, kObjectClownStatusQuo, 0, 0},
{51, kObjectTrixie039Talk, kObjectTrixieSq2, 0, 0},
{52, kObjectSSimon040Talk, kObjectSimonSq2, 0, 0},
{53, kObjectNone, kObjectNone, 1, 0},
{54, kObjectNone, kObjectNone, 2, 0},
{55, kObjectNone, kObjectNone, 3, 0},
{56, kObjectFunTixStatusQuo, kObjectFunTixStatusQuo, 0, 0},
{57, kObjectFreakTixStatusQuoUp, kObjectFreakTixStatusQuoUp, 0, 0},
{57, kObjectFreakTixStatusQuoDown, kObjectFreakTixStatusQuoDown, 0, 1},
{58, kObjectFortTellerStatusQuo, kObjectFortTellerStatusQuo, 0, 0},
{59, kObjectRingTossStatusQuo, kObjectRingTossStatusQuo, 0, 0},
{59, kObjectKnockDownStatusQuo, kObjectKnockDownStatusQuo, 0, 1},
{59, kObjectPigShootStatusQuo, kObjectPigShootStatusQuo, 0, 2},
{60, kObjectPretzool048Talk, kObjectPretZoolStatusQuo, 0, 0},
{61, kObjectTimber049Talk, kObjectTimberStatusQuo, 0, 0},
{61, kObjectTimber049Talk, kObjectNpc049Sq2, 0, 1},
{62, kObjectTwins050Talk, kObjectTwinsStatusQuo, 0, 0},
{63, kObjectSean051Talk, kObjectSeanStatusQuo, 0, 0},
{64, kObjectMom052Talk, kObjectMomAndPopStatusQuo, 0, 0},
{65, kObjectPop053Talk, kObjectMomAndPopStatusQuo, 0, 0},
ED_LISTEND
},
// Laboratory
{
{-1, kObjectNone, kObjectNone, kActorMax}
{79, kObjectNone, kObjectNone, 0, 0},
ED_LISTEND
},
// Hive
{
{-1, kObjectNone, kObjectNone, kActorMax}
{67, kObjectGravinTalkCyber, kObjectGravinTalkCyber, 0, 0},
{67, kObjectGravinTalkGravins, kObjectGravinSqGravins, 0, 1},
{67, kObjectGravinTalkDoor, kObjectGravinSqDoor, 0, 2},
{67, kObjectGravinTalkGromnas, kObjectGravinSqGromnas, 0, 3},
{67, kObjectGravinWorkMachine, kObjectGravinWorkMachine, 0, 4},
{68, kObjectNpc062GritzaTalk, kObjectNPC062GritzaStatusQuo, 0, 0},
{69, kObjectNpc063GrundleTalk, kObjectNPC063GrundleStatusQuo, 0, 0},
{70, kObjectNpc064GrellaTalk, kObjectNPC064GrellaStatusQuo, 0, 0},
{71, kObjectNpc065Talk, kObjectNPC065StatusQuo, 0, 0},
{72, kObjectNPC066StatusQuo, kObjectNPC066StatusQuo, 0, 0},
ED_LISTEND
},
// MorgueAndCemetery
{
{-1, kObjectNone, kObjectNone, kActorMax}
{15, kObjectBodyTalks, kObjectBodyStat, 0, 0},
{16, kObjectFreezerHallInterior, kObjectFreezerHallInterior, 0, 0},
{17, kObjectTreeTalks, kObjectBlinks, 0, 0},
ED_LISTEND
},
// LostVillage
{
{-1, kObjectNone, kObjectNone, kActorMax}
{ 6, kObjectNone, kObjectNone, 1, 0},
{18, kObjectOracleTalks, kObjectOracleTalkStatus, 0, 0},
{19, kObjectPixelForQueztza, kObjectPixelForQueztza, 0, 0},
{20, kObjectWitchTalks, kObjectWitchDoctor, 0, 0},
{20, kObjectDeadShamanStill, kObjectDeadShamanStill, 0, 1},
{21, kObjectStoneMaisonTalk, kObjectStoneMaison, 0, 0},
{22, kObjectStoneWifeTalks, kObjectStoneWifeStatuQuo, 0, 0},
{23, kObjectLittleGirlTalk, kObjectGirlStatusQuo, 0, 0},
{24, kObjectFishermansWTalks, kObjectFishermanWidowStatusQuo,0, 0},
{25, kObjectWitchWifeTalking, kObjectWitchWifeTalking, 0, 0},
{26, kObjectGhost2, kObjectGhost2, 0, 0},
{26, kObjectJumpDown, kObjectJumpDown, 0, 1},
{27, kObjectGhost6, kObjectGhost6, 0, 0},
{28, kObjectGhost3, kObjectGhost3, 0, 0},
{29, kObjectGhost1, kObjectGhost1, 0, 0},
{30, kObjectGhost4, kObjectGhost4, 0, 0},
{31, kObjectGhost5, kObjectGhost5, 0, 0},
ED_LISTEND
},
// Gauntlet
{
{-1, kObjectNone, kObjectNone, kActorMax}
ED_LISTEND
},
// Mansion
{
{-1, kObjectNone, kObjectNone, kActorMax}
ED_LISTEND
},
// Cave
{
{-1, kObjectNone, kObjectNone, kActorMax}
ED_LISTEND
},
// Maze
{
{-1, kObjectNone, kObjectNone, kActorMax}
ED_LISTEND
},
// MorgansLastGame
{
{-1, kObjectNone, kObjectNone, kActorMax}
ED_LISTEND
}
};
@ -695,10 +775,8 @@ bool Console::cmdChangeScene(int argc, const char **argv) {
}
bool Console::cmdRunEncounter(int argc, const char **argv) {
if (argc != 2) {
debugPrintf("Syntax: %s <encounter index>\n", argv[0]);
return true;
}
int i, j, subIndex = 0;
const EncounterData *data;
// Check that we are inside a scene
if (!getScene()) {
@ -706,22 +784,52 @@ bool Console::cmdRunEncounter(int argc, const char **argv) {
return true;
}
// Check index is valid
int32 index = atoi(argv[1]);
if (index < 0 || index >= (int32)_vm->encounter()->_items.size()) {
debugPrintf("[Error] Invalid index (was: %d - valid: [0-%d])\n", index, _vm->encounter()->_items.size() - 1);
if (argc < 2) {
debugPrintf("Syntax: %s <encounter index> (<encounter subindex>)\n", argv[0]);
j = 0;
while (true) {
data = &encounterData[getWorld()->chapter - 1][j];
if (data->index == -1)
break;
debugPrintf(" %-2d", data->index);
if (data->subIndex)
debugPrintf(" %d ", data->subIndex);
else
debugPrintf(" ");
Object *object1 = getWorld()->getObjectById((ObjectId)data->objectId1),
*object2 = getWorld()->getObjectById((ObjectId)data->objectId2);
debugPrintf("%-23s | %-23s", object1 ? object1->getName() : "NONE", object2 ? object2->getName() : "NONE");
debugPrintf("\n");
j++;
}
return true;
}
// Get the encounter data
const EncounterData *data;
for (data = (const EncounterData *)&encounterData[getScene()->getPackId() - 5]; data->index != -1; data++) {
if (data->index == index)
// Check if index is valid
uint index = atoi(argv[1]);
if (argc > 2)
subIndex = atoi(argv[2]);
j = 0;
while (true) {
data = &encounterData[getWorld()->chapter - 1][j];
i = data->index;
if (i == -1)
break;
if (i == index && subIndex == data->subIndex)
break;
j++;
}
if (data->index == -1) {
debugPrintf("[Error] No encounter data for this index (index: %d)\n", index);
if (i == -1) {
debugPrintf("[Error] No encounter with index %d in this chapter\n", index);
return true;
}

View File

@ -532,42 +532,62 @@ enum DirectionFrom {
// Object
//////////////////////////////////////////////////////////////////////////
enum ObjectId {
kObjectInvalid = -1,
kObjectNone = 0,
kObjectHeadBanger = 101,
kObjectAngelFlares = 112,
kObjectTicaTac01 = 391,
kObjectGuyFalls = 434,
kObjectGuyWobbles = 405,
kObjectRocker = 441,
kObjectOpeningGate = 485,
kObjectTableRecordRoom = 659,
kObject703 = 703,
kObjectTree8 = 726,
kObjectSlab = 743,
kObjectPreacherBobAssistant = 802,
kObjectPreacherBob = 803,
kObjectNPC024Church = 816,
kObjectNPC024Fountain = 825,
kObjectNPC027Sit = 838,
kObjectNPC028Sit = 839,
kObjectNPC029Sit = 840,
kObjectNPC027Dancing = 844,
kObjectNPC028Dancing = 845,
kObjectNPC026OutOfWay = 861,
kObjectNPC026Talking = 862,
kObjectOrangeRecord = 920,
kObjectJessieStatusQuo = 984,
kObjectMarty02 = 991,
kObjectEileenOnBench = 993,
kObject994 = 994,
kObjectInvalid = -1,
kObjectNone = 0,
kObjectHeadBanger = 101,
kObjectAngelFlares = 112,
kObjectTicaTac01 = 391,
kObjectGuyWobbles = 405,
kObjectGuyFalls = 434,
kObjectRocker = 441,
kObjectOpeningGate = 485,
kObjectTableRecordRoom = 659,
kObject703 = 703,
kObjectTree8 = 726,
kObjectSlab = 743,
kObjectDrMorgan = 801,
kObjectPreacherBobAssistant = 802,
kObjectPreacherBob = 803,
kObjectNPC024Church = 816,
kObjectNpc024TalkChurch = 817,
kObjectNpc024DanceAway = 820,
kObjectNpc024TalkFount = 824,
kObjectNPC024Fountain = 825,
kObjectNPC027Sit = 838,
kObjectNPC028Sit = 839,
kObjectNPC029Sit = 840,
kObjectNPC027Dancing = 844,
kObjectNPC028Dancing = 845,
kObjectNpc029Dancing = 846,
kObjectNPC026OutOfWay = 861,
kObjectNPC026Talking = 862,
kObjectNpc025Talking = 863,
kObjectNpc000Talking = 873,
kObjectOrangeRecord = 920,
kObjectNpc029Talk = 922,
kObjectNpc027Talk = 925,
kObjectNpc028Talk = 927,
kObjectJessieStatusQuo = 984,
kObjectMarty02 = 991,
kObjectEileenOnBench = 993,
kObject994 = 994,
kObjectFishingBoy = 1001,
kObjectDennisStatusQuo = 1011,
kObjectDennisTalk = 1012,
kObjectSailorBoy = 1013,
kObjectEleenOnGround = 1019,
kObjectSailorStatusQuo = 1021,
kObjectNPC026TalkStatusQuo = 1038,
kObjectDennisTalkHide = 1051,
kObjectDennisFoundSt = 1052,
kObjectBillyTalks = 1061,
kObjectJessieTalks = 1072,
kObjectSuckerTalks = 1082,
kObjectSuckerSittingStatusQuo = 1084,
kObjectBillyStatusUp = 1090,
kObjectJessieStatusWhileUp = 1091,
kObjectTalkToBallBoy = 1105,
kObjectIleanStatusFrame = 1125,
kObjectBubbles = 1185,
kObjectGlow = 1186,
kObjectDome = 1187,
@ -575,28 +595,42 @@ enum ObjectId {
kObjectRing = 1189,
kObjectBallMovesUpright = 1190,
kObjectGearsLightUp = 1191,
kObjectMarisStatusQuo = 1199,
kObjectMariaPointsLeft = 1200,
kObjectMariaPointsRight = 1201,
kObjectNPC032Sleeping = 1250,
kObjectNPC032StatusQuoOutside = 1254,
kObjectNpc032TalkOutside = 1255,
kObjectNPC032StatusQuoBigTop = 1256,
kObjectRingmasterTalkTent = 1257,
kObjectGlobe = 1261,
kObjectDrawers3 = 1276,
kObjectChalice = 1286,
kObjectFreezerHallInterior = 1337,
kObjectNPC033StartEnc = 1338,
kObjectNpc033Talking = 1339,
kObjectNpc033SqNoBook = 1341,
kObjectNPC033GetBook = 1343,
kObjectNPC033Reading = 1344,
kObjectBodyTalks = 1371,
kObjectBodyStat = 1373,
kObjectOldMan3 = 1377,
kObjectTattooingStrongMan = 1390,
kObjectTattooManStatusQuo = 1391, // NPC 34
kObjectTattooGuy034Talk = 1392,
kObjectStrongmanStatusQuo = 1402, // NPC 35
kObjectStrongman035Talk = 1403,
kObjectStrongmanStatusQuo2 = 1405, // NPC 35
kObjectInfernoStatusQuo = 1408, // NPC 36
kObjectInfernoTalk036 = 1409,
kObjectJugglerWithPin = 1423, // NPC 37
kObjectJuggler = 1424, // NPC 37
kObjectClown038Talk = 1427,
kObjectClownStatusQuo = 1428, // NPC 38
kObjectTrixieStatusQuo = 1432, // NPC 39
kObjectTrixie039Talk = 1433,
kObjectSimonStatusQuo = 1434, // NPC 40
kObjectSSimon040Talk = 1435,
kObjectBigTopBarrel = 1436,
kObjectFunTixStatusQuo = 1437, // NPC 44
kObjectStandBehindJuggler = 1438,
@ -608,11 +642,17 @@ enum ObjectId {
kObjectRingTossStatusQuo = 1451, // NPC 47
kObjectKnockDownStatusQuo = 1455, // NPC 47
kObjectPigShootStatusQuo = 1456, // NPC 47
kObjectPretzool048Talk = 1460,
kObjectPretZoolStatusQuo = 1461, // NPC 48
kObjectTimberStatusQuo = 1462, // NPC 49
kObjectTimber049Talk = 1463,
kObjectTwinsStatusQuo = 1465, // NPC 50
kObjectTwins050Talk = 1466,
kObjectSean051Talk = 1467,
kObjectSeanStatusQuo = 1468, // NPC 51
kObjectMom052Talk = 1469,
kObjectMomAndPopStatusQuo = 1470, // NPCs 52-53
kObjectPop053Talk = 1471,
kObjectCrow1FlysAway = 1485,
kObjectCrow1Pecks = 1486,
kObjectCrow2AmbientPecks = 1495,
@ -638,12 +678,22 @@ enum ObjectId {
kObjectDennisStatus2 = 1580,
kObjectPreAlphaNut = 1582,
kObjectPreAlphaNut2 = 1584,
kObjectMotherTalking = 1587,
kObjectDeadMomFromOutside = 1589,
kObjectHeadOnTable = 1595,
kObjectNpc049Sq2 = 1658,
kObjectTreeTalks = 1671,
kObjectCave = 1763,
kObjectWitchDoctor = 1778,
kObjectWitchTalks = 1779,
kObjectStoneMaison = 1780,
kObjectStoneMaisonTalk = 1781,
kObjectStoneWifeStatuQuo = 1782,
kObjectStoneWifeTalks = 1783,
kObjectFishermanWidowStatusQuo = 1786,
kObjectFishermansWTalks = 1787,
kObjectOracleTalks = 1853,
kObjectOracleTalkStatus = 1854,
kObjectABarrier = 1899,
kObjectMonsterUp = 1956,
kObjectMonsterStatus = 1957,
@ -653,6 +703,7 @@ enum ObjectId {
kObjectPuke2 = 1961,
kObjectPuke3 = 1962,
kObjectMonsterHurt = 1997,
kObjectBlinks = 2064,
kObjectWheel1 = 2113,
kObjectWheel2 = 2114,
kObjectWheel3 = 2115,
@ -675,15 +726,27 @@ enum ObjectId {
kObjectHook5Down = 2157,
kObjectHook6Down = 2158,
kObject2230 = 2230,
kObjectMotherTalkingSq = 2280,
kObjectGravinStatusQuoCyber = 2324,
kObjectGravinTalkCyber = 2325,
kObjectGravinSqGravins = 2327,
kObjectGravinTalkGravins = 2328,
kObjectGravinSqDoor = 2329,
kObjectGravinTalkDoor = 2330,
kObjectGravinSqGromnas = 2332,
kObjectGravinTalkGromnas = 2333,
kObjectGravinWorkMachine = 2337,
kObjectNPC062GritzaStatusQuo = 2399,
kObjectNpc062GritzaTalk = 2400,
kObjectNPC063GrundleStatusQuo = 2410,
kObjectNpc063GrundleTalk = 2411,
kObjectNPC064GrellaStatusQuo = 2418,
kObjectNpc064GrellaTalk = 2420,
kObjectSparkPuzzleLeft = 2427,
kObjectSparkPuzzleMiddle = 2429,
kObjectLavaBridge = 2445,
kObjectSparkPuzzleRight = 2451,
kObjectNpc065Talk = 2467,
kObjectNPC065StatusQuo = 2469,
kObjectFloorTrap1 = 2473,
kObjectFloorTrap2 = 2474,
@ -708,8 +771,10 @@ enum ObjectId {
kObjectBodySlides6 = 2519,
kObjectEmberPopsOut = 2526,
kObjectBugCarriesEmber = 2527,
kObjectLittleGirlTalk = 2540,
kObjectGirlStatusQuo = 2541,
kObjectWitchWifeStirring = 2543,
kObjectWitchWifeTalking = 2546,
kObjectFurnaceHole = 2554,
kObjectInsidePipeCyberPod = 2555,
kObjectTopOfFurnace = 2566,
@ -728,7 +793,9 @@ enum ObjectId {
kObjectGong4 = 2593,
kObjectGong5 = 2594,
kObjectGong6 = 2596,
kObjectDeadShamanStill = 2604,
kObjectGhost2b = 2634,
kObjectJumpDown = 2648,
kObjectRitualLoop = 2674,
kObjectLine = 2859,
kObjectZapPattern1 = 2876,
@ -737,12 +804,19 @@ enum ObjectId {
kObjectBlanklPixelForWarrior = 2884,
kObjectPixelForHutWarrior = 2885,
kObjectPixelForWaterfallGhost = 2886,
kObjectPixelForQueztza = 2891,
kObjectZapPattern4 = 2892,
kObjectZapPattern5 = 2893,
kObjectZapPattern6 = 2894,
kObjectZapPattern7 = 2895,
kObjectZapPattern8 = 2896,
kObjectZapPattern9 = 2897,
kObjectObituary = 2990,
kObjectCarolsDiary = 2992,
kObjectTrixieSq2 = 3002,
kObjectSimonSq2 = 3003,
kObjectEileenTalkingWithShove = 3011,
kObjectStqEileenTalkWithShov = 3016,
kObjectLitLimbScanner = 3061,
kObjectOfficeWallNew = 3062,
kObjectCyberTable = 3065,