From: DaveG <da...@us...> - 2006-03-03 00:05:19
|
Update of /cvsroot/planeshift/planeshift/src/server In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19981/src/server Modified Files: gem.cpp Log Message: fixing the bug where actor position acts weird after a morph Index: gem.cpp =================================================================== RCS file: /cvsroot/planeshift/planeshift/src/server/gem.cpp,v retrieving revision 1.325 retrieving revision 1.326 diff -C2 -d -r1.325 -r1.326 *** gem.cpp 22 Feb 2006 22:19:43 -0000 1.325 --- gem.cpp 3 Mar 2006 00:05:08 -0000 1.326 *************** *** 555,559 **** self_reference.AttachNew(new gemObjectSafe(this)); - csRef<iCelPropertyClass> pc; entity = cel->CreateEntity(this); entity->SetName(name); --- 555,558 ---- *************** *** 564,568 **** { Error1("Could not create Item because mesh could not be Init'd."); ! Error4( "Name: %s Factory: %s File: %s\n", name, factname, filename ); entity = NULL; return; --- 563,567 ---- { Error1("Could not create Item because mesh could not be Init'd."); ! Error4("Name: %s Factory: %s File: %s\n", name, factname, filename ); entity = NULL; return; *************** *** 673,683 **** } - iMeshWrapper* mesh = pcmesh->GetMesh(); - if ( !mesh ) - { - Error1("Could not create Item because pcmesh didn't have iMeshWrapper."); - return false; - } - Move(pos,rotangle,room); --- 672,675 ---- *************** *** 2823,2833 **** if ( psserver->vfs->Exists(newmesh) ) { ! factname = meshname; ! filename = newmesh; ! if ( InitMesh(name,factname,filename,pos,yRot,sector,NULL) ) { ! UpdateProxList(true); ! return true; } } --- 2815,2841 ---- if ( psserver->vfs->Exists(newmesh) ) { ! // Get current position to give to the newly set mesh ! csVector3 pos; ! float angle; ! iSector* sector; ! GetPosition(pos,angle,sector); ! if ( pcmesh->SetMesh(meshname,newmesh) ) { ! SetPosition(pos,angle,sector); ! MulticastDRUpdate(); ! ! if ( pcmesh->GetMesh() ) ! { ! factname = meshname; ! filename = newmesh; ! ! UpdateProxList(true); ! return true; ! } ! else ! { ! CS_ASSERT( ResetMesh() ); ! } } } |