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

Function lara_col_run_back

TombEngine/Game/Lara/lara_basic.cpp:738–777  ·  view source on GitHub ↗

State: LS_RUN_BACK (5) Control: lara_as_run_back()

Source from the content-addressed store, hash-verified

736// State: LS_RUN_BACK (5)
737// Control: lara_as_run_back()
738void lara_col_run_back(ItemInfo* item, CollisionInfo* coll)
739{
740 auto& player = GetLaraInfo(*item);
741
742 player.Control.MoveAngle = item->Pose.Orientation.y + ANGLE(180.0f);
743 item->Animation.Velocity.y = 0;
744 item->Animation.IsAirborne = false;
745 coll->Setup.LowerFloorBound = NO_LOWER_BOUND;
746 coll->Setup.UpperFloorBound = -STEPUP_HEIGHT;
747 coll->Setup.LowerCeilingBound = 0;
748 coll->Setup.ForwardAngle = player.Control.MoveAngle;
749 GetCollisionInfo(coll, item);
750
751 if (TestLaraHitCeiling(coll))
752 {
753 SetLaraHitCeiling(item, coll);
754 return;
755 }
756
757 if (coll->Middle.Floor > (STEPUP_HEIGHT / 2))
758 {
759 SetLaraFallBackAnimation(item);
760 return;
761 }
762
763 if (CanSlide(*item, *coll))
764 {
765 SetLaraSlideAnimation(item, coll);
766 return;
767 }
768
769 if (LaraDeflectEdge(item, coll))
770 LaraCollideStop(item, coll);
771
772 if (CanChangeElevation(*item, *coll))
773 {
774 HandlePlayerElevationChange(item, coll);
775 return;
776 }
777}
778
779// State: LS_TURN_RIGHT_SLOW (6), LS_TURN_LEFT_SLOW (7)
780// Collision: lara_col_turn_slow()

Callers

nothing calls this directly

Calls 11

ANGLEFunction · 0.85
GetCollisionInfoFunction · 0.85
TestLaraHitCeilingFunction · 0.85
SetLaraHitCeilingFunction · 0.85
SetLaraFallBackAnimationFunction · 0.85
CanSlideFunction · 0.85
SetLaraSlideAnimationFunction · 0.85
LaraDeflectEdgeFunction · 0.85
LaraCollideStopFunction · 0.85
CanChangeElevationFunction · 0.85

Tested by

no test coverage detected