| 394 | } |
| 395 | |
| 396 | bool CanSlide(const ItemInfo& item, const CollisionInfo& coll) |
| 397 | { |
| 398 | constexpr auto ABS_FLOOR_BOUND = STEPUP_HEIGHT; |
| 399 | |
| 400 | const auto& player = GetLaraInfo(item); |
| 401 | |
| 402 | // 1) Test player water status. |
| 403 | if (player.Control.WaterStatus == WaterStatus::Wade) |
| 404 | return false; |
| 405 | |
| 406 | // Get point collision. |
| 407 | auto pointColl = GetPointCollision(item, 0, 0, -coll.Setup.Height / 2); // NOTE: Offset required for correct bridge collision. |
| 408 | int relFloorHeight = pointColl.GetFloorHeight() - item.Pose.Position.y; |
| 409 | |
| 410 | // 2) Assess point collision. |
| 411 | if (abs(relFloorHeight) <= ABS_FLOOR_BOUND && // Floor height is within upper/lower floor bounds. |
| 412 | pointColl.IsSteepFloor()) // Floor is a slippery slope. |
| 413 | { |
| 414 | return true; |
| 415 | } |
| 416 | |
| 417 | return false; |
| 418 | } |
| 419 | |
| 420 | bool CanSteerOnSlide(const ItemInfo& item, const CollisionInfo& coll) |
| 421 | { |
no test coverage detected