aboutsummaryrefslogtreecommitdiff
path: root/src/shared
diff options
context:
space:
mode:
authorAlexander <alex@cogarr.net>2019-07-10 14:23:51 -0400
committerAlexander <alex@cogarr.net>2019-07-10 14:23:51 -0400
commitc9db55cdc2f69c3dc7aefabe0cc828a64e377024 (patch)
treeb6735e6b43660ea77f59654f8dd4ad1339b6f9e3 /src/shared
parent456ee9baefb343e98dc94678e05335a547786c2a (diff)
parent6539fbff3d4ecd686676f7c0de6672de38023764 (diff)
downloadbrokengine-c9db55cdc2f69c3dc7aefabe0cc828a64e377024.tar.gz
brokengine-c9db55cdc2f69c3dc7aefabe0cc828a64e377024.tar.bz2
brokengine-c9db55cdc2f69c3dc7aefabe0cc828a64e377024.zip
Started work on cross-platform refactor
Started refactoring the code to work on windows and linux
Diffstat (limited to 'src/shared')
-rw-r--r--src/shared/lua_api/irr/cubenode.cpp6
-rw-r--r--src/shared/lua_api/irr/cubenode.hpp6
-rw-r--r--src/shared/lua_api/phys/bphysbuffer.cpp215
-rw-r--r--src/shared/lua_api/phys/bphysmodel.cpp4
4 files changed, 109 insertions, 122 deletions
diff --git a/src/shared/lua_api/irr/cubenode.cpp b/src/shared/lua_api/irr/cubenode.cpp
deleted file mode 100644
index d7e87bb..0000000
--- a/src/shared/lua_api/irr/cubenode.cpp
+++ /dev/null
@@ -1,6 +0,0 @@
-
-extern "C" {
- #include <lua.h>
- #include <lauxlib.h>
- #include <lualib.h>
-}
diff --git a/src/shared/lua_api/irr/cubenode.hpp b/src/shared/lua_api/irr/cubenode.hpp
deleted file mode 100644
index d7e87bb..0000000
--- a/src/shared/lua_api/irr/cubenode.hpp
+++ /dev/null
@@ -1,6 +0,0 @@
-
-extern "C" {
- #include <lua.h>
- #include <lauxlib.h>
- #include <lualib.h>
-}
diff --git a/src/shared/lua_api/phys/bphysbuffer.cpp b/src/shared/lua_api/phys/bphysbuffer.cpp
index f1f20c0..111b159 100644
--- a/src/shared/lua_api/phys/bphysbuffer.cpp
+++ b/src/shared/lua_api/phys/bphysbuffer.cpp
@@ -15,7 +15,6 @@ extern "C" {
#include <client/lua_api/gameparts.hpp>
#include <shared/lua_api/phys/bphysbox.hpp>
#include "bphysmodel.hpp"
-#include "../scene/igeneric.hpp"
#include <shared/lua_api/common.hpp>
using namespace irr;
@@ -23,7 +22,7 @@ using namespace scene;
using namespace core;
using namespace video;
-extern IrrlichtDevice* device;
+//extern IrrlichtDevice* device;
extern btDiscreteDynamicsWorld* World;
extern core::list<btRigidBody*> Objects;
@@ -36,137 +35,137 @@ static LBPhysNode* checkisbphysmodel(lua_State* L, int index){
//iscenecamera.new(Vector position, Vector lookat, parrent)
// {} {} 0 1
-static int newbphysmodel(lua_State* L){
- printf("Createing bphysbox!\n");
- int nargs = lua_gettop(L);
- if(nargs != 3){
- printf("Incorrect # of args to create a physmodel!");
- }
- //The model for the mesh
- //const char* modelpath = luaL_optstring(L,1,"error");
-
- double x,y,z;
- popvector3d(L,&x,&y,&z);
- printf("Found position for phys model: %f %f %f\n",x,y,z);
+//static int newbphysmodel(lua_State* L){
+ //printf("Createing bphysbox!\n");
+ //int nargs = lua_gettop(L);
+ //if(nargs != 3){
+ //printf("Incorrect # of args to create a physmodel!");
+ //}
+ ////The model for the mesh
+ ////const char* modelpath = luaL_optstring(L,1,"error");
+
+ //double x,y,z;
+ //popvector3d(L,&x,&y,&z);
+ //printf("Found position for phys model: %f %f %f\n",x,y,z);
- //Find the vector scale
- double sx,sy,sz;
- popvector3d(L,&sx,&sy,&sz);
- printf("Found scale for phys model: %f %f %f\n",sx,sy,sz);
+ ////Find the vector scale
+ //double sx,sy,sz;
+ //popvector3d(L,&sx,&sy,&sz);
+ //printf("Found scale for phys model: %f %f %f\n",sx,sy,sz);
- //find the model path
- const char* mpath = luaL_optstring(L,3,"error.obj");
+ ////find the model path
+ //const char* mpath = luaL_optstring(L,3,"error.obj");
- printf("I want to use model %s\n", mpath);
+ //printf("I want to use model %s\n", mpath);
- ISceneManager* smgr = device->getSceneManager();
- IMesh* amesh = smgr->getMesh(mpath);
- IMeshBuffer* bf = amesh->getMeshBuffer(0);
- u32 ni = bf->getIndexCount();
-
- btTriangleMesh* trimesh = new btTriangleMesh();
- for(u32 i = 0; i < ni; i+=3){
- vector3df p1 = bf->getPosition(i + 0);
- vector3df p2 = bf->getPosition(i + 1);
- vector3df p3 = bf->getPosition(i + 2);
- btVector3 b1 = btVector3(p1.X,p1.Y,p1.Z);
- btVector3 b2 = btVector3(p2.X,p2.Y,p2.Z);
- btVector3 b3 = btVector3(p3.X,p3.Y,p3.Z);
- trimesh->addTriangle(b1,b2,b3);
- }
- btCollisionShape* shape = new btConvexTriangleMeshShape(trimesh,true);
- core::vector3df scale = core::vector3df(sx,sy,sz);
- btVector3 pos = btVector3(x,y,z);
- core::vector3df ipos = core::vector3df(x,y,z);
- shape->setLocalScaling(btVector3(sx,sy,sz));
- //Find the mass
- float mass = luaL_optint(L,4,0);
- printf("Found mass for physbox:%f\n",mass);
+ //ISceneManager* smgr = device->getSceneManager();
+ //IMesh* amesh = smgr->getMesh(mpath);
+ //IMeshBuffer* bf = amesh->getMeshBuffer(0);
+ //u32 ni = bf->getIndexCount();
+
+ //btTriangleMesh* trimesh = new btTriangleMesh();
+ //for(u32 i = 0; i < ni; i+=3){
+ //vector3df p1 = bf->getPosition(i + 0);
+ //vector3df p2 = bf->getPosition(i + 1);
+ //vector3df p3 = bf->getPosition(i + 2);
+ //btVector3 b1 = btVector3(p1.X,p1.Y,p1.Z);
+ //btVector3 b2 = btVector3(p2.X,p2.Y,p2.Z);
+ //btVector3 b3 = btVector3(p3.X,p3.Y,p3.Z);
+ //trimesh->addTriangle(b1,b2,b3);
+ //}
+ //btCollisionShape* shape = new btConvexTriangleMeshShape(trimesh,true);
+ //core::vector3df scale = core::vector3df(sx,sy,sz);
+ //btVector3 pos = btVector3(x,y,z);
+ //core::vector3df ipos = core::vector3df(x,y,z);
+ //shape->setLocalScaling(btVector3(sx,sy,sz));
+ ////Find the mass
+ //float mass = luaL_optint(L,4,0);
+ //printf("Found mass for physbox:%f\n",mass);
- // Create an Irrlicht cube
- scene::ISceneNode* Node = smgr->addMeshSceneNode(
- amesh,
- (ISceneNode*)0,
- (s32)-1,
- ipos,
- vector3df(0,0,0),
- scale
- );
- //Node->setScale(scale);
+ //// Create an Irrlicht cube
+ //scene::ISceneNode* Node = smgr->addMeshSceneNode(
+ //amesh,
+ //(ISceneNode*)0,
+ //(s32)-1,
+ //ipos,
+ //vector3df(0,0,0),
+ //scale
+ //);
+ ////Node->setScale(scale);
- printf("Added cube scene node and set it's scale\n");
+ //printf("Added cube scene node and set it's scale\n");
- //Node->setMaterialFlag(video::EMF_WIREFRAME,true)
- //Node->setMaterialFlag(video::EMF_NORMALIZE_NORMALS, true);
- Node->setMaterialFlag(video::EMF_LIGHTING,true);
- //Node->setMaterialTexture(0, device->getVideoDriver()->getTexture("../data/wall.jpg"));
+ ////Node->setMaterialFlag(video::EMF_WIREFRAME,true)
+ ////Node->setMaterialFlag(video::EMF_NORMALIZE_NORMALS, true);
+ //Node->setMaterialFlag(video::EMF_LIGHTING,true);
+ ////Node->setMaterialTexture(0, device->getVideoDriver()->getTexture("../data/wall.jpg"));
- printf("Set node's lighting stuff...\n");
+ //printf("Set node's lighting stuff...\n");
- // Set the initial position of the object
- btTransform Transform;
- Transform.setIdentity();
- Transform.setOrigin(pos);
+ //// Set the initial position of the object
+ //btTransform Transform;
+ //Transform.setIdentity();
+ //Transform.setOrigin(pos);
- printf("Created transform at pos...\n");
+ //printf("Created transform at pos...\n");
- // Give it a default MotionState
- btDefaultMotionState *MotionState = new btDefaultMotionState(Transform);
+ //// Give it a default MotionState
+ //btDefaultMotionState *MotionState = new btDefaultMotionState(Transform);
- // Create the shape
- // btVector3 HalfExtents(sx * 0.5f, sy * 0.5f, sz * 0.5f);
- // btCollisionShape *Shape = new btBoxShape(HalfExtents);
+ //// Create the shape
+ //// btVector3 HalfExtents(sx * 0.5f, sy * 0.5f, sz * 0.5f);
+ //// btCollisionShape *Shape = new btBoxShape(HalfExtents);
- printf("Created collision shape...");
+ //printf("Created collision shape...");
- // Add mass
- btVector3 LocalInertia;
- shape->calculateLocalInertia(mass, LocalInertia);
+ //// Add mass
+ //btVector3 LocalInertia;
+ //shape->calculateLocalInertia(mass, LocalInertia);
- // Create the rigid body object
- btRigidBody *RigidBody = new btRigidBody(mass, MotionState, shape, LocalInertia);
+ //// Create the rigid body object
+ //btRigidBody *RigidBody = new btRigidBody(mass, MotionState, shape, LocalInertia);
- printf("Created rigidboxy...");
+ //printf("Created rigidboxy...");
- // Store a pointer to the irrlicht node so we can update it later
- RigidBody->setUserPointer((void *)(Node));
+ //// Store a pointer to the irrlicht node so we can update it later
+ //RigidBody->setUserPointer((void *)(Node));
- printf("Set user pointer");
+ //printf("Set user pointer");
- // Add it to the world
- World->addRigidBody(RigidBody);
- printf("Added to world");
- Objects.push_back(RigidBody);
+ //// Add it to the world
+ //World->addRigidBody(RigidBody);
+ //printf("Added to world");
+ //Objects.push_back(RigidBody);
- //Register it's callback
- printf("Everything created, makeing the lua representation\n");
+ ////Register it's callback
+ //printf("Everything created, makeing the lua representation\n");
- //Create it's lua representation
- LBPhysNode* pnode = (LBPhysNode*)lua_newuserdata(L, sizeof(LBPhysNode));
- int tref = luaL_ref(L,LUA_REGISTRYINDEX);
- //iguielements[lcam] = tref;
- lua_rawgeti(L,LUA_REGISTRYINDEX,tref);//Put it back on the stack since luaL_ref pops the object.
+ ////Create it's lua representation
+ //LBPhysNode* pnode = (LBPhysNode*)lua_newuserdata(L, sizeof(LBPhysNode));
+ //int tref = luaL_ref(L,LUA_REGISTRYINDEX);
+ ////iguielements[lcam] = tref;
+ //lua_rawgeti(L,LUA_REGISTRYINDEX,tref);//Put it back on the stack since luaL_ref pops the object.
- //Set it's metatable
- luaL_getmetatable(L, "phys.physmodel");
- lua_setmetatable(L, -2);
+ ////Set it's metatable
+ //luaL_getmetatable(L, "phys.physmodel");
+ //lua_setmetatable(L, -2);
- //Create the struct
- pnode->n = Node;
- pnode->r = RigidBody;
- pnode->funcmap = hashmap_new();
- pnode->type = "bphysbox";
+ ////Create the struct
+ //pnode->n = Node;
+ //pnode->r = RigidBody;
+ //pnode->funcmap = hashmap_new();
+ //pnode->type = "bphysbox";
- printf("Done createing lua representation!\n");
- //Free up anything made in this function
- //free(label);
+ //printf("Done createing lua representation!\n");
+ ////Free up anything made in this function
+ ////free(label);
- //Put it on top and return it
- lua_rawgeti(L,LUA_REGISTRYINDEX,tref);
- return 1;
-}
+ ////Put it on top and return it
+ //lua_rawgeti(L,LUA_REGISTRYINDEX,tref);
+ //return 1;
+//}
static const luaL_reg bphysbuffer_f[] = {
@@ -185,9 +184,9 @@ static const luaL_reg bphysbuffer_m[] = {
{0, 0},
};
-void bphysbuffer_register(lua_State* L, IrrlichtDevice* d){
+void bphysbuffer_register(lua_State* L){
- device = d;
+ //device = d;
luaL_newmetatable(L, "phys.physbuffer");//{m_physbuffer}
lua_newtable(L);//{m_physbuffer},{}
diff --git a/src/shared/lua_api/phys/bphysmodel.cpp b/src/shared/lua_api/phys/bphysmodel.cpp
index a89a28f..0cff0ed 100644
--- a/src/shared/lua_api/phys/bphysmodel.cpp
+++ b/src/shared/lua_api/phys/bphysmodel.cpp
@@ -66,8 +66,8 @@ void makebphysmodel(lua_State *L){
printf("Tinyobj failed to load model:%s\n",ppath);
}
//u32 meshcount = pmesh->getMeshBufferCount();
- __mingw_printf("attrib.num_vertices: %u\n",attrib.num_vertices);
- __mingw_printf("attrib.num_faces: %u\n",attrib.num_faces);
+ //__mingw_printf("attrib.num_vertices: %u\n",attrib.num_vertices);
+ //__mingw_printf("attrib.num_faces: %u\n",attrib.num_faces);
btTriangleMesh* trimesh = new btTriangleMesh();
for(size_t i = 0; i < attrib.num_vertices; i++){ //0 - x, so num_vertices - 1
//__mingw_printf("Looking at vertice %llu/%u\n",i,attrib.num_vertices);