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

Function DoPuzzle

TombEngine/Objects/Generic/puzzles_keys.cpp:407–467  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

405}
406
407void DoPuzzle()
408{
409 PuzzleItem = Lara.Context.InteractedItem;
410 auto* item = &g_Level.Items[PuzzleItem];
411
412 int flag = 0;
413
414 if (item->TriggerFlags >= 0)
415 {
416 if (item->TriggerFlags <= 1024)
417 {
418 if (item->TriggerFlags && item->TriggerFlags != 999 && item->TriggerFlags != 998)
419 flag = 3;
420 }
421 else
422 {
423 flag = 2;
424 }
425 }
426 else
427 {
428 flag = 1;
429 }
430
431 if (LaraItem->Animation.ActiveState == LS_INSERT_PUZZLE)
432 {
433 if (item->ItemFlags[0])
434 {
435 if (flag == 3)
436 {
437 LaraItem->ItemFlags[0] = item->TriggerFlags;
438 }
439 else
440 {
441 LaraItem->ItemFlags[0] = 0;
442 PuzzleDone(item, PuzzleItem);
443 item->ItemFlags[0] = 0;
444 }
445 }
446
447 if (LaraItem->Animation.AnimNumber == LA_TRIDENT_SET)
448 PuzzleDone(item, PuzzleItem);
449 }
450
451 if (LaraItem->Animation.ActiveState == LS_REMOVE_PUZZLE)
452 {
453 if (item->ItemFlags[0])
454 {
455 if (flag == 3)
456 {
457 LaraItem->ItemFlags[0] = item->TriggerFlags;
458 }
459 else
460 {
461 LaraItem->ItemFlags[0] = 0;
462 PuzzleHole(item, PuzzleItem);
463 item->ItemFlags[0] = 0;
464 }

Callers 1

PuzzleFunction · 0.85

Calls 2

PuzzleDoneFunction · 0.85
PuzzleHoleFunction · 0.85

Tested by

no test coverage detected