From 7c1e1fd0db64e2e24475c0cc244cfd29d018de3c Mon Sep 17 00:00:00 2001 From: Bart van Strien Date: Sun, 8 Jan 2012 13:27:10 +0100 Subject: [PATCH] Return nil if the raycasts don't hit anything (issue #335) --- src/modules/physics/box2d/Fixture.cpp | 3 ++- src/modules/physics/box2d/Shape.cpp | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/modules/physics/box2d/Fixture.cpp b/src/modules/physics/box2d/Fixture.cpp index 641cc5107..1b6975a69 100644 --- a/src/modules/physics/box2d/Fixture.cpp +++ b/src/modules/physics/box2d/Fixture.cpp @@ -273,7 +273,8 @@ namespace box2d input.maxFraction = maxFraction; b2Transform transform(b2Vec2(x, y), b2Rot(r)); b2RayCastOutput output; - fixture->RayCast(&output, input, childIndex); + if (!fixture->RayCast(&output, input, childIndex)) + return 0; // Nothing hit. lua_pushnumber(L, Physics::scaleUp(output.normal.x)); lua_pushnumber(L, Physics::scaleUp(output.normal.y)); lua_pushnumber(L, output.fraction); diff --git a/src/modules/physics/box2d/Shape.cpp b/src/modules/physics/box2d/Shape.cpp index e8df14369..b9cf4d6b9 100644 --- a/src/modules/physics/box2d/Shape.cpp +++ b/src/modules/physics/box2d/Shape.cpp @@ -107,7 +107,8 @@ namespace box2d input.maxFraction = maxFraction; b2Transform transform(b2Vec2(x, y), b2Rot(r)); b2RayCastOutput output; - shape->RayCast(&output, input, transform, childIndex); + if (!shape->RayCast(&output, input, transform, childIndex)) + return 0; // No hit. lua_pushnumber(L, Physics::scaleUp(output.normal.x)); lua_pushnumber(L, Physics::scaleUp(output.normal.y)); lua_pushnumber(L, output.fraction);