Added get/setGroupIndex (#129) and get/setFixedRotation (#113). Also fixed 3000 auto.lua-related warnings in MSVC.

This commit is contained in:
rude
2010-01-04 20:02:36 +01:00
parent 6fde5de6b6
commit cd24dbcb8e
13 changed files with 77 additions and 5 deletions
@@ -892,7 +892,7 @@ namespace opengl
luax_register_module(L, w);
if (luaL_loadbuffer(L, graphics_lua, sizeof(graphics_lua), "graphics.lua") == 0)
if (luaL_loadbuffer(L, (const char *)graphics_lua, sizeof(graphics_lua), "graphics.lua") == 0)
lua_call(L, 0, 0);
return 0;
+13
View File
@@ -282,6 +282,19 @@ namespace box2d
body->WakeUp();
}
void Body::setFixedRotation(bool fixed)
{
if(fixed)
body->m_flags |= b2Body::e_fixedRotationFlag;
else
body->m_flags |= ~(b2Body::e_fixedRotationFlag);
}
bool Body::getFixedRotation() const
{
return (body->m_flags & b2Body::e_fixedRotationFlag) != 0;
}
b2Vec2 Body::getVector(lua_State * L)
{
love::luax_assert_argc(L, 2, 2);
+2
View File
@@ -331,6 +331,8 @@ namespace box2d
**/
void wakeUp();
void setFixedRotation(bool fixed);
bool getFixedRotation() const;
private:
/**
+14
View File
@@ -183,6 +183,20 @@ namespace box2d
return 0;
}
void Shape::setGroupIndex(int index)
{
b2FilterData f = shape->GetFilterData();
f.groupIndex = (uint16)index;
shape->SetFilterData(f);
shape->GetBody()->GetWorld()->Refilter(shape);
}
int Shape::getGroupIndex() const
{
b2FilterData f = shape->GetFilterData();
return f.groupIndex;
}
int Shape::getCategory(lua_State * L)
{
return pushBits(L, shape->GetFilterData().categoryBits);
+3
View File
@@ -168,6 +168,9 @@ namespace box2d
**/
void getFilterData(int * v);
void setGroupIndex(int index);
int getGroupIndex() const;
int setCategory(lua_State * L);
int setMask(lua_State * L);
int getCategory(lua_State * L);
+18
View File
@@ -425,6 +425,22 @@ namespace box2d
return 0;
}
int w_Body_setFixedRotation(lua_State * L)
{
Body * t = luax_checkbody(L, 1);
bool b = luax_toboolean(L, 2);
t->setFixedRotation(b);
return 0;
}
int w_Body_getFixedRotation(lua_State * L)
{
Body * t = luax_checkbody(L, 1);
bool b = t->getFixedRotation();
luax_pushboolean(L, b);
return 1;
}
int w_Body_destroy(lua_State * L)
{
Proxy * p = (Proxy *)lua_touserdata(L, 1);
@@ -477,6 +493,8 @@ namespace box2d
{ "setAllowSleeping", w_Body_setAllowSleeping },
{ "putToSleep", w_Body_putToSleep },
{ "wakeUp", w_Body_wakeUp },
{ "setFixedRotation", w_Body_setFixedRotation },
{ "getFixedRotation", w_Body_getFixedRotation },
{ "destroy", w_Body_destroy },
{ 0, 0 }
};
+2
View File
@@ -73,6 +73,8 @@ namespace box2d
int w_Body_setAllowSleeping(lua_State * L);
int w_Body_putToSleep(lua_State * L);
int w_Body_wakeUp(lua_State * L);
int w_Body_setFixedRotation(lua_State * L);
int w_Body_getFixedRotation(lua_State * L);
int w_Body_destroy(lua_State * L);
int luaopen_body(lua_State * L);
+18
View File
@@ -198,6 +198,22 @@ namespace box2d
return t->getBoundingBox(L);
}
int w_Shape_getGroupIndex(lua_State * L)
{
Shape * t = luax_checkshape(L, 1);
int i = t->getGroupIndex();
lua_pushinteger(L, i);
return 1;
}
int w_Shape_setGroupIndex(lua_State * L)
{
Shape * t = luax_checkshape(L, 1);
int i = luaL_checkint(L, 2);
t->setGroupIndex(i);
return 0;
}
int w_Shape_destroy(lua_State * L)
{
Proxy * p = (Proxy *)lua_touserdata(L, 1);
@@ -229,6 +245,8 @@ namespace box2d
{ "setData", w_Shape_setData },
{ "getData", w_Shape_getData },
{ "getBoundingBox", w_Shape_getBoundingBox },
{ "getGroupIndex", w_Shape_getGroupIndex },
{ "setGroupIndex", w_Shape_setGroupIndex },
{ "destroy", w_Shape_destroy },
{ 0, 0 }
};
+2
View File
@@ -53,6 +53,8 @@ namespace box2d
int w_Shape_setData(lua_State * L);
int w_Shape_getData(lua_State * L);
int w_Shape_getBoundingBox(lua_State * L);
int w_Shape_getGroupIndex();
int w_Shape_setGroupIndex();
int w_Shape_destroy(lua_State * L);
int luaopen_shape(lua_State * L);