From c822fb57af130d78392893d3117df51c79727525 Mon Sep 17 00:00:00 2001 From: rdb Date: Mon, 31 Oct 2016 20:46:20 +0100 Subject: [PATCH] Changes suggested by liuzhengcai to fix 3dsmax 2014 build --- pandatool/src/maxprogs/maxEggImport.cxx | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/pandatool/src/maxprogs/maxEggImport.cxx b/pandatool/src/maxprogs/maxEggImport.cxx index f72092300f..5e8dd94f16 100644 --- a/pandatool/src/maxprogs/maxEggImport.cxx +++ b/pandatool/src/maxprogs/maxEggImport.cxx @@ -179,9 +179,10 @@ static INT_PTR CALLBACK ImportDlgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM return FALSE; } return TRUE; -} +} -int MaxEggImporter::DoImport(const TCHAR *name,ImpInterface *ii,Interface *i, BOOL suppressPrompts) { +int MaxEggImporter:: +DoImport(const TCHAR *name, ImpInterface *ii, Interface *i, BOOL suppressPrompts) { // Prompt the user with our dialogbox. if (!DialogBoxParam(hInstance, MAKEINTRESOURCE(IDD_IMPORT_DLG), i->GetMAXHWnd(), ImportDlgProc, (LPARAM)this)) { @@ -190,13 +191,23 @@ int MaxEggImporter::DoImport(const TCHAR *name,ImpInterface *ii,Interface *i, BO std::ostringstream log; Notify::ptr()->set_ostream_ptr(&log, false); + +#ifdef _UNICODE + char sname[2048]; + sname[2047] = 0; + wcstombs(sname, name, 2047); + bool ok = MaxLoadEggFile(sname, _merge ? true:false, _importmodel ? true:false, _importanim ? true:false); +#else bool ok = MaxLoadEggFile(name, _merge ? true:false, _importmodel ? true:false, _importanim ? true:false); +#endif + string txt = log.str(); if (txt != "") { - MessageBox(NULL, txt.c_str(), "Panda3D Importer", MB_OK); - } else { - if (!ok) MessageBox(NULL, "Import Failed, unknown reason\n", "Panda3D Importer", MB_OK); + MessageBoxA(NULL, txt.c_str(), "Panda3D Importer", MB_OK); + } else if (!ok) { + MessageBoxA(NULL, "Import Failed, unknown reason\n", "Panda3D Importer", MB_OK); } + Notify::ptr()->set_ostream_ptr(NULL, false); return 1; }