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

Function RopeSwingCollision

TombEngine/Objects/Generic/Object/rope.cpp:601–625  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

599 }
600
601 bool RopeSwingCollision(ItemInfo* item, CollisionInfo* coll, bool testForStumble)
602 {
603 auto* lara = GetLaraInfo(item);
604
605 coll->Setup.Mode = CollisionProbeMode::FreeForward;
606 coll->Setup.ForwardAngle = lara->Control.Rope.Direction ? item->Pose.Orientation.y : -item->Pose.Orientation.y;
607 GetCollisionInfo(coll, item);
608
609 bool stumble = testForStumble &&
610 ((coll->CollisionType != CollisionType::None &&
611 coll->CollisionType != CollisionType::Top &&
612 coll->CollisionType != CollisionType::TopFront) ||
613 coll->HitStatic);
614
615 if (stumble ||
616 TestEnvironment(RoomEnvFlags::ENV_FLAG_WATER, item->RoomNumber) ||
617 TestEnvironment(RoomEnvFlags::ENV_FLAG_SWAMP, item->RoomNumber))
618 {
619 ShiftItem(item, coll);
620 FallFromRope(item, stumble);
621 return true;
622 }
623
624 return false;
625 }
626
627 void JumpOffRope(ItemInfo* item)
628 {

Callers 2

lara_col_rope_idleFunction · 0.85
lara_col_rope_swingFunction · 0.85

Calls 4

GetCollisionInfoFunction · 0.85
TestEnvironmentFunction · 0.85
ShiftItemFunction · 0.85
FallFromRopeFunction · 0.85

Tested by

no test coverage detected