Browse Source

Restored the destroy method for objects in love.physics.

rude 16 years ago
parent
commit
2a9b2b608c

+ 2 - 2
platform/msvc2008/love.vcproj

@@ -61,7 +61,7 @@
 			/>
 			<Tool
 				Name="VCLinkerTool"
-				AdditionalDependencies="lua.lib SDLmain.lib SDL.lib opengl32.lib glu32.lib DevIL.lib freetype.lib physfs.lib ws2_32.lib openal32.lib libmodplug.lib libmpg123.lib libogg.lib libvorbis.lib libvorbisfile.lib libFLAC_static_d.lib libFLAC++_static_d.lib"
+				AdditionalDependencies="lua.lib d/SDLmain.lib d/SDL.lib opengl32.lib glu32.lib DevIL.lib freetype.lib physfs.lib ws2_32.lib openal32.lib libmodplug.lib libmpg123.lib libogg.lib libvorbis.lib libvorbisfile.lib libFLAC_static_d.lib libFLAC++_static_d.lib"
 				AdditionalLibraryDirectories="lib;Debug"
 				GenerateDebugInformation="true"
 				SubSystem="1"
@@ -135,7 +135,7 @@
 			<Tool
 				Name="VCLinkerTool"
 				AdditionalDependencies="lua.lib SDLmain.lib SDL.lib opengl32.lib glu32.lib DevIL.lib freetype.lib physfs.lib ws2_32.lib openal32.lib libmodplug.lib libmpg123.lib libogg.lib libvorbis.lib libvorbisfile.lib libFLAC_static.lib libFLAC++_static.lib"
-				AdditionalLibraryDirectories="lib;Release"
+				AdditionalLibraryDirectories="lib;lib/r;Release"
 				GenerateDebugInformation="false"
 				SubSystem="2"
 				OptimizeReferences="2"

+ 8 - 0
src/modules/physics/box2d/wrap_Body.cpp

@@ -398,6 +398,13 @@ namespace box2d
 		return 0;
 	}
 
+	int w_Body_destroy(lua_State * L)
+	{
+		Body * t = luax_checkbody(L, 1);
+		t->release();
+		return 0;
+	}
+
 	static const luaL_Reg functions[] = {
 		{ "getX", w_Body_getX },
 		{ "getY", w_Body_getY },
@@ -439,6 +446,7 @@ namespace box2d
 		{ "setAllowSleeping", w_Body_setAllowSleeping },
 		{ "putToSleep", w_Body_putToSleep },
 		{ "wakeUp", w_Body_wakeUp },
+		{ "destroy", w_Body_destroy },
 		{ 0, 0 }
 	};
 

+ 1 - 0
src/modules/physics/box2d/wrap_Body.h

@@ -73,6 +73,7 @@ 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_destroy(lua_State * L);
 	int luaopen_body(lua_State * L);
 
 } // box2d

+ 1 - 0
src/modules/physics/box2d/wrap_CircleShape.cpp

@@ -61,6 +61,7 @@ namespace box2d
 		{ "setData", w_Shape_setData },
 		{ "getData", w_Shape_getData },
 		{ "getBoundingBox", w_Shape_getBoundingBox },
+		{ "destroy", w_Shape_destroy },
 		{ 0, 0 }
 	};
 

+ 1 - 0
src/modules/physics/box2d/wrap_DistanceJoint.cpp

@@ -90,6 +90,7 @@ namespace box2d
 		{ "getReactionTorque", w_Joint_getReactionTorque },
 		{ "setCollideConnected", w_Joint_setCollideConnected },
 		{ "getCollideConnected", w_Joint_getCollideConnected },
+		{ "destroy", w_Joint_destroy },
 		{ 0, 0 }
 	};
 

+ 1 - 0
src/modules/physics/box2d/wrap_GearJoint.cpp

@@ -56,6 +56,7 @@ namespace box2d
 		{ "getReactionTorque", w_Joint_getReactionTorque },
 		{ "setCollideConnected", w_Joint_setCollideConnected },
 		{ "getCollideConnected", w_Joint_getCollideConnected },
+		{ "destroy", w_Joint_destroy },
 		{ 0, 0 }
 	};
 

+ 8 - 0
src/modules/physics/box2d/wrap_Joint.cpp

@@ -78,6 +78,13 @@ namespace box2d
 		return 1;
 	}
 
+	int w_Joint_destroy(lua_State * L)
+	{
+		Joint * t = luax_checkjoint(L, 1);
+		t->release();
+		return 0;
+	}
+
 	static const luaL_Reg functions[] = {
 		{ "getType", w_Joint_getType },
 		{ "getAnchors", w_Joint_getAnchors },
@@ -85,6 +92,7 @@ namespace box2d
 		{ "getReactionTorque", w_Joint_getReactionTorque },
 		{ "setCollideConnected", w_Joint_setCollideConnected },
 		{ "getCollideConnected", w_Joint_getCollideConnected },
+		{ "destroy", w_Joint_destroy },
 		{ 0, 0 }
 	};
 

+ 1 - 0
src/modules/physics/box2d/wrap_Joint.h

@@ -38,6 +38,7 @@ namespace box2d
 	int w_Joint_getReactionTorque(lua_State * L);
 	int w_Joint_setCollideConnected(lua_State * L);
 	int w_Joint_getCollideConnected(lua_State * L);
+	int w_Joint_destroy(lua_State * L);
 	int luaopen_joint(lua_State * L);
 
 } // box2d

+ 1 - 0
src/modules/physics/box2d/wrap_MouseJoint.cpp

@@ -74,6 +74,7 @@ namespace box2d
 		{ "getReactionTorque", w_Joint_getReactionTorque },
 		{ "setCollideConnected", w_Joint_setCollideConnected },
 		{ "getCollideConnected", w_Joint_getCollideConnected },
+		{ "destroy", w_Joint_destroy },
 		{ 0, 0 }
 	};
 

+ 1 - 0
src/modules/physics/box2d/wrap_PolygonShape.cpp

@@ -61,6 +61,7 @@ namespace box2d
 		{ "setData", w_Shape_setData },
 		{ "getData", w_Shape_getData },
 		{ "getBoundingBox", w_Shape_getBoundingBox },
+		{ "destroy", w_Shape_destroy },
 		{ 0, 0 }
 	};
 

+ 1 - 0
src/modules/physics/box2d/wrap_PrismaticJoint.cpp

@@ -183,6 +183,7 @@ namespace box2d
 		{ "getReactionTorque", w_Joint_getReactionTorque },
 		{ "setCollideConnected", w_Joint_setCollideConnected },
 		{ "getCollideConnected", w_Joint_getCollideConnected },
+		{ "destroy", w_Joint_destroy },
 		{ 0, 0 }
 	};
 

+ 1 - 0
src/modules/physics/box2d/wrap_PulleyJoint.cpp

@@ -115,6 +115,7 @@ namespace box2d
 		{ "getReactionTorque", w_Joint_getReactionTorque },
 		{ "setCollideConnected", w_Joint_setCollideConnected },
 		{ "getCollideConnected", w_Joint_getCollideConnected },
+		{ "destroy", w_Joint_destroy },
 		{ 0, 0 }
 	};
 

+ 1 - 0
src/modules/physics/box2d/wrap_RevoluteJoint.cpp

@@ -183,6 +183,7 @@ namespace box2d
 		{ "getReactionTorque", w_Joint_getReactionTorque },
 		{ "setCollideConnected", w_Joint_setCollideConnected },
 		{ "getCollideConnected", w_Joint_getCollideConnected },
+		{ "destroy", w_Joint_destroy },
 		{ 0, 0 }
 	};
 

+ 8 - 0
src/modules/physics/box2d/wrap_Shape.cpp

@@ -198,6 +198,13 @@ namespace box2d
 		return t->getBoundingBox(L);
 	}
 
+	int w_Shape_destroy(lua_State * L)
+	{
+		Shape * t = luax_checkshape(L, 1);
+		t->release();
+		return 0;
+	}
+
 	static const luaL_Reg functions[] = {
 		{ "getType", w_Shape_getType },
 		{ "setFriction", w_Shape_setFriction },
@@ -219,6 +226,7 @@ namespace box2d
 		{ "setData", w_Shape_setData },
 		{ "getData", w_Shape_getData },
 		{ "getBoundingBox", w_Shape_getBoundingBox },
+		{ "destroy", w_Shape_destroy },
 		{ 0, 0 }
 	};
 

+ 1 - 0
src/modules/physics/box2d/wrap_Shape.h

@@ -53,6 +53,7 @@ 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_destroy(lua_State * L);
 	int luaopen_shape(lua_State * L);
 
 } // box2d