| 209 | } |
| 210 | |
| 211 | bool LaraDeflectEdgeMonkey(ItemInfo* item, CollisionInfo* coll) |
| 212 | { |
| 213 | // HACK |
| 214 | if (coll->Shift.Position.y >= 0 && coll->Shift.Position.y <= CLICK(1.25f)) |
| 215 | coll->Shift.Position.y = 0; |
| 216 | |
| 217 | if (coll->CollisionType == CollisionType::Front || coll->CollisionType == CollisionType::TopFront || |
| 218 | coll->HitTallObject) |
| 219 | { |
| 220 | ShiftItem(item, coll); |
| 221 | |
| 222 | item->Animation.TargetState = LS_MONKEY_IDLE; |
| 223 | item->Animation.Velocity.z = 0; |
| 224 | item->Animation.IsAirborne = false; |
| 225 | return true; |
| 226 | } |
| 227 | |
| 228 | if (coll->CollisionType == CollisionType::Left) |
| 229 | { |
| 230 | ShiftItem(item, coll); |
| 231 | item->Pose.Orientation.y += coll->DiagonalStepAtLeft() ? DEFLECT_DIAGONAL_ANGLE : DEFLECT_STRAIGHT_ANGLE; |
| 232 | } |
| 233 | else if (coll->CollisionType == CollisionType::Right) |
| 234 | { |
| 235 | ShiftItem(item, coll); |
| 236 | item->Pose.Orientation.y -= coll->DiagonalStepAtRight() ? DEFLECT_DIAGONAL_ANGLE : DEFLECT_STRAIGHT_ANGLE; |
| 237 | } |
| 238 | |
| 239 | return false; |
| 240 | } |
| 241 | |
| 242 | void LaraCollideStop(ItemInfo* item, CollisionInfo* coll) |
| 243 | { |
no test coverage detected