Browse Source

Fix compile errors in unicode conversion in max exporter

rdb 9 years ago
parent
commit
34b8e0844e

+ 9 - 2
pandatool/src/maxegg/maxEggLoader.cxx

@@ -291,7 +291,7 @@ void MaxEggJoint::CreateMaxBone(void)
   _node->SetRenderable(FALSE);
   _node->SetRenderable(FALSE);
 
 
 #ifdef _UNICODE
 #ifdef _UNICODE
-  TCHAR *wname [1024];
+  TCHAR wname[1024];
   wname[1023] = 0;
   wname[1023] = 0;
   mbstowcs(wname, _egg_joint->get_name().c_str(), 1023);
   mbstowcs(wname, _egg_joint->get_name().c_str(), 1023);
   _node->SetName(wname);
   _node->SetName(wname);
@@ -468,7 +468,14 @@ MaxEggMesh *MaxEggLoader::GetMesh(EggVertexPool *pool)
     result->_tvert_count = 0;
     result->_tvert_count = 0;
     result->_cvert_count = 0;
     result->_cvert_count = 0;
     result->_face_count = 0;
     result->_face_count = 0;
-    result->_node->SetName(TSTR(name.c_str()));
+#ifdef _UNICODE
+    TCHAR wname[1024];
+    wname[1023] = 0;
+    mbstowcs(wname, name.c_str(), 1023);
+    result->_node->SetName(wname);
+#else
+    result->_node->SetName((char*) name.c_str());
+#endif
     _mesh_tab[pool] = result;
     _mesh_tab[pool] = result;
   }
   }
   return result;
   return result;

+ 15 - 0
pandatool/src/maxegg/maxToEggConverter.cxx

@@ -589,7 +589,14 @@ make_nurbs_curve(INode *max_node, NURBSCVCurve *curve,
         return false;
         return false;
     }
     }
 
 
+#ifdef _UNICODE
+    char mbname[1024];
+    mbname[1023] = 0;
+    wcstombs(mbname, max_node->GetName(), 1023);
+    string name(mbname);
+#else
     string name = max_node->GetName();
     string name = max_node->GetName();
+#endif
 
 
     string vpool_name = name + ".cvs";
     string vpool_name = name + ".cvs";
     EggVertexPool *vpool = new EggVertexPool(vpool_name);
     EggVertexPool *vpool = new EggVertexPool(vpool_name);
@@ -652,7 +659,15 @@ make_polyset(INode *max_node, Mesh *mesh,
     // all the vertices up front, we'll start with an empty vpool, and
     // all the vertices up front, we'll start with an empty vpool, and
     // add vertices to it on the fly.
     // add vertices to it on the fly.
 
 
+#ifdef _UNICODE
+    char mbname[1024];
+    mbname[1023] = 0;
+    wcstombs(mbname, max_node->GetName(), 1023);
+    string node_name(mbname);
+#else
     string node_name = max_node->GetName();
     string node_name = max_node->GetName();
+#endif
+
     string vpool_name = node_name + ".verts";
     string vpool_name = node_name + ".verts";
     EggVertexPool *vpool = new EggVertexPool(vpool_name);
     EggVertexPool *vpool = new EggVertexPool(vpool_name);
     egg_group->add_child(vpool);
     egg_group->add_child(vpool);