void ContactListener::EndContact(b2Contact *contact) { GameObject *o1 = (GameObject*)contact->GetFixtureA()->GetBody()->GetUserData(); GameObject *o2 = (GameObject*)contact->GetFixtureB()->GetBody()->GetUserData(); if(IS_HORIZONTALPLATFORM(o1, o2) && IS_PLAYER(o1, o2)) { isTouchingHorizontalPlatform = NO; isTouchingPlatform = NO; } if(IS_VERTICALPLATFORM(o1, o2) && IS_PLAYER(o1, o2)) { isTouchingVerticalPlatform = NO; isTouchingPlatform = NO; } if(IS_GROUND(o1, o2) && IS_PLAYER(o1, o2)) isTouchingGround = NO; if(IS_PLATFORM(o1, o2) && IS_PLAYER(o1, o2)) isTouchingPlatform = NO; if(IS_SWITCH1A(o1, o2) && IS_PLAYER(o1, o2)) isTouchingSwitch1A = NO; if(IS_SWITCH1B(o1, o2) && IS_PLAYER(o1, o2)) isTouchingSwitch1B = NO; }