From 055238659b42e8b6b29d71aea2b46de2dba24ce8 Mon Sep 17 00:00:00 2001 From: Bill Meltsner Date: Sat, 24 Sep 2011 13:51:11 -0400 Subject: [PATCH] Change Contact callbacks to pass the actual Fixtures instead of just the userdata --HG-- branch : box2d-update --- src/modules/physics/box2d/World.cpp | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/modules/physics/box2d/World.cpp b/src/modules/physics/box2d/World.cpp index dc368517f..110a1b80a 100644 --- a/src/modules/physics/box2d/World.cpp +++ b/src/modules/physics/box2d/World.cpp @@ -76,22 +76,22 @@ namespace box2d // Push the function. ref->push(); - // Push first userdata. + // Push first fixture. { - fixtureudata * d = (fixtureudata *)(contacts[i]->contact->GetFixtureA()->GetUserData()); - if(d->ref != 0) - d->ref->push(); + Fixture * a = (Fixture *)Memoizer::find(contacts[i]->contact->GetFixtureA()); + if(a != 0) + luax_newtype(L, "Fixture", PHYSICS_FIXTURE_T, (void*)a); else - lua_pushnil(L); + throw love::Exception("A fixture has escaped Memoizer!"); } // Push second userdata. { - fixtureudata * d = (fixtureudata *)(contacts[i]->contact->GetFixtureB()->GetUserData()); - if(d->ref != 0) - d->ref->push(); + Fixture * b = (Fixture *)Memoizer::find(contacts[i]->contact->GetFixtureB()); + if(b != 0) + luax_newtype(L, "Fixture", PHYSICS_FIXTURE_T, (void*)b); else - lua_pushnil(L); + throw love::Exception("A fixture has escaped Memoizer!"); } luax_newtype(L, "Contact", (PHYSICS_CONTACT_T), (void*)contacts[i], false);