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

Function LaraDeflectEdgeCrawl

TombEngine/Game/Lara/lara_collide.cpp:185–209  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

183}
184
185bool LaraDeflectEdgeCrawl(ItemInfo* item, CollisionInfo* coll)
186{
187 // Useless in the best case; Lara does not have to embed in order to perform climbing actions in crawl states. Keeping for security. @Sezz 2021.11.26
188 if (coll->CollisionType == CollisionType::Front || coll->CollisionType == CollisionType::TopFront)
189 {
190 ShiftItem(item, coll);
191
192 item->Animation.Velocity.z = 0;
193 item->Animation.IsAirborne = false;
194 return true;
195 }
196
197 if (coll->CollisionType == CollisionType::Left)
198 {
199 ShiftItem(item, coll);
200 item->Pose.Orientation.y += coll->DiagonalStepAtLeft() ? DEFLECT_DIAGONAL_ANGLE_CRAWL : DEFLECT_STRAIGHT_ANGLE_CRAWL;
201 }
202 else if (coll->CollisionType == CollisionType::Right)
203 {
204 ShiftItem(item, coll);
205 item->Pose.Orientation.y -= coll->DiagonalStepAtRight() ? DEFLECT_DIAGONAL_ANGLE_CRAWL : DEFLECT_STRAIGHT_ANGLE_CRAWL;
206 }
207
208 return false;
209}
210
211bool LaraDeflectEdgeMonkey(ItemInfo* item, CollisionInfo* coll)
212{

Callers 3

lara_col_crouch_rollFunction · 0.85
lara_col_crawl_forwardFunction · 0.85
lara_col_crawl_backFunction · 0.85

Calls 3

ShiftItemFunction · 0.85
DiagonalStepAtLeftMethod · 0.80
DiagonalStepAtRightMethod · 0.80

Tested by

no test coverage detected