diff --git a/CMakeLists.txt b/CMakeLists.txt index eccb2b075..77ca19899 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -13,6 +13,7 @@ ENDIF (NOT CMAKE_BUILD_TYPE) OPTION(USE_DOUBLE_PRECISION "Use double precision" OFF) OPTION(USE_GRAPHICAL_BENCHMARK "Use Graphical Benchmark" OFF) + IF (WIN32) OPTION(CREATE_MSVC_RELATIVE_PATH_PROJECTFILES "Create MSVC projectfiles with relative paths" OFF) IF (CREATE_MSVC_RELATIVE_PATH_PROJECTFILES) @@ -21,6 +22,11 @@ SET(CMAKE_USE_RELATIVE_PATHS 1) ENDIF(CREATE_MSVC_RELATIVE_PATH_PROJECTFILES) ENDIF (WIN32) +OPTION(INTERNAL_UPDATE_SERIALIZATION_STRUCTURES "Internal update serialization structures" OFF) +IF (INTERNAL_UPDATE_SERIALIZATION_STRUCTURES) +ADD_DEFINITIONS( -DBT_INTERNAL_UPDATE_SERIALIZATION_STRUCTURES) +ENDIF (INTERNAL_UPDATE_SERIALIZATION_STRUCTURES) + IF (USE_DOUBLE_PRECISION) ADD_DEFINITIONS( -DBT_USE_DOUBLE_PRECISION) ENDIF (USE_DOUBLE_PRECISION) @@ -81,8 +87,16 @@ IF (USE_GLUT) IF (MSVC) MESSAGE ("GLUT NOT FOUND, trying to use Bullet/Glut/glut32.lib for MSVC") + + +IF (CMAKE_CL_64) + message("win64 using glut64.lib") + SET(GLUT_glut_LIBRARY ${BULLET_PHYSICS_SOURCE_DIR}/Glut/glut64.lib) +ELSE(CMAKE_CL_64) + message("win32 using glut32.lib") SET(GLUT_glut_LIBRARY ${BULLET_PHYSICS_SOURCE_DIR}/Glut/glut32.lib) - #SET(GLUT_glut_LIBRARY ${BULLET_PHYSICS_SOURCE_DIR}/Glut/glut64.lib) +ENDIF (CMAKE_CL_64) + ENDIF (MSVC) ENDIF (GLUT_FOUND) diff --git a/Demos/BasicDemo/CMakeLists.txt b/Demos/BasicDemo/CMakeLists.txt index 226c5c873..20768ab0c 100644 --- a/Demos/BasicDemo/CMakeLists.txt +++ b/Demos/BasicDemo/CMakeLists.txt @@ -27,6 +27,22 @@ IF (USE_GLUT) BasicDemo.cpp BasicDemo.h ) + + IF (WIN32) + IF (CMAKE_CL_64) + ADD_CUSTOM_COMMAND( + TARGET AppBasicDemo + POST_BUILD + COMMAND ${CMAKE_COMMAND} ARGS -E copy_if_different ${BULLET_PHYSICS_SOURCE_DIR}/glut64.dll ${CMAKE_CURRENT_BINARY_DIR} + ) + ELSE(CMAKE_CL_64) + ADD_CUSTOM_COMMAND( + TARGET AppBasicDemo + POST_BUILD + COMMAND ${CMAKE_COMMAND} ARGS -E copy_if_different ${BULLET_PHYSICS_SOURCE_DIR}/GLUT32.DLL ${CMAKE_CURRENT_BINARY_DIR} + ) + ENDIF(CMAKE_CL_64) + ENDIF(WIN32) ELSE (USE_GLUT) LINK_LIBRARIES( diff --git a/Demos/CMakeLists.txt b/Demos/CMakeLists.txt index e5a220647..05f0e2405 100644 --- a/Demos/CMakeLists.txt +++ b/Demos/CMakeLists.txt @@ -1,4 +1,4 @@ -SUBDIRS( OpenGL BasicDemo Benchmarks Box2dDemo ConcaveDemo ConstraintDemo ConvexDecompositionDemo GenericJointDemo SerializeDemo ) +SUBDIRS( OpenGL BasicDemo Benchmarks Box2dDemo ConcaveDemo ConstraintDemo ConvexDecompositionDemo GimpactTestDemo GenericJointDemo SerializeDemo ) #todo: re-enable the rest of the demos again diff --git a/Demos/ConstraintDemo/CMakeLists.txt b/Demos/ConstraintDemo/CMakeLists.txt index 4d7471399..71473ffec 100644 --- a/Demos/ConstraintDemo/CMakeLists.txt +++ b/Demos/ConstraintDemo/CMakeLists.txt @@ -19,9 +19,6 @@ ${BULLET_PHYSICS_SOURCE_DIR}/Extras/Serialize/BulletWorldImporter ) - - - IF (USE_GLUT) LINK_LIBRARIES( OpenGLSupport BulletWorldImporter BulletDynamics BulletCollision LinearMath BulletFileLoader ${GLUT_glut_LIBRARY} ${OPENGL_gl_LIBRARY} ${OPENGL_glu_LIBRARY} @@ -29,6 +26,7 @@ IF (USE_GLUT) ADD_EXECUTABLE(AppConstraintDemo ConstraintDemo.cpp + ConstraintDemo.h main.cpp ) ELSE (USE_GLUT) diff --git a/Demos/GenericJointDemo/CMakeLists.txt b/Demos/GenericJointDemo/CMakeLists.txt index 6de955ada..08060582b 100644 --- a/Demos/GenericJointDemo/CMakeLists.txt +++ b/Demos/GenericJointDemo/CMakeLists.txt @@ -26,6 +26,7 @@ IF (USE_GLUT) main.cpp ) + ELSE(USE_GLUT) INCLUDE_DIRECTORIES( diff --git a/Demos/GenericJointDemo/GenericJointDemo.cpp b/Demos/GenericJointDemo/GenericJointDemo.cpp index 2ba766fae..7fb2957d0 100644 --- a/Demos/GenericJointDemo/GenericJointDemo.cpp +++ b/Demos/GenericJointDemo/GenericJointDemo.cpp @@ -17,7 +17,6 @@ Originally Written by: Marten Svanfeldt ReWritten by: Francisco León */ -//#define USE_ODE_QUICKSTEP 1 #include "btBulletDynamicsCommon.h" @@ -29,9 +28,6 @@ ReWritten by: Francisco Le #include "GLDebugDrawer.h" #include "GenericJointDemo.h" -#ifdef USE_ODE_QUICKSTEP - #include "OdeConstraintSolver.h" -#endif GLDebugDrawer debugDrawer; @@ -56,12 +52,7 @@ void GenericJointDemo::initPhysics() btVector3 worldAabbMax(10000,10000,10000); btBroadphaseInterface* overlappingPairCache = new btAxisSweep3 (worldAabbMin, worldAabbMax); -#ifdef USE_ODE_QUICKSTEP - btConstraintSolver* constraintSolver = new OdeConstraintSolver(); -#else btConstraintSolver* constraintSolver = new btSequentialImpulseConstraintSolver; -#endif - m_dynamicsWorld = new btDiscreteDynamicsWorld(dispatcher,overlappingPairCache,constraintSolver,collision_config); diff --git a/Demos/GimpactTestDemo/CMakeLists.txt b/Demos/GimpactTestDemo/CMakeLists.txt index 1eb0a5b85..79364743a 100644 --- a/Demos/GimpactTestDemo/CMakeLists.txt +++ b/Demos/GimpactTestDemo/CMakeLists.txt @@ -9,17 +9,35 @@ # You shouldn't have to modify anything below this line ######################################################## +IF (USE_GLUT) + INCLUDE_DIRECTORIES( + ${BULLET_PHYSICS_SOURCE_DIR}/src ${BULLET_PHYSICS_SOURCE_DIR}/Demos/OpenGL + ) -INCLUDE_DIRECTORIES( -${BULLET_PHYSICS_SOURCE_DIR}/src ${BULLET_PHYSICS_SOURCE_DIR}/Demos/OpenGL -) + LINK_LIBRARIES( + OpenGLSupport BulletDynamics BulletCollision LinearMath GIMPACTUtils ConvexDecomposition ${GLUT_glut_LIBRARY} ${OPENGL_gl_LIBRARY} ${OPENGL_glu_LIBRARY} + ) -LINK_LIBRARIES( -OpenGLSupport BulletDynamics BulletCollision LinearMath GIMPACTUtils ConvexDecomposition ${GLUT_glut_LIBRARY} ${OPENGL_gl_LIBRARY} ${OPENGL_glu_LIBRARY} -) + ADD_EXECUTABLE(AppGimpactTestDemo + GimpactTestDemo.cpp + GimpactTestDemo.h + main.cpp + ) +ELSE(USE_GLUT) -ADD_EXECUTABLE(AppGimpactTestDemo - GimpactTestDemo.cpp - main.cpp -) + INCLUDE_DIRECTORIES( + ${BULLET_PHYSICS_SOURCE_DIR}/src ${BULLET_PHYSICS_SOURCE_DIR}/Demos/OpenGL + ) + LINK_LIBRARIES( + OpenGLSupport BulletDynamics BulletCollision LinearMath GIMPACTUtils ConvexDecomposition ${OPENGL_gl_LIBRARY} ${OPENGL_glu_LIBRARY} + ) + + ADD_EXECUTABLE(AppGimpactTestDemo + WIN32 + GimpactTestDemo.cpp + GimpactTestDemo.h + ../OpenGL/Win32AppMain.cpp + Win32GimpactDemo.cpp + ) +ENDIF(USE_GLUT) diff --git a/Demos/GimpactTestDemo/GimpactTestDemo.cpp b/Demos/GimpactTestDemo/GimpactTestDemo.cpp index 89d4ac225..06c6cac0a 100644 --- a/Demos/GimpactTestDemo/GimpactTestDemo.cpp +++ b/Demos/GimpactTestDemo/GimpactTestDemo.cpp @@ -626,7 +626,7 @@ void GimpactConcaveDemo::clientMoveAndDisplay() renderme(); glFlush(); - glutSwapBuffers(); + swapBuffers(); } @@ -642,7 +642,7 @@ void GimpactConcaveDemo::displayCallback(void) { m_dynamicsWorld->debugDrawWorld(); glFlush(); - glutSwapBuffers(); + swapBuffers(); } //------------------------------------------------------------------------------ diff --git a/Demos/GimpactTestDemo/GimpactTestDemo.h b/Demos/GimpactTestDemo/GimpactTestDemo.h index f1684d745..2727f9a59 100644 --- a/Demos/GimpactTestDemo/GimpactTestDemo.h +++ b/Demos/GimpactTestDemo/GimpactTestDemo.h @@ -15,7 +15,15 @@ subject to the following restrictions: #ifndef TEST_CONCAVE_DEMO_H #define TEST_CONCAVE_DEMO_H + +#ifdef _WINDOWS +#include "Win32DemoApplication.h" +#define PlatformDemoApplication Win32DemoApplication +#else #include "GlutDemoApplication.h" +#define PlatformDemoApplication GlutDemoApplication +#endif + class btTriangleIndexVertexArray; class btDefaultCollisionConfiguration; @@ -47,7 +55,7 @@ struct btCollisionAlgorithmCreateFunc; ///GimpactConcaveDemo shows usage of static concave triangle meshes ///It also shows per-triangle material (friction/restitution) through CustomMaterialCombinerCallback -class GimpactConcaveDemo : public GlutDemoApplication +class GimpactConcaveDemo : public PlatformDemoApplication { public: diff --git a/Demos/GimpactTestDemo/Win32GimpactDemo.cpp b/Demos/GimpactTestDemo/Win32GimpactDemo.cpp new file mode 100644 index 000000000..73d3eb27d --- /dev/null +++ b/Demos/GimpactTestDemo/Win32GimpactDemo.cpp @@ -0,0 +1,25 @@ +#ifdef _WINDOWS +/* +Bullet Continuous Collision Detection and Physics Library +Copyright (c) 2003-2009 Erwin Coumans http://bulletphysics.org + +This software is provided 'as-is', without any express or implied warranty. +In no event will the authors be held liable for any damages arising from the use of this software. +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it freely, +subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +*/ + +#include "GimpactTestDemo.h" + +///The 'createDemo' function is called from Bullet/Demos/OpenGL/Win32AppMain.cpp to instantiate this particular demo +DemoApplication* createDemo() +{ + return new GimpactConcaveDemo(); +} + +#endif diff --git a/Demos/SerializeDemo/CMakeLists.txt b/Demos/SerializeDemo/CMakeLists.txt index da3f85180..b0a5387c3 100644 --- a/Demos/SerializeDemo/CMakeLists.txt +++ b/Demos/SerializeDemo/CMakeLists.txt @@ -29,6 +29,24 @@ IF (USE_GLUT) SerializeDemo.cpp SerializeDemo.h ) + +IF (WIN32) + IF (CMAKE_CL_64) + ADD_CUSTOM_COMMAND( + TARGET AppSerializeDemo + POST_BUILD + COMMAND ${CMAKE_COMMAND} ARGS -E copy_if_different ${BULLET_PHYSICS_SOURCE_DIR}/glut64.dll ${CMAKE_CURRENT_BINARY_DIR} + ) + ELSE(CMAKE_CL_64) + ADD_CUSTOM_COMMAND( + TARGET AppSerializeDemo + POST_BUILD + COMMAND ${CMAKE_COMMAND} ARGS -E copy_if_different ${BULLET_PHYSICS_SOURCE_DIR}/GLUT32.DLL ${CMAKE_CURRENT_BINARY_DIR} + ) + ENDIF(CMAKE_CL_64) +ENDIF(WIN32) + + ELSE (USE_GLUT) LINK_LIBRARIES( diff --git a/Demos/SerializeDemo/SerializeDemo.cpp b/Demos/SerializeDemo/SerializeDemo.cpp index 8538784f8..c2aafd2fe 100644 --- a/Demos/SerializeDemo/SerializeDemo.cpp +++ b/Demos/SerializeDemo/SerializeDemo.cpp @@ -15,7 +15,10 @@ subject to the following restrictions: #define TEST_SERIALIZATION 1 -//#define CREATE_NEW_BULLETFILE 1 + +#ifdef BT_INTERNAL_UPDATE_SERIALIZATION_STRUCTURES +#define CREATE_NEW_BULLETFILE 1 +#endif //BT_INTERNAL_UPDATE_SERIALIZATION_STRUCTURES ///create 125 (5x5x5) dynamic object #define ARRAY_SIZE_X 5 diff --git a/Extras/Serialize/BulletFileLoader/autogenerated/bullet.h b/Extras/Serialize/BulletFileLoader/autogenerated/bullet.h index ff1538ddc..54f434100 100644 --- a/Extras/Serialize/BulletFileLoader/autogenerated/bullet.h +++ b/Extras/Serialize/BulletFileLoader/autogenerated/bullet.h @@ -42,6 +42,7 @@ #include "bullet_btCompoundShapeData.h" #include "bullet_btCylinderShapeData.h" #include "bullet_btCapsuleShapeData.h" +#include "bullet_btGImpactMeshShapeData.h" #include "bullet_btConvexHullShapeData.h" #include "bullet_btCollisionObjectDoubleData.h" #include "bullet_btCollisionObjectFloatData.h" diff --git a/Extras/Serialize/BulletFileLoader/autogenerated/bullet_Common.h b/Extras/Serialize/BulletFileLoader/autogenerated/bullet_Common.h index 16e430411..c4591afbf 100644 --- a/Extras/Serialize/BulletFileLoader/autogenerated/bullet_Common.h +++ b/Extras/Serialize/BulletFileLoader/autogenerated/bullet_Common.h @@ -49,6 +49,7 @@ namespace Bullet { class btCompoundShapeData; class btCylinderShapeData; class btCapsuleShapeData; + class btGImpactMeshShapeData; class btConvexHullShapeData; class btCollisionObjectDoubleData; class btCollisionObjectFloatData; diff --git a/Extras/Serialize/BulletFileLoader/autogenerated/bullet_btGImpactMeshShapeData.h b/Extras/Serialize/BulletFileLoader/autogenerated/bullet_btGImpactMeshShapeData.h new file mode 100644 index 000000000..76a185dec --- /dev/null +++ b/Extras/Serialize/BulletFileLoader/autogenerated/bullet_btGImpactMeshShapeData.h @@ -0,0 +1,46 @@ +/* Copyright (C) 2006-2009 Erwin Coumans & Charlie C +* +* This software is provided 'as-is', without any express or implied +* warranty. In no event will the authors be held liable for any damages +* arising from the use of this software. +* +* Permission is granted to anyone to use this software for any purpose, +* including commercial applications, and to alter it and redistribute it +* freely, subject to the following restrictions: +* +* 1. The origin of this software must not be misrepresented; you must not +* claim that you wrote the original software. If you use this software +* in a product, an acknowledgment in the product documentation would be +* appreciated but is not required. +* 2. Altered source versions must be plainly marked as such, and must not be +* misrepresented as being the original software. +* 3. This notice may not be removed or altered from any source distribution. +*/ +// Auto generated from makesdna dna.c +#ifndef __BULLET_BTGIMPACTMESHSHAPEDATA__H__ +#define __BULLET_BTGIMPACTMESHSHAPEDATA__H__ + + +// -------------------------------------------------- // +#include "bullet_Common.h" +#include "bullet_btCollisionShapeData.h" +#include "bullet_btStridingMeshInterfaceData.h" +#include "bullet_btVector3FloatData.h" + +namespace Bullet { + + + // ---------------------------------------------- // + class btGImpactMeshShapeData + { + public: + btCollisionShapeData m_collisionShapeData; + btStridingMeshInterfaceData m_meshInterface; + btVector3FloatData m_localScaling; + float m_collisionMargin; + int m_gimpactSubType; + }; +} + + +#endif//__BULLET_BTGIMPACTMESHSHAPEDATA__H__ diff --git a/Extras/Serialize/BulletFileLoader/btBulletFile.cpp b/Extras/Serialize/BulletFileLoader/btBulletFile.cpp index cfae869ea..7a6f6b51e 100644 --- a/Extras/Serialize/BulletFileLoader/btBulletFile.cpp +++ b/Extras/Serialize/BulletFileLoader/btBulletFile.cpp @@ -20,13 +20,13 @@ subject to the following restrictions: // 32 && 64 bit versions -//#ifdef _WIN64 +#ifdef _WIN64 extern unsigned char sBulletDNAstr64[]; extern int sBulletDNAlen64; -//#else +#else extern unsigned char sBulletDNAstr[]; extern int sBulletDNAlen; -//#endif //_WIN64 +#endif //_WIN64 using namespace bParse; @@ -35,16 +35,18 @@ btBulletFile::btBulletFile() :bFile("", "BULLET ") { mMemoryDNA = new bDNA(); -//#ifdef _WIN64 - if (VOID_IS_8) +#ifdef _WIN64 +//if (VOID_IS_8) mMemoryDNA->init((char*)sBulletDNAstr64,sBulletDNAlen64); - else -//#else +// else +#else mMemoryDNA->init((char*)sBulletDNAstr,sBulletDNAlen); -//#endif +#endif + } + btBulletFile::btBulletFile(const char* fileName) :bFile(fileName, "BULLET ") { @@ -174,25 +176,25 @@ void btBulletFile::writeDNA(FILE* fp) if (VOID_IS_8) { -//#ifdef _WIN64 +#ifdef _WIN64 dataChunk.len = sBulletDNAlen64; dataChunk.oldPtr = sBulletDNAstr64; fwrite(&dataChunk,sizeof(bChunkInd),1,fp); fwrite(sBulletDNAstr64, sBulletDNAlen64,1,fp); -//#else -// btAssert(0); -//#endif +#else + btAssert(0); +#endif } else { -//#ifndef _WIN64 +#ifndef _WIN64 dataChunk.len = sBulletDNAlen; dataChunk.oldPtr = sBulletDNAstr; fwrite(&dataChunk,sizeof(bChunkInd),1,fp); fwrite(sBulletDNAstr, sBulletDNAlen,1,fp); -//#else -// btAssert(0); -//#endif +#else + btAssert(0); +#endif } } @@ -201,19 +203,19 @@ void btBulletFile::parse(bool verboseDumpAllTypes) { if (VOID_IS_8) { -//#ifdef _WIN64 +#ifdef _WIN64 parseInternal(verboseDumpAllTypes,(char*)sBulletDNAstr64,sBulletDNAlen64); -//#else -// btAssert(0); -//#endif +#else + btAssert(0); +#endif } else { -//#ifndef _WIN64 +#ifndef _WIN64 parseInternal(verboseDumpAllTypes,(char*)sBulletDNAstr,sBulletDNAlen); -//#else -// btAssert(0); -//#endif +#else + btAssert(0); +#endif } } diff --git a/Extras/Serialize/BulletWorldImporter/btBulletWorldImporter.cpp b/Extras/Serialize/BulletWorldImporter/btBulletWorldImporter.cpp index 041f44a9f..ac7da1dc7 100644 --- a/Extras/Serialize/BulletWorldImporter/btBulletWorldImporter.cpp +++ b/Extras/Serialize/BulletWorldImporter/btBulletWorldImporter.cpp @@ -3,7 +3,7 @@ #include "btBulletFile.h" #include "btBulletDynamicsCommon.h" - +#include "BulletCollision/gimpact/btGImpactShape.h" btBulletWorldImporter::btBulletWorldImporter(btDynamicsWorld* world) :m_dynamicsWorld(world), @@ -11,6 +11,15 @@ m_verboseDumpAllTypes(false) { } +btBulletWorldImporter::~btBulletWorldImporter() +{ + for (int i=0;iaddIndexedMesh(meshPart); + } + + return meshInterface; +} + btCollisionShape* btBulletWorldImporter::convertCollisionShape( btCollisionShapeData* shapeData ) { btCollisionShape* shape = 0; @@ -53,6 +101,25 @@ btCollisionShape* btBulletWorldImporter::convertCollisionShape( btCollisionShap break; } + case GIMPACT_SHAPE_PROXYTYPE: + { + btGImpactMeshShapeData* gimpactData = (btGImpactMeshShapeData*) shapeData; + if (gimpactData->m_gimpactSubType == CONST_GIMPACT_TRIMESH_SHAPE) + { + btTriangleIndexVertexArray* meshInterface = createMeshInterface(gimpactData->m_meshInterface); + btGImpactMeshShape* gimpactShape = createGimpactShape(meshInterface); + btVector3 localScaling; + localScaling.deSerializeFloat(gimpactData->m_localScaling); + gimpactShape->setLocalScaling(localScaling); + gimpactShape->setMargin(btScalar(gimpactData->m_collisionMargin)); + gimpactShape->updateBound(); + shape = gimpactShape; + } else + { + printf("unsupported gimpact sub type\n"); + } + break; + } case CYLINDER_SHAPE_PROXYTYPE: case CAPSULE_SHAPE_PROXYTYPE: @@ -86,17 +153,17 @@ btCollisionShape* btBulletWorldImporter::convertCollisionShape( btCollisionShap { case 0: { - shape = createCapsuleShapeX(implicitShapeDimensions.getY(),implicitShapeDimensions.getX()); + shape = createCapsuleShapeX(implicitShapeDimensions.getY(),2*implicitShapeDimensions.getX()); break; } case 1: { - shape = createCapsuleShapeY(implicitShapeDimensions.getX(),implicitShapeDimensions.getY()); + shape = createCapsuleShapeY(implicitShapeDimensions.getX(),2*implicitShapeDimensions.getY()); break; } case 2: { - shape = createCapsuleShapeZ(implicitShapeDimensions.getX(),implicitShapeDimensions.getZ()); + shape = createCapsuleShapeZ(implicitShapeDimensions.getX(),2*implicitShapeDimensions.getZ()); break; } default: @@ -181,7 +248,11 @@ btCollisionShape* btBulletWorldImporter::convertCollisionShape( btCollisionShap tmpPoints[i].deSerializeDouble(convexData->m_unscaledPointsDoublePtr[i]); #endif //BT_USE_DOUBLE_PRECISION } - shape = new btConvexHullShape(&tmpPoints[0].getX(),numPoints,sizeof(btVector3)); + btConvexHullShape* hullShape = createConvexHullShape(); + for (int i=0;iaddPoint(tmpPoints[i]); + } break; } default: @@ -203,42 +274,12 @@ btCollisionShape* btBulletWorldImporter::convertCollisionShape( btCollisionShap case TRIANGLE_MESH_SHAPE_PROXYTYPE: { btTriangleMeshShapeData* trimesh = (btTriangleMeshShapeData*)shapeData; - btTriangleIndexVertexArray* meshInterface = new btTriangleIndexVertexArray(); - for (int i=0;im_meshInterface.m_numMeshParts;i++) - { - btIndexedMesh meshPart; - if (trimesh->m_meshInterface.m_meshPartsPtr[i].m_indices32) - { - meshPart.m_indexType = PHY_INTEGER; - meshPart.m_triangleIndexStride = 3*sizeof(int); - meshPart.m_triangleIndexBase = (const unsigned char*)trimesh->m_meshInterface.m_meshPartsPtr[i].m_indices32; - } else - { - meshPart.m_indexType = PHY_SHORT; - meshPart.m_triangleIndexStride = 3*sizeof(short int); - meshPart.m_triangleIndexBase = (const unsigned char*)trimesh->m_meshInterface.m_meshPartsPtr[i].m_indices16; - } + btTriangleIndexVertexArray* meshInterface = createMeshInterface(trimesh->m_meshInterface); - if (trimesh->m_meshInterface.m_meshPartsPtr[i].m_vertices3f) - { - meshPart.m_vertexType = PHY_FLOAT; - meshPart.m_vertexStride = sizeof(btVector3FloatData); - meshPart.m_vertexBase = (const unsigned char*)trimesh->m_meshInterface.m_meshPartsPtr[i].m_vertices3f; - } else - { - meshPart.m_vertexType = PHY_DOUBLE; - meshPart.m_vertexStride = sizeof(btVector3DoubleData); - meshPart.m_vertexBase = (const unsigned char*)trimesh->m_meshInterface.m_meshPartsPtr[i].m_vertices3d; - } - meshPart.m_numTriangles = trimesh->m_meshInterface.m_meshPartsPtr[i].m_numTriangles; - meshPart.m_numVertices = trimesh->m_meshInterface.m_meshPartsPtr[i].m_numVertices; - - meshInterface->addIndexedMesh(meshPart); - } btVector3 scaling; scaling.deSerializeFloat(trimesh->m_meshInterface.m_scaling); meshInterface->setScaling(scaling); - btBvhTriangleMeshShape* trimeshShape = new btBvhTriangleMeshShape(meshInterface,true); + btCollisionShape* trimeshShape = createBvhTriangleMeshShape(meshInterface); trimeshShape->setMargin(trimesh->m_collisionMargin); shape = trimeshShape; @@ -248,7 +289,7 @@ btCollisionShape* btBulletWorldImporter::convertCollisionShape( btCollisionShap case COMPOUND_SHAPE_PROXYTYPE: { btCompoundShapeData* compoundData = (btCompoundShapeData*)shapeData; - btCompoundShape* compoundShape = new btCompoundShape(); + btCompoundShape* compoundShape = createCompoundShape(); btAlignedObjectArray childShapes; @@ -630,8 +671,6 @@ btCollisionShape* btBulletWorldImporter::createCapsuleShapeZ(btScalar radius, bt return new btCapsuleShapeZ(radius,height); } - - btCollisionShape* btBulletWorldImporter::createCylinderShapeX(btScalar radius,btScalar height) { return new btCylinderShapeX(btVector3(height,radius,radius)); @@ -647,29 +686,29 @@ btCollisionShape* btBulletWorldImporter::createCylinderShapeZ(btScalar radius,bt return new btCylinderShapeZ(btVector3(radius,radius,height)); } -btTriangleMesh* btBulletWorldImporter::createTriangleMeshContainer() +btTriangleIndexVertexArray* btBulletWorldImporter::createTriangleMeshContainer() +{ + return new btTriangleIndexVertexArray(); +} +btCollisionShape* btBulletWorldImporter::createBvhTriangleMeshShape(btStridingMeshInterface* trimesh) +{ + return new btBvhTriangleMeshShape(trimesh,true); +} +btCollisionShape* btBulletWorldImporter::createConvexTriangleMeshShape(btStridingMeshInterface* trimesh) { return 0; } -btCollisionShape* btBulletWorldImporter::createBvhTriangleMeshShape(btTriangleMesh* trimesh) +btGImpactMeshShape* btBulletWorldImporter::createGimpactShape(btStridingMeshInterface* trimesh) { - return 0; -} -btCollisionShape* btBulletWorldImporter::createConvexTriangleMeshShape(btTriangleMesh* trimesh) -{ - return 0; -} -btCollisionShape* btBulletWorldImporter::createGimpactShape(btTriangleMesh* trimesh) -{ - return 0; + return new btGImpactMeshShape(trimesh); } btConvexHullShape* btBulletWorldImporter::createConvexHullShape() { - return 0; + return new btConvexHullShape(); } btCompoundShape* btBulletWorldImporter::createCompoundShape() { - return 0; + return new btCompoundShape(); } diff --git a/Extras/Serialize/BulletWorldImporter/btBulletWorldImporter.h b/Extras/Serialize/BulletWorldImporter/btBulletWorldImporter.h index f5941a025..4fa98a5d1 100644 --- a/Extras/Serialize/BulletWorldImporter/btBulletWorldImporter.h +++ b/Extras/Serialize/BulletWorldImporter/btBulletWorldImporter.h @@ -30,6 +30,10 @@ class btDynamicsWorld; struct ConstraintInput; class btRigidBodyColladaInfo; struct btCollisionShapeData; +class btTriangleIndexVertexArray; +class btStridingMeshInterface; +struct btStridingMeshInterfaceData; +class btGImpactMeshShape; namespace bParse { @@ -48,10 +52,16 @@ protected: btCollisionShape* convertCollisionShape( btCollisionShapeData* shapeData ); + btAlignedObjectArray m_allocatedCollisionShapes; + + btTriangleIndexVertexArray* createMeshInterface(btStridingMeshInterfaceData& meshData); + public: btBulletWorldImporter(btDynamicsWorld* world); + virtual ~btBulletWorldImporter(); + bool loadFile(const char* fileName); ///the memoryBuffer might be modified (for example if endian swaps are necessary) @@ -96,10 +106,10 @@ public: virtual btCollisionShape* createCylinderShapeX(btScalar radius,btScalar height); virtual btCollisionShape* createCylinderShapeY(btScalar radius,btScalar height); virtual btCollisionShape* createCylinderShapeZ(btScalar radius,btScalar height); - virtual class btTriangleMesh* createTriangleMeshContainer(); - virtual btCollisionShape* createBvhTriangleMeshShape(btTriangleMesh* trimesh); - virtual btCollisionShape* createConvexTriangleMeshShape(btTriangleMesh* trimesh); - virtual btCollisionShape* createGimpactShape(btTriangleMesh* trimesh); + virtual class btTriangleIndexVertexArray* createTriangleMeshContainer(); + virtual btCollisionShape* createBvhTriangleMeshShape(btStridingMeshInterface* trimesh); + virtual btCollisionShape* createConvexTriangleMeshShape(btStridingMeshInterface* trimesh); + virtual btGImpactMeshShape* createGimpactShape(btStridingMeshInterface* trimesh); virtual class btConvexHullShape* createConvexHullShape(); virtual class btCompoundShape* createCompoundShape(); diff --git a/Extras/Serialize/CMakeLists.txt b/Extras/Serialize/CMakeLists.txt index 694ef5d5b..ea6a234fa 100644 --- a/Extras/Serialize/CMakeLists.txt +++ b/Extras/Serialize/CMakeLists.txt @@ -1,9 +1,15 @@ -SUBDIRS ( BulletFileLoader BulletWorldImporter ) - - +IF(INTERNAL_UPDATE_SERIALIZATION_STRUCTURES) # makesdna and HeaderGenerator are for advanced use only # makesdna can re-generate the binary DNA representing the Bullet serialization structures # Be very careful modifying any of this, otherwise the .bullet format becomes incompatible -#SUBDIRS ( BulletFileLoader BulletWorldImporter BlenderSerialize HeaderGenerator makesdna) + + SUBDIRS ( BulletFileLoader BulletWorldImporter BlenderSerialize HeaderGenerator makesdna) + +ELSE(INTERNAL_UPDATE_SERIALIZATION_STRUCTURES) + + SUBDIRS ( BulletFileLoader BulletWorldImporter ) + +ENDIF (INTERNAL_UPDATE_SERIALIZATION_STRUCTURES) + diff --git a/Extras/Serialize/makesdna/makesdna.cpp b/Extras/Serialize/makesdna/makesdna.cpp index 0a5ba9e7b..3f0d55017 100644 --- a/Extras/Serialize/makesdna/makesdna.cpp +++ b/Extras/Serialize/makesdna/makesdna.cpp @@ -132,6 +132,7 @@ typedef unsigned long uintptr_t; #include "BulletCollision/CollisionShapes/btCompoundShape.h" #include "BulletCollision/CollisionShapes/btCylinderShape.h" #include "BulletCollision/CollisionShapes/btCapsuleShape.h" +#include "BulletCollision/Gimpact/btGImpactShape.h" #include "BulletCollision/CollisionDispatch/btCollisionObject.h" #include "BulletDynamics/ConstraintSolver/btTypedConstraint.h" #include "BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h" @@ -168,6 +169,7 @@ char *includefiles[] = { "../../../src/BulletCollision/CollisionShapes/btCompoundShape.h", "../../../src/BulletCollision/CollisionShapes/btCylinderShape.h", "../../../src/BulletCollision/CollisionShapes/btCapsuleShape.h", + "../../../src/BulletCollision/Gimpact/btGImpactShape.h", "../../../src/BulletCollision/CollisionShapes/btConvexHullShape.h", "../../../src/BulletCollision/CollisionDispatch/btCollisionObject.h", "../../../src/BulletDynamics/Dynamics/btRigidBody.h", diff --git a/src/BulletCollision/CollisionShapes/btBoxShape.h b/src/BulletCollision/CollisionShapes/btBoxShape.h index beaf0e274..b405efc8e 100644 --- a/src/BulletCollision/CollisionShapes/btBoxShape.h +++ b/src/BulletCollision/CollisionShapes/btBoxShape.h @@ -41,7 +41,7 @@ public: const btVector3& getHalfExtentsWithoutMargin() const { - return m_implicitShapeDimensions;//changed in Bullet 2.63: assume the scaling and margin are included + return m_implicitShapeDimensions;//scaling is included, margin is not } diff --git a/src/BulletCollision/Gimpact/btGImpactShape.cpp b/src/BulletCollision/Gimpact/btGImpactShape.cpp index da6a4dbfc..cceace55e 100644 --- a/src/BulletCollision/Gimpact/btGImpactShape.cpp +++ b/src/BulletCollision/Gimpact/btGImpactShape.cpp @@ -181,3 +181,23 @@ void btGImpactMeshShape::processAllTriangles(btTriangleCallback* callback,const m_mesh_parts[i]->processAllTriangles(callback,aabbMin,aabbMax); } } + + +///fills the dataBuffer and returns the struct name (and 0 on failure) +const char* btGImpactMeshShape::serialize(void* dataBuffer, btSerializer* serializer) const +{ + btGImpactMeshShapeData* trimeshData = (btGImpactMeshShapeData*) dataBuffer; + + btCollisionShape::serialize(&trimeshData->m_collisionShapeData,serializer); + + m_meshInterface->serialize(&trimeshData->m_meshInterface, serializer); + + trimeshData->m_collisionMargin = float(m_collisionMargin); + + localScaling.serializeFloat(trimeshData->m_localScaling); + + trimeshData->m_gimpactSubType = int(getGImpactShapeType()); + + return "btGImpactMeshShapeData"; +} + diff --git a/src/BulletCollision/Gimpact/btGImpactShape.h b/src/BulletCollision/Gimpact/btGImpactShape.h index d9bac9f81..90015bb9a 100644 --- a/src/BulletCollision/Gimpact/btGImpactShape.h +++ b/src/BulletCollision/Gimpact/btGImpactShape.h @@ -189,7 +189,7 @@ public: //!@{ //! Base method for determinig which kind of GIMPACT shape we get - virtual eGIMPACT_SHAPE_TYPE getGImpactShapeType() = 0; + virtual eGIMPACT_SHAPE_TYPE getGImpactShapeType() const = 0 ; //! gets boxset SIMD_FORCE_INLINE btGImpactBoxSet * getBoxSet() @@ -502,7 +502,7 @@ public: return "GImpactCompound"; } - virtual eGIMPACT_SHAPE_TYPE getGImpactShapeType() + virtual eGIMPACT_SHAPE_TYPE getGImpactShapeType() const { return CONST_GIMPACT_COMPOUND_SHAPE; } @@ -816,7 +816,7 @@ public: return "GImpactMeshShapePart"; } - virtual eGIMPACT_SHAPE_TYPE getGImpactShapeType() + virtual eGIMPACT_SHAPE_TYPE getGImpactShapeType() const { return CONST_GIMPACT_TRIMESH_SHAPE_PART; } @@ -1122,7 +1122,7 @@ public: } - virtual eGIMPACT_SHAPE_TYPE getGImpactShapeType() + virtual eGIMPACT_SHAPE_TYPE getGImpactShapeType() const { return CONST_GIMPACT_TRIMESH_SHAPE; } @@ -1140,7 +1140,32 @@ public: It gives the triangles in local space */ virtual void processAllTriangles(btTriangleCallback* callback,const btVector3& aabbMin,const btVector3& aabbMax) const; + + virtual int calculateSerializeBufferSize() const; + + ///fills the dataBuffer and returns the struct name (and 0 on failure) + virtual const char* serialize(void* dataBuffer, btSerializer* serializer) const; + }; +///do not change those serialization structures, it requires an updated sBulletDNAstr/sBulletDNAstr64 +struct btGImpactMeshShapeData +{ + btCollisionShapeData m_collisionShapeData; + + btStridingMeshInterfaceData m_meshInterface; + + btVector3FloatData m_localScaling; + + float m_collisionMargin; + + int m_gimpactSubType; +}; + +SIMD_FORCE_INLINE int btGImpactMeshShape::calculateSerializeBufferSize() const +{ + return sizeof(btGImpactMeshShapeData); +} + #endif //GIMPACT_MESH_SHAPE_H diff --git a/src/LinearMath/btSerializer.cpp b/src/LinearMath/btSerializer.cpp index 7b4a5de35..496967d16 100644 --- a/src/LinearMath/btSerializer.cpp +++ b/src/LinearMath/btSerializer.cpp @@ -1,5 +1,5 @@ unsigned char sBulletDNAstr64[]= { -83,68,78,65,78,65,77,69,-122,0,0,0,109,95,115,105,122,101,0,109, +83,68,78,65,78,65,77,69,-121,0,0,0,109,95,115,105,122,101,0,109, 95,99,97,112,97,99,105,116,121,0,42,109,95,100,97,116,97,0,109,95, 99,111,108,108,105,115,105,111,110,83,104,97,112,101,115,0,109,95,99,111, 108,108,105,115,105,111,110,79,98,106,101,99,116,115,0,109,95,99,111,110, @@ -31,91 +31,92 @@ unsigned char sBulletDNAstr64[]= { 104,105,108,100,83,104,97,112,101,84,121,112,101,0,109,95,99,104,105,108, 100,77,97,114,103,105,110,0,42,109,95,99,104,105,108,100,83,104,97,112, 101,80,116,114,0,109,95,110,117,109,67,104,105,108,100,83,104,97,112,101, -115,0,109,95,117,112,65,120,105,115,0,42,109,95,117,110,115,99,97,108, -101,100,80,111,105,110,116,115,70,108,111,97,116,80,116,114,0,42,109,95, -117,110,115,99,97,108,101,100,80,111,105,110,116,115,68,111,117,98,108,101, -80,116,114,0,109,95,110,117,109,85,110,115,99,97,108,101,100,80,111,105, -110,116,115,0,109,95,112,97,100,100,105,110,103,51,91,52,93,0,42,109, -95,98,114,111,97,100,112,104,97,115,101,72,97,110,100,108,101,0,42,109, -95,99,111,108,108,105,115,105,111,110,83,104,97,112,101,0,42,109,95,114, -111,111,116,67,111,108,108,105,115,105,111,110,83,104,97,112,101,0,42,109, -95,117,115,101,114,79,98,106,101,99,116,80,111,105,110,116,101,114,0,109, -95,119,111,114,108,100,84,114,97,110,115,102,111,114,109,0,109,95,105,110, -116,101,114,112,111,108,97,116,105,111,110,87,111,114,108,100,84,114,97,110, -115,102,111,114,109,0,109,95,105,110,116,101,114,112,111,108,97,116,105,111, -110,76,105,110,101,97,114,86,101,108,111,99,105,116,121,0,109,95,105,110, -116,101,114,112,111,108,97,116,105,111,110,65,110,103,117,108,97,114,86,101, -108,111,99,105,116,121,0,109,95,97,110,105,115,111,116,114,111,112,105,99, -70,114,105,99,116,105,111,110,0,109,95,99,111,110,116,97,99,116,80,114, -111,99,101,115,115,105,110,103,84,104,114,101,115,104,111,108,100,0,109,95, -100,101,97,99,116,105,118,97,116,105,111,110,84,105,109,101,0,109,95,102, -114,105,99,116,105,111,110,0,109,95,114,101,115,116,105,116,117,116,105,111, -110,0,109,95,104,105,116,70,114,97,99,116,105,111,110,0,109,95,99,99, -100,83,119,101,112,116,83,112,104,101,114,101,82,97,100,105,117,115,0,109, -95,99,99,100,77,111,116,105,111,110,84,104,114,101,115,104,111,108,100,0, -109,95,104,97,115,65,110,105,115,111,116,114,111,112,105,99,70,114,105,99, -116,105,111,110,0,109,95,99,111,108,108,105,115,105,111,110,70,108,97,103, -115,0,109,95,105,115,108,97,110,100,84,97,103,49,0,109,95,99,111,109, -112,97,110,105,111,110,73,100,0,109,95,97,99,116,105,118,97,116,105,111, -110,83,116,97,116,101,49,0,109,95,105,110,116,101,114,110,97,108,84,121, -112,101,0,109,95,99,104,101,99,107,67,111,108,108,105,100,101,87,105,116, -104,0,109,95,99,111,108,108,105,115,105,111,110,79,98,106,101,99,116,68, -97,116,97,0,109,95,105,110,118,73,110,101,114,116,105,97,84,101,110,115, -111,114,87,111,114,108,100,0,109,95,108,105,110,101,97,114,86,101,108,111, -99,105,116,121,0,109,95,97,110,103,117,108,97,114,86,101,108,111,99,105, -116,121,0,109,95,97,110,103,117,108,97,114,70,97,99,116,111,114,0,109, -95,108,105,110,101,97,114,70,97,99,116,111,114,0,109,95,103,114,97,118, -105,116,121,0,109,95,103,114,97,118,105,116,121,95,97,99,99,101,108,101, -114,97,116,105,111,110,0,109,95,105,110,118,73,110,101,114,116,105,97,76, -111,99,97,108,0,109,95,116,111,116,97,108,70,111,114,99,101,0,109,95, -116,111,116,97,108,84,111,114,113,117,101,0,109,95,105,110,118,101,114,115, -101,77,97,115,115,0,109,95,108,105,110,101,97,114,68,97,109,112,105,110, -103,0,109,95,97,110,103,117,108,97,114,68,97,109,112,105,110,103,0,109, -95,97,100,100,105,116,105,111,110,97,108,68,97,109,112,105,110,103,70,97, -99,116,111,114,0,109,95,97,100,100,105,116,105,111,110,97,108,76,105,110, -101,97,114,68,97,109,112,105,110,103,84,104,114,101,115,104,111,108,100,83, -113,114,0,109,95,97,100,100,105,116,105,111,110,97,108,65,110,103,117,108, -97,114,68,97,109,112,105,110,103,84,104,114,101,115,104,111,108,100,83,113, -114,0,109,95,97,100,100,105,116,105,111,110,97,108,65,110,103,117,108,97, -114,68,97,109,112,105,110,103,70,97,99,116,111,114,0,109,95,108,105,110, -101,97,114,83,108,101,101,112,105,110,103,84,104,114,101,115,104,111,108,100, -0,109,95,97,110,103,117,108,97,114,83,108,101,101,112,105,110,103,84,104, -114,101,115,104,111,108,100,0,109,95,97,100,100,105,116,105,111,110,97,108, -68,97,109,112,105,110,103,0,109,95,110,117,109,67,111,110,115,116,114,97, -105,110,116,82,111,119,115,0,110,117,98,0,42,109,95,114,98,65,0,42, -109,95,114,98,66,0,109,95,97,112,112,108,105,101,100,76,105,110,101,97, -114,73,109,112,117,108,115,101,0,109,95,97,112,112,108,105,101,100,65,110, -103,117,108,97,114,73,109,112,117,108,115,101,65,0,109,95,97,112,112,108, -105,101,100,65,110,103,117,108,97,114,73,109,112,117,108,115,101,66,0,109, -95,111,98,106,101,99,116,84,121,112,101,0,109,95,117,115,101,114,67,111, -110,115,116,114,97,105,110,116,84,121,112,101,0,109,95,117,115,101,114,67, -111,110,115,116,114,97,105,110,116,73,100,0,109,95,110,101,101,100,115,70, -101,101,100,98,97,99,107,0,109,95,97,112,112,108,105,101,100,73,109,112, -117,108,115,101,0,109,95,100,98,103,68,114,97,119,83,105,122,101,0,109, -95,100,105,115,97,98,108,101,67,111,108,108,105,115,105,111,110,115,66,101, -116,119,101,101,110,76,105,110,107,101,100,66,111,100,105,101,115,0,109,95, -116,121,112,101,67,111,110,115,116,114,97,105,110,116,68,97,116,97,0,109, -95,112,105,118,111,116,73,110,65,0,109,95,112,105,118,111,116,73,110,66, -0,109,95,114,98,65,70,114,97,109,101,0,109,95,114,98,66,70,114,97, -109,101,0,109,95,117,115,101,82,101,102,101,114,101,110,99,101,70,114,97, -109,101,65,0,109,95,97,110,103,117,108,97,114,79,110,108,121,0,109,95, -101,110,97,98,108,101,65,110,103,117,108,97,114,77,111,116,111,114,0,109, -95,109,111,116,111,114,84,97,114,103,101,116,86,101,108,111,99,105,116,121, -0,109,95,109,97,120,77,111,116,111,114,73,109,112,117,108,115,101,0,109, -95,108,111,119,101,114,76,105,109,105,116,0,109,95,117,112,112,101,114,76, -105,109,105,116,0,109,95,108,105,109,105,116,83,111,102,116,110,101,115,115, -0,109,95,98,105,97,115,70,97,99,116,111,114,0,109,95,114,101,108,97, -120,97,116,105,111,110,70,97,99,116,111,114,0,109,95,115,119,105,110,103, -83,112,97,110,49,0,109,95,115,119,105,110,103,83,112,97,110,50,0,109, -95,116,119,105,115,116,83,112,97,110,0,109,95,100,97,109,112,105,110,103, -0,109,95,108,105,110,101,97,114,85,112,112,101,114,76,105,109,105,116,0, -109,95,108,105,110,101,97,114,76,111,119,101,114,76,105,109,105,116,0,109, -95,97,110,103,117,108,97,114,85,112,112,101,114,76,105,109,105,116,0,109, -95,97,110,103,117,108,97,114,76,111,119,101,114,76,105,109,105,116,0,109, -95,117,115,101,76,105,110,101,97,114,82,101,102,101,114,101,110,99,101,70, -114,97,109,101,65,0,109,95,117,115,101,79,102,102,115,101,116,70,111,114, -67,111,110,115,116,114,97,105,110,116,70,114,97,109,101,0,84,89,80,69, -48,0,0,0,99,104,97,114,0,117,99,104,97,114,0,115,104,111,114,116, +115,0,109,95,117,112,65,120,105,115,0,109,95,103,105,109,112,97,99,116, +83,117,98,84,121,112,101,0,42,109,95,117,110,115,99,97,108,101,100,80, +111,105,110,116,115,70,108,111,97,116,80,116,114,0,42,109,95,117,110,115, +99,97,108,101,100,80,111,105,110,116,115,68,111,117,98,108,101,80,116,114, +0,109,95,110,117,109,85,110,115,99,97,108,101,100,80,111,105,110,116,115, +0,109,95,112,97,100,100,105,110,103,51,91,52,93,0,42,109,95,98,114, +111,97,100,112,104,97,115,101,72,97,110,100,108,101,0,42,109,95,99,111, +108,108,105,115,105,111,110,83,104,97,112,101,0,42,109,95,114,111,111,116, +67,111,108,108,105,115,105,111,110,83,104,97,112,101,0,42,109,95,117,115, +101,114,79,98,106,101,99,116,80,111,105,110,116,101,114,0,109,95,119,111, +114,108,100,84,114,97,110,115,102,111,114,109,0,109,95,105,110,116,101,114, +112,111,108,97,116,105,111,110,87,111,114,108,100,84,114,97,110,115,102,111, +114,109,0,109,95,105,110,116,101,114,112,111,108,97,116,105,111,110,76,105, +110,101,97,114,86,101,108,111,99,105,116,121,0,109,95,105,110,116,101,114, +112,111,108,97,116,105,111,110,65,110,103,117,108,97,114,86,101,108,111,99, +105,116,121,0,109,95,97,110,105,115,111,116,114,111,112,105,99,70,114,105, +99,116,105,111,110,0,109,95,99,111,110,116,97,99,116,80,114,111,99,101, +115,115,105,110,103,84,104,114,101,115,104,111,108,100,0,109,95,100,101,97, +99,116,105,118,97,116,105,111,110,84,105,109,101,0,109,95,102,114,105,99, +116,105,111,110,0,109,95,114,101,115,116,105,116,117,116,105,111,110,0,109, +95,104,105,116,70,114,97,99,116,105,111,110,0,109,95,99,99,100,83,119, +101,112,116,83,112,104,101,114,101,82,97,100,105,117,115,0,109,95,99,99, +100,77,111,116,105,111,110,84,104,114,101,115,104,111,108,100,0,109,95,104, +97,115,65,110,105,115,111,116,114,111,112,105,99,70,114,105,99,116,105,111, +110,0,109,95,99,111,108,108,105,115,105,111,110,70,108,97,103,115,0,109, +95,105,115,108,97,110,100,84,97,103,49,0,109,95,99,111,109,112,97,110, +105,111,110,73,100,0,109,95,97,99,116,105,118,97,116,105,111,110,83,116, +97,116,101,49,0,109,95,105,110,116,101,114,110,97,108,84,121,112,101,0, +109,95,99,104,101,99,107,67,111,108,108,105,100,101,87,105,116,104,0,109, +95,99,111,108,108,105,115,105,111,110,79,98,106,101,99,116,68,97,116,97, +0,109,95,105,110,118,73,110,101,114,116,105,97,84,101,110,115,111,114,87, +111,114,108,100,0,109,95,108,105,110,101,97,114,86,101,108,111,99,105,116, +121,0,109,95,97,110,103,117,108,97,114,86,101,108,111,99,105,116,121,0, +109,95,97,110,103,117,108,97,114,70,97,99,116,111,114,0,109,95,108,105, +110,101,97,114,70,97,99,116,111,114,0,109,95,103,114,97,118,105,116,121, +0,109,95,103,114,97,118,105,116,121,95,97,99,99,101,108,101,114,97,116, +105,111,110,0,109,95,105,110,118,73,110,101,114,116,105,97,76,111,99,97, +108,0,109,95,116,111,116,97,108,70,111,114,99,101,0,109,95,116,111,116, +97,108,84,111,114,113,117,101,0,109,95,105,110,118,101,114,115,101,77,97, +115,115,0,109,95,108,105,110,101,97,114,68,97,109,112,105,110,103,0,109, +95,97,110,103,117,108,97,114,68,97,109,112,105,110,103,0,109,95,97,100, +100,105,116,105,111,110,97,108,68,97,109,112,105,110,103,70,97,99,116,111, +114,0,109,95,97,100,100,105,116,105,111,110,97,108,76,105,110,101,97,114, +68,97,109,112,105,110,103,84,104,114,101,115,104,111,108,100,83,113,114,0, +109,95,97,100,100,105,116,105,111,110,97,108,65,110,103,117,108,97,114,68, +97,109,112,105,110,103,84,104,114,101,115,104,111,108,100,83,113,114,0,109, +95,97,100,100,105,116,105,111,110,97,108,65,110,103,117,108,97,114,68,97, +109,112,105,110,103,70,97,99,116,111,114,0,109,95,108,105,110,101,97,114, +83,108,101,101,112,105,110,103,84,104,114,101,115,104,111,108,100,0,109,95, +97,110,103,117,108,97,114,83,108,101,101,112,105,110,103,84,104,114,101,115, +104,111,108,100,0,109,95,97,100,100,105,116,105,111,110,97,108,68,97,109, +112,105,110,103,0,109,95,110,117,109,67,111,110,115,116,114,97,105,110,116, +82,111,119,115,0,110,117,98,0,42,109,95,114,98,65,0,42,109,95,114, +98,66,0,109,95,97,112,112,108,105,101,100,76,105,110,101,97,114,73,109, +112,117,108,115,101,0,109,95,97,112,112,108,105,101,100,65,110,103,117,108, +97,114,73,109,112,117,108,115,101,65,0,109,95,97,112,112,108,105,101,100, +65,110,103,117,108,97,114,73,109,112,117,108,115,101,66,0,109,95,111,98, +106,101,99,116,84,121,112,101,0,109,95,117,115,101,114,67,111,110,115,116, +114,97,105,110,116,84,121,112,101,0,109,95,117,115,101,114,67,111,110,115, +116,114,97,105,110,116,73,100,0,109,95,110,101,101,100,115,70,101,101,100, +98,97,99,107,0,109,95,97,112,112,108,105,101,100,73,109,112,117,108,115, +101,0,109,95,100,98,103,68,114,97,119,83,105,122,101,0,109,95,100,105, +115,97,98,108,101,67,111,108,108,105,115,105,111,110,115,66,101,116,119,101, +101,110,76,105,110,107,101,100,66,111,100,105,101,115,0,109,95,116,121,112, +101,67,111,110,115,116,114,97,105,110,116,68,97,116,97,0,109,95,112,105, +118,111,116,73,110,65,0,109,95,112,105,118,111,116,73,110,66,0,109,95, +114,98,65,70,114,97,109,101,0,109,95,114,98,66,70,114,97,109,101,0, +109,95,117,115,101,82,101,102,101,114,101,110,99,101,70,114,97,109,101,65, +0,109,95,97,110,103,117,108,97,114,79,110,108,121,0,109,95,101,110,97, +98,108,101,65,110,103,117,108,97,114,77,111,116,111,114,0,109,95,109,111, +116,111,114,84,97,114,103,101,116,86,101,108,111,99,105,116,121,0,109,95, +109,97,120,77,111,116,111,114,73,109,112,117,108,115,101,0,109,95,108,111, +119,101,114,76,105,109,105,116,0,109,95,117,112,112,101,114,76,105,109,105, +116,0,109,95,108,105,109,105,116,83,111,102,116,110,101,115,115,0,109,95, +98,105,97,115,70,97,99,116,111,114,0,109,95,114,101,108,97,120,97,116, +105,111,110,70,97,99,116,111,114,0,109,95,115,119,105,110,103,83,112,97, +110,49,0,109,95,115,119,105,110,103,83,112,97,110,50,0,109,95,116,119, +105,115,116,83,112,97,110,0,109,95,100,97,109,112,105,110,103,0,109,95, +108,105,110,101,97,114,85,112,112,101,114,76,105,109,105,116,0,109,95,108, +105,110,101,97,114,76,111,119,101,114,76,105,109,105,116,0,109,95,97,110, +103,117,108,97,114,85,112,112,101,114,76,105,109,105,116,0,109,95,97,110, +103,117,108,97,114,76,111,119,101,114,76,105,109,105,116,0,109,95,117,115, +101,76,105,110,101,97,114,82,101,102,101,114,101,110,99,101,70,114,97,109, +101,65,0,109,95,117,115,101,79,102,102,115,101,116,70,111,114,67,111,110, +115,116,114,97,105,110,116,70,114,97,109,101,0,0,0,0,84,89,80,69, +49,0,0,0,99,104,97,114,0,117,99,104,97,114,0,115,104,111,114,116, 0,117,115,104,111,114,116,0,105,110,116,0,108,111,110,103,0,117,108,111, 110,103,0,102,108,111,97,116,0,100,111,117,98,108,101,0,118,111,105,100, 0,80,111,105,110,116,101,114,65,114,114,97,121,0,98,116,80,104,121,115, @@ -141,89 +142,92 @@ unsigned char sBulletDNAstr64[]= { 97,116,97,0,98,116,67,111,109,112,111,117,110,100,83,104,97,112,101,68, 97,116,97,0,98,116,67,121,108,105,110,100,101,114,83,104,97,112,101,68, 97,116,97,0,98,116,67,97,112,115,117,108,101,83,104,97,112,101,68,97, -116,97,0,98,116,67,111,110,118,101,120,72,117,108,108,83,104,97,112,101, -68,97,116,97,0,98,116,67,111,108,108,105,115,105,111,110,79,98,106,101, -99,116,68,111,117,98,108,101,68,97,116,97,0,98,116,67,111,108,108,105, -115,105,111,110,79,98,106,101,99,116,70,108,111,97,116,68,97,116,97,0, -98,116,82,105,103,105,100,66,111,100,121,70,108,111,97,116,68,97,116,97, -0,98,116,82,105,103,105,100,66,111,100,121,68,111,117,98,108,101,68,97, -116,97,0,98,116,67,111,110,115,116,114,97,105,110,116,73,110,102,111,49, -0,98,116,84,121,112,101,100,67,111,110,115,116,114,97,105,110,116,68,97, -116,97,0,98,116,82,105,103,105,100,66,111,100,121,68,97,116,97,0,98, -116,80,111,105,110,116,50,80,111,105,110,116,67,111,110,115,116,114,97,105, -110,116,70,108,111,97,116,68,97,116,97,0,98,116,80,111,105,110,116,50, -80,111,105,110,116,67,111,110,115,116,114,97,105,110,116,68,111,117,98,108, -101,68,97,116,97,0,98,116,72,105,110,103,101,67,111,110,115,116,114,97, -105,110,116,68,111,117,98,108,101,68,97,116,97,0,98,116,72,105,110,103, -101,67,111,110,115,116,114,97,105,110,116,70,108,111,97,116,68,97,116,97, -0,98,116,67,111,110,101,84,119,105,115,116,67,111,110,115,116,114,97,105, -110,116,68,97,116,97,0,98,116,71,101,110,101,114,105,99,54,68,111,102, -67,111,110,115,116,114,97,105,110,116,68,97,116,97,0,98,116,83,108,105, -100,101,114,67,111,110,115,116,114,97,105,110,116,68,97,116,97,0,0,0, -84,76,69,78,1,0,1,0,2,0,2,0,4,0,4,0,4,0,4,0, -8,0,0,0,16,0,48,0,16,0,16,0,32,0,48,0,96,0,64,0, --128,0,16,0,56,0,56,0,20,0,72,0,4,0,4,0,40,0,32,0, -56,0,80,0,32,0,64,0,64,0,80,0,-40,1,8,1,-16,1,-88,3, -8,0,96,0,0,0,-128,0,-96,0,-120,1,8,1,0,1,40,1,-8,0, -83,84,82,67,37,0,0,0,10,0,3,0,4,0,0,0,4,0,1,0, -9,0,2,0,11,0,3,0,10,0,3,0,10,0,4,0,10,0,5,0, -12,0,2,0,9,0,6,0,9,0,7,0,13,0,1,0,7,0,8,0, -14,0,1,0,8,0,8,0,15,0,1,0,13,0,9,0,16,0,1,0, -14,0,9,0,17,0,2,0,15,0,10,0,13,0,11,0,18,0,2,0, -16,0,10,0,14,0,11,0,19,0,3,0,9,0,12,0,4,0,13,0, -0,0,14,0,20,0,5,0,19,0,15,0,13,0,16,0,13,0,17,0, -7,0,18,0,0,0,19,0,21,0,5,0,19,0,15,0,13,0,16,0, -13,0,20,0,7,0,21,0,4,0,22,0,22,0,2,0,13,0,23,0, -7,0,24,0,23,0,4,0,21,0,25,0,22,0,26,0,4,0,27,0, -0,0,14,0,24,0,1,0,4,0,28,0,25,0,2,0,2,0,29,0, -2,0,28,0,26,0,6,0,13,0,30,0,14,0,31,0,24,0,32,0, -25,0,33,0,4,0,34,0,4,0,35,0,27,0,4,0,26,0,36,0, -13,0,37,0,4,0,38,0,0,0,14,0,28,0,4,0,19,0,15,0, -27,0,39,0,7,0,21,0,0,0,14,0,29,0,4,0,17,0,40,0, -19,0,41,0,4,0,42,0,7,0,43,0,30,0,4,0,19,0,15,0, -29,0,44,0,4,0,45,0,7,0,21,0,31,0,3,0,21,0,25,0, -4,0,46,0,0,0,14,0,32,0,3,0,21,0,25,0,4,0,46,0, -0,0,14,0,33,0,5,0,21,0,25,0,13,0,47,0,14,0,48,0, -4,0,49,0,0,0,50,0,34,0,24,0,9,0,51,0,9,0,52,0, -19,0,53,0,9,0,54,0,18,0,55,0,18,0,56,0,14,0,57,0, -14,0,58,0,14,0,59,0,8,0,60,0,8,0,61,0,8,0,62,0, -8,0,63,0,8,0,64,0,8,0,65,0,8,0,66,0,4,0,67,0, -4,0,68,0,4,0,69,0,4,0,70,0,4,0,71,0,4,0,72,0, -4,0,73,0,0,0,14,0,35,0,23,0,9,0,51,0,9,0,52,0, -19,0,53,0,9,0,54,0,17,0,55,0,17,0,56,0,13,0,57,0, -13,0,58,0,13,0,59,0,7,0,60,0,7,0,61,0,7,0,62,0, -7,0,63,0,7,0,64,0,7,0,65,0,7,0,66,0,4,0,67,0, -4,0,68,0,4,0,69,0,4,0,70,0,4,0,71,0,4,0,72,0, -4,0,73,0,36,0,21,0,35,0,74,0,15,0,75,0,13,0,76,0, -13,0,77,0,13,0,78,0,13,0,79,0,13,0,80,0,13,0,81,0, -13,0,82,0,13,0,83,0,13,0,84,0,7,0,85,0,7,0,86,0, -7,0,87,0,7,0,88,0,7,0,89,0,7,0,90,0,7,0,91,0, -7,0,92,0,7,0,93,0,4,0,94,0,37,0,22,0,34,0,74,0, -16,0,75,0,14,0,76,0,14,0,77,0,14,0,78,0,14,0,79,0, -14,0,80,0,14,0,81,0,14,0,82,0,14,0,83,0,14,0,84,0, -8,0,85,0,8,0,86,0,8,0,87,0,8,0,88,0,8,0,89,0, -8,0,90,0,8,0,91,0,8,0,92,0,8,0,93,0,4,0,94,0, -0,0,14,0,38,0,2,0,4,0,95,0,4,0,96,0,39,0,13,0, -40,0,97,0,40,0,98,0,13,0,99,0,13,0,100,0,13,0,101,0, -4,0,102,0,4,0,103,0,4,0,104,0,4,0,105,0,7,0,106,0, -7,0,107,0,4,0,108,0,0,0,19,0,41,0,3,0,39,0,109,0, -13,0,110,0,13,0,111,0,42,0,3,0,39,0,109,0,14,0,110,0, -14,0,111,0,43,0,13,0,39,0,109,0,18,0,112,0,18,0,113,0, -4,0,114,0,4,0,115,0,4,0,116,0,7,0,117,0,7,0,118,0, -7,0,119,0,7,0,120,0,7,0,121,0,7,0,122,0,7,0,123,0, -44,0,13,0,39,0,109,0,17,0,112,0,17,0,113,0,4,0,114,0, -4,0,115,0,4,0,116,0,7,0,117,0,7,0,118,0,7,0,119,0, -7,0,120,0,7,0,121,0,7,0,122,0,7,0,123,0,45,0,11,0, -39,0,109,0,17,0,112,0,17,0,113,0,7,0,124,0,7,0,125,0, -7,0,126,0,7,0,121,0,7,0,122,0,7,0,123,0,7,0,127,0, -0,0,19,0,46,0,9,0,39,0,109,0,17,0,112,0,17,0,113,0, -13,0,-128,0,13,0,-127,0,13,0,-126,0,13,0,-125,0,4,0,-124,0, -4,0,-123,0,47,0,9,0,39,0,109,0,17,0,112,0,17,0,113,0, -7,0,-128,0,7,0,-127,0,7,0,-126,0,7,0,-125,0,4,0,-124,0, -4,0,-123,0,}; +116,97,0,98,116,71,73,109,112,97,99,116,77,101,115,104,83,104,97,112, +101,68,97,116,97,0,98,116,67,111,110,118,101,120,72,117,108,108,83,104, +97,112,101,68,97,116,97,0,98,116,67,111,108,108,105,115,105,111,110,79, +98,106,101,99,116,68,111,117,98,108,101,68,97,116,97,0,98,116,67,111, +108,108,105,115,105,111,110,79,98,106,101,99,116,70,108,111,97,116,68,97, +116,97,0,98,116,82,105,103,105,100,66,111,100,121,70,108,111,97,116,68, +97,116,97,0,98,116,82,105,103,105,100,66,111,100,121,68,111,117,98,108, +101,68,97,116,97,0,98,116,67,111,110,115,116,114,97,105,110,116,73,110, +102,111,49,0,98,116,84,121,112,101,100,67,111,110,115,116,114,97,105,110, +116,68,97,116,97,0,98,116,82,105,103,105,100,66,111,100,121,68,97,116, +97,0,98,116,80,111,105,110,116,50,80,111,105,110,116,67,111,110,115,116, +114,97,105,110,116,70,108,111,97,116,68,97,116,97,0,98,116,80,111,105, +110,116,50,80,111,105,110,116,67,111,110,115,116,114,97,105,110,116,68,111, +117,98,108,101,68,97,116,97,0,98,116,72,105,110,103,101,67,111,110,115, +116,114,97,105,110,116,68,111,117,98,108,101,68,97,116,97,0,98,116,72, +105,110,103,101,67,111,110,115,116,114,97,105,110,116,70,108,111,97,116,68, +97,116,97,0,98,116,67,111,110,101,84,119,105,115,116,67,111,110,115,116, +114,97,105,110,116,68,97,116,97,0,98,116,71,101,110,101,114,105,99,54, +68,111,102,67,111,110,115,116,114,97,105,110,116,68,97,116,97,0,98,116, +83,108,105,100,101,114,67,111,110,115,116,114,97,105,110,116,68,97,116,97, +0,0,0,0,84,76,69,78,1,0,1,0,2,0,2,0,4,0,4,0, +4,0,4,0,8,0,0,0,16,0,48,0,16,0,16,0,32,0,48,0, +96,0,64,0,-128,0,16,0,56,0,56,0,20,0,72,0,4,0,4,0, +40,0,32,0,56,0,80,0,32,0,64,0,64,0,72,0,80,0,-40,1, +8,1,-16,1,-88,3,8,0,96,0,0,0,-128,0,-96,0,-120,1,8,1, +0,1,40,1,-8,0,0,0,83,84,82,67,38,0,0,0,10,0,3,0, +4,0,0,0,4,0,1,0,9,0,2,0,11,0,3,0,10,0,3,0, +10,0,4,0,10,0,5,0,12,0,2,0,9,0,6,0,9,0,7,0, +13,0,1,0,7,0,8,0,14,0,1,0,8,0,8,0,15,0,1,0, +13,0,9,0,16,0,1,0,14,0,9,0,17,0,2,0,15,0,10,0, +13,0,11,0,18,0,2,0,16,0,10,0,14,0,11,0,19,0,3,0, +9,0,12,0,4,0,13,0,0,0,14,0,20,0,5,0,19,0,15,0, +13,0,16,0,13,0,17,0,7,0,18,0,0,0,19,0,21,0,5,0, +19,0,15,0,13,0,16,0,13,0,20,0,7,0,21,0,4,0,22,0, +22,0,2,0,13,0,23,0,7,0,24,0,23,0,4,0,21,0,25,0, +22,0,26,0,4,0,27,0,0,0,14,0,24,0,1,0,4,0,28,0, +25,0,2,0,2,0,29,0,2,0,28,0,26,0,6,0,13,0,30,0, +14,0,31,0,24,0,32,0,25,0,33,0,4,0,34,0,4,0,35,0, +27,0,4,0,26,0,36,0,13,0,37,0,4,0,38,0,0,0,14,0, +28,0,4,0,19,0,15,0,27,0,39,0,7,0,21,0,0,0,14,0, +29,0,4,0,17,0,40,0,19,0,41,0,4,0,42,0,7,0,43,0, +30,0,4,0,19,0,15,0,29,0,44,0,4,0,45,0,7,0,21,0, +31,0,3,0,21,0,25,0,4,0,46,0,0,0,14,0,32,0,3,0, +21,0,25,0,4,0,46,0,0,0,14,0,33,0,5,0,19,0,15,0, +27,0,39,0,13,0,16,0,7,0,21,0,4,0,47,0,34,0,5,0, +21,0,25,0,13,0,48,0,14,0,49,0,4,0,50,0,0,0,51,0, +35,0,24,0,9,0,52,0,9,0,53,0,19,0,54,0,9,0,55,0, +18,0,56,0,18,0,57,0,14,0,58,0,14,0,59,0,14,0,60,0, +8,0,61,0,8,0,62,0,8,0,63,0,8,0,64,0,8,0,65,0, +8,0,66,0,8,0,67,0,4,0,68,0,4,0,69,0,4,0,70,0, +4,0,71,0,4,0,72,0,4,0,73,0,4,0,74,0,0,0,14,0, +36,0,23,0,9,0,52,0,9,0,53,0,19,0,54,0,9,0,55,0, +17,0,56,0,17,0,57,0,13,0,58,0,13,0,59,0,13,0,60,0, +7,0,61,0,7,0,62,0,7,0,63,0,7,0,64,0,7,0,65,0, +7,0,66,0,7,0,67,0,4,0,68,0,4,0,69,0,4,0,70,0, +4,0,71,0,4,0,72,0,4,0,73,0,4,0,74,0,37,0,21,0, +36,0,75,0,15,0,76,0,13,0,77,0,13,0,78,0,13,0,79,0, +13,0,80,0,13,0,81,0,13,0,82,0,13,0,83,0,13,0,84,0, +13,0,85,0,7,0,86,0,7,0,87,0,7,0,88,0,7,0,89,0, +7,0,90,0,7,0,91,0,7,0,92,0,7,0,93,0,7,0,94,0, +4,0,95,0,38,0,22,0,35,0,75,0,16,0,76,0,14,0,77,0, +14,0,78,0,14,0,79,0,14,0,80,0,14,0,81,0,14,0,82,0, +14,0,83,0,14,0,84,0,14,0,85,0,8,0,86,0,8,0,87,0, +8,0,88,0,8,0,89,0,8,0,90,0,8,0,91,0,8,0,92,0, +8,0,93,0,8,0,94,0,4,0,95,0,0,0,14,0,39,0,2,0, +4,0,96,0,4,0,97,0,40,0,13,0,41,0,98,0,41,0,99,0, +13,0,100,0,13,0,101,0,13,0,102,0,4,0,103,0,4,0,104,0, +4,0,105,0,4,0,106,0,7,0,107,0,7,0,108,0,4,0,109,0, +0,0,19,0,42,0,3,0,40,0,110,0,13,0,111,0,13,0,112,0, +43,0,3,0,40,0,110,0,14,0,111,0,14,0,112,0,44,0,13,0, +40,0,110,0,18,0,113,0,18,0,114,0,4,0,115,0,4,0,116,0, +4,0,117,0,7,0,118,0,7,0,119,0,7,0,120,0,7,0,121,0, +7,0,122,0,7,0,123,0,7,0,124,0,45,0,13,0,40,0,110,0, +17,0,113,0,17,0,114,0,4,0,115,0,4,0,116,0,4,0,117,0, +7,0,118,0,7,0,119,0,7,0,120,0,7,0,121,0,7,0,122,0, +7,0,123,0,7,0,124,0,46,0,11,0,40,0,110,0,17,0,113,0, +17,0,114,0,7,0,125,0,7,0,126,0,7,0,127,0,7,0,122,0, +7,0,123,0,7,0,124,0,7,0,-128,0,0,0,19,0,47,0,9,0, +40,0,110,0,17,0,113,0,17,0,114,0,13,0,-127,0,13,0,-126,0, +13,0,-125,0,13,0,-124,0,4,0,-123,0,4,0,-122,0,48,0,9,0, +40,0,110,0,17,0,113,0,17,0,114,0,7,0,-127,0,7,0,-126,0, +7,0,-125,0,7,0,-124,0,4,0,-123,0,4,0,-122,0,}; int sBulletDNAlen64= sizeof(sBulletDNAstr64); + unsigned char sBulletDNAstr[]= { -83,68,78,65,78,65,77,69,-122,0,0,0,109,95,115,105,122,101,0,109, +83,68,78,65,78,65,77,69,-121,0,0,0,109,95,115,105,122,101,0,109, 95,99,97,112,97,99,105,116,121,0,42,109,95,100,97,116,97,0,109,95, 99,111,108,108,105,115,105,111,110,83,104,97,112,101,115,0,109,95,99,111, 108,108,105,115,105,111,110,79,98,106,101,99,116,115,0,109,95,99,111,110, @@ -255,91 +259,92 @@ unsigned char sBulletDNAstr[]= { 104,105,108,100,83,104,97,112,101,84,121,112,101,0,109,95,99,104,105,108, 100,77,97,114,103,105,110,0,42,109,95,99,104,105,108,100,83,104,97,112, 101,80,116,114,0,109,95,110,117,109,67,104,105,108,100,83,104,97,112,101, -115,0,109,95,117,112,65,120,105,115,0,42,109,95,117,110,115,99,97,108, -101,100,80,111,105,110,116,115,70,108,111,97,116,80,116,114,0,42,109,95, -117,110,115,99,97,108,101,100,80,111,105,110,116,115,68,111,117,98,108,101, -80,116,114,0,109,95,110,117,109,85,110,115,99,97,108,101,100,80,111,105, -110,116,115,0,109,95,112,97,100,100,105,110,103,51,91,52,93,0,42,109, -95,98,114,111,97,100,112,104,97,115,101,72,97,110,100,108,101,0,42,109, -95,99,111,108,108,105,115,105,111,110,83,104,97,112,101,0,42,109,95,114, -111,111,116,67,111,108,108,105,115,105,111,110,83,104,97,112,101,0,42,109, -95,117,115,101,114,79,98,106,101,99,116,80,111,105,110,116,101,114,0,109, -95,119,111,114,108,100,84,114,97,110,115,102,111,114,109,0,109,95,105,110, -116,101,114,112,111,108,97,116,105,111,110,87,111,114,108,100,84,114,97,110, -115,102,111,114,109,0,109,95,105,110,116,101,114,112,111,108,97,116,105,111, -110,76,105,110,101,97,114,86,101,108,111,99,105,116,121,0,109,95,105,110, -116,101,114,112,111,108,97,116,105,111,110,65,110,103,117,108,97,114,86,101, -108,111,99,105,116,121,0,109,95,97,110,105,115,111,116,114,111,112,105,99, -70,114,105,99,116,105,111,110,0,109,95,99,111,110,116,97,99,116,80,114, -111,99,101,115,115,105,110,103,84,104,114,101,115,104,111,108,100,0,109,95, -100,101,97,99,116,105,118,97,116,105,111,110,84,105,109,101,0,109,95,102, -114,105,99,116,105,111,110,0,109,95,114,101,115,116,105,116,117,116,105,111, -110,0,109,95,104,105,116,70,114,97,99,116,105,111,110,0,109,95,99,99, -100,83,119,101,112,116,83,112,104,101,114,101,82,97,100,105,117,115,0,109, -95,99,99,100,77,111,116,105,111,110,84,104,114,101,115,104,111,108,100,0, -109,95,104,97,115,65,110,105,115,111,116,114,111,112,105,99,70,114,105,99, -116,105,111,110,0,109,95,99,111,108,108,105,115,105,111,110,70,108,97,103, -115,0,109,95,105,115,108,97,110,100,84,97,103,49,0,109,95,99,111,109, -112,97,110,105,111,110,73,100,0,109,95,97,99,116,105,118,97,116,105,111, -110,83,116,97,116,101,49,0,109,95,105,110,116,101,114,110,97,108,84,121, -112,101,0,109,95,99,104,101,99,107,67,111,108,108,105,100,101,87,105,116, -104,0,109,95,99,111,108,108,105,115,105,111,110,79,98,106,101,99,116,68, -97,116,97,0,109,95,105,110,118,73,110,101,114,116,105,97,84,101,110,115, -111,114,87,111,114,108,100,0,109,95,108,105,110,101,97,114,86,101,108,111, -99,105,116,121,0,109,95,97,110,103,117,108,97,114,86,101,108,111,99,105, -116,121,0,109,95,97,110,103,117,108,97,114,70,97,99,116,111,114,0,109, -95,108,105,110,101,97,114,70,97,99,116,111,114,0,109,95,103,114,97,118, -105,116,121,0,109,95,103,114,97,118,105,116,121,95,97,99,99,101,108,101, -114,97,116,105,111,110,0,109,95,105,110,118,73,110,101,114,116,105,97,76, -111,99,97,108,0,109,95,116,111,116,97,108,70,111,114,99,101,0,109,95, -116,111,116,97,108,84,111,114,113,117,101,0,109,95,105,110,118,101,114,115, -101,77,97,115,115,0,109,95,108,105,110,101,97,114,68,97,109,112,105,110, -103,0,109,95,97,110,103,117,108,97,114,68,97,109,112,105,110,103,0,109, -95,97,100,100,105,116,105,111,110,97,108,68,97,109,112,105,110,103,70,97, -99,116,111,114,0,109,95,97,100,100,105,116,105,111,110,97,108,76,105,110, -101,97,114,68,97,109,112,105,110,103,84,104,114,101,115,104,111,108,100,83, -113,114,0,109,95,97,100,100,105,116,105,111,110,97,108,65,110,103,117,108, -97,114,68,97,109,112,105,110,103,84,104,114,101,115,104,111,108,100,83,113, -114,0,109,95,97,100,100,105,116,105,111,110,97,108,65,110,103,117,108,97, -114,68,97,109,112,105,110,103,70,97,99,116,111,114,0,109,95,108,105,110, -101,97,114,83,108,101,101,112,105,110,103,84,104,114,101,115,104,111,108,100, -0,109,95,97,110,103,117,108,97,114,83,108,101,101,112,105,110,103,84,104, -114,101,115,104,111,108,100,0,109,95,97,100,100,105,116,105,111,110,97,108, -68,97,109,112,105,110,103,0,109,95,110,117,109,67,111,110,115,116,114,97, -105,110,116,82,111,119,115,0,110,117,98,0,42,109,95,114,98,65,0,42, -109,95,114,98,66,0,109,95,97,112,112,108,105,101,100,76,105,110,101,97, -114,73,109,112,117,108,115,101,0,109,95,97,112,112,108,105,101,100,65,110, -103,117,108,97,114,73,109,112,117,108,115,101,65,0,109,95,97,112,112,108, -105,101,100,65,110,103,117,108,97,114,73,109,112,117,108,115,101,66,0,109, -95,111,98,106,101,99,116,84,121,112,101,0,109,95,117,115,101,114,67,111, -110,115,116,114,97,105,110,116,84,121,112,101,0,109,95,117,115,101,114,67, -111,110,115,116,114,97,105,110,116,73,100,0,109,95,110,101,101,100,115,70, -101,101,100,98,97,99,107,0,109,95,97,112,112,108,105,101,100,73,109,112, -117,108,115,101,0,109,95,100,98,103,68,114,97,119,83,105,122,101,0,109, -95,100,105,115,97,98,108,101,67,111,108,108,105,115,105,111,110,115,66,101, -116,119,101,101,110,76,105,110,107,101,100,66,111,100,105,101,115,0,109,95, -116,121,112,101,67,111,110,115,116,114,97,105,110,116,68,97,116,97,0,109, -95,112,105,118,111,116,73,110,65,0,109,95,112,105,118,111,116,73,110,66, -0,109,95,114,98,65,70,114,97,109,101,0,109,95,114,98,66,70,114,97, -109,101,0,109,95,117,115,101,82,101,102,101,114,101,110,99,101,70,114,97, -109,101,65,0,109,95,97,110,103,117,108,97,114,79,110,108,121,0,109,95, -101,110,97,98,108,101,65,110,103,117,108,97,114,77,111,116,111,114,0,109, -95,109,111,116,111,114,84,97,114,103,101,116,86,101,108,111,99,105,116,121, -0,109,95,109,97,120,77,111,116,111,114,73,109,112,117,108,115,101,0,109, -95,108,111,119,101,114,76,105,109,105,116,0,109,95,117,112,112,101,114,76, -105,109,105,116,0,109,95,108,105,109,105,116,83,111,102,116,110,101,115,115, -0,109,95,98,105,97,115,70,97,99,116,111,114,0,109,95,114,101,108,97, -120,97,116,105,111,110,70,97,99,116,111,114,0,109,95,115,119,105,110,103, -83,112,97,110,49,0,109,95,115,119,105,110,103,83,112,97,110,50,0,109, -95,116,119,105,115,116,83,112,97,110,0,109,95,100,97,109,112,105,110,103, -0,109,95,108,105,110,101,97,114,85,112,112,101,114,76,105,109,105,116,0, -109,95,108,105,110,101,97,114,76,111,119,101,114,76,105,109,105,116,0,109, -95,97,110,103,117,108,97,114,85,112,112,101,114,76,105,109,105,116,0,109, -95,97,110,103,117,108,97,114,76,111,119,101,114,76,105,109,105,116,0,109, -95,117,115,101,76,105,110,101,97,114,82,101,102,101,114,101,110,99,101,70, -114,97,109,101,65,0,109,95,117,115,101,79,102,102,115,101,116,70,111,114, -67,111,110,115,116,114,97,105,110,116,70,114,97,109,101,0,84,89,80,69, -48,0,0,0,99,104,97,114,0,117,99,104,97,114,0,115,104,111,114,116, +115,0,109,95,117,112,65,120,105,115,0,109,95,103,105,109,112,97,99,116, +83,117,98,84,121,112,101,0,42,109,95,117,110,115,99,97,108,101,100,80, +111,105,110,116,115,70,108,111,97,116,80,116,114,0,42,109,95,117,110,115, +99,97,108,101,100,80,111,105,110,116,115,68,111,117,98,108,101,80,116,114, +0,109,95,110,117,109,85,110,115,99,97,108,101,100,80,111,105,110,116,115, +0,109,95,112,97,100,100,105,110,103,51,91,52,93,0,42,109,95,98,114, +111,97,100,112,104,97,115,101,72,97,110,100,108,101,0,42,109,95,99,111, +108,108,105,115,105,111,110,83,104,97,112,101,0,42,109,95,114,111,111,116, +67,111,108,108,105,115,105,111,110,83,104,97,112,101,0,42,109,95,117,115, +101,114,79,98,106,101,99,116,80,111,105,110,116,101,114,0,109,95,119,111, +114,108,100,84,114,97,110,115,102,111,114,109,0,109,95,105,110,116,101,114, +112,111,108,97,116,105,111,110,87,111,114,108,100,84,114,97,110,115,102,111, +114,109,0,109,95,105,110,116,101,114,112,111,108,97,116,105,111,110,76,105, +110,101,97,114,86,101,108,111,99,105,116,121,0,109,95,105,110,116,101,114, +112,111,108,97,116,105,111,110,65,110,103,117,108,97,114,86,101,108,111,99, +105,116,121,0,109,95,97,110,105,115,111,116,114,111,112,105,99,70,114,105, +99,116,105,111,110,0,109,95,99,111,110,116,97,99,116,80,114,111,99,101, +115,115,105,110,103,84,104,114,101,115,104,111,108,100,0,109,95,100,101,97, +99,116,105,118,97,116,105,111,110,84,105,109,101,0,109,95,102,114,105,99, +116,105,111,110,0,109,95,114,101,115,116,105,116,117,116,105,111,110,0,109, +95,104,105,116,70,114,97,99,116,105,111,110,0,109,95,99,99,100,83,119, +101,112,116,83,112,104,101,114,101,82,97,100,105,117,115,0,109,95,99,99, +100,77,111,116,105,111,110,84,104,114,101,115,104,111,108,100,0,109,95,104, +97,115,65,110,105,115,111,116,114,111,112,105,99,70,114,105,99,116,105,111, +110,0,109,95,99,111,108,108,105,115,105,111,110,70,108,97,103,115,0,109, +95,105,115,108,97,110,100,84,97,103,49,0,109,95,99,111,109,112,97,110, +105,111,110,73,100,0,109,95,97,99,116,105,118,97,116,105,111,110,83,116, +97,116,101,49,0,109,95,105,110,116,101,114,110,97,108,84,121,112,101,0, +109,95,99,104,101,99,107,67,111,108,108,105,100,101,87,105,116,104,0,109, +95,99,111,108,108,105,115,105,111,110,79,98,106,101,99,116,68,97,116,97, +0,109,95,105,110,118,73,110,101,114,116,105,97,84,101,110,115,111,114,87, +111,114,108,100,0,109,95,108,105,110,101,97,114,86,101,108,111,99,105,116, +121,0,109,95,97,110,103,117,108,97,114,86,101,108,111,99,105,116,121,0, +109,95,97,110,103,117,108,97,114,70,97,99,116,111,114,0,109,95,108,105, +110,101,97,114,70,97,99,116,111,114,0,109,95,103,114,97,118,105,116,121, +0,109,95,103,114,97,118,105,116,121,95,97,99,99,101,108,101,114,97,116, +105,111,110,0,109,95,105,110,118,73,110,101,114,116,105,97,76,111,99,97, +108,0,109,95,116,111,116,97,108,70,111,114,99,101,0,109,95,116,111,116, +97,108,84,111,114,113,117,101,0,109,95,105,110,118,101,114,115,101,77,97, +115,115,0,109,95,108,105,110,101,97,114,68,97,109,112,105,110,103,0,109, +95,97,110,103,117,108,97,114,68,97,109,112,105,110,103,0,109,95,97,100, +100,105,116,105,111,110,97,108,68,97,109,112,105,110,103,70,97,99,116,111, +114,0,109,95,97,100,100,105,116,105,111,110,97,108,76,105,110,101,97,114, +68,97,109,112,105,110,103,84,104,114,101,115,104,111,108,100,83,113,114,0, +109,95,97,100,100,105,116,105,111,110,97,108,65,110,103,117,108,97,114,68, +97,109,112,105,110,103,84,104,114,101,115,104,111,108,100,83,113,114,0,109, +95,97,100,100,105,116,105,111,110,97,108,65,110,103,117,108,97,114,68,97, +109,112,105,110,103,70,97,99,116,111,114,0,109,95,108,105,110,101,97,114, +83,108,101,101,112,105,110,103,84,104,114,101,115,104,111,108,100,0,109,95, +97,110,103,117,108,97,114,83,108,101,101,112,105,110,103,84,104,114,101,115, +104,111,108,100,0,109,95,97,100,100,105,116,105,111,110,97,108,68,97,109, +112,105,110,103,0,109,95,110,117,109,67,111,110,115,116,114,97,105,110,116, +82,111,119,115,0,110,117,98,0,42,109,95,114,98,65,0,42,109,95,114, +98,66,0,109,95,97,112,112,108,105,101,100,76,105,110,101,97,114,73,109, +112,117,108,115,101,0,109,95,97,112,112,108,105,101,100,65,110,103,117,108, +97,114,73,109,112,117,108,115,101,65,0,109,95,97,112,112,108,105,101,100, +65,110,103,117,108,97,114,73,109,112,117,108,115,101,66,0,109,95,111,98, +106,101,99,116,84,121,112,101,0,109,95,117,115,101,114,67,111,110,115,116, +114,97,105,110,116,84,121,112,101,0,109,95,117,115,101,114,67,111,110,115, +116,114,97,105,110,116,73,100,0,109,95,110,101,101,100,115,70,101,101,100, +98,97,99,107,0,109,95,97,112,112,108,105,101,100,73,109,112,117,108,115, +101,0,109,95,100,98,103,68,114,97,119,83,105,122,101,0,109,95,100,105, +115,97,98,108,101,67,111,108,108,105,115,105,111,110,115,66,101,116,119,101, +101,110,76,105,110,107,101,100,66,111,100,105,101,115,0,109,95,116,121,112, +101,67,111,110,115,116,114,97,105,110,116,68,97,116,97,0,109,95,112,105, +118,111,116,73,110,65,0,109,95,112,105,118,111,116,73,110,66,0,109,95, +114,98,65,70,114,97,109,101,0,109,95,114,98,66,70,114,97,109,101,0, +109,95,117,115,101,82,101,102,101,114,101,110,99,101,70,114,97,109,101,65, +0,109,95,97,110,103,117,108,97,114,79,110,108,121,0,109,95,101,110,97, +98,108,101,65,110,103,117,108,97,114,77,111,116,111,114,0,109,95,109,111, +116,111,114,84,97,114,103,101,116,86,101,108,111,99,105,116,121,0,109,95, +109,97,120,77,111,116,111,114,73,109,112,117,108,115,101,0,109,95,108,111, +119,101,114,76,105,109,105,116,0,109,95,117,112,112,101,114,76,105,109,105, +116,0,109,95,108,105,109,105,116,83,111,102,116,110,101,115,115,0,109,95, +98,105,97,115,70,97,99,116,111,114,0,109,95,114,101,108,97,120,97,116, +105,111,110,70,97,99,116,111,114,0,109,95,115,119,105,110,103,83,112,97, +110,49,0,109,95,115,119,105,110,103,83,112,97,110,50,0,109,95,116,119, +105,115,116,83,112,97,110,0,109,95,100,97,109,112,105,110,103,0,109,95, +108,105,110,101,97,114,85,112,112,101,114,76,105,109,105,116,0,109,95,108, +105,110,101,97,114,76,111,119,101,114,76,105,109,105,116,0,109,95,97,110, +103,117,108,97,114,85,112,112,101,114,76,105,109,105,116,0,109,95,97,110, +103,117,108,97,114,76,111,119,101,114,76,105,109,105,116,0,109,95,117,115, +101,76,105,110,101,97,114,82,101,102,101,114,101,110,99,101,70,114,97,109, +101,65,0,109,95,117,115,101,79,102,102,115,101,116,70,111,114,67,111,110, +115,116,114,97,105,110,116,70,114,97,109,101,0,0,0,0,84,89,80,69, +49,0,0,0,99,104,97,114,0,117,99,104,97,114,0,115,104,111,114,116, 0,117,115,104,111,114,116,0,105,110,116,0,108,111,110,103,0,117,108,111, 110,103,0,102,108,111,97,116,0,100,111,117,98,108,101,0,118,111,105,100, 0,80,111,105,110,116,101,114,65,114,114,97,121,0,98,116,80,104,121,115, @@ -365,84 +370,86 @@ unsigned char sBulletDNAstr[]= { 97,116,97,0,98,116,67,111,109,112,111,117,110,100,83,104,97,112,101,68, 97,116,97,0,98,116,67,121,108,105,110,100,101,114,83,104,97,112,101,68, 97,116,97,0,98,116,67,97,112,115,117,108,101,83,104,97,112,101,68,97, -116,97,0,98,116,67,111,110,118,101,120,72,117,108,108,83,104,97,112,101, -68,97,116,97,0,98,116,67,111,108,108,105,115,105,111,110,79,98,106,101, -99,116,68,111,117,98,108,101,68,97,116,97,0,98,116,67,111,108,108,105, -115,105,111,110,79,98,106,101,99,116,70,108,111,97,116,68,97,116,97,0, -98,116,82,105,103,105,100,66,111,100,121,70,108,111,97,116,68,97,116,97, -0,98,116,82,105,103,105,100,66,111,100,121,68,111,117,98,108,101,68,97, -116,97,0,98,116,67,111,110,115,116,114,97,105,110,116,73,110,102,111,49, -0,98,116,84,121,112,101,100,67,111,110,115,116,114,97,105,110,116,68,97, -116,97,0,98,116,82,105,103,105,100,66,111,100,121,68,97,116,97,0,98, -116,80,111,105,110,116,50,80,111,105,110,116,67,111,110,115,116,114,97,105, -110,116,70,108,111,97,116,68,97,116,97,0,98,116,80,111,105,110,116,50, -80,111,105,110,116,67,111,110,115,116,114,97,105,110,116,68,111,117,98,108, -101,68,97,116,97,0,98,116,72,105,110,103,101,67,111,110,115,116,114,97, -105,110,116,68,111,117,98,108,101,68,97,116,97,0,98,116,72,105,110,103, -101,67,111,110,115,116,114,97,105,110,116,70,108,111,97,116,68,97,116,97, -0,98,116,67,111,110,101,84,119,105,115,116,67,111,110,115,116,114,97,105, -110,116,68,97,116,97,0,98,116,71,101,110,101,114,105,99,54,68,111,102, -67,111,110,115,116,114,97,105,110,116,68,97,116,97,0,98,116,83,108,105, -100,101,114,67,111,110,115,116,114,97,105,110,116,68,97,116,97,0,0,0, -84,76,69,78,1,0,1,0,2,0,2,0,4,0,4,0,4,0,4,0, -8,0,0,0,12,0,36,0,8,0,16,0,32,0,48,0,96,0,64,0, --128,0,12,0,52,0,52,0,20,0,64,0,4,0,4,0,24,0,28,0, -48,0,76,0,24,0,60,0,60,0,68,0,-56,1,-8,0,-32,1,-104,3, -8,0,88,0,0,0,120,0,-104,0,-128,1,0,1,-8,0,32,1,-16,0, -83,84,82,67,37,0,0,0,10,0,3,0,4,0,0,0,4,0,1,0, -9,0,2,0,11,0,3,0,10,0,3,0,10,0,4,0,10,0,5,0, -12,0,2,0,9,0,6,0,9,0,7,0,13,0,1,0,7,0,8,0, -14,0,1,0,8,0,8,0,15,0,1,0,13,0,9,0,16,0,1,0, -14,0,9,0,17,0,2,0,15,0,10,0,13,0,11,0,18,0,2,0, -16,0,10,0,14,0,11,0,19,0,3,0,9,0,12,0,4,0,13,0, -0,0,14,0,20,0,5,0,19,0,15,0,13,0,16,0,13,0,17,0, -7,0,18,0,0,0,19,0,21,0,5,0,19,0,15,0,13,0,16,0, -13,0,20,0,7,0,21,0,4,0,22,0,22,0,2,0,13,0,23,0, -7,0,24,0,23,0,4,0,21,0,25,0,22,0,26,0,4,0,27,0, -0,0,14,0,24,0,1,0,4,0,28,0,25,0,2,0,2,0,29,0, -2,0,28,0,26,0,6,0,13,0,30,0,14,0,31,0,24,0,32,0, -25,0,33,0,4,0,34,0,4,0,35,0,27,0,4,0,26,0,36,0, -13,0,37,0,4,0,38,0,0,0,14,0,28,0,4,0,19,0,15,0, -27,0,39,0,7,0,21,0,0,0,14,0,29,0,4,0,17,0,40,0, -19,0,41,0,4,0,42,0,7,0,43,0,30,0,4,0,19,0,15,0, -29,0,44,0,4,0,45,0,7,0,21,0,31,0,3,0,21,0,25,0, -4,0,46,0,0,0,14,0,32,0,3,0,21,0,25,0,4,0,46,0, -0,0,14,0,33,0,5,0,21,0,25,0,13,0,47,0,14,0,48,0, -4,0,49,0,0,0,50,0,34,0,24,0,9,0,51,0,9,0,52,0, -19,0,53,0,9,0,54,0,18,0,55,0,18,0,56,0,14,0,57,0, -14,0,58,0,14,0,59,0,8,0,60,0,8,0,61,0,8,0,62,0, -8,0,63,0,8,0,64,0,8,0,65,0,8,0,66,0,4,0,67,0, -4,0,68,0,4,0,69,0,4,0,70,0,4,0,71,0,4,0,72,0, -4,0,73,0,0,0,14,0,35,0,23,0,9,0,51,0,9,0,52,0, -19,0,53,0,9,0,54,0,17,0,55,0,17,0,56,0,13,0,57,0, -13,0,58,0,13,0,59,0,7,0,60,0,7,0,61,0,7,0,62,0, -7,0,63,0,7,0,64,0,7,0,65,0,7,0,66,0,4,0,67,0, -4,0,68,0,4,0,69,0,4,0,70,0,4,0,71,0,4,0,72,0, -4,0,73,0,36,0,21,0,35,0,74,0,15,0,75,0,13,0,76,0, -13,0,77,0,13,0,78,0,13,0,79,0,13,0,80,0,13,0,81,0, -13,0,82,0,13,0,83,0,13,0,84,0,7,0,85,0,7,0,86,0, -7,0,87,0,7,0,88,0,7,0,89,0,7,0,90,0,7,0,91,0, -7,0,92,0,7,0,93,0,4,0,94,0,37,0,22,0,34,0,74,0, -16,0,75,0,14,0,76,0,14,0,77,0,14,0,78,0,14,0,79,0, -14,0,80,0,14,0,81,0,14,0,82,0,14,0,83,0,14,0,84,0, -8,0,85,0,8,0,86,0,8,0,87,0,8,0,88,0,8,0,89,0, -8,0,90,0,8,0,91,0,8,0,92,0,8,0,93,0,4,0,94,0, -0,0,14,0,38,0,2,0,4,0,95,0,4,0,96,0,39,0,13,0, -40,0,97,0,40,0,98,0,13,0,99,0,13,0,100,0,13,0,101,0, -4,0,102,0,4,0,103,0,4,0,104,0,4,0,105,0,7,0,106,0, -7,0,107,0,4,0,108,0,0,0,19,0,41,0,3,0,39,0,109,0, -13,0,110,0,13,0,111,0,42,0,3,0,39,0,109,0,14,0,110,0, -14,0,111,0,43,0,13,0,39,0,109,0,18,0,112,0,18,0,113,0, -4,0,114,0,4,0,115,0,4,0,116,0,7,0,117,0,7,0,118,0, -7,0,119,0,7,0,120,0,7,0,121,0,7,0,122,0,7,0,123,0, -44,0,13,0,39,0,109,0,17,0,112,0,17,0,113,0,4,0,114,0, -4,0,115,0,4,0,116,0,7,0,117,0,7,0,118,0,7,0,119,0, -7,0,120,0,7,0,121,0,7,0,122,0,7,0,123,0,45,0,11,0, -39,0,109,0,17,0,112,0,17,0,113,0,7,0,124,0,7,0,125,0, -7,0,126,0,7,0,121,0,7,0,122,0,7,0,123,0,7,0,127,0, -0,0,19,0,46,0,9,0,39,0,109,0,17,0,112,0,17,0,113,0, -13,0,-128,0,13,0,-127,0,13,0,-126,0,13,0,-125,0,4,0,-124,0, -4,0,-123,0,47,0,9,0,39,0,109,0,17,0,112,0,17,0,113,0, -7,0,-128,0,7,0,-127,0,7,0,-126,0,7,0,-125,0,4,0,-124,0, -4,0,-123,0,}; +116,97,0,98,116,71,73,109,112,97,99,116,77,101,115,104,83,104,97,112, +101,68,97,116,97,0,98,116,67,111,110,118,101,120,72,117,108,108,83,104, +97,112,101,68,97,116,97,0,98,116,67,111,108,108,105,115,105,111,110,79, +98,106,101,99,116,68,111,117,98,108,101,68,97,116,97,0,98,116,67,111, +108,108,105,115,105,111,110,79,98,106,101,99,116,70,108,111,97,116,68,97, +116,97,0,98,116,82,105,103,105,100,66,111,100,121,70,108,111,97,116,68, +97,116,97,0,98,116,82,105,103,105,100,66,111,100,121,68,111,117,98,108, +101,68,97,116,97,0,98,116,67,111,110,115,116,114,97,105,110,116,73,110, +102,111,49,0,98,116,84,121,112,101,100,67,111,110,115,116,114,97,105,110, +116,68,97,116,97,0,98,116,82,105,103,105,100,66,111,100,121,68,97,116, +97,0,98,116,80,111,105,110,116,50,80,111,105,110,116,67,111,110,115,116, +114,97,105,110,116,70,108,111,97,116,68,97,116,97,0,98,116,80,111,105, +110,116,50,80,111,105,110,116,67,111,110,115,116,114,97,105,110,116,68,111, +117,98,108,101,68,97,116,97,0,98,116,72,105,110,103,101,67,111,110,115, +116,114,97,105,110,116,68,111,117,98,108,101,68,97,116,97,0,98,116,72, +105,110,103,101,67,111,110,115,116,114,97,105,110,116,70,108,111,97,116,68, +97,116,97,0,98,116,67,111,110,101,84,119,105,115,116,67,111,110,115,116, +114,97,105,110,116,68,97,116,97,0,98,116,71,101,110,101,114,105,99,54, +68,111,102,67,111,110,115,116,114,97,105,110,116,68,97,116,97,0,98,116, +83,108,105,100,101,114,67,111,110,115,116,114,97,105,110,116,68,97,116,97, +0,0,0,0,84,76,69,78,1,0,1,0,2,0,2,0,4,0,4,0, +4,0,4,0,8,0,0,0,12,0,36,0,8,0,16,0,32,0,48,0, +96,0,64,0,-128,0,12,0,52,0,52,0,20,0,64,0,4,0,4,0, +24,0,28,0,48,0,76,0,24,0,60,0,60,0,64,0,68,0,-56,1, +-8,0,-32,1,-104,3,8,0,88,0,0,0,120,0,-104,0,-128,1,0,1, +-8,0,32,1,-16,0,0,0,83,84,82,67,38,0,0,0,10,0,3,0, +4,0,0,0,4,0,1,0,9,0,2,0,11,0,3,0,10,0,3,0, +10,0,4,0,10,0,5,0,12,0,2,0,9,0,6,0,9,0,7,0, +13,0,1,0,7,0,8,0,14,0,1,0,8,0,8,0,15,0,1,0, +13,0,9,0,16,0,1,0,14,0,9,0,17,0,2,0,15,0,10,0, +13,0,11,0,18,0,2,0,16,0,10,0,14,0,11,0,19,0,3,0, +9,0,12,0,4,0,13,0,0,0,14,0,20,0,5,0,19,0,15,0, +13,0,16,0,13,0,17,0,7,0,18,0,0,0,19,0,21,0,5,0, +19,0,15,0,13,0,16,0,13,0,20,0,7,0,21,0,4,0,22,0, +22,0,2,0,13,0,23,0,7,0,24,0,23,0,4,0,21,0,25,0, +22,0,26,0,4,0,27,0,0,0,14,0,24,0,1,0,4,0,28,0, +25,0,2,0,2,0,29,0,2,0,28,0,26,0,6,0,13,0,30,0, +14,0,31,0,24,0,32,0,25,0,33,0,4,0,34,0,4,0,35,0, +27,0,4,0,26,0,36,0,13,0,37,0,4,0,38,0,0,0,14,0, +28,0,4,0,19,0,15,0,27,0,39,0,7,0,21,0,0,0,14,0, +29,0,4,0,17,0,40,0,19,0,41,0,4,0,42,0,7,0,43,0, +30,0,4,0,19,0,15,0,29,0,44,0,4,0,45,0,7,0,21,0, +31,0,3,0,21,0,25,0,4,0,46,0,0,0,14,0,32,0,3,0, +21,0,25,0,4,0,46,0,0,0,14,0,33,0,5,0,19,0,15,0, +27,0,39,0,13,0,16,0,7,0,21,0,4,0,47,0,34,0,5,0, +21,0,25,0,13,0,48,0,14,0,49,0,4,0,50,0,0,0,51,0, +35,0,24,0,9,0,52,0,9,0,53,0,19,0,54,0,9,0,55,0, +18,0,56,0,18,0,57,0,14,0,58,0,14,0,59,0,14,0,60,0, +8,0,61,0,8,0,62,0,8,0,63,0,8,0,64,0,8,0,65,0, +8,0,66,0,8,0,67,0,4,0,68,0,4,0,69,0,4,0,70,0, +4,0,71,0,4,0,72,0,4,0,73,0,4,0,74,0,0,0,14,0, +36,0,23,0,9,0,52,0,9,0,53,0,19,0,54,0,9,0,55,0, +17,0,56,0,17,0,57,0,13,0,58,0,13,0,59,0,13,0,60,0, +7,0,61,0,7,0,62,0,7,0,63,0,7,0,64,0,7,0,65,0, +7,0,66,0,7,0,67,0,4,0,68,0,4,0,69,0,4,0,70,0, +4,0,71,0,4,0,72,0,4,0,73,0,4,0,74,0,37,0,21,0, +36,0,75,0,15,0,76,0,13,0,77,0,13,0,78,0,13,0,79,0, +13,0,80,0,13,0,81,0,13,0,82,0,13,0,83,0,13,0,84,0, +13,0,85,0,7,0,86,0,7,0,87,0,7,0,88,0,7,0,89,0, +7,0,90,0,7,0,91,0,7,0,92,0,7,0,93,0,7,0,94,0, +4,0,95,0,38,0,22,0,35,0,75,0,16,0,76,0,14,0,77,0, +14,0,78,0,14,0,79,0,14,0,80,0,14,0,81,0,14,0,82,0, +14,0,83,0,14,0,84,0,14,0,85,0,8,0,86,0,8,0,87,0, +8,0,88,0,8,0,89,0,8,0,90,0,8,0,91,0,8,0,92,0, +8,0,93,0,8,0,94,0,4,0,95,0,0,0,14,0,39,0,2,0, +4,0,96,0,4,0,97,0,40,0,13,0,41,0,98,0,41,0,99,0, +13,0,100,0,13,0,101,0,13,0,102,0,4,0,103,0,4,0,104,0, +4,0,105,0,4,0,106,0,7,0,107,0,7,0,108,0,4,0,109,0, +0,0,19,0,42,0,3,0,40,0,110,0,13,0,111,0,13,0,112,0, +43,0,3,0,40,0,110,0,14,0,111,0,14,0,112,0,44,0,13,0, +40,0,110,0,18,0,113,0,18,0,114,0,4,0,115,0,4,0,116,0, +4,0,117,0,7,0,118,0,7,0,119,0,7,0,120,0,7,0,121,0, +7,0,122,0,7,0,123,0,7,0,124,0,45,0,13,0,40,0,110,0, +17,0,113,0,17,0,114,0,4,0,115,0,4,0,116,0,4,0,117,0, +7,0,118,0,7,0,119,0,7,0,120,0,7,0,121,0,7,0,122,0, +7,0,123,0,7,0,124,0,46,0,11,0,40,0,110,0,17,0,113,0, +17,0,114,0,7,0,125,0,7,0,126,0,7,0,127,0,7,0,122,0, +7,0,123,0,7,0,124,0,7,0,-128,0,0,0,19,0,47,0,9,0, +40,0,110,0,17,0,113,0,17,0,114,0,13,0,-127,0,13,0,-126,0, +13,0,-125,0,13,0,-124,0,4,0,-123,0,4,0,-122,0,48,0,9,0, +40,0,110,0,17,0,113,0,17,0,114,0,7,0,-127,0,7,0,-126,0, +7,0,-125,0,7,0,-124,0,4,0,-123,0,4,0,-122,0,}; int sBulletDNAlen= sizeof(sBulletDNAstr); diff --git a/src/LinearMath/btSerializer.h b/src/LinearMath/btSerializer.h index 0a6f7958b..7be942913 100644 --- a/src/LinearMath/btSerializer.h +++ b/src/LinearMath/btSerializer.h @@ -302,22 +302,33 @@ public: const bool VOID_IS_8 = ((sizeof(void*)==8)); +#ifdef BT_INTERNAL_UPDATE_SERIALIZATION_STRUCTURES if (VOID_IS_8) { -//#if _WIN64 +#if _WIN64 initDNA((const char*)sBulletDNAstr64,sBulletDNAlen64); -//#else -// btAssert(0); -//#endif +#else + btAssert(0); +#endif } else { -//#ifndef _WIN64 +#ifndef _WIN64 initDNA((const char*)sBulletDNAstr,sBulletDNAlen); -//#else -// btAssert(0); -//#endif +#else + btAssert(0); +#endif } - + +#else //BT_INTERNAL_UPDATE_SERIALIZATION_STRUCTURES + if (VOID_IS_8) + { + initDNA((const char*)sBulletDNAstr64,sBulletDNAlen64); + } else + { + initDNA((const char*)sBulletDNAstr,sBulletDNAlen); + } +#endif //BT_INTERNAL_UPDATE_SERIALIZATION_STRUCTURES + } virtual ~btDefaultSerializer()