diff options
| author | Alexander <alex@cogarr.net> | 2019-04-24 21:16:08 -0400 |
|---|---|---|
| committer | Alexander <alex@cogarr.net> | 2019-04-24 21:16:08 -0400 |
| commit | 3d60e1432ec43ade4aa61b5a70dd6b8975417e9f (patch) | |
| tree | 954719a0f4a27fe42f9d8113844a21b79ae70f5d /src/client/main.cpp | |
| parent | 42bedce123739287339a95626675ffda3a1ce8e7 (diff) | |
| download | brokengine-3d60e1432ec43ade4aa61b5a70dd6b8975417e9f.tar.gz brokengine-3d60e1432ec43ade4aa61b5a70dd6b8975417e9f.tar.bz2 brokengine-3d60e1432ec43ade4aa61b5a70dd6b8975417e9f.zip | |
updates
Diffstat (limited to 'src/client/main.cpp')
| -rw-r--r-- | src/client/main.cpp | 59 |
1 files changed, 38 insertions, 21 deletions
diff --git a/src/client/main.cpp b/src/client/main.cpp index 6e515ad..0a82e99 100644 --- a/src/client/main.cpp +++ b/src/client/main.cpp @@ -59,10 +59,10 @@ void loadIrrLibs(lua_State* L, IrrlichtDevice* device){ load_iofuncs(L); } -void dropRigidBody(btRigidBody* rb){ - ISceneNode *Node = static_cast<ISceneNode*>(rb->getUserPointer()); - if(Node) - Node->remove(); +void dropCollisionObject(btCollisionObject* rb){ + ISceneNode *node = static_cast<ISceneNode*>(rb->getUserPointer()); + if(node) + node->remove(); } void dropChar(btKinematicCharacterController *a){ @@ -71,6 +71,12 @@ void dropChar(btKinematicCharacterController *a){ node->remove(); } +void dropGhostObject(btGhostObject *ghost){ + ISceneNode *node = (ISceneNode*)ghost->getUserPointer(); + if(node) + node->remove(); +} + // Converts a quaternion to an euler angle void QuaternionToEuler(const btQuaternion &TQuat, btVector3 &TEuler) { btScalar W = TQuat.getW(); @@ -88,20 +94,22 @@ void QuaternionToEuler(const btQuaternion &TQuat, btVector3 &TEuler) { TEuler *= core::RADTODEG; } -void UpdateElement(btRigidBody* TObject){ +void UpdateElement(btCollisionObject* obj){ - if(TObject->getUserPointer() != NULL){ + if(obj->getUserPointer() != NULL){ //UpdateRender(*Iterator); - scene::ISceneNode *Node = static_cast<scene::ISceneNode *>((TObject)->getUserPointer()); + scene::ISceneNode *node = static_cast<scene::ISceneNode *>(obj->getUserPointer()); // Set position - btVector3 Point = TObject->getCenterOfMassPosition(); - Node->setPosition(core::vector3df((f32)Point[0], (f32)Point[1], (f32)Point[2])); + btTransform transform = obj->getWorldTransform(); + btVector3 pos = transform.getOrigin(); + node->setPosition(core::vector3df((f32)pos[0], (f32)pos[1], (f32)pos[2])); - // Set rotation - btVector3 EulerRotation; - QuaternionToEuler(TObject->getOrientation(), EulerRotation); - Node->setRotation(core::vector3df(EulerRotation[0], EulerRotation[1], EulerRotation[2])); + //Set rotation + btQuaternion rot = transform.getRotation(); + btVector3 eulerrot; + QuaternionToEuler(rot,eulerrot); + node->setRotation(core::vector3df(eulerrot[0], eulerrot[1], eulerrot[2])); } } @@ -153,11 +161,13 @@ int main(int argc, char *argv[]){ device->setEventReceiver(&ger); pusherrorfunc(L);//errfunc - switch(luaL_loadfile(state,"init.lua")){//errmsg or nothing + int err = luaL_loadfile(state,"init.lua"); + printf("Error loading init.lua: %d\n",err); + switch(err){//errmsg or nothing case 0: break; //no error case LUA_ERRSYNTAX: - printf("Syntax error, failed to load: %s\n%s","../data/init.lua",lua_tostring(L,-1)); + printf("Syntax error, failed to load: %s\n%s\n","../data/init.lua",lua_tostring(L,-1)); break; case LUA_ERRMEM: printf("Failed to allocate memroy\n"); @@ -169,6 +179,7 @@ int main(int argc, char *argv[]){ //errfunc,initfile() printf("Loaded file\n"); lua_pcall(state,0,0,-2); + printf("Finished running init.lua"); //int iErr = luaL_dofile(state,"init.lua"); //if(iErr != 0){ //printf("Failed to open lua file:%s/init.lua\n",path); @@ -198,17 +209,20 @@ int main(int argc, char *argv[]){ //printf("End gameloop phys\n"); if(device->isWindowActive()){ driver->beginScene(true, true, background); - - lua_getglobal(state,"GAME"); - lua_getfield(state,-1,"draw"); + //printf("Device active, began scene\n"); + pusherrorfunc(state); + lua_getglobal(state,"GAME");//err(),{GAME} + lua_getfield(state,-1,"draw");//err(),{GAME},GAME.draw() if(!lua_isnil(state,-1)){ - lua_call(state,0,0); - lua_pop(state,1); - }else{ + lua_pcall(state,0,0,-3); lua_pop(state,2); + }else{ + lua_pop(state,3); } + //printf("Finished calling GAME.draw()\n"); smgr->drawAll(); + //printf("Scene manager drew all\n"); lua_getglobal(state,"GAME"); lua_getfield(state,-1,"drawPostScene"); if(!lua_isnil(state,-1)){ @@ -217,7 +231,9 @@ int main(int argc, char *argv[]){ }else{ lua_pop(state,2); } + //printf("Post draw scene completed\n"); guienv->drawAll(); + //printf("Gui draw all completed\n"); lua_getglobal(state,"GAME"); lua_getfield(state,-1,"drawPostGui"); if(!lua_isnil(state,-1)){ @@ -226,6 +242,7 @@ int main(int argc, char *argv[]){ }else{ lua_pop(state,2); } + //printf("GAME.drawPostGui completed\n"); driver->endScene(); }else{ device->yield(); |
