mirror of
https://github.com/love2d/love.git
synced 2026-08-15 15:51:12 +02:00
Added get/setGroupIndex (#129) and get/setFixedRotation (#113). Also fixed 3000 auto.lua-related warnings in MSVC.
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -331,6 +331,8 @@ namespace box2d
|
||||
**/
|
||||
void wakeUp();
|
||||
|
||||
void setFixedRotation(bool fixed);
|
||||
bool getFixedRotation() const;
|
||||
private:
|
||||
|
||||
/**
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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 }
|
||||
};
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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 }
|
||||
};
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user