Using latest changeset 593639000823 of love-android

This commit is contained in:
fysx
2015-01-16 12:31:11 +01:00
parent f46115e794
commit fd9e9758a9
397 changed files with 1625 additions and 971 deletions
@@ -1,5 +1,5 @@
/**
* Copyright (c) 2006-2014 LOVE Development Team
* Copyright (c) 2006-2015 LOVE Development Team
*
* This software is provided 'as-is', without any express or implied
* warranty. In no event will the authors be held liable for any damages
@@ -21,6 +21,7 @@
// LOVE
#include "wrap_Joint.h"
#include "common/StringMap.h"
#include "Body.h"
namespace love
{
@@ -29,6 +30,40 @@ namespace physics
namespace box2d
{
void luax_pushjoint(lua_State *L, Joint *j)
{
if (j == nullptr)
return lua_pushnil(L);
switch (j->getType())
{
case Joint::JOINT_DISTANCE:
return luax_pushtype(L, "DistanceJoint", PHYSICS_DISTANCE_JOINT_T, j);
case Joint::JOINT_REVOLUTE:
return luax_pushtype(L, "RevoluteJoint", PHYSICS_REVOLUTE_JOINT_T, j);
case Joint::JOINT_PRISMATIC:
return luax_pushtype(L, "PrismaticJoint", PHYSICS_PRISMATIC_JOINT_T, j);
case Joint::JOINT_MOUSE:
return luax_pushtype(L, "MouseJoint", PHYSICS_MOUSE_JOINT_T, j);
case Joint::JOINT_PULLEY:
return luax_pushtype(L, "PulleyJoint", PHYSICS_PULLEY_JOINT_T, j);
case Joint::JOINT_GEAR:
return luax_pushtype(L, "GearJoint", PHYSICS_GEAR_JOINT_T, j);
case Joint::JOINT_FRICTION:
return luax_pushtype(L, "FrictionJoint", PHYSICS_FRICTION_JOINT_T, j);
case Joint::JOINT_WELD:
return luax_pushtype(L, "WeldJoint", PHYSICS_WELD_JOINT_T, j);
case Joint::JOINT_WHEEL:
return luax_pushtype(L, "WheelJoint", PHYSICS_WHEEL_JOINT_T, j);
case Joint::JOINT_ROPE:
return luax_pushtype(L, "RopeJoint", PHYSICS_ROPE_JOINT_T, j);
case Joint::JOINT_MOTOR:
return luax_pushtype(L, "MotorJoint", PHYSICS_MOTOR_JOINT_T, j);
default:
return lua_pushnil(L);
}
}
Joint *luax_checkjoint(lua_State *L, int idx)
{
Joint *t = luax_checktype<Joint>(L, idx, "Joint", PHYSICS_JOINT_T);
@@ -46,6 +81,22 @@ int w_Joint_getType(lua_State *L)
return 1;
}
int w_Joint_getBodies(lua_State *L)
{
Joint *t = luax_checkjoint(L, 1);
Body *b1 = nullptr;
Body *b2 = nullptr;
luax_catchexcept(L, [&]() {
b1 = t->getBodyA();
b2 = t->getBodyB();
});
luax_pushtype(L, "Body", PHYSICS_BODY_T, b1);
luax_pushtype(L, "Body", PHYSICS_BODY_T, b2);
return 2;
}
int w_Joint_getAnchors(lua_State *L)
{
Joint *t = luax_checkjoint(L, 1);
@@ -96,9 +147,17 @@ int w_Joint_destroy(lua_State *L)
return 0;
}
int w_Joint_isDestroyed(lua_State *L)
{
Joint *t = luax_checktype<Joint>(L, 1, "Joint", PHYSICS_JOINT_T);
luax_pushboolean(L, !t->isValid());
return 1;
}
static const luaL_Reg functions[] =
{
{ "getType", w_Joint_getType },
{ "getBodies", w_Joint_getBodies },
{ "getAnchors", w_Joint_getAnchors },
{ "getReactionForce", w_Joint_getReactionForce },
{ "getReactionTorque", w_Joint_getReactionTorque },
@@ -106,6 +165,7 @@ static const luaL_Reg functions[] =
{ "setUserData", w_Joint_setUserData },
{ "getUserData", w_Joint_getUserData },
{ "destroy", w_Joint_destroy },
{ "isDestroyed", w_Joint_isDestroyed },
{ 0, 0 }
};