MCPcopy Create free account
hub / github.com/TombEngine/TombEngine / PuzzleDone

Function PuzzleDone

TombEngine/Objects/Generic/puzzles_keys.cpp:363–391  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

361}
362
363void PuzzleDone(ItemInfo* item, short itemNumber)
364{
365 short* triggerIndexPtr = GetTriggerIndex(item);
366 short triggerType = (triggerIndexPtr != nullptr) ? (*(triggerIndexPtr++) >> 8) & TRIGGER_BITS : TRIGGER_TYPES::TRIGGER;
367
368 if (triggerType == TRIGGER_TYPES::SWITCH)
369 {
370 item->ItemFlags[1] = true;
371
372 item->ObjectNumber += GAME_OBJECT_ID{ ID_PUZZLE_DONE1 - ID_PUZZLE_HOLE1 };
373 item->ItemFlags[5] = (int)ReusableReceptacleState::Done;
374 SetAnimation(item, 0);
375 item->DisableInterpolation = true;
376 item->ResetModelToDefault();
377 }
378 else
379 {
380 item->ObjectNumber += GAME_OBJECT_ID{ ID_PUZZLE_DONE1 - ID_PUZZLE_HOLE1 };
381 SetAnimation(item, 0);
382 item->Animation.RequiredState = NO_VALUE;
383 item->DisableInterpolation = true;
384 item->ResetModelToDefault();
385
386 AddActiveItem(itemNumber);
387
388 item->Flags |= IFLAG_ACTIVATION_MASK;
389 item->Status = ITEM_ACTIVE;
390 }
391}
392
393void PuzzleHole(ItemInfo* item, short itemNumber)
394{

Callers 2

PuzzleHoleCollisionFunction · 0.85
DoPuzzleFunction · 0.85

Calls 4

GetTriggerIndexFunction · 0.85
SetAnimationFunction · 0.85
AddActiveItemFunction · 0.85
ResetModelToDefaultMethod · 0.80

Tested by

no test coverage detected