Fix build for Max 2010 plugins on VS2008
This commit is contained in:
parent
bd21bfeeb3
commit
449f0061f8
54 changed files with 455 additions and 347 deletions
|
@ -303,30 +303,32 @@ inline sint nlstricmp(const std::string &lhs, const std::string &rhs) { return s
|
||||||
inline sint nlstricmp(const std::string &lhs, const char *rhs) { return stricmp(lhs.c_str(),rhs); }
|
inline sint nlstricmp(const std::string &lhs, const char *rhs) { return stricmp(lhs.c_str(),rhs); }
|
||||||
inline sint nlstricmp(const char *lhs, const std::string &rhs) { return stricmp(lhs,rhs.c_str()); }
|
inline sint nlstricmp(const char *lhs, const std::string &rhs) { return stricmp(lhs,rhs.c_str()); }
|
||||||
|
|
||||||
// macros helper to convert UTF-8 std::string and wchar_t*
|
// TODO: Can we prefix these with 'nl' like other methods?
|
||||||
|
// Macros helper to convert UTF-8 std::string and wchar_t*
|
||||||
#define wideToUtf8(str) (ucstring((ucchar*)str).toUtf8())
|
#define wideToUtf8(str) (ucstring((ucchar*)str).toUtf8())
|
||||||
#define utf8ToWide(str) ((wchar_t*)ucstring::makeFromUtf8(str).c_str())
|
#define utf8ToWide(str) ((wchar_t*)ucstring::makeFromUtf8(str).c_str())
|
||||||
|
|
||||||
// macros helper to convert UTF-8 std::string and TCHAR*
|
// Macros helper to convert UTF-8 std::string and TCHAR*
|
||||||
#ifdef _UNICODE
|
#ifdef _UNICODE
|
||||||
#define tStrToUtf8(str) (ucstring((ucchar*)(LPCWSTR)str).toUtf8())
|
#define tStrToUtf8(str) (ucstring((ucchar*)(LPCWSTR)str).toUtf8())
|
||||||
#define utf8ToTStr(str) ((wchar_t*)ucstring::makeFromUtf8(str).c_str())
|
#define utf8ToTStr(str) ((const wchar_t *)ucstring::makeFromUtf8(str).c_str())
|
||||||
#else
|
#else
|
||||||
|
// FIXME: This is not accurate, it should be a conversion between local charset and utf8
|
||||||
#define tStrToUtf8(str) (std::string((LPCSTR)str))
|
#define tStrToUtf8(str) (std::string((LPCSTR)str))
|
||||||
inline const char *nlutf8ToTStr(const char *str) { return str; }
|
inline const char *nlutf8ToTStr(const char *str) { return str; }
|
||||||
inline const char *nlutf8ToTStr(const std::string &str) { return str.c_str(); }
|
inline const char *nlutf8ToTStr(const std::string &str) { return str.c_str(); }
|
||||||
#define utf8ToTStr(str) NLMISC::nlutf8ToTStr(str)
|
#define utf8ToTStr(str) NLMISC::nlutf8ToTStr(str)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if (NL_COMP_VC_VERSION <= 90) /* VS2008 does not have stdint.h */
|
#if (NL_COMP_VC_VERSION <= 90)
|
||||||
float nlroundf(float x)
|
inline float nlroundf(float x)
|
||||||
{
|
{
|
||||||
return x >= 0.0f ? floorf(x + 0.5f) : ceilf(x - 0.5f);
|
return x >= 0.0f ? floorf(x + 0.5f) : ceilf(x - 0.5f);
|
||||||
}
|
}
|
||||||
#define roundf(x) NLMISC::nlroundf(x)
|
#define roundf(x) NLMISC::nlroundf(x)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// wrapper for fopen to be able to open files with an UTF-8 filename
|
// Wrapper for fopen to be able to open files with an UTF-8 filename
|
||||||
FILE* nlfopen(const std::string &filename, const std::string &mode);
|
FILE* nlfopen(const std::string &filename, const std::string &mode);
|
||||||
|
|
||||||
/** Signed 64 bit fseek. Same interface as fseek
|
/** Signed 64 bit fseek. Same interface as fseek
|
||||||
|
|
|
@ -38,6 +38,8 @@
|
||||||
#include "nel/ligo/ligo_error.h"
|
#include "nel/ligo/ligo_error.h"
|
||||||
#include "nel/misc/path.h"
|
#include "nel/misc/path.h"
|
||||||
|
|
||||||
|
#include "../../plugin_max/nel_3dsmax_shared/string_common.h"
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
using namespace NLMISC;
|
using namespace NLMISC;
|
||||||
extern HINSTANCE hInstance;
|
extern HINSTANCE hInstance;
|
||||||
|
@ -126,13 +128,13 @@ bool CMaxToLigo::loadLigoConfigFile (CLigoConfig& config, Interface& it, bool di
|
||||||
{
|
{
|
||||||
// Get the path
|
// Get the path
|
||||||
TCHAR sModulePath[256];
|
TCHAR sModulePath[256];
|
||||||
int res=GetModuleFileName(hModule, sModulePath, 256);
|
int res = GetModuleFileName(hModule, sModulePath, 256);
|
||||||
|
|
||||||
// Success ?
|
// Success ?
|
||||||
if (res)
|
if (res)
|
||||||
{
|
{
|
||||||
// Path
|
// Path
|
||||||
std::string path = NLMISC::CFile::getPath(tStrToUtf8(sModulePath) + "ligoscape.cfg");
|
std::string path = NLMISC::CFile::getPath(MCharStrToUtf8(sModulePath) + "ligoscape.cfg");
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
@ -164,16 +166,19 @@ void CMaxToLigo::errorMessage(const std::string &msg, const std::string &title,
|
||||||
if (dialog)
|
if (dialog)
|
||||||
{
|
{
|
||||||
// Dialog message
|
// Dialog message
|
||||||
MessageBox (it.GetMAXHWnd(), utf8ToTStr(msg), utf8ToTStr(title), MB_OK|MB_ICONEXCLAMATION);
|
ucstring ucmsg, uctitle;
|
||||||
|
ucmsg.fromUtf8(msg);
|
||||||
|
uctitle.fromUtf8(title);
|
||||||
|
MessageBoxW(it.GetMAXHWnd(), (LPCWSTR)ucmsg.c_str(), (LPCWSTR)uctitle.c_str(), MB_OK | MB_ICONEXCLAMATION);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Text message
|
// Text message
|
||||||
mprintf (utf8ToTStr(msg + "\n"));
|
mprintf(_M("%s\n"), MaxTStrFromUtf8(msg).data());
|
||||||
}
|
}
|
||||||
|
|
||||||
// Output in log
|
// Output in log
|
||||||
nlwarning ("LIGO ERROR : %s", msg.c_str());
|
nlwarning("LIGO ERROR : %s", msg.c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
// ***************************************************************************
|
// ***************************************************************************
|
||||||
|
|
|
@ -155,7 +155,7 @@ Value* export_material_cf (Value** arg_list, int count)
|
||||||
nlassert (node);
|
nlassert (node);
|
||||||
|
|
||||||
// The second arg
|
// The second arg
|
||||||
const std::string fileName = tStrToUtf8(arg_list[1]->to_string());
|
const std::string fileName = MCharStrToUtf8(arg_list[1]->to_string());
|
||||||
|
|
||||||
// The third arg
|
// The third arg
|
||||||
bool checkOnly = (arg_list[2]->to_bool() != FALSE);
|
bool checkOnly = (arg_list[2]->to_bool() != FALSE);
|
||||||
|
@ -321,12 +321,12 @@ Value* export_transition_cf (Value** arg_list, int count)
|
||||||
nlassert (is_array(nodes));
|
nlassert (is_array(nodes));
|
||||||
|
|
||||||
// The second arg
|
// The second arg
|
||||||
std::string fileName = tStrToUtf8(arg_list[1]->to_string());
|
std::string fileName = MCharStrToUtf8(arg_list[1]->to_string());
|
||||||
|
|
||||||
// The second arg
|
// The second arg
|
||||||
string matFilename[2];
|
string matFilename[2];
|
||||||
matFilename[0] = tStrToUtf8(arg_list[2]->to_string());
|
matFilename[0] = MCharStrToUtf8(arg_list[2]->to_string());
|
||||||
matFilename[1] = tStrToUtf8(arg_list[3]->to_string());
|
matFilename[1] = MCharStrToUtf8(arg_list[3]->to_string());
|
||||||
|
|
||||||
// The third arg
|
// The third arg
|
||||||
bool checkOnly = (arg_list[4]->to_bool() != FALSE);
|
bool checkOnly = (arg_list[4]->to_bool() != FALSE);
|
||||||
|
@ -696,7 +696,7 @@ Value* check_zone_with_material_cf (Value** arg_list, int count)
|
||||||
nlassert (node);
|
nlassert (node);
|
||||||
|
|
||||||
// The second arg
|
// The second arg
|
||||||
string fileName = tStrToUtf8(arg_list[1]->to_string());
|
string fileName = MCharStrToUtf8(arg_list[1]->to_string());
|
||||||
|
|
||||||
// The fourth arg
|
// The fourth arg
|
||||||
bool errorInDialog = (arg_list[2]->to_bool() != FALSE);
|
bool errorInDialog = (arg_list[2]->to_bool() != FALSE);
|
||||||
|
@ -830,7 +830,7 @@ Value* check_zone_with_transition_cf (Value** arg_list, int count)
|
||||||
nlassert (node);
|
nlassert (node);
|
||||||
|
|
||||||
// The second arg
|
// The second arg
|
||||||
string fileName = tStrToUtf8(arg_list[1]->to_string());
|
string fileName = MCharStrToUtf8(arg_list[1]->to_string());
|
||||||
|
|
||||||
// The second arg
|
// The second arg
|
||||||
int transitionNumber = arg_list[2]->to_int();
|
int transitionNumber = arg_list[2]->to_int();
|
||||||
|
@ -998,7 +998,7 @@ Value* export_zone_cf (Value** arg_list, int count)
|
||||||
nlassert (node);
|
nlassert (node);
|
||||||
|
|
||||||
// The second arg
|
// The second arg
|
||||||
string fileName = tStrToUtf8(arg_list[1]->to_string());
|
string fileName = MCharStrToUtf8(arg_list[1]->to_string());
|
||||||
|
|
||||||
// The thrid arg
|
// The thrid arg
|
||||||
Array *array = (Array*)arg_list[2];
|
Array *array = (Array*)arg_list[2];
|
||||||
|
@ -1043,8 +1043,8 @@ Value* export_zone_cf (Value** arg_list, int count)
|
||||||
type_check (cell->get(2), String, message);
|
type_check (cell->get(2), String, message);
|
||||||
|
|
||||||
// Get the strings
|
// Get the strings
|
||||||
categories[i].first = tStrToUtf8(cell->get(1)->to_string());
|
categories[i].first = MCharStrToUtf8(cell->get(1)->to_string());
|
||||||
categories[i].second = tStrToUtf8(cell->get(2)->to_string());
|
categories[i].second = MCharStrToUtf8(cell->get(2)->to_string());
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get a Object pointer
|
// Get a Object pointer
|
||||||
|
@ -1352,7 +1352,7 @@ Value* get_error_string_cf (Value** arg_list, int count)
|
||||||
int errorCode = arg_list[0]->to_int()-1;
|
int errorCode = arg_list[0]->to_int()-1;
|
||||||
|
|
||||||
// Error code
|
// Error code
|
||||||
return new String (utf8ToTStr(CLigoError::getStringError ((CLigoError::TError)errorCode)));
|
return new String(MaxTStrFromUtf8(CLigoError::getStringError ((CLigoError::TError)errorCode)));
|
||||||
}
|
}
|
||||||
|
|
||||||
// ***************************************************************************
|
// ***************************************************************************
|
||||||
|
@ -1367,7 +1367,7 @@ Value* set_directory_cf (Value** arg_list, int count)
|
||||||
type_check(arg_list[0], String, message);
|
type_check(arg_list[0], String, message);
|
||||||
|
|
||||||
// The first arg
|
// The first arg
|
||||||
const std::string dir = tStrToUtf8(arg_list[0]->to_string());
|
const std::string dir = MCharStrToUtf8(arg_list[0]->to_string());
|
||||||
|
|
||||||
// Set the directory
|
// Set the directory
|
||||||
return (chdir (dir.c_str())==0)?&true_value:&false_value;
|
return (chdir (dir.c_str())==0)?&true_value:&false_value;
|
||||||
|
@ -1859,7 +1859,7 @@ Value* make_snapshot_cf (Value** arg_list, int count)
|
||||||
nlassert (node);
|
nlassert (node);
|
||||||
|
|
||||||
// The second arg
|
// The second arg
|
||||||
string fileName = tStrToUtf8(arg_list[1]->to_string());
|
string fileName = MCharStrToUtf8(arg_list[1]->to_string());
|
||||||
|
|
||||||
// The thrid arg
|
// The thrid arg
|
||||||
int xMin = arg_list[2]->to_int();
|
int xMin = arg_list[2]->to_int();
|
||||||
|
|
|
@ -18,3 +18,5 @@
|
||||||
// and not in this file
|
// and not in this file
|
||||||
|
|
||||||
#include "stdafx.h"
|
#include "stdafx.h"
|
||||||
|
|
||||||
|
void nlmax_shared_stdafx_dummy() { }
|
||||||
|
|
|
@ -72,3 +72,5 @@ NEL_3DSMAX_SHARED_API NLMISC::INelContext &GetSharedNelContext()
|
||||||
}
|
}
|
||||||
return NLMISC::INelContext::getInstance();
|
return NLMISC::INelContext::getInstance();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* end of file */
|
||||||
|
|
|
@ -25,3 +25,5 @@ class CPatchAllocator;
|
||||||
extern NEL_3DSMAX_SHARED_API CPatchAllocator& GetAllocator();
|
extern NEL_3DSMAX_SHARED_API CPatchAllocator& GetAllocator();
|
||||||
|
|
||||||
extern NEL_3DSMAX_SHARED_API NLMISC::INelContext &GetSharedNelContext();
|
extern NEL_3DSMAX_SHARED_API NLMISC::INelContext &GetSharedNelContext();
|
||||||
|
|
||||||
|
/* end of file */
|
||||||
|
|
|
@ -0,0 +1,75 @@
|
||||||
|
// NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
|
// Copyright (C) 2010 Winch Gate Property Limited
|
||||||
|
//
|
||||||
|
// This program is free software: you can redistribute it and/or modify
|
||||||
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
// published by the Free Software Foundation, either version 3 of the
|
||||||
|
// License, or (at your option) any later version.
|
||||||
|
//
|
||||||
|
// This program is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU Affero General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU Affero General Public License
|
||||||
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
#ifndef NLMAX_STRING_COMMON_H
|
||||||
|
#define NLMAX_STRING_COMMON_H
|
||||||
|
|
||||||
|
#include <nel/misc/ucstring.h>
|
||||||
|
|
||||||
|
#if (MAX_VERSION_MAJOR < 15)
|
||||||
|
#define GET_OBJECT_NAME_CONST
|
||||||
|
#define NOTIFY_REF_PARAMS Interval changeInt, RefTargetHandle hTarget, PartID& partID, RefMessage message
|
||||||
|
#define NOTIFY_REF_PROPAGATE , BOOL propagate
|
||||||
|
#define nl_p_end end
|
||||||
|
#else
|
||||||
|
#define GET_OBJECT_NAME_CONST const
|
||||||
|
#define NOTIFY_REF_PARAMS const Interval &changeInt, RefTargetHandle hTarget, PartID& partID, RefMessage message, BOOL propagate
|
||||||
|
#define nl_p_end p_end
|
||||||
|
#endif
|
||||||
|
|
||||||
|
static TSTR MaxTStrFromUtf8(const std::string &src)
|
||||||
|
{
|
||||||
|
TSTR dst;
|
||||||
|
#if (MAX_VERSION_MAJOR < 15)
|
||||||
|
ucstring uc;
|
||||||
|
uc.fromUtf8(src);
|
||||||
|
dst = (const mwchar_t *)uc.c_str();
|
||||||
|
#else
|
||||||
|
dst.FromUTF8(source);
|
||||||
|
#endif
|
||||||
|
return dst;
|
||||||
|
}
|
||||||
|
|
||||||
|
static std::string MaxTStrToUtf8(const TSTR& src)
|
||||||
|
{
|
||||||
|
#if (MAX_VERSION_MAJOR < 15)
|
||||||
|
#ifdef _UNICODE
|
||||||
|
ucstring uc(src.data());
|
||||||
|
return uc.toUtf8();
|
||||||
|
#else
|
||||||
|
WStr ws = src;
|
||||||
|
ucstring uc((const ucchar *)ws.data());
|
||||||
|
return uc.toUtf8();
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
return src.ToUTF8();
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
static std::string MCharStrToUtf8(const MCHAR *src)
|
||||||
|
{
|
||||||
|
#ifdef _UNICODE
|
||||||
|
ucstring uc((const ucchar *)src);
|
||||||
|
return uc.toUtf8();
|
||||||
|
#else
|
||||||
|
ucstring uc((const ucchar *)WStr(src).data());
|
||||||
|
return uc.toUtf8();
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /* #ifndef NLMAX_STRING_COMMON_H */
|
||||||
|
|
||||||
|
/* end of file */
|
|
@ -94,7 +94,7 @@ INT_PTR CALLBACK OptionsDialogCallback (
|
||||||
else
|
else
|
||||||
SendMessage( GetDlgItem(hwndDlg,IDC_SHADOW), BM_SETCHECK, BST_UNCHECKED, 0 );
|
SendMessage( GetDlgItem(hwndDlg,IDC_SHADOW), BM_SETCHECK, BST_UNCHECKED, 0 );
|
||||||
|
|
||||||
SendMessage( GetDlgItem(hwndDlg,IDC_EDITEXPORTLIGHTING), WM_SETTEXT, 0, (LPARAM)utf8ToTStr(theExportSceneStruct.sExportLighting));
|
SendMessage( GetDlgItem(hwndDlg,IDC_EDITEXPORTLIGHTING), WM_SETTEXT, 0, (LPARAM)MaxTStrFromUtf8(theExportSceneStruct.sExportLighting).data());
|
||||||
|
|
||||||
if( theExportSceneStruct.nExportLighting == 0 )
|
if( theExportSceneStruct.nExportLighting == 0 )
|
||||||
SendMessage( GetDlgItem(hwndDlg,IDC_RADIONORMALEXPORTLIGHTING), BM_SETCHECK, BST_CHECKED, 0 );
|
SendMessage( GetDlgItem(hwndDlg,IDC_RADIONORMALEXPORTLIGHTING), BM_SETCHECK, BST_CHECKED, 0 );
|
||||||
|
@ -102,7 +102,7 @@ INT_PTR CALLBACK OptionsDialogCallback (
|
||||||
if( theExportSceneStruct.nExportLighting == 1 )
|
if( theExportSceneStruct.nExportLighting == 1 )
|
||||||
SendMessage( GetDlgItem(hwndDlg,IDC_RADIORADIOSITYEXPORTLIGHTING), BM_SETCHECK, BST_CHECKED, 0 );
|
SendMessage( GetDlgItem(hwndDlg,IDC_RADIORADIOSITYEXPORTLIGHTING), BM_SETCHECK, BST_CHECKED, 0 );
|
||||||
|
|
||||||
SendMessage( GetDlgItem(hwndDlg,IDC_EDITLUMELSIZE), WM_SETTEXT, 0, (LPARAM)utf8ToTStr(toString(theExportSceneStruct.rLumelSize)));
|
SendMessage( GetDlgItem(hwndDlg,IDC_EDITLUMELSIZE), WM_SETTEXT, 0, (LPARAM)MaxTStrFromUtf8(toString(theExportSceneStruct.rLumelSize)).data());
|
||||||
|
|
||||||
if( theExportSceneStruct.nOverSampling == 1 )
|
if( theExportSceneStruct.nOverSampling == 1 )
|
||||||
SendMessage( GetDlgItem(hwndDlg,IDC_RADIOSS1), BM_SETCHECK, BST_CHECKED, 0 );
|
SendMessage( GetDlgItem(hwndDlg,IDC_RADIOSS1), BM_SETCHECK, BST_CHECKED, 0 );
|
||||||
|
@ -132,8 +132,8 @@ INT_PTR CALLBACK OptionsDialogCallback (
|
||||||
else
|
else
|
||||||
SendMessage( GetDlgItem(hwndDlg,IDC_TEST_SURFACE_LIGHT), BM_SETCHECK, BST_UNCHECKED, 0 );
|
SendMessage( GetDlgItem(hwndDlg,IDC_TEST_SURFACE_LIGHT), BM_SETCHECK, BST_UNCHECKED, 0 );
|
||||||
|
|
||||||
SendMessage( GetDlgItem(hwndDlg,IDC_EDITCELLSIZE), WM_SETTEXT, 0, (LPARAM)utf8ToTStr(toString(theExportSceneStruct.SurfaceLightingCellSize)));
|
SendMessage( GetDlgItem(hwndDlg,IDC_EDITCELLSIZE), WM_SETTEXT, 0, (LPARAM)MaxTStrFromUtf8(toString(theExportSceneStruct.SurfaceLightingCellSize)).data());
|
||||||
SendMessage( GetDlgItem(hwndDlg,IDC_EDITCELLDELTAZ), WM_SETTEXT, 0, (LPARAM)utf8ToTStr(toString(theExportSceneStruct.SurfaceLightingDeltaZ)));
|
SendMessage( GetDlgItem(hwndDlg,IDC_EDITCELLDELTAZ), WM_SETTEXT, 0, (LPARAM)MaxTStrFromUtf8(toString(theExportSceneStruct.SurfaceLightingDeltaZ)).data());
|
||||||
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -148,7 +148,7 @@ INT_PTR CALLBACK OptionsDialogCallback (
|
||||||
if( theCNelExport.SelectDir(hwndDlg, _T("LightMaps Directory"), sTemp ) )
|
if( theCNelExport.SelectDir(hwndDlg, _T("LightMaps Directory"), sTemp ) )
|
||||||
{
|
{
|
||||||
theExportSceneStruct.sExportLighting = sTemp;
|
theExportSceneStruct.sExportLighting = sTemp;
|
||||||
SendMessage( GetDlgItem(hwndDlg, IDC_EDITEXPORTLIGHTING), WM_SETTEXT, 0, (LPARAM)utf8ToTStr(theExportSceneStruct.sExportLighting) );
|
SendMessage(GetDlgItem(hwndDlg, IDC_EDITEXPORTLIGHTING), WM_SETTEXT, 0, (LPARAM)MaxTStrFromUtf8(theExportSceneStruct.sExportLighting).data());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -180,7 +180,7 @@ INT_PTR CALLBACK OptionsDialogCallback (
|
||||||
|
|
||||||
TCHAR tmp[1024];
|
TCHAR tmp[1024];
|
||||||
SendMessage( GetDlgItem(hwndDlg,IDC_EDITEXPORTLIGHTING), WM_GETTEXT, 1024, (LPARAM)tmp );
|
SendMessage( GetDlgItem(hwndDlg,IDC_EDITEXPORTLIGHTING), WM_GETTEXT, 1024, (LPARAM)tmp );
|
||||||
theExportSceneStruct.sExportLighting = tStrToUtf8(tmp);
|
theExportSceneStruct.sExportLighting = MCharStrToUtf8(tmp);
|
||||||
|
|
||||||
if( SendMessage( GetDlgItem(hwndDlg,IDC_RADIONORMALEXPORTLIGHTING), BM_GETCHECK, 0, 0 ) == BST_CHECKED )
|
if( SendMessage( GetDlgItem(hwndDlg,IDC_RADIONORMALEXPORTLIGHTING), BM_GETCHECK, 0, 0 ) == BST_CHECKED )
|
||||||
theExportSceneStruct.nExportLighting = 0;
|
theExportSceneStruct.nExportLighting = 0;
|
||||||
|
@ -189,7 +189,7 @@ INT_PTR CALLBACK OptionsDialogCallback (
|
||||||
theExportSceneStruct.nExportLighting = 1;
|
theExportSceneStruct.nExportLighting = 1;
|
||||||
|
|
||||||
SendMessage( GetDlgItem(hwndDlg,IDC_EDITLUMELSIZE), WM_GETTEXT, 1024, (LPARAM)tmp );
|
SendMessage( GetDlgItem(hwndDlg,IDC_EDITLUMELSIZE), WM_GETTEXT, 1024, (LPARAM)tmp );
|
||||||
NLMISC::fromString(tStrToUtf8(tmp), theExportSceneStruct.rLumelSize);
|
NLMISC::fromString(MCharStrToUtf8(tmp), theExportSceneStruct.rLumelSize);
|
||||||
|
|
||||||
if( SendMessage( GetDlgItem(hwndDlg,IDC_RADIOSS1), BM_GETCHECK, 0, 0 ) == BST_CHECKED )
|
if( SendMessage( GetDlgItem(hwndDlg,IDC_RADIOSS1), BM_GETCHECK, 0, 0 ) == BST_CHECKED )
|
||||||
theExportSceneStruct.nOverSampling = 1;
|
theExportSceneStruct.nOverSampling = 1;
|
||||||
|
@ -214,10 +214,10 @@ INT_PTR CALLBACK OptionsDialogCallback (
|
||||||
theExportSceneStruct.bTestSurfaceLighting= (SendMessage( GetDlgItem(hwndDlg,IDC_TEST_SURFACE_LIGHT), BM_GETCHECK, 0, 0 ) == BST_CHECKED);
|
theExportSceneStruct.bTestSurfaceLighting= (SendMessage( GetDlgItem(hwndDlg,IDC_TEST_SURFACE_LIGHT), BM_GETCHECK, 0, 0 ) == BST_CHECKED);
|
||||||
|
|
||||||
SendMessage( GetDlgItem(hwndDlg,IDC_EDITCELLSIZE), WM_GETTEXT, 1024, (LPARAM)tmp );
|
SendMessage( GetDlgItem(hwndDlg,IDC_EDITCELLSIZE), WM_GETTEXT, 1024, (LPARAM)tmp );
|
||||||
NLMISC::fromString(tStrToUtf8(tmp), theExportSceneStruct.SurfaceLightingCellSize);
|
NLMISC::fromString(MCharStrToUtf8(tmp), theExportSceneStruct.SurfaceLightingCellSize);
|
||||||
|
|
||||||
SendMessage( GetDlgItem(hwndDlg,IDC_EDITCELLDELTAZ), WM_GETTEXT, 1024, (LPARAM)tmp );
|
SendMessage( GetDlgItem(hwndDlg,IDC_EDITCELLDELTAZ), WM_GETTEXT, 1024, (LPARAM)tmp );
|
||||||
NLMISC::fromString(tStrToUtf8(tmp), theExportSceneStruct.SurfaceLightingDeltaZ);
|
NLMISC::fromString(MCharStrToUtf8(tmp), theExportSceneStruct.SurfaceLightingDeltaZ);
|
||||||
|
|
||||||
// End the dialog
|
// End the dialog
|
||||||
EndDialog(hwndDlg, TRUE);
|
EndDialog(hwndDlg, TRUE);
|
||||||
|
@ -354,7 +354,7 @@ static INT_PTR CALLBACK CNelExportDlgProc(HWND hWnd, UINT msg, WPARAM wParam, LP
|
||||||
if (RPO::isZone (*pNode, time))
|
if (RPO::isZone (*pNode, time))
|
||||||
{
|
{
|
||||||
// Save path
|
// Save path
|
||||||
std::string sSavePath = tStrToUtf8(pNode->GetName());
|
std::string sSavePath = MCharStrToUtf8(pNode->GetName());
|
||||||
|
|
||||||
// Choose a file to export
|
// Choose a file to export
|
||||||
if (!CExportNel::getScriptAppData (pNode, NEL3D_APPDATA_DONTEXPORT, 0))
|
if (!CExportNel::getScriptAppData (pNode, NEL3D_APPDATA_DONTEXPORT, 0))
|
||||||
|
@ -364,15 +364,15 @@ static INT_PTR CALLBACK CNelExportDlgProc(HWND hWnd, UINT msg, WPARAM wParam, LP
|
||||||
if (!theCNelExport.exportZone (sSavePath, *pNode, time))
|
if (!theCNelExport.exportZone (sSavePath, *pNode, time))
|
||||||
{
|
{
|
||||||
// Error message
|
// Error message
|
||||||
std::string sErrorMsg = toString("Error exporting the zone %s in the file\n%s", tStrToUtf8(pNode->GetName()).c_str(), sSavePath.c_str());
|
std::string sErrorMsg = toString("Error exporting the zone %s in the file\n%s", MCharStrToUtf8(pNode->GetName()).c_str(), sSavePath.c_str());
|
||||||
MessageBox (hWnd, utf8ToTStr(sErrorMsg), L"NeL export", MB_OK|MB_ICONEXCLAMATION);
|
MessageBox (hWnd, MaxTStrFromUtf8(sErrorMsg), _T("NeL export"), MB_OK|MB_ICONEXCLAMATION);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (CExportNel::isVegetable (*pNode, time))
|
else if (CExportNel::isVegetable (*pNode, time))
|
||||||
{
|
{
|
||||||
// Save path
|
// Save path
|
||||||
std::string sSavePath = tStrToUtf8(pNode->GetName());
|
std::string sSavePath = MCharStrToUtf8(pNode->GetName());
|
||||||
|
|
||||||
// Choose a file to export
|
// Choose a file to export
|
||||||
if (!CExportNel::getScriptAppData (pNode, NEL3D_APPDATA_DONTEXPORT, 0))
|
if (!CExportNel::getScriptAppData (pNode, NEL3D_APPDATA_DONTEXPORT, 0))
|
||||||
|
@ -382,8 +382,8 @@ static INT_PTR CALLBACK CNelExportDlgProc(HWND hWnd, UINT msg, WPARAM wParam, LP
|
||||||
if (!theCNelExport.exportVegetable (sSavePath.c_str(), *pNode, time))
|
if (!theCNelExport.exportVegetable (sSavePath.c_str(), *pNode, time))
|
||||||
{
|
{
|
||||||
// Error message
|
// Error message
|
||||||
std::string sErrorMsg = toString("Error exporting the vegetable %s in the file\n%s", tStrToUtf8(pNode->GetName()).c_str(), sSavePath.c_str());
|
std::string sErrorMsg = toString("Error exporting the vegetable %s in the file\n%s", MCharStrToUtf8(pNode->GetName()).c_str(), sSavePath.c_str());
|
||||||
MessageBox (hWnd, utf8ToTStr(sErrorMsg), _T("NeL export"), MB_OK|MB_ICONEXCLAMATION);
|
MessageBox (hWnd, MaxTStrFromUtf8(sErrorMsg), _T("NeL export"), MB_OK|MB_ICONEXCLAMATION);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -391,7 +391,7 @@ static INT_PTR CALLBACK CNelExportDlgProc(HWND hWnd, UINT msg, WPARAM wParam, LP
|
||||||
else if (CExportNel::isLodCharacter (*pNode, time))
|
else if (CExportNel::isLodCharacter (*pNode, time))
|
||||||
{
|
{
|
||||||
// Save path
|
// Save path
|
||||||
std::string sSavePath = tStrToUtf8(pNode->GetName());
|
std::string sSavePath = MCharStrToUtf8(pNode->GetName());
|
||||||
|
|
||||||
// Choose a file to export
|
// Choose a file to export
|
||||||
if (!CExportNel::getScriptAppData (pNode, NEL3D_APPDATA_DONTEXPORT, 0))
|
if (!CExportNel::getScriptAppData (pNode, NEL3D_APPDATA_DONTEXPORT, 0))
|
||||||
|
@ -401,8 +401,8 @@ static INT_PTR CALLBACK CNelExportDlgProc(HWND hWnd, UINT msg, WPARAM wParam, LP
|
||||||
if (!theCNelExport.exportLodCharacter (sSavePath, *pNode, time))
|
if (!theCNelExport.exportLodCharacter (sSavePath, *pNode, time))
|
||||||
{
|
{
|
||||||
// Error message
|
// Error message
|
||||||
std::string sErrorMsg = toString("Error exporting the lod character %s in the file\n%s", tStrToUtf8(pNode->GetName()).c_str(), sSavePath.c_str());
|
std::string sErrorMsg = toString("Error exporting the lod character %s in the file\n%s", MCharStrToUtf8(pNode->GetName()).c_str(), sSavePath.c_str());
|
||||||
MessageBox (hWnd, utf8ToTStr(sErrorMsg), _T("NeL export"), MB_OK|MB_ICONEXCLAMATION);
|
MessageBox (hWnd, MaxTStrFromUtf8(sErrorMsg).data(), _T("NeL export"), MB_OK|MB_ICONEXCLAMATION);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -410,7 +410,7 @@ static INT_PTR CALLBACK CNelExportDlgProc(HWND hWnd, UINT msg, WPARAM wParam, LP
|
||||||
else if (CExportNel::isMesh (*pNode, time))
|
else if (CExportNel::isMesh (*pNode, time))
|
||||||
{
|
{
|
||||||
// Save path
|
// Save path
|
||||||
std::string sSavePath = tStrToUtf8(pNode->GetName());
|
std::string sSavePath = MCharStrToUtf8(pNode->GetName());
|
||||||
|
|
||||||
// Choose a file to export
|
// Choose a file to export
|
||||||
if (!CExportNel::getScriptAppData (pNode, NEL3D_APPDATA_DONTEXPORT, 0))
|
if (!CExportNel::getScriptAppData (pNode, NEL3D_APPDATA_DONTEXPORT, 0))
|
||||||
|
@ -424,8 +424,8 @@ static INT_PTR CALLBACK CNelExportDlgProc(HWND hWnd, UINT msg, WPARAM wParam, LP
|
||||||
if (!theCNelExport.exportMesh (sSavePath, *pNode, time))
|
if (!theCNelExport.exportMesh (sSavePath, *pNode, time))
|
||||||
{
|
{
|
||||||
// Error message
|
// Error message
|
||||||
std::string sErrorMsg = toString("Error exporting the mesh %s in the file\n%s", tStrToUtf8(pNode->GetName()).c_str(), sSavePath.c_str());
|
std::string sErrorMsg = toString("Error exporting the mesh %s in the file\n%s", MCharStrToUtf8(pNode->GetName()).c_str(), sSavePath.c_str());
|
||||||
MessageBox (hWnd, utf8ToTStr(sErrorMsg), _T("NeL export"), MB_OK|MB_ICONEXCLAMATION);
|
MessageBox (hWnd, MaxTStrFromUtf8(sErrorMsg).data(), _T("NeL export"), MB_OK|MB_ICONEXCLAMATION);
|
||||||
}
|
}
|
||||||
// Delete the skeleton pointer
|
// Delete the skeleton pointer
|
||||||
if (pSkinShape)
|
if (pSkinShape)
|
||||||
|
@ -463,7 +463,7 @@ static INT_PTR CALLBACK CNelExportDlgProc(HWND hWnd, UINT msg, WPARAM wParam, LP
|
||||||
// Name of the node
|
// Name of the node
|
||||||
|
|
||||||
// Save path
|
// Save path
|
||||||
std::string sSavePath = tStrToUtf8((*vectNode.begin())->GetName());
|
std::string sSavePath = MCharStrToUtf8((*vectNode.begin())->GetName());
|
||||||
|
|
||||||
// Choose a file to export
|
// Choose a file to export
|
||||||
if (theCNelExport.SelectFileForSave (hWnd, _T("Save animations..."), (LOWORD(wParam)==ID_SAVE_MODEL_ANIM)?animModelFilter:animModelFilter,
|
if (theCNelExport.SelectFileForSave (hWnd, _T("Save animations..."), (LOWORD(wParam)==ID_SAVE_MODEL_ANIM)?animModelFilter:animModelFilter,
|
||||||
|
@ -473,8 +473,8 @@ static INT_PTR CALLBACK CNelExportDlgProc(HWND hWnd, UINT msg, WPARAM wParam, LP
|
||||||
if (!theCNelExport.exportAnim (sSavePath, vectNode, time, LOWORD(wParam)==ID_SAVE_SCENE_ANIM))
|
if (!theCNelExport.exportAnim (sSavePath, vectNode, time, LOWORD(wParam)==ID_SAVE_SCENE_ANIM))
|
||||||
{
|
{
|
||||||
// Error message
|
// Error message
|
||||||
std::string sErrorMsg = toString("Error exporting animation %s in the file\n%s", tStrToUtf8((*vectNode.begin())->GetName()).c_str(), sSavePath.c_str());
|
std::string sErrorMsg = toString("Error exporting animation %s in the file\n%s", MCharStrToUtf8((*vectNode.begin())->GetName()).c_str(), sSavePath.c_str());
|
||||||
MessageBox(hWnd, utf8ToTStr(sErrorMsg), _T("NeL export"), MB_OK | MB_ICONEXCLAMATION);
|
MessageBox(hWnd, MaxTStrFromUtf8(sErrorMsg).data(), _T("NeL export"), MB_OK | MB_ICONEXCLAMATION);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -566,7 +566,7 @@ static INT_PTR CALLBACK CNelExportDlgProc(HWND hWnd, UINT msg, WPARAM wParam, LP
|
||||||
nlassert (vectNode.size()!=0);
|
nlassert (vectNode.size()!=0);
|
||||||
|
|
||||||
// Save path
|
// Save path
|
||||||
std::string sSavePath = tStrToUtf8((*vectNode.begin())->GetName());
|
std::string sSavePath = MCharStrToUtf8((*vectNode.begin())->GetName());
|
||||||
|
|
||||||
if (theCNelExport.SelectFileForSave (hWnd, _T("Save SWT..."), SWTFilter, sSavePath))
|
if (theCNelExport.SelectFileForSave (hWnd, _T("Save SWT..."), SWTFilter, sSavePath))
|
||||||
{
|
{
|
||||||
|
@ -574,8 +574,8 @@ static INT_PTR CALLBACK CNelExportDlgProc(HWND hWnd, UINT msg, WPARAM wParam, LP
|
||||||
if (!theCNelExport.exportSWT (sSavePath, vectNode))
|
if (!theCNelExport.exportSWT (sSavePath, vectNode))
|
||||||
{
|
{
|
||||||
// Error message
|
// Error message
|
||||||
std::string sErrorMsg = toString("Error exporting SWT %s in the file\n%s", tStrToUtf8((*vectNode.begin())->GetName()).c_str(), sSavePath.c_str());
|
std::string sErrorMsg = toString("Error exporting SWT %s in the file\n%s", MCharStrToUtf8((*vectNode.begin())->GetName()).c_str(), sSavePath.c_str());
|
||||||
MessageBox(hWnd, utf8ToTStr(sErrorMsg), _T("NeL export"), MB_OK | MB_ICONEXCLAMATION);
|
MessageBox(hWnd, MaxTStrFromUtf8(sErrorMsg).data(), _T("NeL export"), MB_OK | MB_ICONEXCLAMATION);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -588,7 +588,7 @@ static INT_PTR CALLBACK CNelExportDlgProc(HWND hWnd, UINT msg, WPARAM wParam, LP
|
||||||
nlassert (theIP);
|
nlassert (theIP);
|
||||||
theCNelExport.init (false, true, theIP, true);
|
theCNelExport.init (false, true, theIP, true);
|
||||||
|
|
||||||
std::string sConfigFileName = tStrToUtf8(theCNelExport._Ip->GetDir(APP_PLUGCFG_DIR)) + "\\NelExportScene.cfg";
|
std::string sConfigFileName = MCharStrToUtf8(theCNelExport._Ip->GetDir(APP_PLUGCFG_DIR)) + "\\NelExportScene.cfg";
|
||||||
|
|
||||||
// Do a modal dialog box to choose the scene export options
|
// Do a modal dialog box to choose the scene export options
|
||||||
if( DialogBox( hInstance,
|
if( DialogBox( hInstance,
|
||||||
|
@ -647,7 +647,7 @@ static INT_PTR CALLBACK CNelExportDlgProc(HWND hWnd, UINT msg, WPARAM wParam, LP
|
||||||
theCNelExport.getSelectedNode (vectNode);
|
theCNelExport.getSelectedNode (vectNode);
|
||||||
nlassert (vectNode.size()!=0);
|
nlassert (vectNode.size()!=0);
|
||||||
|
|
||||||
std::string sSavePath = tStrToUtf8((*vectNode.begin())->GetName());
|
std::string sSavePath = MCharStrToUtf8((*vectNode.begin())->GetName());
|
||||||
|
|
||||||
if (theCNelExport.SelectFileForSave (hWnd, _T("Save Instance group"), InstanceGroupFilter, sSavePath))
|
if (theCNelExport.SelectFileForSave (hWnd, _T("Save Instance group"), InstanceGroupFilter, sSavePath))
|
||||||
{
|
{
|
||||||
|
@ -656,7 +656,7 @@ static INT_PTR CALLBACK CNelExportDlgProc(HWND hWnd, UINT msg, WPARAM wParam, LP
|
||||||
{
|
{
|
||||||
// Error message
|
// Error message
|
||||||
std::string sErrorMsg = toString("Error exporting instance group %s", sSavePath.c_str());
|
std::string sErrorMsg = toString("Error exporting instance group %s", sSavePath.c_str());
|
||||||
MessageBox(hWnd, utf8ToTStr(sErrorMsg), _T("NeL export"), MB_OK | MB_ICONEXCLAMATION);
|
MessageBox(hWnd, MaxTStrFromUtf8(sErrorMsg).data(), _T("NeL export"), MB_OK | MB_ICONEXCLAMATION);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -690,8 +690,8 @@ static INT_PTR CALLBACK CNelExportDlgProc(HWND hWnd, UINT msg, WPARAM wParam, LP
|
||||||
if (!theCNelExport.exportSkeleton (sSavePath, pNode, theCNelExport._Ip->GetTime()))
|
if (!theCNelExport.exportSkeleton (sSavePath, pNode, theCNelExport._Ip->GetTime()))
|
||||||
{
|
{
|
||||||
// Error message
|
// Error message
|
||||||
std::string sErrorMsg = toString("Error exporting skeleton %s in the file\n%s", tStrToUtf8(pNode->GetName()).c_str(), sSavePath.c_str());
|
std::string sErrorMsg = toString("Error exporting skeleton %s in the file\n%s", MCharStrToUtf8(pNode->GetName()).c_str(), sSavePath.c_str());
|
||||||
MessageBox(hWnd, utf8ToTStr(sErrorMsg), _T("NeL export"), MB_OK | MB_ICONEXCLAMATION);
|
MessageBox(hWnd, MaxTStrFromUtf8(sErrorMsg).data(), _T("NeL export"), MB_OK | MB_ICONEXCLAMATION);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -736,7 +736,7 @@ static INT_PTR CALLBACK CNelExportDlgProc(HWND hWnd, UINT msg, WPARAM wParam, LP
|
||||||
}
|
}
|
||||||
catch(const std::exception &e)
|
catch(const std::exception &e)
|
||||||
{
|
{
|
||||||
::MessageBox(hWnd, utf8ToTStr(e.what()), _T("Error"), MB_OK | MB_ICONEXCLAMATION);
|
::MessageBoxA(hWnd, e.what(), "Error", MB_OK | MB_ICONEXCLAMATION);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -820,7 +820,7 @@ void CNelExport::getSelectedNode (std::vector<INode*>& vectNode)
|
||||||
void CNelExport::initOptions()
|
void CNelExport::initOptions()
|
||||||
{
|
{
|
||||||
// Initialization of theExportSceneStruct
|
// Initialization of theExportSceneStruct
|
||||||
std::string sConfigFileName = tStrToUtf8(theCNelExport._Ip->GetDir(APP_PLUGCFG_DIR)) + "\\NelExportScene.cfg";
|
std::string sConfigFileName = MCharStrToUtf8(theCNelExport._Ip->GetDir(APP_PLUGCFG_DIR)) + "\\NelExportScene.cfg";
|
||||||
|
|
||||||
// MessageBox (hWnd, sConfigFileName, "sConfigFileName", MB_OK|MB_ICONEXCLAMATION);
|
// MessageBox (hWnd, sConfigFileName, "sConfigFileName", MB_OK|MB_ICONEXCLAMATION);
|
||||||
if( CFile::fileExists(sConfigFileName) )
|
if( CFile::fileExists(sConfigFileName) )
|
||||||
|
|
|
@ -329,7 +329,7 @@ bool CNelExport::exportAnim (const std::string &sPath, std::vector<INode*>& vect
|
||||||
catch (const Exception& e)
|
catch (const Exception& e)
|
||||||
{
|
{
|
||||||
if (_ErrorInDialog)
|
if (_ErrorInDialog)
|
||||||
MessageBox (NULL, utf8ToTStr(e.what()), _T("NeL export"), MB_OK|MB_ICONEXCLAMATION);
|
MessageBoxA (NULL, e.what(), "NeL export", MB_OK|MB_ICONEXCLAMATION);
|
||||||
else
|
else
|
||||||
nlwarning ("ERROR : %s", e.what ());
|
nlwarning ("ERROR : %s", e.what ());
|
||||||
}
|
}
|
||||||
|
|
|
@ -50,8 +50,8 @@ ULONG CNelExport::SelectFileForSave(HWND Parent, const TCHAR* Title, const TCHAR
|
||||||
}
|
}
|
||||||
|
|
||||||
// copy path and filename to temporary buffers
|
// copy path and filename to temporary buffers
|
||||||
_tcscpy_s(curdir, MAX_PATH, utf8ToTStr(path));
|
_tcscpy_s(curdir, MAX_PATH, MaxTStrFromUtf8(path).data());
|
||||||
_tcscpy_s(fname, MAX_PATH, utf8ToTStr(filename));
|
_tcscpy_s(fname, MAX_PATH, MaxTStrFromUtf8(filename).data());
|
||||||
|
|
||||||
OPENFILENAME ofn;
|
OPENFILENAME ofn;
|
||||||
memset(&ofn,0,sizeof(OPENFILENAME));
|
memset(&ofn,0,sizeof(OPENFILENAME));
|
||||||
|
@ -69,7 +69,7 @@ ULONG CNelExport::SelectFileForSave(HWND Parent, const TCHAR* Title, const TCHAR
|
||||||
ofn.lpstrInitialDir = curdir;
|
ofn.lpstrInitialDir = curdir;
|
||||||
BOOL r = GetSaveFileName ( &ofn );
|
BOOL r = GetSaveFileName ( &ofn );
|
||||||
|
|
||||||
FileName = tStrToUtf8(fname);
|
FileName = MCharStrToUtf8(fname);
|
||||||
|
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
@ -79,7 +79,7 @@ ULONG CNelExport::SelectFileForSave(HWND Parent, const TCHAR* Title, const TCHAR
|
||||||
ULONG CNelExport::SelectDir(HWND Parent, const TCHAR* Title, std::string &Path)
|
ULONG CNelExport::SelectDir(HWND Parent, const TCHAR* Title, std::string &Path)
|
||||||
{
|
{
|
||||||
TCHAR str[MAX_PATH];
|
TCHAR str[MAX_PATH];
|
||||||
_tcscpy_s(str, MAX_PATH, utf8ToTStr(Path));
|
_tcscpy_s(str, MAX_PATH, MaxTStrFromUtf8(Path).data());
|
||||||
|
|
||||||
BROWSEINFO bi;
|
BROWSEINFO bi;
|
||||||
bi.hwndOwner=Parent;
|
bi.hwndOwner=Parent;
|
||||||
|
@ -98,7 +98,7 @@ ULONG CNelExport::SelectDir(HWND Parent, const TCHAR* Title, std::string &Path)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
Path = tStrToUtf8(str);
|
Path = MCharStrToUtf8(str);
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
|
@ -90,11 +90,11 @@ class addSubLodNodeHitCallBack : public HitByNameDlgCallback
|
||||||
public:
|
public:
|
||||||
INodeTab NodeTab;
|
INodeTab NodeTab;
|
||||||
private:
|
private:
|
||||||
virtual const MCHAR *dialogTitle()
|
virtual GET_OBJECT_NAME_CONST MCHAR *dialogTitle()
|
||||||
{
|
{
|
||||||
return _M("Select sub lod objects to add");
|
return _M("Select sub lod objects to add");
|
||||||
}
|
}
|
||||||
virtual const MCHAR *buttonText()
|
virtual GET_OBJECT_NAME_CONST MCHAR *buttonText()
|
||||||
{
|
{
|
||||||
return _M("Add");
|
return _M("Add");
|
||||||
}
|
}
|
||||||
|
@ -522,27 +522,27 @@ INT_PTR CALLBACK AccelDialogCallback (
|
||||||
std::set<std::string>::iterator first(_KnownSoundGroups.begin()), last(_KnownSoundGroups.end());
|
std::set<std::string>::iterator first(_KnownSoundGroups.begin()), last(_KnownSoundGroups.end());
|
||||||
for (; first != last; ++first)
|
for (; first != last; ++first)
|
||||||
{
|
{
|
||||||
SendMessage (GetDlgItem (hwndDlg, IDC_SOUND_GROUP), CB_ADDSTRING, 0, (LPARAM)utf8ToTStr(*first));
|
SendMessage (GetDlgItem (hwndDlg, IDC_SOUND_GROUP), CB_ADDSTRING, 0, (LPARAM)MaxTStrFromUtf8(*first).data());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// set the combo and edit box
|
// set the combo and edit box
|
||||||
if (SendMessage (GetDlgItem (hwndDlg, IDC_OCC_MODEL), CB_SELECTSTRING, -1, (LPARAM)utf8ToTStr(currentParam->OcclusionModel)) == CB_ERR)
|
if (SendMessage (GetDlgItem (hwndDlg, IDC_OCC_MODEL), CB_SELECTSTRING, -1, (LPARAM)MaxTStrFromUtf8(currentParam->OcclusionModel).data()) == CB_ERR)
|
||||||
{
|
{
|
||||||
// nlassert(false);
|
// nlassert(false);
|
||||||
}
|
}
|
||||||
if (SendMessage (GetDlgItem (hwndDlg, IDC_OPEN_OCC_MODEL), CB_SELECTSTRING, -1, (LPARAM)utf8ToTStr(currentParam->OpenOcclusionModel)) == CB_ERR)
|
if (SendMessage (GetDlgItem (hwndDlg, IDC_OPEN_OCC_MODEL), CB_SELECTSTRING, -1, (LPARAM)MaxTStrFromUtf8(currentParam->OpenOcclusionModel).data()) == CB_ERR)
|
||||||
{
|
{
|
||||||
// nlassert(false);
|
// nlassert(false);
|
||||||
}
|
}
|
||||||
if (SendMessage (GetDlgItem (hwndDlg, IDC_ENV_FX), CB_SELECTSTRING, -1, (LPARAM)utf8ToTStr(currentParam->EnvironmentFX)) == CB_ERR)
|
if (SendMessage (GetDlgItem (hwndDlg, IDC_ENV_FX), CB_SELECTSTRING, -1, (LPARAM)MaxTStrFromUtf8(currentParam->EnvironmentFX).data()) == CB_ERR)
|
||||||
{
|
{
|
||||||
// nlassert(false);
|
// nlassert(false);
|
||||||
}
|
}
|
||||||
if (SendMessage (GetDlgItem (hwndDlg, IDC_SOUND_GROUP), CB_SELECTSTRING, -1, (LPARAM)utf8ToTStr(currentParam->SoundGroup)) == CB_ERR)
|
if (SendMessage (GetDlgItem (hwndDlg, IDC_SOUND_GROUP), CB_SELECTSTRING, -1, (LPARAM)MaxTStrFromUtf8(currentParam->SoundGroup).data()) == CB_ERR)
|
||||||
{
|
{
|
||||||
// nlassert(false);
|
// nlassert(false);
|
||||||
}
|
}
|
||||||
// SendMessage(GetDlgItem(hwndDlg, IDC_SOUND_GROUP), WM_SETTEXT, 0, (LPARAM)utf8ToTStr(currentParam->SoundGroup));
|
// SendMessage(GetDlgItem(hwndDlg, IDC_SOUND_GROUP), WM_SETTEXT, 0, (LPARAM)MaxTStrFromUtf8(currentParam->SoundGroup).data());
|
||||||
|
|
||||||
bool accelerator = (currentParam->AcceleratorType != -1);
|
bool accelerator = (currentParam->AcceleratorType != -1);
|
||||||
CheckRadioButton (hwndDlg, IDC_RADIOACCELNO, IDC_RADIOACCELCLUSTER, accelerator?(IDC_RADIOACCELNO+(currentParam->AcceleratorType&NEL3D_APPDATA_ACCEL_TYPE)):0);
|
CheckRadioButton (hwndDlg, IDC_RADIOACCELNO, IDC_RADIOACCELCLUSTER, accelerator?(IDC_RADIOACCELNO+(currentParam->AcceleratorType&NEL3D_APPDATA_ACCEL_TYPE)):0);
|
||||||
|
@ -583,14 +583,14 @@ INT_PTR CALLBACK AccelDialogCallback (
|
||||||
// get the strings params
|
// get the strings params
|
||||||
TCHAR tmp[256];
|
TCHAR tmp[256];
|
||||||
SendMessage (GetDlgItem(hwndDlg, IDC_OCC_MODEL), WM_GETTEXT, 256, (LPARAM)tmp);
|
SendMessage (GetDlgItem(hwndDlg, IDC_OCC_MODEL), WM_GETTEXT, 256, (LPARAM)tmp);
|
||||||
currentParam->OcclusionModel = tStrToUtf8(tmp);
|
currentParam->OcclusionModel = MCharStrToUtf8(tmp);
|
||||||
SendMessage (GetDlgItem(hwndDlg, IDC_OPEN_OCC_MODEL), WM_GETTEXT, 256, (LPARAM)tmp);
|
SendMessage (GetDlgItem(hwndDlg, IDC_OPEN_OCC_MODEL), WM_GETTEXT, 256, (LPARAM)tmp);
|
||||||
currentParam->OpenOcclusionModel = tStrToUtf8(tmp);
|
currentParam->OpenOcclusionModel = MCharStrToUtf8(tmp);
|
||||||
SendMessage (GetDlgItem(hwndDlg, IDC_SOUND_GROUP), WM_GETTEXT, 256, (LPARAM)tmp);
|
SendMessage (GetDlgItem(hwndDlg, IDC_SOUND_GROUP), WM_GETTEXT, 256, (LPARAM)tmp);
|
||||||
currentParam->SoundGroup = tStrToUtf8(tmp);
|
currentParam->SoundGroup = MCharStrToUtf8(tmp);
|
||||||
_KnownSoundGroups.insert(currentParam->SoundGroup);
|
_KnownSoundGroups.insert(currentParam->SoundGroup);
|
||||||
SendMessage (GetDlgItem(hwndDlg, IDC_ENV_FX), WM_GETTEXT, 256, (LPARAM)tmp);
|
SendMessage (GetDlgItem(hwndDlg, IDC_ENV_FX), WM_GETTEXT, 256, (LPARAM)tmp);
|
||||||
currentParam->EnvironmentFX = tStrToUtf8(tmp);
|
currentParam->EnvironmentFX = MCharStrToUtf8(tmp);
|
||||||
|
|
||||||
// Quit
|
// Quit
|
||||||
EndDialog(hwndDlg, IDOK);
|
EndDialog(hwndDlg, IDOK);
|
||||||
|
@ -653,9 +653,9 @@ INT_PTR CALLBACK MRMDialogCallback (
|
||||||
currentParam=(CLodDialogBoxParam *)GetWindowLongPtr(hwndDlg, GWLP_USERDATA);
|
currentParam=(CLodDialogBoxParam *)GetWindowLongPtr(hwndDlg, GWLP_USERDATA);
|
||||||
|
|
||||||
// Window text
|
// Window text
|
||||||
std::string winName= tStrToUtf8((*(currentParam->ListNode->begin()))->GetName());
|
std::string winName= MCharStrToUtf8((*(currentParam->ListNode->begin()))->GetName());
|
||||||
winName="Node properties ("+winName+((currentParam->ListNode->size()>1)?" ...)":")");
|
winName="Node properties ("+winName+((currentParam->ListNode->size()>1)?" ...)":")");
|
||||||
SetWindowText (hwndDlg, utf8ToTStr(winName));
|
SetWindowText (hwndDlg, MaxTStrFromUtf8(winName).data());
|
||||||
|
|
||||||
// Set default state
|
// Set default state
|
||||||
SendMessage (GetDlgItem (hwndDlg, IDC_BLEND_IN), BM_SETCHECK, currentParam->BlendIn, 0);
|
SendMessage (GetDlgItem (hwndDlg, IDC_BLEND_IN), BM_SETCHECK, currentParam->BlendIn, 0);
|
||||||
|
@ -669,8 +669,8 @@ INT_PTR CALLBACK MRMDialogCallback (
|
||||||
EnableWindow (GetDlgItem (hwndDlg, IDC_UP), currentParam->ListActived);
|
EnableWindow (GetDlgItem (hwndDlg, IDC_UP), currentParam->ListActived);
|
||||||
EnableWindow (GetDlgItem (hwndDlg, IDC_DOWN), currentParam->ListActived);
|
EnableWindow (GetDlgItem (hwndDlg, IDC_DOWN), currentParam->ListActived);
|
||||||
|
|
||||||
SetWindowText (GetDlgItem (hwndDlg, IDC_DIST_MAX), utf8ToTStr(currentParam->DistMax));
|
SetWindowText (GetDlgItem (hwndDlg, IDC_DIST_MAX), MaxTStrFromUtf8(currentParam->DistMax).data());
|
||||||
SetWindowText (GetDlgItem (hwndDlg, IDC_BLEND_LENGTH), utf8ToTStr(currentParam->BlendLength));
|
SetWindowText (GetDlgItem (hwndDlg, IDC_BLEND_LENGTH), MaxTStrFromUtf8(currentParam->BlendLength).data());
|
||||||
|
|
||||||
SendMessage (GetDlgItem (hwndDlg, IDC_ACTIVE_MRM), BM_SETCHECK, currentParam->MRM, 0);
|
SendMessage (GetDlgItem (hwndDlg, IDC_ACTIVE_MRM), BM_SETCHECK, currentParam->MRM, 0);
|
||||||
CoarseStateChanged (hwndDlg);
|
CoarseStateChanged (hwndDlg);
|
||||||
|
@ -678,12 +678,12 @@ INT_PTR CALLBACK MRMDialogCallback (
|
||||||
if (currentParam->SkinReduction!=-1)
|
if (currentParam->SkinReduction!=-1)
|
||||||
CheckRadioButton (hwndDlg, IDC_SKIN_REDUCTION_MIN, IDC_SKIN_REDUCTION_BEST, IDC_SKIN_REDUCTION_MIN+currentParam->SkinReduction);
|
CheckRadioButton (hwndDlg, IDC_SKIN_REDUCTION_MIN, IDC_SKIN_REDUCTION_BEST, IDC_SKIN_REDUCTION_MIN+currentParam->SkinReduction);
|
||||||
|
|
||||||
SetWindowText (GetDlgItem (hwndDlg, IDC_NB_LOD), utf8ToTStr(currentParam->NbLod));
|
SetWindowText (GetDlgItem (hwndDlg, IDC_NB_LOD), MaxTStrFromUtf8(currentParam->NbLod).data());
|
||||||
SetWindowText (GetDlgItem (hwndDlg, IDC_DIVISOR), utf8ToTStr(currentParam->Divisor));
|
SetWindowText (GetDlgItem (hwndDlg, IDC_DIVISOR), MaxTStrFromUtf8(currentParam->Divisor).data());
|
||||||
SetWindowText (GetDlgItem (hwndDlg, IDC_DIST_FINEST), utf8ToTStr(currentParam->DistanceFinest));
|
SetWindowText (GetDlgItem (hwndDlg, IDC_DIST_FINEST), MaxTStrFromUtf8(currentParam->DistanceFinest).data());
|
||||||
SetWindowText (GetDlgItem (hwndDlg, IDC_DIST_MIDDLE), utf8ToTStr(currentParam->DistanceMiddle));
|
SetWindowText (GetDlgItem (hwndDlg, IDC_DIST_MIDDLE), MaxTStrFromUtf8(currentParam->DistanceMiddle).data());
|
||||||
SetWindowText (GetDlgItem (hwndDlg, IDC_DIST_COARSEST), utf8ToTStr(currentParam->DistanceCoarsest));
|
SetWindowText (GetDlgItem (hwndDlg, IDC_DIST_COARSEST), MaxTStrFromUtf8(currentParam->DistanceCoarsest).data());
|
||||||
SetWindowText (GetDlgItem (hwndDlg, IDC_BONE_LOD_DISTANCE), utf8ToTStr(currentParam->BoneLodDistance));
|
SetWindowText (GetDlgItem (hwndDlg, IDC_BONE_LOD_DISTANCE), MaxTStrFromUtf8(currentParam->BoneLodDistance).data());
|
||||||
|
|
||||||
// Iterate list
|
// Iterate list
|
||||||
HWND hwndList=GetDlgItem (hwndDlg, IDC_LIST1);
|
HWND hwndList=GetDlgItem (hwndDlg, IDC_LIST1);
|
||||||
|
@ -719,9 +719,9 @@ INT_PTR CALLBACK MRMDialogCallback (
|
||||||
|
|
||||||
TCHAR tmp[512];
|
TCHAR tmp[512];
|
||||||
GetWindowText (GetDlgItem (hwndDlg, IDC_DIST_MAX), tmp, 512);
|
GetWindowText (GetDlgItem (hwndDlg, IDC_DIST_MAX), tmp, 512);
|
||||||
currentParam->DistMax = tStrToUtf8(tmp);
|
currentParam->DistMax = MCharStrToUtf8(tmp);
|
||||||
GetWindowText (GetDlgItem (hwndDlg, IDC_BLEND_LENGTH), tmp, 512);
|
GetWindowText (GetDlgItem (hwndDlg, IDC_BLEND_LENGTH), tmp, 512);
|
||||||
currentParam->BlendLength = tStrToUtf8(tmp);
|
currentParam->BlendLength = MCharStrToUtf8(tmp);
|
||||||
|
|
||||||
currentParam->MRM=SendMessage (GetDlgItem (hwndDlg, IDC_ACTIVE_MRM), BM_GETCHECK, 0, 0);
|
currentParam->MRM=SendMessage (GetDlgItem (hwndDlg, IDC_ACTIVE_MRM), BM_GETCHECK, 0, 0);
|
||||||
|
|
||||||
|
@ -734,17 +734,17 @@ INT_PTR CALLBACK MRMDialogCallback (
|
||||||
currentParam->SkinReduction=2;
|
currentParam->SkinReduction=2;
|
||||||
|
|
||||||
GetWindowText (GetDlgItem (hwndDlg, IDC_NB_LOD), tmp, 512);
|
GetWindowText (GetDlgItem (hwndDlg, IDC_NB_LOD), tmp, 512);
|
||||||
currentParam->NbLod = tStrToUtf8(tmp);
|
currentParam->NbLod = MCharStrToUtf8(tmp);
|
||||||
GetWindowText (GetDlgItem (hwndDlg, IDC_DIVISOR), tmp, 512);
|
GetWindowText (GetDlgItem (hwndDlg, IDC_DIVISOR), tmp, 512);
|
||||||
currentParam->Divisor = tStrToUtf8(tmp);
|
currentParam->Divisor = MCharStrToUtf8(tmp);
|
||||||
GetWindowText (GetDlgItem (hwndDlg, IDC_DIST_FINEST), tmp, 512);
|
GetWindowText (GetDlgItem (hwndDlg, IDC_DIST_FINEST), tmp, 512);
|
||||||
currentParam->DistanceFinest = tStrToUtf8(tmp);
|
currentParam->DistanceFinest = MCharStrToUtf8(tmp);
|
||||||
GetWindowText (GetDlgItem (hwndDlg, IDC_DIST_MIDDLE), tmp, 512);
|
GetWindowText (GetDlgItem (hwndDlg, IDC_DIST_MIDDLE), tmp, 512);
|
||||||
currentParam->DistanceMiddle = tStrToUtf8(tmp);
|
currentParam->DistanceMiddle = MCharStrToUtf8(tmp);
|
||||||
GetWindowText (GetDlgItem (hwndDlg, IDC_DIST_COARSEST), tmp, 512);
|
GetWindowText (GetDlgItem (hwndDlg, IDC_DIST_COARSEST), tmp, 512);
|
||||||
currentParam->DistanceCoarsest = tStrToUtf8(tmp);
|
currentParam->DistanceCoarsest = MCharStrToUtf8(tmp);
|
||||||
GetWindowText (GetDlgItem (hwndDlg, IDC_BONE_LOD_DISTANCE), tmp, 512);
|
GetWindowText (GetDlgItem (hwndDlg, IDC_BONE_LOD_DISTANCE), tmp, 512);
|
||||||
currentParam->BoneLodDistance = tStrToUtf8(tmp);
|
currentParam->BoneLodDistance = MCharStrToUtf8(tmp);
|
||||||
|
|
||||||
// Iterate list
|
// Iterate list
|
||||||
HWND hwndList=GetDlgItem (hwndDlg, IDC_LIST1);
|
HWND hwndList=GetDlgItem (hwndDlg, IDC_LIST1);
|
||||||
|
@ -758,7 +758,7 @@ INT_PTR CALLBACK MRMDialogCallback (
|
||||||
SendMessage (hwndList, LB_GETTEXT, item, (LPARAM) tmp);
|
SendMessage (hwndList, LB_GETTEXT, item, (LPARAM) tmp);
|
||||||
|
|
||||||
// Push it back
|
// Push it back
|
||||||
currentParam->ListLodName.push_back (tStrToUtf8(tmp));
|
currentParam->ListLodName.push_back (MCharStrToUtf8(tmp));
|
||||||
}
|
}
|
||||||
|
|
||||||
// default LodCharacter
|
// default LodCharacter
|
||||||
|
@ -920,8 +920,8 @@ INT_PTR CALLBACK InstanceDialogCallback (
|
||||||
LONG_PTR res = SetWindowLongPtr(hwndDlg, GWLP_USERDATA, (LONG_PTR)lParam);
|
LONG_PTR res = SetWindowLongPtr(hwndDlg, GWLP_USERDATA, (LONG_PTR)lParam);
|
||||||
currentParam=(CLodDialogBoxParam *)GetWindowLongPtr(hwndDlg, GWLP_USERDATA);
|
currentParam=(CLodDialogBoxParam *)GetWindowLongPtr(hwndDlg, GWLP_USERDATA);
|
||||||
|
|
||||||
SetWindowText (GetDlgItem (hwndDlg, IDC_EDIT_INSTANCE_GROUP_SHAPE), utf8ToTStr(currentParam->InstanceShape));
|
SetWindowText (GetDlgItem (hwndDlg, IDC_EDIT_INSTANCE_GROUP_SHAPE), MaxTStrFromUtf8(currentParam->InstanceShape).data());
|
||||||
SetWindowText (GetDlgItem (hwndDlg, IDC_EDIT_INSTANCE_NAME), utf8ToTStr(currentParam->InstanceName));
|
SetWindowText (GetDlgItem (hwndDlg, IDC_EDIT_INSTANCE_NAME), MaxTStrFromUtf8(currentParam->InstanceName).data());
|
||||||
|
|
||||||
SendMessage (GetDlgItem (hwndDlg, IDC_DONT_ADD_TO_SCENE), BM_SETCHECK, currentParam->DontAddToScene, 0);
|
SendMessage (GetDlgItem (hwndDlg, IDC_DONT_ADD_TO_SCENE), BM_SETCHECK, currentParam->DontAddToScene, 0);
|
||||||
|
|
||||||
|
@ -930,7 +930,7 @@ INT_PTR CALLBACK InstanceDialogCallback (
|
||||||
|
|
||||||
SendMessage (GetDlgItem (hwndDlg, IDC_CHECK_COLLISION), BM_SETCHECK, currentParam->Collision, 0);
|
SendMessage (GetDlgItem (hwndDlg, IDC_CHECK_COLLISION), BM_SETCHECK, currentParam->Collision, 0);
|
||||||
SendMessage (GetDlgItem (hwndDlg, IDC_CHECK_COLLISION_EXTERIOR), BM_SETCHECK, currentParam->CollisionExterior, 0);
|
SendMessage (GetDlgItem (hwndDlg, IDC_CHECK_COLLISION_EXTERIOR), BM_SETCHECK, currentParam->CollisionExterior, 0);
|
||||||
SetWindowText (GetDlgItem (hwndDlg, IDC_EDIT_INSTANCE_GROUP_NAME), utf8ToTStr(currentParam->InstanceGroupName));
|
SetWindowText (GetDlgItem (hwndDlg, IDC_EDIT_INSTANCE_GROUP_NAME), MaxTStrFromUtf8(currentParam->InstanceGroupName).data());
|
||||||
|
|
||||||
bool colOk = currentParam->CollisionMeshGeneration>=0 && currentParam->CollisionMeshGeneration<4;
|
bool colOk = currentParam->CollisionMeshGeneration>=0 && currentParam->CollisionMeshGeneration<4;
|
||||||
CheckRadioButton (hwndDlg, IDC_CAMERA_COL_RADIO1, IDC_CAMERA_COL_RADIO4, colOk?(IDC_CAMERA_COL_RADIO1+(currentParam->CollisionMeshGeneration)):0);
|
CheckRadioButton (hwndDlg, IDC_CAMERA_COL_RADIO1, IDC_CAMERA_COL_RADIO4, colOk?(IDC_CAMERA_COL_RADIO1+(currentParam->CollisionMeshGeneration)):0);
|
||||||
|
@ -952,14 +952,14 @@ INT_PTR CALLBACK InstanceDialogCallback (
|
||||||
{
|
{
|
||||||
TCHAR tmp[512];
|
TCHAR tmp[512];
|
||||||
GetWindowText (GetDlgItem (hwndDlg, IDC_EDIT_INSTANCE_GROUP_SHAPE), tmp, 512);
|
GetWindowText (GetDlgItem (hwndDlg, IDC_EDIT_INSTANCE_GROUP_SHAPE), tmp, 512);
|
||||||
currentParam->InstanceShape = tStrToUtf8(tmp);
|
currentParam->InstanceShape = MCharStrToUtf8(tmp);
|
||||||
|
|
||||||
GetWindowText (GetDlgItem (hwndDlg, IDC_EDIT_INSTANCE_NAME), tmp, 512);
|
GetWindowText (GetDlgItem (hwndDlg, IDC_EDIT_INSTANCE_NAME), tmp, 512);
|
||||||
currentParam->InstanceName = tStrToUtf8(tmp);
|
currentParam->InstanceName = MCharStrToUtf8(tmp);
|
||||||
|
|
||||||
currentParam->DontAddToScene=SendMessage (GetDlgItem (hwndDlg, IDC_DONT_ADD_TO_SCENE), BM_GETCHECK, 0, 0);
|
currentParam->DontAddToScene=SendMessage (GetDlgItem (hwndDlg, IDC_DONT_ADD_TO_SCENE), BM_GETCHECK, 0, 0);
|
||||||
GetWindowText (GetDlgItem (hwndDlg, IDC_EDIT_INSTANCE_GROUP_NAME), tmp, 512);
|
GetWindowText (GetDlgItem (hwndDlg, IDC_EDIT_INSTANCE_GROUP_NAME), tmp, 512);
|
||||||
currentParam->InstanceGroupName = tStrToUtf8(tmp);
|
currentParam->InstanceGroupName = MCharStrToUtf8(tmp);
|
||||||
|
|
||||||
currentParam->DontExport=SendMessage (GetDlgItem (hwndDlg, IDC_DONT_EXPORT), BM_GETCHECK, 0, 0);
|
currentParam->DontExport=SendMessage (GetDlgItem (hwndDlg, IDC_DONT_EXPORT), BM_GETCHECK, 0, 0);
|
||||||
|
|
||||||
|
@ -1036,9 +1036,9 @@ INT_PTR CALLBACK LightmapDialogCallback (
|
||||||
LONG_PTR res = SetWindowLongPtr(hwndDlg, GWLP_USERDATA, (LONG_PTR)lParam);
|
LONG_PTR res = SetWindowLongPtr(hwndDlg, GWLP_USERDATA, (LONG_PTR)lParam);
|
||||||
currentParam=(CLodDialogBoxParam *)GetWindowLongPtr(hwndDlg, GWLP_USERDATA);
|
currentParam=(CLodDialogBoxParam *)GetWindowLongPtr(hwndDlg, GWLP_USERDATA);
|
||||||
|
|
||||||
SetWindowText (GetDlgItem (hwndDlg, IDC_EDIT_LUMELSIZEMUL), utf8ToTStr(currentParam->LumelSizeMul));
|
SetWindowText (GetDlgItem (hwndDlg, IDC_EDIT_LUMELSIZEMUL), MaxTStrFromUtf8(currentParam->LumelSizeMul).data());
|
||||||
SetWindowText (GetDlgItem (hwndDlg, IDC_EDIT_SOFTSHADOW_RADIUS), utf8ToTStr(currentParam->SoftShadowRadius));
|
SetWindowText (GetDlgItem (hwndDlg, IDC_EDIT_SOFTSHADOW_RADIUS), MaxTStrFromUtf8(currentParam->SoftShadowRadius).data());
|
||||||
SetWindowText (GetDlgItem (hwndDlg, IDC_EDIT_SOFTSHADOW_CONELENGTH), utf8ToTStr(currentParam->SoftShadowConeLength));
|
SetWindowText (GetDlgItem (hwndDlg, IDC_EDIT_SOFTSHADOW_CONELENGTH), MaxTStrFromUtf8(currentParam->SoftShadowConeLength).data());
|
||||||
|
|
||||||
// Lighting
|
// Lighting
|
||||||
SendMessage (GetDlgItem (hwndDlg, IDC_EXPORT_REALTIME_LIGHT), BM_SETCHECK, currentParam->ExportRealTimeLight, 0);
|
SendMessage (GetDlgItem (hwndDlg, IDC_EXPORT_REALTIME_LIGHT), BM_SETCHECK, currentParam->ExportRealTimeLight, 0);
|
||||||
|
@ -1048,7 +1048,7 @@ INT_PTR CALLBACK LightmapDialogCallback (
|
||||||
SendMessage (GetDlgItem (hwndDlg, IDC_USE_LIGHT_LOCAL_ATTENUATION), BM_SETCHECK, currentParam->UseLightingLocalAttenuation, 0);
|
SendMessage (GetDlgItem (hwndDlg, IDC_USE_LIGHT_LOCAL_ATTENUATION), BM_SETCHECK, currentParam->UseLightingLocalAttenuation, 0);
|
||||||
SendMessage (GetDlgItem (hwndDlg, IDC_LIGHT_DONT_CAST_SHADOW_INTERIOR), BM_SETCHECK, currentParam->LightDontCastShadowInterior, 0);
|
SendMessage (GetDlgItem (hwndDlg, IDC_LIGHT_DONT_CAST_SHADOW_INTERIOR), BM_SETCHECK, currentParam->LightDontCastShadowInterior, 0);
|
||||||
SendMessage (GetDlgItem (hwndDlg, IDC_LIGHT_DONT_CAST_SHADOW_EXTERIOR), BM_SETCHECK, currentParam->LightDontCastShadowExterior, 0);
|
SendMessage (GetDlgItem (hwndDlg, IDC_LIGHT_DONT_CAST_SHADOW_EXTERIOR), BM_SETCHECK, currentParam->LightDontCastShadowExterior, 0);
|
||||||
SetWindowText (GetDlgItem (hwndDlg, IDC_EXPORT_LIGHTMAP_NAME), utf8ToTStr(currentParam->ExportLightMapName));
|
SetWindowText (GetDlgItem (hwndDlg, IDC_EXPORT_LIGHTMAP_NAME), MaxTStrFromUtf8(currentParam->ExportLightMapName).data());
|
||||||
SendMessage (GetDlgItem (hwndDlg, IDC_REALTIME_LIGHT_AMBIENT_ADD_SUN), BM_SETCHECK, currentParam->RealTimeAmbientLightAddSun, 0);
|
SendMessage (GetDlgItem (hwndDlg, IDC_REALTIME_LIGHT_AMBIENT_ADD_SUN), BM_SETCHECK, currentParam->RealTimeAmbientLightAddSun, 0);
|
||||||
|
|
||||||
// Set enable disable
|
// Set enable disable
|
||||||
|
@ -1075,11 +1075,11 @@ INT_PTR CALLBACK LightmapDialogCallback (
|
||||||
// Set default state
|
// Set default state
|
||||||
TCHAR tmp[512];
|
TCHAR tmp[512];
|
||||||
GetWindowText (GetDlgItem (hwndDlg, IDC_EDIT_LUMELSIZEMUL), tmp, 512);
|
GetWindowText (GetDlgItem (hwndDlg, IDC_EDIT_LUMELSIZEMUL), tmp, 512);
|
||||||
currentParam->LumelSizeMul = tStrToUtf8(tmp);
|
currentParam->LumelSizeMul = MCharStrToUtf8(tmp);
|
||||||
GetWindowText (GetDlgItem (hwndDlg, IDC_EDIT_SOFTSHADOW_RADIUS), tmp, 512);
|
GetWindowText (GetDlgItem (hwndDlg, IDC_EDIT_SOFTSHADOW_RADIUS), tmp, 512);
|
||||||
currentParam->SoftShadowRadius = tStrToUtf8(tmp);
|
currentParam->SoftShadowRadius = MCharStrToUtf8(tmp);
|
||||||
GetWindowText (GetDlgItem (hwndDlg, IDC_EDIT_SOFTSHADOW_CONELENGTH), tmp, 512);
|
GetWindowText (GetDlgItem (hwndDlg, IDC_EDIT_SOFTSHADOW_CONELENGTH), tmp, 512);
|
||||||
currentParam->SoftShadowConeLength = tStrToUtf8(tmp);
|
currentParam->SoftShadowConeLength = MCharStrToUtf8(tmp);
|
||||||
|
|
||||||
// RealTime light
|
// RealTime light
|
||||||
currentParam->ExportRealTimeLight = SendMessage (GetDlgItem (hwndDlg, IDC_EXPORT_REALTIME_LIGHT), BM_GETCHECK, 0, 0);
|
currentParam->ExportRealTimeLight = SendMessage (GetDlgItem (hwndDlg, IDC_EXPORT_REALTIME_LIGHT), BM_GETCHECK, 0, 0);
|
||||||
|
@ -1090,7 +1090,7 @@ INT_PTR CALLBACK LightmapDialogCallback (
|
||||||
currentParam->LightDontCastShadowExterior = SendMessage (GetDlgItem (hwndDlg, IDC_LIGHT_DONT_CAST_SHADOW_EXTERIOR), BM_GETCHECK, 0, 0);
|
currentParam->LightDontCastShadowExterior = SendMessage (GetDlgItem (hwndDlg, IDC_LIGHT_DONT_CAST_SHADOW_EXTERIOR), BM_GETCHECK, 0, 0);
|
||||||
currentParam->ExportLightMapAnimated = SendMessage (GetDlgItem (hwndDlg, IDC_EXPORT_LIGHTMAP_ANIMATED), BM_GETCHECK, 0, 0);
|
currentParam->ExportLightMapAnimated = SendMessage (GetDlgItem (hwndDlg, IDC_EXPORT_LIGHTMAP_ANIMATED), BM_GETCHECK, 0, 0);
|
||||||
GetWindowText (GetDlgItem (hwndDlg, IDC_EXPORT_LIGHTMAP_NAME), tmp, 512);
|
GetWindowText (GetDlgItem (hwndDlg, IDC_EXPORT_LIGHTMAP_NAME), tmp, 512);
|
||||||
currentParam->ExportLightMapName = tStrToUtf8(tmp);
|
currentParam->ExportLightMapName = MCharStrToUtf8(tmp);
|
||||||
currentParam->RealTimeAmbientLightAddSun= SendMessage (GetDlgItem (hwndDlg, IDC_REALTIME_LIGHT_AMBIENT_ADD_SUN), BM_GETCHECK, 0, 0);
|
currentParam->RealTimeAmbientLightAddSun= SendMessage (GetDlgItem (hwndDlg, IDC_REALTIME_LIGHT_AMBIENT_ADD_SUN), BM_GETCHECK, 0, 0);
|
||||||
|
|
||||||
// Get the acceleration type
|
// Get the acceleration type
|
||||||
|
@ -1679,7 +1679,7 @@ INT_PTR CALLBACK VegetableDialogCallback (
|
||||||
|
|
||||||
CheckRadioButton(hwndDlg, IDC_CENTER_NULL, IDC_CENTER_Z, IDC_CENTER_NULL+currentParam->VegetableBendCenter);
|
CheckRadioButton(hwndDlg, IDC_CENTER_NULL, IDC_CENTER_Z, IDC_CENTER_NULL+currentParam->VegetableBendCenter);
|
||||||
|
|
||||||
SetWindowText (GetDlgItem (hwndDlg, IDC_VEGETABLE_BEND_FACTOR), utf8ToTStr(currentParam->VegetableBendFactor));
|
SetWindowText (GetDlgItem (hwndDlg, IDC_VEGETABLE_BEND_FACTOR), MaxTStrFromUtf8(currentParam->VegetableBendFactor).data());
|
||||||
|
|
||||||
VegetableStateChanged (hwndDlg);
|
VegetableStateChanged (hwndDlg);
|
||||||
}
|
}
|
||||||
|
@ -1734,7 +1734,7 @@ INT_PTR CALLBACK VegetableDialogCallback (
|
||||||
|
|
||||||
TCHAR tmp[512];
|
TCHAR tmp[512];
|
||||||
GetWindowText (GetDlgItem (hwndDlg, IDC_VEGETABLE_BEND_FACTOR), tmp, 512);
|
GetWindowText (GetDlgItem (hwndDlg, IDC_VEGETABLE_BEND_FACTOR), tmp, 512);
|
||||||
currentParam->VegetableBendFactor = tStrToUtf8(tmp);
|
currentParam->VegetableBendFactor = MCharStrToUtf8(tmp);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case IDC_VEGETABLE:
|
case IDC_VEGETABLE:
|
||||||
|
@ -2290,34 +2290,34 @@ INT_PTR CALLBACK MiscDialogCallback (
|
||||||
|
|
||||||
// Ligoscape
|
// Ligoscape
|
||||||
SendMessage (GetDlgItem (hwndDlg, IDC_LIGO_SYMMETRY), BM_SETCHECK, currentParam->LigoSymmetry, 0);
|
SendMessage (GetDlgItem (hwndDlg, IDC_LIGO_SYMMETRY), BM_SETCHECK, currentParam->LigoSymmetry, 0);
|
||||||
SetWindowText (GetDlgItem (hwndDlg, IDC_LIGO_ROTATE), utf8ToTStr(currentParam->LigoRotate));
|
SetWindowText (GetDlgItem (hwndDlg, IDC_LIGO_ROTATE), MaxTStrFromUtf8(currentParam->LigoRotate).data());
|
||||||
|
|
||||||
// SWT
|
// SWT
|
||||||
SendMessage (GetDlgItem (hwndDlg, IDC_SWT), BM_SETCHECK, currentParam->SWT, 0);
|
SendMessage (GetDlgItem (hwndDlg, IDC_SWT), BM_SETCHECK, currentParam->SWT, 0);
|
||||||
SetWindowText (GetDlgItem (hwndDlg, IDC_SWT_WEIGHT), utf8ToTStr(currentParam->SWTWeight));
|
SetWindowText (GetDlgItem (hwndDlg, IDC_SWT_WEIGHT), MaxTStrFromUtf8(currentParam->SWTWeight).data());
|
||||||
|
|
||||||
// Radial normals
|
// Radial normals
|
||||||
for (uint smoothGroup=0; smoothGroup<NEL3D_RADIAL_NORMAL_COUNT; smoothGroup++)
|
for (uint smoothGroup=0; smoothGroup<NEL3D_RADIAL_NORMAL_COUNT; smoothGroup++)
|
||||||
SetWindowText (GetDlgItem (hwndDlg, IDC_RADIAL_NORMAL_29+smoothGroup), utf8ToTStr(currentParam->RadialNormals[smoothGroup]));
|
SetWindowText (GetDlgItem (hwndDlg, IDC_RADIAL_NORMAL_29+smoothGroup), MaxTStrFromUtf8(currentParam->RadialNormals[smoothGroup]).data());
|
||||||
|
|
||||||
// Mesh interfaces
|
// Mesh interfaces
|
||||||
SetWindowText (GetDlgItem (hwndDlg, IDC_EDIT_INTERFACE_FILE), utf8ToTStr(currentParam->InterfaceFileName));
|
SetWindowText (GetDlgItem (hwndDlg, IDC_EDIT_INTERFACE_FILE), MaxTStrFromUtf8(currentParam->InterfaceFileName).data());
|
||||||
SetWindowText (GetDlgItem (hwndDlg, IDC_EDIT_INTERFACE_THRESHOLD),
|
SetWindowText (GetDlgItem (hwndDlg, IDC_EDIT_INTERFACE_THRESHOLD),
|
||||||
currentParam->InterfaceThreshold != -1.f ? utf8ToTStr(toStringMax(currentParam->InterfaceThreshold))
|
currentParam->InterfaceThreshold != -1.f ? MaxTStrFromUtf8(toStringMax(currentParam->InterfaceThreshold)).data()
|
||||||
: _T("")
|
: _T("")
|
||||||
);
|
);
|
||||||
SendMessage(GetDlgItem(hwndDlg, IDC_GET_INTERFACE_NORMAL_FROM_SCENE_OBJECTS), BM_SETCHECK, currentParam->GetInterfaceNormalsFromSceneObjects, 0);
|
SendMessage(GetDlgItem(hwndDlg, IDC_GET_INTERFACE_NORMAL_FROM_SCENE_OBJECTS), BM_SETCHECK, currentParam->GetInterfaceNormalsFromSceneObjects, 0);
|
||||||
|
|
||||||
// Skeleton Scale
|
// Skeleton Scale
|
||||||
SendMessage( GetDlgItem(hwndDlg, IDC_EXPORT_BONE_SCALE), BM_SETCHECK, currentParam->ExportBoneScale, 0);
|
SendMessage( GetDlgItem(hwndDlg, IDC_EXPORT_BONE_SCALE), BM_SETCHECK, currentParam->ExportBoneScale, 0);
|
||||||
SetWindowText (GetDlgItem (hwndDlg, IDC_EXPORT_BONE_SCALE_NAME_EXT), utf8ToTStr(currentParam->ExportBoneScaleNameExt));
|
SetWindowText (GetDlgItem (hwndDlg, IDC_EXPORT_BONE_SCALE_NAME_EXT), MaxTStrFromUtf8(currentParam->ExportBoneScaleNameExt).data());
|
||||||
|
|
||||||
// Remanence
|
// Remanence
|
||||||
SendMessage (GetDlgItem (hwndDlg, IDC_USE_REMANENCE), BM_SETCHECK, currentParam->UseRemanence, 0);
|
SendMessage (GetDlgItem (hwndDlg, IDC_USE_REMANENCE), BM_SETCHECK, currentParam->UseRemanence, 0);
|
||||||
SendMessage (GetDlgItem (hwndDlg, IDC_REMANENCE_SHIFTING_TEXTURE), BM_SETCHECK, currentParam->RemanenceShiftingTexture, 0);
|
SendMessage (GetDlgItem (hwndDlg, IDC_REMANENCE_SHIFTING_TEXTURE), BM_SETCHECK, currentParam->RemanenceShiftingTexture, 0);
|
||||||
SetWindowText (GetDlgItem (hwndDlg, IDC_REMANENCE_SLICE_NUMBER), currentParam->RemanenceSliceNumber != - 1 ? utf8ToTStr(toStringMax(currentParam->RemanenceSliceNumber)) : _T(""));
|
SetWindowText (GetDlgItem (hwndDlg, IDC_REMANENCE_SLICE_NUMBER), currentParam->RemanenceSliceNumber != - 1 ? MaxTStrFromUtf8(toStringMax(currentParam->RemanenceSliceNumber)).data() : _T(""));
|
||||||
SetWindowText (GetDlgItem (hwndDlg, IDC_REMANENCE_SAMPLING_PERIOD), currentParam->RemanenceSamplingPeriod != -1 ? utf8ToTStr(toStringMax(currentParam->RemanenceSamplingPeriod)) : _T(""));
|
SetWindowText (GetDlgItem (hwndDlg, IDC_REMANENCE_SAMPLING_PERIOD), currentParam->RemanenceSamplingPeriod != -1 ? MaxTStrFromUtf8(toStringMax(currentParam->RemanenceSamplingPeriod)).data() : _T(""));
|
||||||
SetWindowText (GetDlgItem (hwndDlg, IDC_REMANENCE_ROLLUP_RATIO), currentParam->RemanenceRollupRatio != -1 ? utf8ToTStr(toStringMax(currentParam->RemanenceRollupRatio)) : _T(""));
|
SetWindowText (GetDlgItem (hwndDlg, IDC_REMANENCE_ROLLUP_RATIO), currentParam->RemanenceRollupRatio != -1 ? MaxTStrFromUtf8(toStringMax(currentParam->RemanenceRollupRatio)).data() : _T(""));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -2338,24 +2338,24 @@ INT_PTR CALLBACK MiscDialogCallback (
|
||||||
currentParam->LigoSymmetry = SendMessage (GetDlgItem (hwndDlg, IDC_LIGO_SYMMETRY), BM_GETCHECK, 0, 0);
|
currentParam->LigoSymmetry = SendMessage (GetDlgItem (hwndDlg, IDC_LIGO_SYMMETRY), BM_GETCHECK, 0, 0);
|
||||||
TCHAR tmp[512];
|
TCHAR tmp[512];
|
||||||
GetWindowText (GetDlgItem (hwndDlg, IDC_LIGO_ROTATE), tmp, 512);
|
GetWindowText (GetDlgItem (hwndDlg, IDC_LIGO_ROTATE), tmp, 512);
|
||||||
currentParam->LigoRotate = tStrToUtf8(tmp);
|
currentParam->LigoRotate = MCharStrToUtf8(tmp);
|
||||||
|
|
||||||
// SWT
|
// SWT
|
||||||
currentParam->SWT = SendMessage (GetDlgItem (hwndDlg, IDC_SWT), BM_GETCHECK, 0, 0);
|
currentParam->SWT = SendMessage (GetDlgItem (hwndDlg, IDC_SWT), BM_GETCHECK, 0, 0);
|
||||||
GetWindowText (GetDlgItem (hwndDlg, IDC_SWT_WEIGHT), tmp, 512);
|
GetWindowText (GetDlgItem (hwndDlg, IDC_SWT_WEIGHT), tmp, 512);
|
||||||
currentParam->SWTWeight = tStrToUtf8(tmp);
|
currentParam->SWTWeight = MCharStrToUtf8(tmp);
|
||||||
|
|
||||||
// Radial normals
|
// Radial normals
|
||||||
for (uint smoothGroup=0; smoothGroup<NEL3D_RADIAL_NORMAL_COUNT; smoothGroup++)
|
for (uint smoothGroup=0; smoothGroup<NEL3D_RADIAL_NORMAL_COUNT; smoothGroup++)
|
||||||
{
|
{
|
||||||
HWND edit = GetDlgItem (hwndDlg, IDC_RADIAL_NORMAL_29+smoothGroup);
|
HWND edit = GetDlgItem (hwndDlg, IDC_RADIAL_NORMAL_29+smoothGroup);
|
||||||
GetWindowText (edit, tmp, 512);
|
GetWindowText (edit, tmp, 512);
|
||||||
currentParam->RadialNormals[smoothGroup] = tStrToUtf8(tmp);
|
currentParam->RadialNormals[smoothGroup] = MCharStrToUtf8(tmp);
|
||||||
}
|
}
|
||||||
|
|
||||||
// mesh interfaces
|
// mesh interfaces
|
||||||
GetWindowText (GetDlgItem (hwndDlg, IDC_EDIT_INTERFACE_FILE), tmp, 512);
|
GetWindowText (GetDlgItem (hwndDlg, IDC_EDIT_INTERFACE_FILE), tmp, 512);
|
||||||
currentParam->InterfaceFileName = tStrToUtf8(tmp);
|
currentParam->InterfaceFileName = MCharStrToUtf8(tmp);
|
||||||
GetWindowText (GetDlgItem (hwndDlg, IDC_EDIT_INTERFACE_THRESHOLD), tmp, 512);
|
GetWindowText (GetDlgItem (hwndDlg, IDC_EDIT_INTERFACE_THRESHOLD), tmp, 512);
|
||||||
if (_tcslen(tmp) != 0)
|
if (_tcslen(tmp) != 0)
|
||||||
currentParam->InterfaceThreshold = toFloatMax(tmp);
|
currentParam->InterfaceThreshold = toFloatMax(tmp);
|
||||||
|
@ -2365,7 +2365,7 @@ INT_PTR CALLBACK MiscDialogCallback (
|
||||||
// Skeleton Scale
|
// Skeleton Scale
|
||||||
currentParam->ExportBoneScale= SendMessage( GetDlgItem(hwndDlg, IDC_EXPORT_BONE_SCALE), BM_GETCHECK, 0, 0);
|
currentParam->ExportBoneScale= SendMessage( GetDlgItem(hwndDlg, IDC_EXPORT_BONE_SCALE), BM_GETCHECK, 0, 0);
|
||||||
GetWindowText (GetDlgItem (hwndDlg, IDC_EXPORT_BONE_SCALE_NAME_EXT), tmp, 512);
|
GetWindowText (GetDlgItem (hwndDlg, IDC_EXPORT_BONE_SCALE_NAME_EXT), tmp, 512);
|
||||||
currentParam->ExportBoneScaleNameExt = tStrToUtf8(tmp);
|
currentParam->ExportBoneScaleNameExt = MCharStrToUtf8(tmp);
|
||||||
|
|
||||||
// remanence
|
// remanence
|
||||||
currentParam->UseRemanence = SendMessage (GetDlgItem (hwndDlg, IDC_USE_REMANENCE), BM_GETCHECK, 0, 0);
|
currentParam->UseRemanence = SendMessage (GetDlgItem (hwndDlg, IDC_USE_REMANENCE), BM_GETCHECK, 0, 0);
|
||||||
|
@ -2374,7 +2374,7 @@ INT_PTR CALLBACK MiscDialogCallback (
|
||||||
GetWindowText (GetDlgItem (hwndDlg, IDC_REMANENCE_SLICE_NUMBER), tmp, 512);
|
GetWindowText (GetDlgItem (hwndDlg, IDC_REMANENCE_SLICE_NUMBER), tmp, 512);
|
||||||
|
|
||||||
uint rsn;
|
uint rsn;
|
||||||
if (NLMISC::fromString(tStrToUtf8(tmp), rsn))
|
if (NLMISC::fromString(MCharStrToUtf8(tmp), rsn))
|
||||||
{
|
{
|
||||||
currentParam->RemanenceSliceNumber = rsn;
|
currentParam->RemanenceSliceNumber = rsn;
|
||||||
}
|
}
|
||||||
|
@ -2489,12 +2489,12 @@ INT_PTR CALLBACK LodDialogCallback (
|
||||||
{
|
{
|
||||||
// Param pointers
|
// Param pointers
|
||||||
LONG_PTR res = SetWindowLongPtr(hwndDlg, GWLP_USERDATA, (LONG_PTR)lParam);
|
LONG_PTR res = SetWindowLongPtr(hwndDlg, GWLP_USERDATA, (LONG_PTR)lParam);
|
||||||
currentParam=(CLodDialogBoxParam *)GetWindowLongPtr(hwndDlg, GWLP_USERDATA);
|
currentParam = (CLodDialogBoxParam *)GetWindowLongPtr(hwndDlg, GWLP_USERDATA);
|
||||||
|
|
||||||
// Window text
|
// Window text
|
||||||
std::string winName = tStrToUtf8((*(currentParam->ListNode->begin()))->GetName());
|
TSTR winName = (*(currentParam->ListNode->begin()))->GetName();
|
||||||
winName="Node properties ("+winName+((currentParam->ListNode->size()>1)?" ...)":")");
|
winName = TSTR("Node properties (") + winName + ((currentParam->ListNode->size() > 1) ? _M(" ...)") : _M(")"));
|
||||||
SetWindowText (hwndDlg, utf8ToTStr(winName));
|
SetWindowText(hwndDlg, winName.data());
|
||||||
|
|
||||||
// Move dialog
|
// Move dialog
|
||||||
RECT windowRect, desktopRect;
|
RECT windowRect, desktopRect;
|
||||||
|
|
|
@ -59,7 +59,7 @@ bool CNelExport::exportInstanceGroup(string filename, vector<INode*>& vectNode)
|
||||||
catch (const Exception &c)
|
catch (const Exception &c)
|
||||||
{
|
{
|
||||||
// Cannot save the file
|
// Cannot save the file
|
||||||
MessageBox (NULL, utf8ToTStr(c.what()), _T("NeL export"), MB_OK|MB_ICONEXCLAMATION);
|
MessageBox(NULL, MaxTStrFromUtf8(c.what()).data(), _T("NeL export"), MB_OK|MB_ICONEXCLAMATION);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -91,7 +91,7 @@ Value* export_shape_cf (Value** arg_list, int count)
|
||||||
theCNelExport.init (false, false, ip, true);
|
theCNelExport.init (false, false, ip, true);
|
||||||
|
|
||||||
// Export path
|
// Export path
|
||||||
std::string sPath = tStrToUtf8(arg_list[1]->to_string());
|
std::string sPath = MCharStrToUtf8(arg_list[1]->to_string());
|
||||||
|
|
||||||
// Ok ?
|
// Ok ?
|
||||||
Boolean *ret=&false_value;
|
Boolean *ret=&false_value;
|
||||||
|
@ -154,12 +154,12 @@ Value* export_shape_ex_cf (Value** arg_list, int count)
|
||||||
nlassert(node->GetName());
|
nlassert(node->GetName());
|
||||||
|
|
||||||
// Export path
|
// Export path
|
||||||
std::string sPath = tStrToUtf8(arg_list[1]->to_string());
|
std::string sPath = MCharStrToUtf8(arg_list[1]->to_string());
|
||||||
|
|
||||||
// Ex argu
|
// Ex argu
|
||||||
theExportSceneStruct.bShadow = arg_list[2]->to_bool()!=FALSE;
|
theExportSceneStruct.bShadow = arg_list[2]->to_bool()!=FALSE;
|
||||||
theExportSceneStruct.bExportLighting = arg_list[3]->to_bool()!=FALSE;
|
theExportSceneStruct.bExportLighting = arg_list[3]->to_bool()!=FALSE;
|
||||||
theExportSceneStruct.sExportLighting = tStrToUtf8(arg_list[4]->to_string());
|
theExportSceneStruct.sExportLighting = MCharStrToUtf8(arg_list[4]->to_string());
|
||||||
theExportSceneStruct.nExportLighting = arg_list[5]->to_int();
|
theExportSceneStruct.nExportLighting = arg_list[5]->to_int();
|
||||||
theExportSceneStruct.rLumelSize = arg_list[6]->to_float();
|
theExportSceneStruct.rLumelSize = arg_list[6]->to_float();
|
||||||
theExportSceneStruct.nOverSampling = arg_list[7]->to_int();
|
theExportSceneStruct.nOverSampling = arg_list[7]->to_int();
|
||||||
|
@ -220,7 +220,7 @@ Value* export_skeleton_cf (Value** arg_list, int count)
|
||||||
nlassert (node);
|
nlassert (node);
|
||||||
|
|
||||||
// Export path
|
// Export path
|
||||||
std::string sPath = tStrToUtf8(arg_list[1]->to_string());
|
std::string sPath = MCharStrToUtf8(arg_list[1]->to_string());
|
||||||
|
|
||||||
// Ok ?
|
// Ok ?
|
||||||
Boolean *ret=&false_value;
|
Boolean *ret=&false_value;
|
||||||
|
@ -260,7 +260,7 @@ Value* export_animation_cf (Value** arg_list, int count)
|
||||||
theCNelExport.init (false, false, ip, true);
|
theCNelExport.init (false, false, ip, true);
|
||||||
|
|
||||||
// Export path
|
// Export path
|
||||||
std::string sPath = tStrToUtf8(arg_list[1]->to_string());
|
std::string sPath = MCharStrToUtf8(arg_list[1]->to_string());
|
||||||
|
|
||||||
// Get time
|
// Get time
|
||||||
TimeValue time=MAXScript_interface->GetTime();
|
TimeValue time=MAXScript_interface->GetTime();
|
||||||
|
@ -298,7 +298,7 @@ Value* export_animation_cf (Value** arg_list, int count)
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Error message
|
// Error message
|
||||||
mprintf (_M("Error exporting animation %s in the file\n%s\n"), (*vectNode.begin())->GetName(), utf8ToTStr(sPath));
|
mprintf(_M("Error exporting animation %s in the file\n%s\n"), (*vectNode.begin())->GetName(), MaxTStrFromUtf8(sPath).data());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -352,7 +352,7 @@ Value* export_ig_cf (Value** arg_list, int count)
|
||||||
vect.push_back (array->get (i+1)->to_node());
|
vect.push_back (array->get (i+1)->to_node());
|
||||||
|
|
||||||
// Export path
|
// Export path
|
||||||
std::string sPath = tStrToUtf8(arg_list[1]->to_string());
|
std::string sPath = MCharStrToUtf8(arg_list[1]->to_string());
|
||||||
|
|
||||||
// Export
|
// Export
|
||||||
if (theCNelExport.exportInstanceGroup (sPath, vect))
|
if (theCNelExport.exportInstanceGroup (sPath, vect))
|
||||||
|
@ -411,7 +411,7 @@ Value* export_skeleton_weight_cf (Value** arg_list, int count)
|
||||||
vect.push_back (array->get (i+1)->to_node());
|
vect.push_back (array->get (i+1)->to_node());
|
||||||
|
|
||||||
// Export path
|
// Export path
|
||||||
std::string sPath = tStrToUtf8(arg_list[1]->to_string());
|
std::string sPath = MCharStrToUtf8(arg_list[1]->to_string());
|
||||||
|
|
||||||
// Export
|
// Export
|
||||||
if (theCNelExport.exportSWT (sPath, vect))
|
if (theCNelExport.exportSWT (sPath, vect))
|
||||||
|
@ -462,8 +462,8 @@ Value* test_file_date_cf (Value** arg_list, int count)
|
||||||
// Make sure we have the correct number of arguments (2)
|
// Make sure we have the correct number of arguments (2)
|
||||||
check_arg_count(view_shape, 2, count);
|
check_arg_count(view_shape, 2, count);
|
||||||
|
|
||||||
type_check (arg_list[0], String, _M("NeLTestFileDate [DestFilename] [SrcFilename]"));
|
type_check(arg_list[0], String, _M("NeLTestFileDate [DestFilename] [SrcFilename]"));
|
||||||
type_check (arg_list[1], String, _M("NeLTestFileDate [DestFilename] [SrcFilename]"));
|
type_check(arg_list[1], String, _M("NeLTestFileDate [DestFilename] [SrcFilename]"));
|
||||||
|
|
||||||
// Get a good interface pointer
|
// Get a good interface pointer
|
||||||
Interface *ip = MAXScript_interface;
|
Interface *ip = MAXScript_interface;
|
||||||
|
@ -471,11 +471,11 @@ Value* test_file_date_cf (Value** arg_list, int count)
|
||||||
theCNelExport.init (false, false, ip, true);
|
theCNelExport.init (false, false, ip, true);
|
||||||
|
|
||||||
// The 2 filenames
|
// The 2 filenames
|
||||||
string file0 = tStrToUtf8(arg_list[0]->to_string());
|
WStr file0 = arg_list[0]->to_string();
|
||||||
string file1 = tStrToUtf8(arg_list[1]->to_string());
|
WStr file1 = arg_list[1]->to_string();
|
||||||
|
|
||||||
// Open it
|
// Open it
|
||||||
FILE *file=nlfopen (file0.c_str(), "r");
|
FILE *file= nlfopen(ucstring((const ucchar *)file0.data()).toUtf8().c_str(), "r");
|
||||||
if (file == NULL)
|
if (file == NULL)
|
||||||
return &true_value;
|
return &true_value;
|
||||||
|
|
||||||
|
@ -486,10 +486,10 @@ Value* test_file_date_cf (Value** arg_list, int count)
|
||||||
Value *ret = &undefined;
|
Value *ret = &undefined;
|
||||||
|
|
||||||
// Create first file
|
// Create first file
|
||||||
HANDLE h0 = CreateFile (utf8ToTStr(file0), GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
|
HANDLE h0 = CreateFileW((LPCWSTR)file0.data(), GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
|
||||||
if (h0!=INVALID_HANDLE_VALUE)
|
if (h0!=INVALID_HANDLE_VALUE)
|
||||||
{
|
{
|
||||||
HANDLE h1 = CreateFile (utf8ToTStr(file1), GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
|
HANDLE h1 = CreateFileW((LPCWSTR)file1.data(), GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
|
||||||
if (h1!=INVALID_HANDLE_VALUE)
|
if (h1!=INVALID_HANDLE_VALUE)
|
||||||
{
|
{
|
||||||
// Get file time
|
// Get file time
|
||||||
|
@ -536,7 +536,7 @@ Value* export_vegetable_cf (Value** arg_list, int count)
|
||||||
nlassert (node);
|
nlassert (node);
|
||||||
|
|
||||||
// Export path
|
// Export path
|
||||||
std::string sPath = tStrToUtf8(arg_list[1]->to_string());
|
std::string sPath = MCharStrToUtf8(arg_list[1]->to_string());
|
||||||
|
|
||||||
// Message in dialog
|
// Message in dialog
|
||||||
bool dialogMessage = arg_list[2]->to_bool() != FALSE;
|
bool dialogMessage = arg_list[2]->to_bool() != FALSE;
|
||||||
|
@ -615,7 +615,7 @@ Value* export_collision_cf (Value** arg_list, int count)
|
||||||
theCNelExport.init (false, false, ip, true);
|
theCNelExport.init (false, false, ip, true);
|
||||||
|
|
||||||
// Export path
|
// Export path
|
||||||
string sPath = tStrToUtf8(arg_list[1]->to_string());
|
string sPath = MCharStrToUtf8(arg_list[1]->to_string());
|
||||||
|
|
||||||
// Get time
|
// Get time
|
||||||
TimeValue time = MAXScript_interface->GetTime();
|
TimeValue time = MAXScript_interface->GetTime();
|
||||||
|
@ -674,7 +674,7 @@ Value* export_pacs_primitives_cf (Value** arg_list, int count)
|
||||||
theCNelExport.init (false, false, ip, true);
|
theCNelExport.init (false, false, ip, true);
|
||||||
|
|
||||||
// Export path
|
// Export path
|
||||||
string sPath = tStrToUtf8(arg_list[1]->to_string());
|
string sPath = MCharStrToUtf8(arg_list[1]->to_string());
|
||||||
|
|
||||||
// Get time
|
// Get time
|
||||||
TimeValue time = MAXScript_interface->GetTime();
|
TimeValue time = MAXScript_interface->GetTime();
|
||||||
|
@ -733,7 +733,7 @@ Value* export_lod_character_cf (Value** arg_list, int count)
|
||||||
nlassert (node);
|
nlassert (node);
|
||||||
|
|
||||||
// Export path
|
// Export path
|
||||||
std::string sPath = tStrToUtf8(arg_list[1]->to_string());
|
std::string sPath = MCharStrToUtf8(arg_list[1]->to_string());
|
||||||
|
|
||||||
// Message in dialog
|
// Message in dialog
|
||||||
bool dialogMessage = arg_list[2]->to_bool() != FALSE;
|
bool dialogMessage = arg_list[2]->to_bool() != FALSE;
|
||||||
|
@ -879,18 +879,18 @@ Value* get_file_modification_date_cf (Value** arg_list, int count)
|
||||||
type_check (arg_list[0], String, message);
|
type_check (arg_list[0], String, message);
|
||||||
|
|
||||||
// get the node
|
// get the node
|
||||||
string sPath = tStrToUtf8(arg_list[0]->to_string());
|
WStr sPath = arg_list[0]->to_string();
|
||||||
|
|
||||||
// get vertices indices
|
// get vertices indices
|
||||||
string result;
|
string result;
|
||||||
HANDLE file = CreateFile (utf8ToTStr(sPath), GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
|
HANDLE file = CreateFileW((LPCWSTR)sPath.data(), GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
|
||||||
if (file)
|
if (file)
|
||||||
{
|
{
|
||||||
FILETIME lastWriteTime;
|
FILETIME lastWriteTime;
|
||||||
if (GetFileTime(file, NULL, NULL, &lastWriteTime))
|
if (GetFileTime(file, NULL, NULL, &lastWriteTime))
|
||||||
{
|
{
|
||||||
char number[512];
|
char number[512];
|
||||||
sprintf (number, "%08x%08x", lastWriteTime.dwHighDateTime, lastWriteTime.dwLowDateTime);
|
sprintf(number, "%08x%08x", lastWriteTime.dwHighDateTime, lastWriteTime.dwLowDateTime);
|
||||||
result = number;
|
result = number;
|
||||||
}
|
}
|
||||||
CloseHandle (file);
|
CloseHandle (file);
|
||||||
|
@ -899,7 +899,7 @@ Value* get_file_modification_date_cf (Value** arg_list, int count)
|
||||||
if (result.empty())
|
if (result.empty())
|
||||||
return &undefined;
|
return &undefined;
|
||||||
else
|
else
|
||||||
return new String(utf8ToTStr(result));
|
return new String(MaxTStrFromUtf8(result));
|
||||||
}
|
}
|
||||||
|
|
||||||
// ***************************************************************************
|
// ***************************************************************************
|
||||||
|
@ -914,24 +914,24 @@ Value* set_file_modification_date_cf (Value** arg_list, int count)
|
||||||
MCHAR *message = _M("bool NeLSetFileModificationDate [filename] [date] - If an error occurred, returns false.");
|
MCHAR *message = _M("bool NeLSetFileModificationDate [filename] [date] - If an error occurred, returns false.");
|
||||||
|
|
||||||
//type_check
|
//type_check
|
||||||
type_check (arg_list[0], String, message);
|
type_check(arg_list[0], String, message);
|
||||||
type_check (arg_list[1], String, message);
|
type_check(arg_list[1], String, message);
|
||||||
|
|
||||||
// get the node
|
// get the node
|
||||||
string sPath = tStrToUtf8(arg_list[0]->to_string());
|
WStr sPath = arg_list[0]->to_string();
|
||||||
string sDate = tStrToUtf8(arg_list[1]->to_string());
|
WStr sDate = arg_list[1]->to_string();
|
||||||
|
|
||||||
// get vertices indices
|
// get vertices indices
|
||||||
string result;
|
string result;
|
||||||
HANDLE file = CreateFile (utf8ToTStr(sPath), GENERIC_WRITE, FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
|
HANDLE file = CreateFileW(sPath.data(), GENERIC_WRITE, FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
|
||||||
if (file)
|
if (file)
|
||||||
{
|
{
|
||||||
FILETIME lastWriteTime;
|
FILETIME lastWriteTime;
|
||||||
if (sscanf (sDate.c_str(), "%08x%08x", &lastWriteTime.dwHighDateTime, &lastWriteTime.dwLowDateTime) == 2)
|
if (swscanf(sDate.data(), L"%08x%08x", &lastWriteTime.dwHighDateTime, &lastWriteTime.dwLowDateTime) == 2)
|
||||||
{
|
{
|
||||||
if (SetFileTime(file, NULL, NULL, &lastWriteTime))
|
if (SetFileTime(file, NULL, NULL, &lastWriteTime))
|
||||||
{
|
{
|
||||||
CloseHandle (file);
|
CloseHandle(file);
|
||||||
return &true_value;
|
return &true_value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -55,15 +55,15 @@ bool CNelExport::exportSWT(const std::string &sPath, std::vector<INode*>& vectNo
|
||||||
|
|
||||||
// Store them in the temporary list
|
// Store them in the temporary list
|
||||||
aSWNodes.resize(nNumNode+3);
|
aSWNodes.resize(nNumNode+3);
|
||||||
aSWNodes[nNumNode].Name = tStrToUtf8(pNode->GetName());
|
aSWNodes[nNumNode].Name = MCharStrToUtf8(pNode->GetName());
|
||||||
aSWNodes[nNumNode].Name += std::string (".")+ITransformable::getRotQuatValueName();
|
aSWNodes[nNumNode].Name += std::string (".")+ITransformable::getRotQuatValueName();
|
||||||
aSWNodes[nNumNode].Weight = rRotValue;
|
aSWNodes[nNumNode].Weight = rRotValue;
|
||||||
++nNumNode;
|
++nNumNode;
|
||||||
aSWNodes[nNumNode].Name = tStrToUtf8(pNode->GetName());
|
aSWNodes[nNumNode].Name = MCharStrToUtf8(pNode->GetName());
|
||||||
aSWNodes[nNumNode].Name += std::string (".")+ITransformable::getPosValueName ();
|
aSWNodes[nNumNode].Name += std::string (".")+ITransformable::getPosValueName ();
|
||||||
aSWNodes[nNumNode].Weight = rPosValue;
|
aSWNodes[nNumNode].Weight = rPosValue;
|
||||||
++nNumNode;
|
++nNumNode;
|
||||||
aSWNodes[nNumNode].Name = tStrToUtf8(pNode->GetName());
|
aSWNodes[nNumNode].Name = MCharStrToUtf8(pNode->GetName());
|
||||||
aSWNodes[nNumNode].Name += std::string (".")+ITransformable::getScaleValueName();
|
aSWNodes[nNumNode].Name += std::string (".")+ITransformable::getScaleValueName();
|
||||||
aSWNodes[nNumNode].Weight = rScaleValue;
|
aSWNodes[nNumNode].Weight = rScaleValue;
|
||||||
++nNumNode;
|
++nNumNode;
|
||||||
|
|
|
@ -113,7 +113,7 @@ void regsiterOVPath ()
|
||||||
int res = GetModuleFileName(hModule, sModulePath, 256);
|
int res = GetModuleFileName(hModule, sModulePath, 256);
|
||||||
if (!res) { ::MessageBox(NULL, _T("'res' failed at '") __FUNCTION__ _T("' in file '") __FILE__ _T(" on line ") NL_MACRO_TO_STR(__LINE__), _T("NeL Export"), MB_OK | MB_ICONERROR); return; }
|
if (!res) { ::MessageBox(NULL, _T("'res' failed at '") __FUNCTION__ _T("' in file '") __FILE__ _T(" on line ") NL_MACRO_TO_STR(__LINE__), _T("NeL Export"), MB_OK | MB_ICONERROR); return; }
|
||||||
|
|
||||||
std::string modulePath = NLMISC::CFile::getPath(tStrToUtf8(sModulePath)) + "object_viewer.cfg";
|
std::string modulePath = NLMISC::CFile::getPath(MCharStrToUtf8(sModulePath)) + "object_viewer.cfg";
|
||||||
|
|
||||||
// Load the config file
|
// Load the config file
|
||||||
CConfigFile cf;
|
CConfigFile cf;
|
||||||
|
@ -300,7 +300,7 @@ void CNelExport::viewMesh (TimeValue time)
|
||||||
_ExportNel->buildSkeletonShape (*skelShape, *skeletonRoot, &(iteSkeleton->second), mapId, time);
|
_ExportNel->buildSkeletonShape (*skelShape, *skeletonRoot, &(iteSkeleton->second), mapId, time);
|
||||||
|
|
||||||
// Add the shape in the view
|
// Add the shape in the view
|
||||||
uint instance = view->addSkel (skelShape, tStrToUtf8(skeletonRoot->GetName()));
|
uint instance = view->addSkel (skelShape, MCharStrToUtf8(skeletonRoot->GetName()));
|
||||||
|
|
||||||
// Add tracks
|
// Add tracks
|
||||||
CAnimation *anim=new CAnimation;
|
CAnimation *anim=new CAnimation;
|
||||||
|
@ -365,7 +365,7 @@ void CNelExport::viewMesh (TimeValue time)
|
||||||
INode* pNode=_Ip->GetSelNode (nNode);
|
INode* pNode=_Ip->GetSelNode (nNode);
|
||||||
|
|
||||||
string sTmp = "Object Name: ";
|
string sTmp = "Object Name: ";
|
||||||
sTmp += tStrToUtf8(pNode->GetName());
|
sTmp += MCharStrToUtf8(pNode->GetName());
|
||||||
ProgBar.setLine (0, sTmp);
|
ProgBar.setLine (0, sTmp);
|
||||||
sTmp.clear();
|
sTmp.clear();
|
||||||
for (uint32 i = 1; i < 10; ++i)
|
for (uint32 i = 1; i < 10; ++i)
|
||||||
|
@ -410,7 +410,7 @@ void CNelExport::viewMesh (TimeValue time)
|
||||||
if (pShape)
|
if (pShape)
|
||||||
{
|
{
|
||||||
// Add the shape in the view
|
// Add the shape in the view
|
||||||
uint instance = view->addMesh (pShape, tStrToUtf8(pNode->GetName()).c_str(), iteSkelShape->second.SkeletonInstance);
|
uint instance = view->addMesh (pShape, MCharStrToUtf8(pNode->GetName()), iteSkelShape->second.SkeletonInstance);
|
||||||
|
|
||||||
// Add tracks
|
// Add tracks
|
||||||
CAnimation *anim=new CAnimation;
|
CAnimation *anim=new CAnimation;
|
||||||
|
|
|
@ -70,7 +70,7 @@ INT_PTR CALLBACK CalculatingDialogCallback (
|
||||||
string all;
|
string all;
|
||||||
for (uint32 i = 0; i < 14; ++i)
|
for (uint32 i = 0; i < 14; ++i)
|
||||||
all += pClass->sInfoProgress[i] + "\n";
|
all += pClass->sInfoProgress[i] + "\n";
|
||||||
SendMessage (GetDlgItem (hwndDlg, IDC_STATICINFO), WM_SETTEXT, 0, (LPARAM)utf8ToTStr(all));
|
SendMessage (GetDlgItem (hwndDlg, IDC_STATICINFO), WM_SETTEXT, 0, (LPARAM)MaxTStrFromUtf8(all).data());
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
|
@ -14,6 +14,7 @@
|
||||||
// You should have received a copy of the GNU Affero General Public License
|
// You should have received a copy of the GNU Affero General Public License
|
||||||
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
|
||||||
#include "std_afx.h"
|
#include "std_afx.h"
|
||||||
|
|
||||||
|
void nlmax_nel_export_std_afx_dummy() { }
|
||||||
|
|
||||||
|
|
|
@ -73,4 +73,6 @@ namespace std
|
||||||
#include "nel/misc/bsphere.h"
|
#include "nel/misc/bsphere.h"
|
||||||
#include "nel/misc/path.h"
|
#include "nel/misc/path.h"
|
||||||
|
|
||||||
|
#include "../nel_3dsmax_shared/string_common.h"
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -17,3 +17,5 @@
|
||||||
|
|
||||||
#include "stdafx.h"
|
#include "stdafx.h"
|
||||||
|
|
||||||
|
void nlmax_mesh_library_stdafx_dummy() { }
|
||||||
|
|
||||||
|
|
|
@ -128,7 +128,7 @@ void SLightBuild::convertFromMaxLight (INode *node,TimeValue tvTime)
|
||||||
if (maxLight->EvalLightState(tvTime, valid, &ls)!=REF_SUCCEED)
|
if (maxLight->EvalLightState(tvTime, valid, &ls)!=REF_SUCCEED)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
this->Name = tStrToUtf8(node->GetName());
|
this->Name = MCharStrToUtf8(node->GetName());
|
||||||
|
|
||||||
// Retrieve the correct light Group Name
|
// Retrieve the correct light Group Name
|
||||||
this->AnimatedLight = CExportNel::getAnimatedLight (node);
|
this->AnimatedLight = CExportNel::getAnimatedLight (node);
|
||||||
|
@ -295,7 +295,7 @@ void SLightBuild::convertFromMaxLight (INode *node,TimeValue tvTime)
|
||||||
INode *exclNode = exclusionList[i];
|
INode *exclNode = exclusionList[i];
|
||||||
if (exclNode) // Crashfix // FIXME: Why is this NULL?
|
if (exclNode) // Crashfix // FIXME: Why is this NULL?
|
||||||
{
|
{
|
||||||
string tmp = tStrToUtf8(exclNode->GetName());
|
string tmp = MCharStrToUtf8(exclNode->GetName());
|
||||||
this->setExclusion.insert(tmp);
|
this->setExclusion.insert(tmp);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1930,7 +1930,7 @@ void supprLightNoInteractOne( vector<SLightBuild> &vLights, CMesh::CMeshBuild* p
|
||||||
{
|
{
|
||||||
bool bInteract = false;
|
bool bInteract = false;
|
||||||
|
|
||||||
if( vLights[i].setExclusion.find(tStrToUtf8(node.GetName()) ) != vLights[i].setExclusion.end() )
|
if( vLights[i].setExclusion.find(MCharStrToUtf8(node.GetName()) ) != vLights[i].setExclusion.end() )
|
||||||
{
|
{
|
||||||
bInteract = false;
|
bInteract = false;
|
||||||
}
|
}
|
||||||
|
@ -2005,7 +2005,7 @@ void CExportNel::deleteLM(INode& ZeNode)
|
||||||
string sSaveName;
|
string sSaveName;
|
||||||
sSaveName = _Options.sExportLighting;
|
sSaveName = _Options.sExportLighting;
|
||||||
if( sSaveName[sSaveName.size()-1] != '\\' ) sSaveName += "\\";
|
if( sSaveName[sSaveName.size()-1] != '\\' ) sSaveName += "\\";
|
||||||
sSaveName += tStrToUtf8(ZeNode.GetName());
|
sSaveName += MCharStrToUtf8(ZeNode.GetName());
|
||||||
char tmp[32];
|
char tmp[32];
|
||||||
sprintf( tmp, "%d", i );
|
sprintf( tmp, "%d", i );
|
||||||
sSaveName += tmp;
|
sSaveName += tmp;
|
||||||
|
@ -2276,7 +2276,7 @@ bool CExportNel::calculateLM( CMesh::CMeshBuild *pZeMeshBuild, CMeshBase::CMeshB
|
||||||
{
|
{
|
||||||
string thetext;
|
string thetext;
|
||||||
thetext = "Warning ";
|
thetext = "Warning ";
|
||||||
thetext += tStrToUtf8(ZeNode.GetName());
|
thetext += MCharStrToUtf8(ZeNode.GetName());
|
||||||
thetext = "have all faces NOT mapped (UV2)";
|
thetext = "have all faces NOT mapped (UV2)";
|
||||||
if (gOptions.FeedBack != NULL)
|
if (gOptions.FeedBack != NULL)
|
||||||
{
|
{
|
||||||
|
@ -2325,11 +2325,11 @@ bool CExportNel::calculateLM( CMesh::CMeshBuild *pZeMeshBuild, CMeshBase::CMeshB
|
||||||
{
|
{
|
||||||
// Make an error message
|
// Make an error message
|
||||||
string sTmp = "Warning : ";
|
string sTmp = "Warning : ";
|
||||||
sTmp += tStrToUtf8(ZeNode.GetName());
|
sTmp += MCharStrToUtf8(ZeNode.GetName());
|
||||||
sTmp += " has mapping problem";
|
sTmp += " has mapping problem";
|
||||||
|
|
||||||
// Script trace
|
// Script trace
|
||||||
mprintf (utf8ToTStr((sTmp+"\n")));
|
mprintf(_M("%s\n"), MaxTStrFromUtf8(sTmp).data());
|
||||||
|
|
||||||
// Feedback is here ?
|
// Feedback is here ?
|
||||||
if (gOptions.FeedBack != NULL)
|
if (gOptions.FeedBack != NULL)
|
||||||
|
@ -2530,7 +2530,7 @@ bool CExportNel::calculateLM( CMesh::CMeshBuild *pZeMeshBuild, CMeshBase::CMeshB
|
||||||
// Add lightmap information in the lightmap log
|
// Add lightmap information in the lightmap log
|
||||||
COFile outputLog;
|
COFile outputLog;
|
||||||
if (outputLightmapLog)
|
if (outputLightmapLog)
|
||||||
createLightmapLog(outputLog, gOptions.sExportLighting.c_str(), ucstring(projectName).toUtf8(), CStr(ZeNode.GetName()).data());
|
createLightmapLog(outputLog, gOptions.sExportLighting.c_str(), ucstring(projectName).toUtf8().c_str(), CStr(ZeNode.GetName()).data());
|
||||||
|
|
||||||
// Update UV coords to Texture space
|
// Update UV coords to Texture space
|
||||||
PutFaceUV1InTextureCoord( LightMap.w, LightMap.h, AllFaces.begin(), AllFaces.size() );
|
PutFaceUV1InTextureCoord( LightMap.w, LightMap.h, AllFaces.begin(), AllFaces.size() );
|
||||||
|
@ -2559,7 +2559,7 @@ bool CExportNel::calculateLM( CMesh::CMeshBuild *pZeMeshBuild, CMeshBase::CMeshB
|
||||||
{
|
{
|
||||||
CTextureFile *pLightMap = new CTextureFile();
|
CTextureFile *pLightMap = new CTextureFile();
|
||||||
//string sSaveName = AllMeshBuilds[nNode].second->GetName();
|
//string sSaveName = AllMeshBuilds[nNode].second->GetName();
|
||||||
string sSaveName = tStrToUtf8(ZeNode.GetName());
|
string sSaveName = MCharStrToUtf8(ZeNode.GetName());
|
||||||
char tmp[32];
|
char tmp[32];
|
||||||
sSaveName += "_";
|
sSaveName += "_";
|
||||||
sprintf( tmp, "%d", nLightMapNb );
|
sprintf( tmp, "%d", nLightMapNb );
|
||||||
|
@ -2633,7 +2633,7 @@ bool CExportNel::calculateLM( CMesh::CMeshBuild *pZeMeshBuild, CMeshBase::CMeshB
|
||||||
if (gOptions.FeedBack != NULL)
|
if (gOptions.FeedBack != NULL)
|
||||||
{
|
{
|
||||||
std::string message = toString("Can't write the file %s : %s", sSaveName.c_str(), e.what());
|
std::string message = toString("Can't write the file %s : %s", sSaveName.c_str(), e.what());
|
||||||
mprintf (utf8ToTStr(message));
|
mprintf(_M("%s\n"), MaxTStrFromUtf8(message).data());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -113,7 +113,7 @@ void CRTWorld::build (vector<SLightBuild> &AllLights, CVector &trans, bool bExcl
|
||||||
pLAP->create( 64 ); // width of each grid in number of square
|
pLAP->create( 64 ); // width of each grid in number of square
|
||||||
for( j = 0; j < vMB.size(); ++j )
|
for( j = 0; j < vMB.size(); ++j )
|
||||||
{
|
{
|
||||||
if (rLight.setExclusion.find (tStrToUtf8(vINode[j]->GetName())) != rLight.setExclusion.end())
|
if (rLight.setExclusion.find (MCharStrToUtf8(vINode[j]->GetName())) != rLight.setExclusion.end())
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
for (k = 0; k < vMB[j]->Faces.size(); ++k)
|
for (k = 0; k < vMB[j]->Faces.size(); ++k)
|
||||||
|
@ -142,7 +142,7 @@ void CRTWorld::build (vector<SLightBuild> &AllLights, CVector &trans, bool bExcl
|
||||||
pLAD->create (64, rLight.rDirRadius/64.0f, rLight.Direction);
|
pLAD->create (64, rLight.rDirRadius/64.0f, rLight.Direction);
|
||||||
for( j = 0; j < vMB.size(); ++j )
|
for( j = 0; j < vMB.size(); ++j )
|
||||||
{
|
{
|
||||||
if (rLight.setExclusion.find (tStrToUtf8(vINode[j]->GetName())) != rLight.setExclusion.end())
|
if (rLight.setExclusion.find (MCharStrToUtf8(vINode[j]->GetName())) != rLight.setExclusion.end())
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
for (k = 0; k < vMB[j]->Faces.size(); ++k)
|
for (k = 0; k < vMB[j]->Faces.size(); ++k)
|
||||||
|
|
|
@ -189,7 +189,7 @@ void CExportNel::addSSSTrack(CSSSBuild &ssBuilder, INode& node)
|
||||||
if(note)
|
if(note)
|
||||||
{
|
{
|
||||||
CSSSBuild::CKey ks;
|
CSSSBuild::CKey ks;
|
||||||
ks.Value = note->note.ToUTF8();
|
ks.Value = MaxTStrToUtf8(note->note);
|
||||||
ks.Time= CExportNel::convertTime (note->time);
|
ks.Time= CExportNel::convertTime (note->time);
|
||||||
bs.Track.push_back(ks);
|
bs.Track.push_back(ks);
|
||||||
}
|
}
|
||||||
|
@ -228,7 +228,7 @@ NL3D::CTrackKeyFramerConstString* CExportNel::buildFromNoteTrack(INode& node)
|
||||||
{
|
{
|
||||||
firstDate = CExportNel::convertTime (note->time);
|
firstDate = CExportNel::convertTime (note->time);
|
||||||
}
|
}
|
||||||
ks.Value = note->note.ToUTF8();
|
ks.Value = MaxTStrToUtf8(note->note);
|
||||||
lastDate = CExportNel::convertTime (note->time);
|
lastDate = CExportNel::convertTime (note->time);
|
||||||
st->addKey(ks , lastDate );
|
st->addKey(ks , lastDate );
|
||||||
|
|
||||||
|
@ -609,7 +609,7 @@ void CExportNel::addMorphTracks (NL3D::CAnimation& animation, INode& node, const
|
||||||
if (pNode == NULL)
|
if (pNode == NULL)
|
||||||
continue;
|
continue;
|
||||||
std::string name = parentName;
|
std::string name = parentName;
|
||||||
name += tStrToUtf8(pNode->GetName());
|
name += MCharStrToUtf8(pNode->GetName());
|
||||||
name += "MorphFactor";
|
name += "MorphFactor";
|
||||||
|
|
||||||
IParamBlock *pb = (IParamBlock*)(pMorphMod->SubAnim (i+1));
|
IParamBlock *pb = (IParamBlock*)(pMorphMod->SubAnim (i+1));
|
||||||
|
|
|
@ -73,7 +73,7 @@ CCollisionMeshBuild* CExportNel::createCollisionMeshBuild(std::vector<INode *> &
|
||||||
{
|
{
|
||||||
// get the mesh name
|
// get the mesh name
|
||||||
uint meshId = rootMeshNames.size();
|
uint meshId = rootMeshNames.size();
|
||||||
rootMeshNames.push_back(tStrToUtf8(nodes[node]->GetName()));
|
rootMeshNames.push_back(MCharStrToUtf8(nodes[node]->GetName()));
|
||||||
bool collision = getScriptAppData (nodes[node], NEL3D_APPDATA_COLLISION, 0) != 0;
|
bool collision = getScriptAppData (nodes[node], NEL3D_APPDATA_COLLISION, 0) != 0;
|
||||||
bool exterior = getScriptAppData (nodes[node], NEL3D_APPDATA_COLLISION_EXTERIOR, 0) != 0;
|
bool exterior = getScriptAppData (nodes[node], NEL3D_APPDATA_COLLISION_EXTERIOR, 0) != 0;
|
||||||
|
|
||||||
|
|
|
@ -768,7 +768,7 @@ void CExportNel::buildAMaterial (NL3D::CMaterial& material, CMaxMaterialInfo& ma
|
||||||
|
|
||||||
// Set material name
|
// Set material name
|
||||||
TSTR name=mtl.GetName();
|
TSTR name=mtl.GetName();
|
||||||
materialInfo.MaterialName = name.ToUTF8();
|
materialInfo.MaterialName = MaxTStrToUtf8(name);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -1120,7 +1120,7 @@ void CExportNel::buildAMaterial (NL3D::CMaterial& material, CMaxMaterialInfo& ma
|
||||||
|
|
||||||
// Set material name
|
// Set material name
|
||||||
TSTR name=mtl.GetName();
|
TSTR name=mtl.GetName();
|
||||||
materialInfo.MaterialName = name.ToUTF8();
|
materialInfo.MaterialName = MaxTStrToUtf8(name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1255,7 +1255,7 @@ ITexture* CExportNel::buildATexture (Texmap& texmap, CMaterialDesc &remap3dsTexC
|
||||||
else // standard texture
|
else // standard texture
|
||||||
{
|
{
|
||||||
srcTex = new CTextureFile;
|
srcTex = new CTextureFile;
|
||||||
std::string mapName = tStrToUtf8(pBitmap->GetMapName());
|
std::string mapName = MCharStrToUtf8(pBitmap->GetMapName());
|
||||||
static_cast<CTextureFile *>(srcTex)->setFileName (ConvertTexFileName(mapName, _AbsolutePath));
|
static_cast<CTextureFile *>(srcTex)->setFileName (ConvertTexFileName(mapName, _AbsolutePath));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -266,7 +266,7 @@ NL3D::IShape *CExportNel::buildShape (INode& node, TimeValue time, const TInodeP
|
||||||
std::string nodeName=getScriptAppData (&node, NEL3D_APPDATA_LOD_NAME+lod, "");
|
std::string nodeName=getScriptAppData (&node, NEL3D_APPDATA_LOD_NAME+lod, "");
|
||||||
|
|
||||||
// Get the node
|
// Get the node
|
||||||
INode *lodNode=_Ip->GetINodeByName(utf8ToTStr(nodeName));
|
INode *lodNode=_Ip->GetINodeByName(MaxTStrFromUtf8(nodeName).data());
|
||||||
if (lodNode)
|
if (lodNode)
|
||||||
{
|
{
|
||||||
// Index of the lod in the build structure
|
// Index of the lod in the build structure
|
||||||
|
@ -611,7 +611,7 @@ void CExportNel::buildBaseMeshInterface (NL3D::CMeshBase::CMeshBaseBuild& buildM
|
||||||
continue;
|
continue;
|
||||||
// get factor here !
|
// get factor here !
|
||||||
buildMesh.DefaultBSFactors.push_back(0.0f);
|
buildMesh.DefaultBSFactors.push_back(0.0f);
|
||||||
std::string sTemp = tStrToUtf8(pNode->GetName());
|
std::string sTemp = MCharStrToUtf8(pNode->GetName());
|
||||||
buildMesh.BSNames.push_back (sTemp);
|
buildMesh.BSNames.push_back (sTemp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1045,7 +1045,7 @@ void CExportNel::buildMeshInterface (TriObject &tri, CMesh::CMeshBuild& buildMes
|
||||||
if (!vpColorVertex)
|
if (!vpColorVertex)
|
||||||
{
|
{
|
||||||
uint8 alphaBackup = pCorner->Color.A;
|
uint8 alphaBackup = pCorner->Color.A;
|
||||||
pCorner->Color.modulateFromColor (pCorner->Color, isLighted ? diffuse : color);
|
pCorner->Color.modulateFromColor(pCorner->Color, isLighted ? diffuse : color);
|
||||||
pCorner->Color.A = alphaBackup;
|
pCorner->Color.A = alphaBackup;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1058,18 +1058,18 @@ void CExportNel::buildMeshInterface (TriObject &tri, CMesh::CMeshBuild& buildMes
|
||||||
if (skined)
|
if (skined)
|
||||||
{
|
{
|
||||||
// Add skinning information to the buildMesh struct
|
// Add skinning information to the buildMesh struct
|
||||||
uint error=buildSkinning (buildMesh, *nodeMap, node);
|
uint error = buildSkinning (buildMesh, *nodeMap, node);
|
||||||
|
|
||||||
// Error code ?
|
// Error code ?
|
||||||
if (error!=NoError)
|
if (error!=NoError)
|
||||||
{
|
{
|
||||||
std::string msg = toString("%s skin: %s", getName (node).c_str(), ErrorMessage[error]);
|
std::string msg = toString("%s skin: %s", getName(node).c_str(), ErrorMessage[error]);
|
||||||
MessageBoxW (NULL, utf8ToTStr(msg), L"NeL export", MB_OK|MB_ICONEXCLAMATION);
|
MessageBox(NULL, MaxTStrFromUtf8(msg).data(), _T("NeL export"), MB_OK | MB_ICONEXCLAMATION);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Active skinning
|
// Active skinning
|
||||||
buildMesh.VertexFlags|=CVertexBuffer::PaletteSkinFlag;
|
buildMesh.VertexFlags |= CVertexBuffer::PaletteSkinFlag;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1082,7 +1082,7 @@ void CExportNel::buildMeshInterface (TriObject &tri, CMesh::CMeshBuild& buildMes
|
||||||
buildMesh.InterfaceLinks.clear();
|
buildMesh.InterfaceLinks.clear();
|
||||||
|
|
||||||
// don't do it for morph target (unusefull and slow)
|
// don't do it for morph target (unusefull and slow)
|
||||||
if(!isMorphTarget)
|
if (!isMorphTarget)
|
||||||
{
|
{
|
||||||
// Apply normal correction if there is a mesh interface
|
// Apply normal correction if there is a mesh interface
|
||||||
if (skined)
|
if (skined)
|
||||||
|
@ -1118,41 +1118,41 @@ void CExportNel::buildMeshInterface (TriObject &tri, CMesh::CMeshBuild& buildMes
|
||||||
else // standard case
|
else // standard case
|
||||||
{
|
{
|
||||||
// What Vertexprogram is used??
|
// What Vertexprogram is used??
|
||||||
int vpId= CExportNel::getScriptAppData (&node, NEL3D_APPDATA_VERTEXPROGRAM_ID, 0);
|
int vpId = CExportNel::getScriptAppData (&node, NEL3D_APPDATA_VERTEXPROGRAM_ID, 0);
|
||||||
// Setup vertexProgram
|
// Setup vertexProgram
|
||||||
switch(vpId)
|
switch(vpId)
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
buildMesh.MeshVertexProgram= NULL;
|
buildMesh.MeshVertexProgram = NULL;
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
{
|
{
|
||||||
// smartPtr set it.
|
// smartPtr set it.
|
||||||
buildMesh.MeshVertexProgram= new CMeshVPWindTree;
|
buildMesh.MeshVertexProgram = new CMeshVPWindTree;
|
||||||
CMeshVPWindTree &vpwt= *(CMeshVPWindTree*)(IMeshVertexProgram*)buildMesh.MeshVertexProgram;
|
CMeshVPWindTree &vpwt = *(CMeshVPWindTree*)(IMeshVertexProgram*)buildMesh.MeshVertexProgram;
|
||||||
|
|
||||||
// Read the AppData
|
// Read the AppData
|
||||||
CVPWindTreeAppData apd;
|
CVPWindTreeAppData apd;
|
||||||
getScriptAppDataVPWT (&node, apd);
|
getScriptAppDataVPWT(&node, apd);
|
||||||
|
|
||||||
// transform it to the vpwt.
|
// transform it to the vpwt.
|
||||||
nlassert(CVPWindTreeAppData::HrcDepth == CMeshVPWindTree::HrcDepth);
|
nlassert(CVPWindTreeAppData::HrcDepth == CMeshVPWindTree::HrcDepth);
|
||||||
vpwt.SpecularLighting= apd.SpecularLighting == BST_CHECKED;
|
vpwt.SpecularLighting= apd.SpecularLighting == BST_CHECKED;
|
||||||
// read all levels.
|
// read all levels.
|
||||||
float nticks= CVPWindTreeAppData::NumTicks;
|
float nticks = CVPWindTreeAppData::NumTicks;
|
||||||
for(uint i=0; i<CVPWindTreeAppData::HrcDepth;i++)
|
for (uint i = 0; i < CVPWindTreeAppData::HrcDepth; i++)
|
||||||
{
|
{
|
||||||
float scale;
|
float scale;
|
||||||
// read frequency
|
// read frequency
|
||||||
scale= apd.FreqScale;
|
scale = apd.FreqScale;
|
||||||
vpwt.Frequency[i]= float(apd.Frequency[i])/nticks * scale;
|
vpwt.Frequency[i] = float(apd.Frequency[i])/nticks * scale;
|
||||||
vpwt.FrequencyWindFactor[i]= float(apd.FrequencyWindFactor[i])/nticks * scale;
|
vpwt.FrequencyWindFactor[i] = float(apd.FrequencyWindFactor[i])/nticks * scale;
|
||||||
// read Distance
|
// read Distance
|
||||||
scale= apd.DistScale;
|
scale= apd.DistScale;
|
||||||
vpwt.PowerXY[i]= float(apd.DistXY[i])/nticks * scale;
|
vpwt.PowerXY[i] = float(apd.DistXY[i])/nticks * scale;
|
||||||
vpwt.PowerZ[i]= float(apd.DistZ[i])/nticks * scale;
|
vpwt.PowerZ[i] = float(apd.DistZ[i])/nticks * scale;
|
||||||
// read Bias. expand to -2,2
|
// read Bias. expand to -2,2
|
||||||
vpwt.Bias[i]= float(apd.Bias[i])/nticks*4 -2;
|
vpwt.Bias[i] = float(apd.Bias[i])/nticks*4 -2;
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
@ -1492,7 +1492,7 @@ void CExportNel::buildMeshMorph (CMesh::CMeshBuild& buildMesh, INode &node, Time
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
bs.Name = tStrToUtf8(pNode->GetName());
|
bs.Name = MCharStrToUtf8(pNode->GetName());
|
||||||
|
|
||||||
bool bIsDeltaPos = false;
|
bool bIsDeltaPos = false;
|
||||||
bs.deltaPos.resize (nNbVertVB, CVector::Null);
|
bs.deltaPos.resize (nNbVertVB, CVector::Null);
|
||||||
|
|
|
@ -316,7 +316,7 @@ static void AddNodeToQuadGrid(const NLMISC::CAABBox &delimiter, TNodeFaceQG &des
|
||||||
{
|
{
|
||||||
if (delimiter.intersect(nodeBBox))
|
if (delimiter.intersect(nodeBBox))
|
||||||
{
|
{
|
||||||
nldebug("Adding %s to mesh interface quad grid", tStrToUtf8(node.GetName()).c_str());
|
nldebug("Adding %s to mesh interface quad grid", MCharStrToUtf8(node.GetName()).c_str());
|
||||||
// add this node tris
|
// add this node tris
|
||||||
ObjectState os = node.EvalWorldState(time);
|
ObjectState os = node.EvalWorldState(time);
|
||||||
Object *obj = os.obj;
|
Object *obj = os.obj;
|
||||||
|
@ -578,10 +578,10 @@ static bool BuildMeshInterfaces(const char *cMaxFileName, std::vector<CMeshInter
|
||||||
for (i=0; i<size; i++)
|
for (i=0; i<size; i++)
|
||||||
{
|
{
|
||||||
// Rename the material
|
// Rename the material
|
||||||
string newName = "NelAutoMergeRenamedTmp" + toString (i);
|
string newName = "NelAutoMergeRenamedTmp" + toString(i);
|
||||||
string originalName = (*lib)[i]->GetName ().ToUTF8();
|
string originalName = MaxTStrToUtf8((*lib)[i]->GetName());
|
||||||
renameMap.insert (map<string, string>::value_type (newName, originalName));
|
renameMap.insert (map<string, string>::value_type (newName, originalName));
|
||||||
(*lib)[i]->SetName (utf8ToTStr(newName));
|
(*lib)[i]->SetName (MaxTStrFromUtf8(newName));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Merge the interface project
|
// Merge the interface project
|
||||||
|
@ -604,7 +604,7 @@ static bool BuildMeshInterfaces(const char *cMaxFileName, std::vector<CMeshInter
|
||||||
for (i=0; i<size; i++)
|
for (i=0; i<size; i++)
|
||||||
{
|
{
|
||||||
// Find the name in the map ?
|
// Find the name in the map ?
|
||||||
string key = (*lib)[i]->GetName ().ToUTF8();
|
string key = MaxTStrToUtf8((*lib)[i]->GetName());
|
||||||
map<string, string>::iterator ite = renameMap.find (key);
|
map<string, string>::iterator ite = renameMap.find (key);
|
||||||
|
|
||||||
// Not found ? This is a merged material
|
// Not found ? This is a merged material
|
||||||
|
@ -612,9 +612,9 @@ static bool BuildMeshInterfaces(const char *cMaxFileName, std::vector<CMeshInter
|
||||||
{
|
{
|
||||||
// Rename the material
|
// Rename the material
|
||||||
string newName = "NelAutoMergeRenamed" + toString (i);
|
string newName = "NelAutoMergeRenamed" + toString (i);
|
||||||
string originalName = (*lib)[i]->GetName ().ToUTF8();
|
string originalName = MaxTStrToUtf8((*lib)[i]->GetName());
|
||||||
renameMap.insert (map<string, string>::value_type (newName, originalName));
|
renameMap.insert (map<string, string>::value_type (newName, originalName));
|
||||||
(*lib)[i]->SetName (utf8ToTStr(newName));
|
(*lib)[i]->SetName (MaxTStrFromUtf8(newName));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -622,12 +622,12 @@ static bool BuildMeshInterfaces(const char *cMaxFileName, std::vector<CMeshInter
|
||||||
for (i=0; i<size; i++)
|
for (i=0; i<size; i++)
|
||||||
{
|
{
|
||||||
// Find the name
|
// Find the name
|
||||||
string key = (*lib)[i]->GetName ().ToUTF8();
|
string key = MaxTStrToUtf8((*lib)[i]->GetName());
|
||||||
map<string, string>::iterator ite = renameMap.find (key);
|
map<string, string>::iterator ite = renameMap.find (key);
|
||||||
if (ite != renameMap.end ())
|
if (ite != renameMap.end ())
|
||||||
{
|
{
|
||||||
// Rename the material with its original name
|
// Rename the material with its original name
|
||||||
(*lib)[i]->SetName (utf8ToTStr(ite->second));
|
(*lib)[i]->SetName (MaxTStrFromUtf8(ite->second));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -223,7 +223,7 @@ Animatable* CExportNel::getSubAnimByName (Animatable& node, const char* sName)
|
||||||
TSTR sSubName=node.SubAnimName(nSub);
|
TSTR sSubName=node.SubAnimName(nSub);
|
||||||
|
|
||||||
// Good name?
|
// Good name?
|
||||||
if (strcmp (sSubName.ToUTF8(), sName)==0)
|
if (strcmp (MaxTStrToUtf8(sSubName).c_str(), sName)==0)
|
||||||
{
|
{
|
||||||
// ok, return this subanim
|
// ok, return this subanim
|
||||||
return node.SubAnim(nSub);
|
return node.SubAnim(nSub);
|
||||||
|
@ -265,7 +265,7 @@ Control* CExportNel::getControlerByName (Animatable& node, const char* sName)
|
||||||
ParamDef& paramDef=param->GetParamDef(id);
|
ParamDef& paramDef=param->GetParamDef(id);
|
||||||
|
|
||||||
// Good name?
|
// Good name?
|
||||||
if (strcmp (tStrToUtf8(paramDef.int_name).c_str(), sName)==0)
|
if (strcmp (MCharStrToUtf8(paramDef.int_name).c_str(), sName)==0)
|
||||||
{
|
{
|
||||||
// ok, return this subanim
|
// ok, return this subanim
|
||||||
#if MAX_VERSION_MAJOR >= 14
|
#if MAX_VERSION_MAJOR >= 14
|
||||||
|
@ -288,7 +288,7 @@ Control* CExportNel::getControlerByName (Animatable& node, const char* sName)
|
||||||
{
|
{
|
||||||
// Sub anim name
|
// Sub anim name
|
||||||
TSTR name=node.SubAnimName (s);
|
TSTR name=node.SubAnimName (s);
|
||||||
if (strcmp (name.ToUTF8(), sName)==0)
|
if (strcmp (MaxTStrToUtf8(name).c_str(), sName)==0)
|
||||||
{
|
{
|
||||||
// Get the controller pointer of this sub anim
|
// Get the controller pointer of this sub anim
|
||||||
Control* c=GetControlInterface (node.SubAnim(s));
|
Control* c=GetControlInterface (node.SubAnim(s));
|
||||||
|
@ -332,7 +332,7 @@ bool getValueByNameUsingParamBlock2Internal (Animatable& node, const char* sName
|
||||||
ParamDef& paramDef=param->GetParamDef(id);
|
ParamDef& paramDef=param->GetParamDef(id);
|
||||||
|
|
||||||
// Good name?
|
// Good name?
|
||||||
if (strcmp (tStrToUtf8(paramDef.int_name).c_str(), sName)==0)
|
if (strcmp (MCharStrToUtf8(paramDef.int_name).c_str(), sName)==0)
|
||||||
{
|
{
|
||||||
// Check this value is good type
|
// Check this value is good type
|
||||||
ParamType2 paramType = param->GetParameterType(id);
|
ParamType2 paramType = param->GetParameterType(id);
|
||||||
|
@ -372,7 +372,7 @@ bool getValueByNameUsingParamBlock2Internal (Animatable& node, const char* sName
|
||||||
break;
|
break;
|
||||||
case TYPE_FILENAME:
|
case TYPE_FILENAME:
|
||||||
case TYPE_STRING:
|
case TYPE_STRING:
|
||||||
*(std::string*)pValue = tStrToUtf8(param->GetStr (id, tvTime));
|
*(std::string*)pValue = MCharStrToUtf8(param->GetStr (id, tvTime));
|
||||||
bRes = TRUE;
|
bRes = TRUE;
|
||||||
break;
|
break;
|
||||||
case TYPE_FILENAME_TAB:
|
case TYPE_FILENAME_TAB:
|
||||||
|
@ -382,7 +382,7 @@ bool getValueByNameUsingParamBlock2Internal (Animatable& node, const char* sName
|
||||||
uint total = param->Count (id);
|
uint total = param->Count (id);
|
||||||
rTab.resize(total);
|
rTab.resize(total);
|
||||||
for( uint i = 0; i < total; ++i )
|
for( uint i = 0; i < total; ++i )
|
||||||
rTab[i] = tStrToUtf8(param->GetStr (id, tvTime, i));
|
rTab[i] = MCharStrToUtf8(param->GetStr (id, tvTime, i));
|
||||||
bRes = TRUE;
|
bRes = TRUE;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -502,7 +502,7 @@ std::string CExportNel::getName (MtlBase& mtl)
|
||||||
// Return its name
|
// Return its name
|
||||||
TSTR name;
|
TSTR name;
|
||||||
name=mtl.GetName();
|
name=mtl.GetName();
|
||||||
return std::string((const char*)name.ToUTF8());
|
return MaxTStrToUtf8(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
// --------------------------------------------------
|
// --------------------------------------------------
|
||||||
|
@ -511,8 +511,8 @@ std::string CExportNel::getName (MtlBase& mtl)
|
||||||
std::string CExportNel::getName(INode& node)
|
std::string CExportNel::getName(INode& node)
|
||||||
{
|
{
|
||||||
// Return its name
|
// Return its name
|
||||||
const MCHAR* name = node.GetName();
|
const MCHAR *name = node.GetName();
|
||||||
return tStrToUtf8(name);
|
return MCharStrToUtf8(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
// --------------------------------------------------
|
// --------------------------------------------------
|
||||||
|
@ -549,7 +549,7 @@ std::string CExportNel::getNelObjectName (INode& node)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return tStrToUtf8(node.GetName());
|
return MCharStrToUtf8(node.GetName());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -564,23 +564,23 @@ std::string CExportNel::getNelObjectName (INode& node)
|
||||||
if (_tcslen((const TCHAR *) ad->data) != 0)
|
if (_tcslen((const TCHAR *) ad->data) != 0)
|
||||||
{
|
{
|
||||||
// get file name only
|
// get file name only
|
||||||
return NLMISC::CFile::getFilename(tStrToUtf8((const TCHAR*)ad->data));
|
return NLMISC::CFile::getFilename(MCharStrToUtf8((const MCHAR*)ad->data));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return tStrToUtf8(node.GetName());
|
return MCharStrToUtf8(node.GetName());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Extract the node name
|
// Extract the node name
|
||||||
return tStrToUtf8(node.GetName());
|
return MCharStrToUtf8(node.GetName());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Extract the node name
|
// Extract the node name
|
||||||
return tStrToUtf8(node.GetName());
|
return MCharStrToUtf8(node.GetName());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -764,28 +764,26 @@ void CExportNel::outputErrorMessage(const std::string &message)
|
||||||
{
|
{
|
||||||
if (_ErrorInDialog)
|
if (_ErrorInDialog)
|
||||||
{
|
{
|
||||||
MessageBoxW (_Ip->GetMAXHWnd(), utf8ToTStr(message), utf8ToTStr(_ErrorTitle), MB_OK|MB_ICONEXCLAMATION);
|
MessageBoxW(_Ip->GetMAXHWnd(), utf8ToWide(message), utf8ToWide(_ErrorTitle), MB_OK|MB_ICONEXCLAMATION);
|
||||||
}
|
}
|
||||||
mprintf (utf8ToTStr(message));
|
mprintf(_M("%s\n"), MaxTStrFromUtf8(message).data());
|
||||||
mprintf (_T("\n"));
|
|
||||||
|
|
||||||
nlwarning ("Error in max file %s : ", _Ip->GetCurFilePath());
|
nlwarning("Error in max file %s : ", _Ip->GetCurFilePath());
|
||||||
nlwarning (message.c_str());
|
nlwarning("%s", message.c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
// --------------------------------------------------
|
// --------------------------------------------------
|
||||||
|
|
||||||
void CExportNel::outputWarningMessage (const std::string &message)
|
void CExportNel::outputWarningMessage(const std::string &message)
|
||||||
{
|
{
|
||||||
if (_ErrorInDialog)
|
if (_ErrorInDialog)
|
||||||
{
|
{
|
||||||
MessageBox (_Ip->GetMAXHWnd(), utf8ToTStr(message), utf8ToTStr(_ErrorTitle), MB_OK|MB_ICONEXCLAMATION);
|
MessageBoxW(_Ip->GetMAXHWnd(), utf8ToWide(message), utf8ToWide(_ErrorTitle), MB_OK|MB_ICONEXCLAMATION);
|
||||||
}
|
}
|
||||||
mprintf (utf8ToTStr(message));
|
mprintf(_M("%s\n"), MaxTStrFromUtf8(message).data());
|
||||||
mprintf (_M("\n"));
|
|
||||||
|
|
||||||
nlwarning ("Warning in max file %s : ", _Ip->GetCurFilePath());
|
nlwarning("Warning in max file %s : ", _Ip->GetCurFilePath());
|
||||||
nlwarning (message.c_str());
|
nlwarning("%s", message.c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
// --------------------------------------------------
|
// --------------------------------------------------
|
||||||
|
@ -819,7 +817,7 @@ void CExportNel::addChildLodNode (std::set<INode*> &lodListToExclude, INode *cur
|
||||||
if (lodName != "")
|
if (lodName != "")
|
||||||
{
|
{
|
||||||
// Get the lod by name
|
// Get the lod by name
|
||||||
INode *lodNode = _Ip->GetINodeByName (utf8ToTStr(lodName));
|
INode *lodNode = _Ip->GetINodeByName(MaxTStrFromUtf8(lodName));
|
||||||
if (lodNode)
|
if (lodNode)
|
||||||
{
|
{
|
||||||
// Insert it in the set
|
// Insert it in the set
|
||||||
|
@ -850,7 +848,7 @@ void CExportNel::addParentLodNode (INode &child, std::set<INode*> &lodListToExcl
|
||||||
if (lodName != "")
|
if (lodName != "")
|
||||||
{
|
{
|
||||||
// Get the lod by name
|
// Get the lod by name
|
||||||
INode *lodNode = _Ip->GetINodeByName (utf8ToTStr(lodName));
|
INode *lodNode = _Ip->GetINodeByName(MaxTStrFromUtf8(lodName));
|
||||||
if (lodNode == &child)
|
if (lodNode == &child)
|
||||||
{
|
{
|
||||||
// Insert it in the set
|
// Insert it in the set
|
||||||
|
@ -1111,7 +1109,7 @@ static void restoreDecimalSeparator()
|
||||||
float toFloatMax(const TCHAR *src)
|
float toFloatMax(const TCHAR *src)
|
||||||
{
|
{
|
||||||
float result = 0.f;
|
float result = 0.f;
|
||||||
if (toFloatMax(tStrToUtf8(src), result)) return result;
|
if (toFloatMax(MCharStrToUtf8(src), result)) return result;
|
||||||
return 0.f;
|
return 0.f;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1124,7 +1122,7 @@ float toFloatMax(const std::string &src)
|
||||||
|
|
||||||
bool toFloatMax(const TCHAR *src, float &dest)
|
bool toFloatMax(const TCHAR *src, float &dest)
|
||||||
{
|
{
|
||||||
return toFloatMax(tStrToUtf8(src), dest);
|
return toFloatMax(MCharStrToUtf8(src), dest);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool toFloatMax(const std::string &src, float &dest)
|
bool toFloatMax(const std::string &src, float &dest)
|
||||||
|
|
|
@ -51,7 +51,7 @@ IShape* CExportNel::buildParticleSystem(INode& node, TimeValue time)
|
||||||
iF.serial(ss);
|
iF.serial(ss);
|
||||||
if (!dynamic_cast<CParticleSystemShape *>(ss.getShapePointer()))
|
if (!dynamic_cast<CParticleSystemShape *>(ss.getShapePointer()))
|
||||||
{
|
{
|
||||||
mprintf(_T("Error : Object shape %s isn't a particle system"), utf8ToTStr(shapeName));
|
mprintf(_M("Error : Object shape %s isn't a particle system\n"), MaxTStrFromUtf8(shapeName).data());
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -78,7 +78,7 @@ IShape* CExportNel::buildParticleSystem(INode& node, TimeValue time)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
mprintf(_T("Error : Can't find %s while exporting a particle system \n"), utf8ToTStr(shapeName));
|
mprintf(_M("Error : Can't find %s while exporting a particle system\n"), MaxTStrFromUtf8(shapeName).data());
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -62,7 +62,7 @@ void CRadialVertices::init (INode *node, Mesh *mesh, TimeValue time, Interface &
|
||||||
_SmoothingGroupMask |= (1<<app);
|
_SmoothingGroupMask |= (1<<app);
|
||||||
|
|
||||||
// Get the node by name
|
// Get the node by name
|
||||||
INode *pivotNode = ip.GetINodeByName(utf8ToTStr(pivotName));
|
INode *pivotNode = ip.GetINodeByName(MaxTStrFromUtf8(pivotName));
|
||||||
if (pivotNode)
|
if (pivotNode)
|
||||||
{
|
{
|
||||||
// Get the world Pivot point
|
// Get the world Pivot point
|
||||||
|
|
|
@ -93,7 +93,7 @@ CInstanceGroup* CExportNel::buildInstanceGroup(const vector<INode*>& vectNode, v
|
||||||
resultInstanceNode[nNumIG] = pNode;
|
resultInstanceNode[nNumIG] = pNode;
|
||||||
if (aIGArray[nNumIG].InstanceName == "") // no instance name was set, takes the node name instead
|
if (aIGArray[nNumIG].InstanceName == "") // no instance name was set, takes the node name instead
|
||||||
{
|
{
|
||||||
aIGArray[nNumIG].InstanceName = tStrToUtf8(pNode->GetName());
|
aIGArray[nNumIG].InstanceName = MCharStrToUtf8(pNode->GetName());
|
||||||
}
|
}
|
||||||
|
|
||||||
// Visible? always true, but if special flag for camera collision
|
// Visible? always true, but if special flag for camera collision
|
||||||
|
@ -236,7 +236,7 @@ CInstanceGroup* CExportNel::buildInstanceGroup(const vector<INode*>& vectNode, v
|
||||||
pMB->Vertices[pMB->Faces[j].Corner[2].Vertex]) )
|
pMB->Vertices[pMB->Faces[j].Corner[2].Vertex]) )
|
||||||
{
|
{
|
||||||
// ERROR : The volume is not convex !!!
|
// ERROR : The volume is not convex !!!
|
||||||
nlwarning("ERROR: The cluster %s is not convex.", tStrToUtf8(vectNode[i]->GetName()).c_str());
|
nlwarning("ERROR: The cluster %s is not convex.", MCharStrToUtf8(vectNode[i]->GetName()).c_str());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -244,7 +244,7 @@ CInstanceGroup* CExportNel::buildInstanceGroup(const vector<INode*>& vectNode, v
|
||||||
clusterTemp.VisibleFromFather = bVisibleFromFather;
|
clusterTemp.VisibleFromFather = bVisibleFromFather;
|
||||||
clusterTemp.FatherAudible = bFatherAudible;
|
clusterTemp.FatherAudible = bFatherAudible;
|
||||||
clusterTemp.AudibleFromFather = bAudibleFromFather;
|
clusterTemp.AudibleFromFather = bAudibleFromFather;
|
||||||
clusterTemp.Name = tStrToUtf8(pNode->GetName());
|
clusterTemp.Name = MCharStrToUtf8(pNode->GetName());
|
||||||
|
|
||||||
vClusters.push_back (clusterTemp);
|
vClusters.push_back (clusterTemp);
|
||||||
delete pMB; pMB = NULL;
|
delete pMB; pMB = NULL;
|
||||||
|
@ -333,7 +333,7 @@ CInstanceGroup* CExportNel::buildInstanceGroup(const vector<INode*>& vectNode, v
|
||||||
if (!portalTemp.setPoly (polyv))
|
if (!portalTemp.setPoly (polyv))
|
||||||
{
|
{
|
||||||
// ERROR : Poly not convex, or set of vertices not plane
|
// ERROR : Poly not convex, or set of vertices not plane
|
||||||
nlwarning("ERROR: The portal %s is not convex.", tStrToUtf8(vectNode[i]->GetName()).c_str());
|
nlwarning("ERROR: The portal %s is not convex.", MCharStrToUtf8(vectNode[i]->GetName()).c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (nAccelType&16) // is dynamic portal ?
|
if (nAccelType&16) // is dynamic portal ?
|
||||||
|
@ -342,7 +342,7 @@ CInstanceGroup* CExportNel::buildInstanceGroup(const vector<INode*>& vectNode, v
|
||||||
if (!InstanceName.empty())
|
if (!InstanceName.empty())
|
||||||
portalTemp.setName (InstanceName);
|
portalTemp.setName (InstanceName);
|
||||||
else
|
else
|
||||||
portalTemp.setName (tStrToUtf8(pNode->GetName()));
|
portalTemp.setName (MCharStrToUtf8(pNode->GetName()));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check if portal has 2 cluster
|
// Check if portal has 2 cluster
|
||||||
|
@ -362,7 +362,7 @@ CInstanceGroup* CExportNel::buildInstanceGroup(const vector<INode*>& vectNode, v
|
||||||
if (nNbCluster != 2)
|
if (nNbCluster != 2)
|
||||||
{
|
{
|
||||||
// ERROR
|
// ERROR
|
||||||
nlwarning("ERROR: The portal %s has not 2 clusters but %d", tStrToUtf8(vectNode[i]->GetName()).c_str(), nNbCluster);
|
nlwarning("ERROR: The portal %s has not 2 clusters but %d", MCharStrToUtf8(vectNode[i]->GetName()).c_str(), nNbCluster);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -504,7 +504,7 @@ CInstanceGroup* CExportNel::buildInstanceGroup(const vector<INode*>& vectNode, v
|
||||||
if (!vClusters.empty())
|
if (!vClusters.empty())
|
||||||
if (aIGArray[nNumIG].Clusters.empty())
|
if (aIGArray[nNumIG].Clusters.empty())
|
||||||
{
|
{
|
||||||
nlwarning("ERROR: Object %s is not attached to any cluster\nbut his flag clusterize is set", tStrToUtf8(pNode->GetName()).c_str());
|
nlwarning("ERROR: Object %s is not attached to any cluster\nbut his flag clusterize is set", MCharStrToUtf8(pNode->GetName()).c_str());
|
||||||
}
|
}
|
||||||
// debug purpose : to remove
|
// debug purpose : to remove
|
||||||
|
|
||||||
|
@ -700,7 +700,7 @@ void CExportNel::buildScene (NL3D::CScene &scene, NL3D::CShapeBank &shapeBank, I
|
||||||
if ( (!pNode->IsHidden () || buildHidden) && (pNode->Selected () || !onlySelected) )
|
if ( (!pNode->IsHidden () || buildHidden) && (pNode->Selected () || !onlySelected) )
|
||||||
{
|
{
|
||||||
string sTmp = "Object Name: ";
|
string sTmp = "Object Name: ";
|
||||||
sTmp += tStrToUtf8(pNode->GetName());
|
sTmp += MCharStrToUtf8(pNode->GetName());
|
||||||
if (progress)
|
if (progress)
|
||||||
progress->setLine (0, sTmp);
|
progress->setLine (0, sTmp);
|
||||||
sTmp.clear();
|
sTmp.clear();
|
||||||
|
|
|
@ -36,7 +36,7 @@ bool CExportNel::scriptEvaluate (const char *script, void *out, TNelScriptValueT
|
||||||
four_typed_value_locals(Parser* parser,Value* code,Value* result,StringStream* source);
|
four_typed_value_locals(Parser* parser,Value* code,Value* result,StringStream* source);
|
||||||
|
|
||||||
vl.parser = new Parser;
|
vl.parser = new Parser;
|
||||||
vl.source = new StringStream (utf8ToTStr(script));
|
vl.source = new StringStream(MaxTStrFromUtf8(script));
|
||||||
vl.source->log_to(NULL);
|
vl.source->log_to(NULL);
|
||||||
|
|
||||||
#if MAX_VERSION_MAJOR < 19
|
#if MAX_VERSION_MAJOR < 19
|
||||||
|
|
|
@ -114,7 +114,7 @@ INode *CExportNel::getNELScaleReferenceNode(INode &node)
|
||||||
{
|
{
|
||||||
std::string boneScaleName= getName(node) + boneScaleNameExt;
|
std::string boneScaleName= getName(node) + boneScaleNameExt;
|
||||||
// Get the reference node
|
// Get the reference node
|
||||||
referenceNode= _Ip->GetINodeByName(utf8ToTStr(boneScaleName));
|
referenceNode= _Ip->GetINodeByName(MaxTStrFromUtf8(boneScaleName));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -455,7 +455,7 @@ uint CExportNel::buildSkinning (CMesh::CMeshBuild& buildMesh, const TInodePtrInt
|
||||||
nlassert ((uint)ite->second<buildMesh.BonesNames.size());
|
nlassert ((uint)ite->second<buildMesh.BonesNames.size());
|
||||||
|
|
||||||
// Names
|
// Names
|
||||||
buildMesh.BonesNames[ite->second] = tStrToUtf8(ite->first->GetName());
|
buildMesh.BonesNames[ite->second] = MCharStrToUtf8(ite->first->GetName());
|
||||||
|
|
||||||
// Next
|
// Next
|
||||||
ite++;
|
ite++;
|
||||||
|
@ -1306,7 +1306,7 @@ static sint getBoneSide(INode *bone, std::string &mirrorName)
|
||||||
{
|
{
|
||||||
sint side= 0;
|
sint side= 0;
|
||||||
sint pos;
|
sint pos;
|
||||||
mirrorName = tStrToUtf8(bone->GetName());
|
mirrorName = MCharStrToUtf8(bone->GetName());
|
||||||
|
|
||||||
if((pos= mirrorName.find(" R "))!=std::string::npos)
|
if((pos= mirrorName.find(" R "))!=std::string::npos)
|
||||||
{
|
{
|
||||||
|
@ -1335,7 +1335,7 @@ static INode *getMirrorBone(const std::vector<INode*> &skeletonNodes, INode *bon
|
||||||
// find
|
// find
|
||||||
for(uint i=0;i<skeletonNodes.size();i++)
|
for(uint i=0;i<skeletonNodes.size();i++)
|
||||||
{
|
{
|
||||||
if(mirrorName == tStrToUtf8(skeletonNodes[i]->GetName()))
|
if(mirrorName == MCharStrToUtf8(skeletonNodes[i]->GetName()))
|
||||||
return skeletonNodes[i];
|
return skeletonNodes[i];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -33,14 +33,14 @@
|
||||||
#undef max
|
#undef max
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#include "../nel_3dsmax_shared/string_common.h"
|
||||||
|
|
||||||
#define PO2RPO_CLASS_ID Class_ID(0x43bb65e6, 0x68935530)
|
#define PO2RPO_CLASS_ID Class_ID(0x43bb65e6, 0x68935530)
|
||||||
|
|
||||||
extern TCHAR *GetString(int id);
|
extern TCHAR *GetString(int id);
|
||||||
|
|
||||||
extern HINSTANCE hInstance;
|
extern HINSTANCE hInstance;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class PO2RPO : public Modifier {
|
class PO2RPO : public Modifier {
|
||||||
public:
|
public:
|
||||||
// Parameter block
|
// Parameter block
|
||||||
|
@ -50,7 +50,7 @@ class PO2RPO : public Modifier {
|
||||||
HWND hRollup;
|
HWND hRollup;
|
||||||
|
|
||||||
// From Animatable
|
// From Animatable
|
||||||
const MCHAR *GetObjectName() { return GetString(IDS_CLASS_NAME); }
|
GET_OBJECT_NAME_CONST MCHAR *GetObjectName() { return GetString(IDS_CLASS_NAME); }
|
||||||
|
|
||||||
//From Modifier
|
//From Modifier
|
||||||
//TODO: Add the channels that the modifier needs to perform its modification
|
//TODO: Add the channels that the modifier needs to perform its modification
|
||||||
|
@ -87,7 +87,7 @@ class PO2RPO : public Modifier {
|
||||||
void GetClassName(TSTR& s) {s = GetString(IDS_CLASS_NAME);}
|
void GetClassName(TSTR& s) {s = GetString(IDS_CLASS_NAME);}
|
||||||
|
|
||||||
RefTargetHandle Clone( RemapDir &remap );
|
RefTargetHandle Clone( RemapDir &remap );
|
||||||
RefResult NotifyRefChanged(const Interval& changeInt, RefTargetHandle hTarget, PartID& partID, RefMessage message, BOOL propagate);
|
RefResult NotifyRefChanged(NOTIFY_REF_PARAMS);
|
||||||
|
|
||||||
int NumSubs() { return 0; }
|
int NumSubs() { return 0; }
|
||||||
TSTR SubAnimName(int i) { return GetString(IDS_PARAMS); }
|
TSTR SubAnimName(int i) { return GetString(IDS_PARAMS); }
|
||||||
|
|
|
@ -44,8 +44,8 @@ static ParamBlockDesc2 po2rpo_param_blk ( po2rpo_params, _T("params"), 0, &PO2R
|
||||||
p_default, 0.1f,
|
p_default, 0.1f,
|
||||||
p_range, 0.0f,1000.0f,
|
p_range, 0.0f,1000.0f,
|
||||||
p_ui, TYPE_SPINNER, EDITTYPE_FLOAT, IDC_EDIT, IDC_SPIN, 0.01f,
|
p_ui, TYPE_SPINNER, EDITTYPE_FLOAT, IDC_EDIT, IDC_SPIN, 0.01f,
|
||||||
p_end,
|
nl_p_end,
|
||||||
p_end
|
nl_p_end
|
||||||
);
|
);
|
||||||
|
|
||||||
IObjParam *PO2RPO::ip = NULL;
|
IObjParam *PO2RPO::ip = NULL;
|
||||||
|
@ -142,7 +142,7 @@ INT_PTR CALLBACK DlgProc_Panel(HWND hWnd, UINT message, WPARAM wParam, LPARAM lP
|
||||||
if (versionInfoSize)
|
if (versionInfoSize)
|
||||||
{
|
{
|
||||||
// Alloc the buffer (size in bytes)
|
// Alloc the buffer (size in bytes)
|
||||||
uint8_t *buffer = new uint8_t[versionInfoSize];
|
uint8 *buffer = new uint8[versionInfoSize];
|
||||||
|
|
||||||
// Find the verion resource
|
// Find the verion resource
|
||||||
if (GetFileVersionInfo(moduldeFileName, 0, versionInfoSize, buffer))
|
if (GetFileVersionInfo(moduldeFileName, 0, versionInfoSize, buffer))
|
||||||
|
@ -174,7 +174,7 @@ INT_PTR CALLBACK DlgProc_Panel(HWND hWnd, UINT message, WPARAM wParam, LPARAM lP
|
||||||
SetWindowText (GetDlgItem (hWnd, IDC_VERSION), _T("GetFileVersionInfo failed"));
|
SetWindowText (GetDlgItem (hWnd, IDC_VERSION), _T("GetFileVersionInfo failed"));
|
||||||
|
|
||||||
// Free the buffer
|
// Free the buffer
|
||||||
delete [] buffer;
|
delete[] buffer;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
SetWindowText (GetDlgItem (hWnd, IDC_VERSION), _T("GetFileVersionInfoSize failed"));
|
SetWindowText (GetDlgItem (hWnd, IDC_VERSION), _T("GetFileVersionInfoSize failed"));
|
||||||
|
@ -221,7 +221,7 @@ void PO2RPO::EndEditParams( IObjParam *ip, ULONG flags,Animatable *next)
|
||||||
// -----------------------------------------------------------------------------------------------------------------------------------------------------------
|
// -----------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
//From ReferenceMaker
|
//From ReferenceMaker
|
||||||
RefResult PO2RPO::NotifyRefChanged(const Interval& changeInt, RefTargetHandle hTarget, PartID& partID, RefMessage message, BOOL propagate)
|
RefResult PO2RPO::NotifyRefChanged(NOTIFY_REF_PARAMS)
|
||||||
{
|
{
|
||||||
//TODO: Add code to handle the various reference changed messages
|
//TODO: Add code to handle the various reference changed messages
|
||||||
return REF_SUCCEED;
|
return REF_SUCCEED;
|
||||||
|
|
|
@ -216,7 +216,7 @@ export_zone_cf (Value** arg_list, int count)
|
||||||
if (tri->rpatch->exportZone (node, &tri->patch, zone, zoneSymmetry, nZone, 160, 1, false))
|
if (tri->rpatch->exportZone (node, &tri->patch, zone, zoneSymmetry, nZone, 160, 1, false))
|
||||||
{
|
{
|
||||||
// Export path
|
// Export path
|
||||||
const std::string sPath = tStrToUtf8(arg_list[1]->to_string());
|
const std::string sPath = MCharStrToUtf8(arg_list[1]->to_string());
|
||||||
|
|
||||||
COFile file;
|
COFile file;
|
||||||
if (file.open (sPath))
|
if (file.open (sPath))
|
||||||
|
@ -246,7 +246,7 @@ Value* import_zone_cf (Value** arg_list, int count)
|
||||||
Interface *ip = MAXScript_interface;
|
Interface *ip = MAXScript_interface;
|
||||||
|
|
||||||
// Get the filename
|
// Get the filename
|
||||||
string filename = tStrToUtf8(arg_list[0]->to_string());
|
string filename = MCharStrToUtf8(arg_list[0]->to_string());
|
||||||
|
|
||||||
// Get the flip
|
// Get the flip
|
||||||
bool dialog = arg_list[1]->to_bool ()!=FALSE;
|
bool dialog = arg_list[1]->to_bool ()!=FALSE;
|
||||||
|
@ -289,14 +289,14 @@ Value* import_zone_cf (Value** arg_list, int count)
|
||||||
{
|
{
|
||||||
// Error message
|
// Error message
|
||||||
std::string msg = toString("Error when loading file %s: %s", filename.c_str(), e.what());
|
std::string msg = toString("Error when loading file %s: %s", filename.c_str(), e.what());
|
||||||
errorMessage (utf8ToTStr(msg), _T("NeL import zone"), *ip, dialog);
|
errorMessage (MaxTStrFromUtf8(msg), _M("NeL import zone"), *ip, dialog);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Error message
|
// Error message
|
||||||
std::string msg = toString("Can't open the file %s for reading.", filename.c_str());
|
std::string msg = toString("Can't open the file %s for reading.", filename.c_str());
|
||||||
errorMessage (utf8ToTStr(msg), _T("NeL import zone"), *ip, dialog);
|
errorMessage (MaxTStrFromUtf8(msg), _M("NeL import zone"), *ip, dialog);
|
||||||
}
|
}
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -1708,7 +1708,7 @@ Value* set_tile_bank_cf (Value** arg_list, int count)
|
||||||
type_check(arg_list[0], String, _M("NelSetTileBank [tile bank pathname]"));
|
type_check(arg_list[0], String, _M("NelSetTileBank [tile bank pathname]"));
|
||||||
|
|
||||||
// ok ?
|
// ok ?
|
||||||
const std::string pathname = tStrToUtf8(arg_list[0]->to_string());
|
const std::string pathname = MCharStrToUtf8(arg_list[0]->to_string());
|
||||||
|
|
||||||
// Get tile number
|
// Get tile number
|
||||||
SetBankPathName (pathname);
|
SetBankPathName (pathname);
|
||||||
|
|
|
@ -574,7 +574,7 @@ class EditPatchMod : public Modifier, IPatchOps, IPatchSelect, ISubMtlAPI, Attac
|
||||||
static bool additiveTile;
|
static bool additiveTile;
|
||||||
static bool automaticLighting;
|
static bool automaticLighting;
|
||||||
|
|
||||||
RefResult NotifyRefChanged(const Interval& changeInt, RefTargetHandle hTarget, PartID& partID, RefMessage message, BOOL propagate) { return REF_SUCCEED; }
|
RefResult NotifyRefChanged(NOTIFY_REF_PARAMS) { return REF_SUCCEED; }
|
||||||
|
|
||||||
int selLevel;
|
int selLevel;
|
||||||
|
|
||||||
|
@ -751,7 +751,7 @@ class EditPatchMod : public Modifier, IPatchOps, IPatchSelect, ISubMtlAPI, Attac
|
||||||
void BeginEditParams( IObjParam *ip, ULONG flags, Animatable *prev );
|
void BeginEditParams( IObjParam *ip, ULONG flags, Animatable *prev );
|
||||||
void EndEditParams( IObjParam *ip, ULONG flags, Animatable *next );
|
void EndEditParams( IObjParam *ip, ULONG flags, Animatable *next );
|
||||||
RefTargetHandle Clone(RemapDir& remap = DefaultRemapDir());
|
RefTargetHandle Clone(RemapDir& remap = DefaultRemapDir());
|
||||||
const MCHAR *GetObjectName() { return GetString(IDS_TH_EDITPATCH); }
|
GET_OBJECT_NAME_CONST MCHAR *GetObjectName() { return GetString(IDS_TH_EDITPATCH); }
|
||||||
void ActivateSubobjSel(int level, XFormModes& modes );
|
void ActivateSubobjSel(int level, XFormModes& modes );
|
||||||
int NeedUseSubselButton() { return 0; }
|
int NeedUseSubselButton() { return 0; }
|
||||||
void SelectSubPatch(int index);
|
void SelectSubPatch(int index);
|
||||||
|
|
|
@ -338,7 +338,7 @@ static INT_PTR CALLBACK PickSetDlgProc(
|
||||||
Tab<TSTR*> &names = *((Tab < TSTR*>*)lParam);
|
Tab<TSTR*> &names = *((Tab < TSTR*>*)lParam);
|
||||||
for (int i = 0; i < names.Count(); i++)
|
for (int i = 0; i < names.Count(); i++)
|
||||||
{
|
{
|
||||||
int pos = SendDlgItemMessage(hWnd, IDC_NS_LIST, LB_ADDSTRING, 0, (LPARAM)(TCHAR*)*names[i]->ToMCHAR());
|
int pos = SendDlgItemMessage(hWnd, IDC_NS_LIST, LB_ADDSTRING, 0, (LPARAM)(*names[i]->data()));
|
||||||
SendDlgItemMessage(hWnd, IDC_NS_LIST, LB_SETITEMDATA, pos, i);
|
SendDlgItemMessage(hWnd, IDC_NS_LIST, LB_SETITEMDATA, pos, i);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -1 +1,3 @@
|
||||||
#include "stdafx.h"
|
#include "stdafx.h"
|
||||||
|
|
||||||
|
void nlmax_patch_edit_stdafx_dummy() { }
|
||||||
|
|
|
@ -104,11 +104,14 @@ std::string GetBankPathName ()
|
||||||
if (RegOpenKeyEx(HKEY_CURRENT_USER, REGKEY_TILEDIT, 0, KEY_READ, &hKey)==ERROR_SUCCESS)
|
if (RegOpenKeyEx(HKEY_CURRENT_USER, REGKEY_TILEDIT, 0, KEY_READ, &hKey)==ERROR_SUCCESS)
|
||||||
{
|
{
|
||||||
TCHAR path[256];
|
TCHAR path[256];
|
||||||
DWORD len=256 * sizeof(TCHAR);
|
DWORD len = 256 * sizeof(TCHAR);
|
||||||
DWORD type;
|
DWORD type;
|
||||||
if (RegQueryValueEx(hKey, _T("Bank Path"), 0, &type, (LPBYTE)path, &len)==ERROR_SUCCESS)
|
if (RegQueryValueEx(hKey, _T("Bank Path"), 0, &type, (LPBYTE)path, &len)==ERROR_SUCCESS)
|
||||||
return tStrToUtf8(path);
|
{
|
||||||
RegCloseKey (hKey);
|
RegCloseKey(hKey);
|
||||||
|
return MCharStrToUtf8(path);
|
||||||
|
}
|
||||||
|
RegCloseKey(hKey);
|
||||||
}
|
}
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
@ -119,11 +122,14 @@ int GetBankTileSetSet ()
|
||||||
if (RegOpenKeyEx(HKEY_CURRENT_USER, REGKEY_TILEDIT, 0, KEY_READ, &hKey)==ERROR_SUCCESS)
|
if (RegOpenKeyEx(HKEY_CURRENT_USER, REGKEY_TILEDIT, 0, KEY_READ, &hKey)==ERROR_SUCCESS)
|
||||||
{
|
{
|
||||||
int tileSetSet;
|
int tileSetSet;
|
||||||
DWORD len=256;
|
DWORD len = 256;
|
||||||
DWORD type;
|
DWORD type;
|
||||||
if (RegQueryValueEx(hKey, _T("Tileset Set"), 0, &type, (LPBYTE)&tileSetSet, &len)==ERROR_SUCCESS)
|
if (RegQueryValueEx(hKey, _T("Tileset Set"), 0, &type, (LPBYTE)&tileSetSet, &len)==ERROR_SUCCESS)
|
||||||
|
{
|
||||||
|
RegCloseKey(hKey);
|
||||||
return tileSetSet;
|
return tileSetSet;
|
||||||
RegCloseKey (hKey);
|
}
|
||||||
|
RegCloseKey(hKey);
|
||||||
}
|
}
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
@ -134,8 +140,7 @@ void SetBankPathName (const std::string& path)
|
||||||
if (RegCreateKey(HKEY_CURRENT_USER, REGKEY_TILEDIT, &hKey)==ERROR_SUCCESS)
|
if (RegCreateKey(HKEY_CURRENT_USER, REGKEY_TILEDIT, &hKey)==ERROR_SUCCESS)
|
||||||
{
|
{
|
||||||
TCHAR buffer[MAX_PATH];
|
TCHAR buffer[MAX_PATH];
|
||||||
_tcscpy_s(buffer, MAX_PATH, utf8ToTStr(path));
|
_tcscpy_s(buffer, MAX_PATH, MaxTStrFromUtf8(path).data());
|
||||||
|
|
||||||
RegSetValueEx(hKey, _T("Bank Path"), 0, REG_SZ, (LPBYTE)buffer, (_tcslen(buffer)+1)*sizeof(TCHAR));
|
RegSetValueEx(hKey, _T("Bank Path"), 0, REG_SZ, (LPBYTE)buffer, (_tcslen(buffer)+1)*sizeof(TCHAR));
|
||||||
RegCloseKey (hKey);
|
RegCloseKey (hKey);
|
||||||
}
|
}
|
||||||
|
|
|
@ -30,6 +30,7 @@
|
||||||
#include "nel/misc/file.h"
|
#include "nel/misc/file.h"
|
||||||
#include "nel/misc/rgba.h"
|
#include "nel/misc/rgba.h"
|
||||||
#include "path_mesh_alloc.h"
|
#include "path_mesh_alloc.h"
|
||||||
|
#include "../nel_3dsmax_shared/string_common.h"
|
||||||
|
|
||||||
//#define USE_CACHE
|
//#define USE_CACHE
|
||||||
|
|
||||||
|
@ -451,7 +452,7 @@ public:
|
||||||
}
|
}
|
||||||
catch (const NLMISC::EStream& excp)
|
catch (const NLMISC::EStream& excp)
|
||||||
{
|
{
|
||||||
MessageBox (NULL, utf8ToTStr(excp.what()), _T("Load error"), MB_OK|MB_ICONEXCLAMATION);
|
MessageBox (NULL, MaxTStrFromUtf8(excp.what()).data(), _T("Load error"), MB_OK|MB_ICONEXCLAMATION);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return _bank;
|
return _bank;
|
||||||
|
|
|
@ -304,7 +304,7 @@ void RPO::GetDeformBBox(TimeValue t, Box3& box, Matrix3 *tm, BOOL useSel )
|
||||||
// ------------------------------------------------------------------------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
//From ReferenceMaker
|
//From ReferenceMaker
|
||||||
RefResult RPO::NotifyRefChanged(const Interval& changeInt, RefTargetHandle hTarget,PartID& partID, RefMessage message, BOOL propagate )
|
RefResult RPO::NotifyRefChanged(NOTIFY_REF_PARAMS)
|
||||||
{
|
{
|
||||||
//TODO: Implement, if the object makes references to other things
|
//TODO: Implement, if the object makes references to other things
|
||||||
//return PatchObject::NotifyRefChanged( changeInt, hTarget, partID, message, propagate);
|
//return PatchObject::NotifyRefChanged( changeInt, hTarget, partID, message, propagate);
|
||||||
|
|
|
@ -83,7 +83,7 @@ class RPO : public PatchObject
|
||||||
int HitTest(TimeValue t, INode* inode, int type, int crossing, int flags, IPoint2 *p, ViewExp *vpt);
|
int HitTest(TimeValue t, INode* inode, int type, int crossing, int flags, IPoint2 *p, ViewExp *vpt);
|
||||||
void Snap(TimeValue t, INode* inode, SnapInfo *snap, IPoint2 *p, ViewExp *vpt);
|
void Snap(TimeValue t, INode* inode, SnapInfo *snap, IPoint2 *p, ViewExp *vpt);
|
||||||
//TODO: Return the name that will appear in the history browser (modifier stack)
|
//TODO: Return the name that will appear in the history browser (modifier stack)
|
||||||
const MCHAR *GetObjectName() { return _M("Rykol Patch Object");}
|
GET_OBJECT_NAME_CONST MCHAR *GetObjectName() { return _M("Rykol Patch Object");}
|
||||||
|
|
||||||
void GetWorldBoundBox(TimeValue t, INode *mat, ViewExp *vpt, Box3& box );
|
void GetWorldBoundBox(TimeValue t, INode *mat, ViewExp *vpt, Box3& box );
|
||||||
void GetLocalBoundBox(TimeValue t, INode *mat, ViewExp *vpt, Box3& box );
|
void GetLocalBoundBox(TimeValue t, INode *mat, ViewExp *vpt, Box3& box );
|
||||||
|
@ -206,10 +206,10 @@ class RPO : public PatchObject
|
||||||
? true : PatchObject::IsSubClassOf(classID);
|
? true : PatchObject::IsSubClassOf(classID);
|
||||||
}
|
}
|
||||||
SClass_ID SuperClassID() { return GEOMOBJECT_CLASS_ID; }
|
SClass_ID SuperClassID() { return GEOMOBJECT_CLASS_ID; }
|
||||||
void GetClassName(TSTR& s) {s.FromUTF8("Rykol Patch Object");}
|
void GetClassName(TSTR& s) { s = "Rykol Patch Object";}
|
||||||
|
|
||||||
RefTargetHandle Clone ( RemapDir &remap );
|
RefTargetHandle Clone ( RemapDir &remap );
|
||||||
RefResult NotifyRefChanged (const Interval& changeInt, RefTargetHandle hTarget, PartID& partID, RefMessage message, BOOL propagate);
|
RefResult NotifyRefChanged (NOTIFY_REF_PARAMS);
|
||||||
|
|
||||||
int NumSubs()
|
int NumSubs()
|
||||||
{
|
{
|
||||||
|
|
|
@ -193,7 +193,7 @@ bool RPatchMesh::exportZone(INode* pNode, PatchMesh* pPM, NL3D::CZone& zone, CZo
|
||||||
}
|
}
|
||||||
catch (const EStream& e)
|
catch (const EStream& e)
|
||||||
{
|
{
|
||||||
MessageBox (NULL, utf8ToTStr(e.what()), _T("Error"), MB_OK|MB_ICONEXCLAMATION);
|
MessageBox (NULL, MaxTStrFromUtf8(e.what()).data(), _T("Error"), MB_OK|MB_ICONEXCLAMATION);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -267,8 +267,8 @@ bool RPatchMesh::exportZone(INode* pNode, PatchMesh* pPM, NL3D::CZone& zone, CZo
|
||||||
}
|
}
|
||||||
|
|
||||||
// Show the message
|
// Show the message
|
||||||
mprintf (utf8ToTStr(error));
|
mprintf(_M("%s\n"), MaxTStrFromUtf8(error).data());
|
||||||
nlwarning (error.c_str());
|
nlwarning("%s", error.c_str());
|
||||||
|
|
||||||
// Error
|
// Error
|
||||||
return false;
|
return false;
|
||||||
|
@ -395,8 +395,8 @@ bool RPatchMesh::exportZone(INode* pNode, PatchMesh* pPM, NL3D::CZone& zone, CZo
|
||||||
icv=getCommonVertex(pPM,idstpatch,isrcpatch,&orderdstvtx);
|
icv=getCommonVertex(pPM,idstpatch,isrcpatch,&orderdstvtx);
|
||||||
if (icv==-1)
|
if (icv==-1)
|
||||||
{
|
{
|
||||||
mprintf (_T("Invalid bind"));
|
mprintf(_M("Invalid bind\n"));
|
||||||
nlwarning ("Invalid bind");
|
nlwarning("Invalid bind");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (idstedge==orderdstvtx)
|
if (idstedge==orderdstvtx)
|
||||||
|
@ -419,7 +419,7 @@ bool RPatchMesh::exportZone(INode* pNode, PatchMesh* pPM, NL3D::CZone& zone, CZo
|
||||||
icv=getCommonVertex(pPM,idstpatch,isrcpatch);
|
icv=getCommonVertex(pPM,idstpatch,isrcpatch);
|
||||||
if (icv==-1)
|
if (icv==-1)
|
||||||
{
|
{
|
||||||
mprintf (_T("Invalid bind"));
|
mprintf(_M("Invalid bind\n"));
|
||||||
nlwarning ("Invalid bind");
|
nlwarning ("Invalid bind");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -436,7 +436,7 @@ bool RPatchMesh::exportZone(INode* pNode, PatchMesh* pPM, NL3D::CZone& zone, CZo
|
||||||
icv=getCommonVertex(pPM,idstpatch,isrcpatch);
|
icv=getCommonVertex(pPM,idstpatch,isrcpatch);
|
||||||
if (icv==-1)
|
if (icv==-1)
|
||||||
{
|
{
|
||||||
mprintf (_T("Invalid bind"));
|
mprintf(_M("Invalid bind\n"));
|
||||||
nlwarning ("Invalid bind");
|
nlwarning ("Invalid bind");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -448,8 +448,8 @@ bool RPatchMesh::exportZone(INode* pNode, PatchMesh* pPM, NL3D::CZone& zone, CZo
|
||||||
isrcedge=getEdge(pPM,srcpatch,srcpatch->v[nv],icv);
|
isrcedge=getEdge(pPM,srcpatch,srcpatch->v[nv],icv);
|
||||||
if (isrcedge==-1)
|
if (isrcedge==-1)
|
||||||
{
|
{
|
||||||
mprintf (_T("Invalid edge"));
|
mprintf(_M("Invalid edge\n"));
|
||||||
nlwarning ("Invalid bind");
|
nlwarning("Invalid edge");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
// let's fill the dst patch (n is important here... it's the order)
|
// let's fill the dst patch (n is important here... it's the order)
|
||||||
|
@ -592,8 +592,8 @@ bool RPatchMesh::exportZone(INode* pNode, PatchMesh* pPM, NL3D::CZone& zone, CZo
|
||||||
sym.invert ();
|
sym.invert ();
|
||||||
if (!CPatchInfo::transform (patchinfo, zoneSymmetry, bank, symmetry, rotate, snapCell, weldThreshold, sym))
|
if (!CPatchInfo::transform (patchinfo, zoneSymmetry, bank, symmetry, rotate, snapCell, weldThreshold, sym))
|
||||||
{
|
{
|
||||||
mprintf (_T("Can't transform the zone"));
|
mprintf(_M("Can't transform the zone\n"));
|
||||||
nlwarning ("Invalid bind");
|
nlwarning("Can't transform the zone");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -609,7 +609,7 @@ bool RPatchMesh::exportZone(INode* pNode, PatchMesh* pPM, NL3D::CZone& zone, CZo
|
||||||
uint i;
|
uint i;
|
||||||
for (i=0; i<error.Errors.size (); i++)
|
for (i=0; i<error.Errors.size (); i++)
|
||||||
{
|
{
|
||||||
mprintf (utf8ToTStr(error.Errors[i]));
|
mprintf(_M("%s\n"), MaxTStrFromUtf8(error.Errors[i]));
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,4 +14,6 @@
|
||||||
// You should have received a copy of the GNU Affero General Public License
|
// You should have received a copy of the GNU Affero General Public License
|
||||||
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
#include "stdafx.h"
|
#include "stdafx.h"
|
||||||
|
|
||||||
|
void nlmax_patch_library_stdafx_dummy() { }
|
||||||
|
|
|
@ -422,7 +422,7 @@ class PaintPatchMod : public Modifier
|
||||||
static bool automaticLighting;
|
static bool automaticLighting;
|
||||||
static bool lockBorders;
|
static bool lockBorders;
|
||||||
|
|
||||||
RefResult NotifyRefChanged(const Interval& changeInt, RefTargetHandle hTarget, PartID& partID, RefMessage message, BOOL propagate) { return REF_SUCCEED; }
|
RefResult NotifyRefChanged(NOTIFY_REF_PARAMS) { return REF_SUCCEED; }
|
||||||
|
|
||||||
bool includeMeshes;
|
bool includeMeshes;
|
||||||
bool preloadTiles;
|
bool preloadTiles;
|
||||||
|
@ -481,7 +481,7 @@ class PaintPatchMod : public Modifier
|
||||||
void BeginEditParams( IObjParam *ip, ULONG flags, Animatable *prev );
|
void BeginEditParams( IObjParam *ip, ULONG flags, Animatable *prev );
|
||||||
void EndEditParams( IObjParam *ip, ULONG flags, Animatable *next );
|
void EndEditParams( IObjParam *ip, ULONG flags, Animatable *next );
|
||||||
RefTargetHandle Clone(RemapDir& remap = DefaultRemapDir());
|
RefTargetHandle Clone(RemapDir& remap = DefaultRemapDir());
|
||||||
const MCHAR *GetObjectName() { return _M("NeL Patch Painter"); }
|
GET_OBJECT_NAME_CONST MCHAR *GetObjectName() { return _M("NeL Patch Painter"); }
|
||||||
|
|
||||||
void RescaleWorldUnits(float f);
|
void RescaleWorldUnits(float f);
|
||||||
|
|
||||||
|
|
|
@ -2839,7 +2839,7 @@ void mainproc(CScene& scene, CEventListenerAsync& AsyncListener, CEvent3dMouseLi
|
||||||
if (GetOpenFileName(&openFile))
|
if (GetOpenFileName(&openFile))
|
||||||
{
|
{
|
||||||
// Load the file
|
// Load the file
|
||||||
paintColor.loadBrush (tStrToUtf8(buffer));
|
paintColor.loadBrush (MCharStrToUtf8(buffer));
|
||||||
paintColor.setBrushMode (true);
|
paintColor.setBrushMode (true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3720,7 +3720,7 @@ void EPM_PaintCMode::DoPaint ()
|
||||||
{
|
{
|
||||||
std::string error = NLMISC::toString("Invalid edge '%i' with value '%i' in patch '%i' in PatchMesh", p, mYedge, e);
|
std::string error = NLMISC::toString("Invalid edge '%i' with value '%i' in patch '%i' in PatchMesh", p, mYedge, e);
|
||||||
nlwarning(error.c_str());
|
nlwarning(error.c_str());
|
||||||
MessageBox(NULL, utf8ToTStr(error), _T("NeL Patch Painter"), MB_OK | MB_ICONSTOP);
|
MessageBox(NULL, MaxTStrFromUtf8(error).data(), _T("NeL Patch Painter"), MB_OK | MB_ICONSTOP);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
#if (MAX_RELEASE < 4000)
|
#if (MAX_RELEASE < 4000)
|
||||||
|
@ -3883,8 +3883,8 @@ void EPM_PaintCMode::DoPaint ()
|
||||||
}
|
}
|
||||||
if (patchVoisin.patch!=-1)
|
if (patchVoisin.patch!=-1)
|
||||||
{
|
{
|
||||||
std::string first = tStrToUtf8(vectMesh[i].Node->GetName());
|
std::string first = MCharStrToUtf8(vectMesh[i].Node->GetName());
|
||||||
std::string second = tStrToUtf8(vectMesh[patchVoisin.Mesh].Node->GetName());
|
std::string second = MCharStrToUtf8(vectMesh[patchVoisin.Mesh].Node->GetName());
|
||||||
int rot = (2-((vectMesh[i].Symmetry)?(2-e):e)+((vectMesh[patchVoisin.Mesh].Symmetry)?(2-edgeVoisin):edgeVoisin))&3;
|
int rot = (2-((vectMesh[i].Symmetry)?(2-e):e)+((vectMesh[patchVoisin.Mesh].Symmetry)?(2-edgeVoisin):edgeVoisin))&3;
|
||||||
int nU = 1 << rpatch->getUIPatch (p).NbTilesU;
|
int nU = 1 << rpatch->getUIPatch (p).NbTilesU;
|
||||||
int nV = 1 << rpatch->getUIPatch (p).NbTilesV;
|
int nV = 1 << rpatch->getUIPatch (p).NbTilesV;
|
||||||
|
@ -3991,7 +3991,7 @@ void EPM_PaintCMode::DoPaint ()
|
||||||
}
|
}
|
||||||
catch (const EStream& stream)
|
catch (const EStream& stream)
|
||||||
{
|
{
|
||||||
MessageBox (NULL, utf8ToTStr(stream.what()), _T("Error"), MB_OK|MB_ICONEXCLAMATION);
|
MessageBox (NULL, MaxTStrFromUtf8(stream.what()).data(), _T("Error"), MB_OK|MB_ICONEXCLAMATION);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4063,7 +4063,7 @@ bool loadLigoConfigFile (CLigoConfig& config, Interface& it)
|
||||||
if (res)
|
if (res)
|
||||||
{
|
{
|
||||||
// Path
|
// Path
|
||||||
std::string modulePath = NLMISC::CFile::getPath(tStrToUtf8(sModulePath));
|
std::string modulePath = NLMISC::CFile::getPath(MCharStrToUtf8(sModulePath));
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
@ -4259,8 +4259,8 @@ DWORD WINAPI myThread (LPVOID vData)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
std::string message = toString("Can't build the zone named %s", tStrToUtf8(pData->VectMesh[i].Node->GetName()).c_str());
|
std::string message = toString("Can't build the zone named %s", MCharStrToUtf8(pData->VectMesh[i].Node->GetName()).c_str());
|
||||||
MessageBox (pData->eproc->ip->GetMAXHWnd(), utf8ToTStr(message), _T("NeL Painter"), MB_OK|MB_ICONEXCLAMATION);
|
MessageBox (pData->eproc->ip->GetMAXHWnd(), MaxTStrFromUtf8(message).data(), _T("NeL Painter"), MB_OK|MB_ICONEXCLAMATION);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4362,14 +4362,14 @@ DWORD WINAPI myThread (LPVOID vData)
|
||||||
}
|
}
|
||||||
catch (const EDru& druExcept)
|
catch (const EDru& druExcept)
|
||||||
{
|
{
|
||||||
MessageBox (NULL, utf8ToTStr(druExcept.what()), _T("NeL driver utility"), MB_OK|MB_ICONEXCLAMATION);
|
MessageBox (NULL, MaxTStrFromUtf8(druExcept.what()).data(), _T("NeL driver utility"), MB_OK|MB_ICONEXCLAMATION);
|
||||||
}
|
}
|
||||||
|
|
||||||
delete pData;
|
delete pData;
|
||||||
}
|
}
|
||||||
catch (const Exception& e)
|
catch (const Exception& e)
|
||||||
{
|
{
|
||||||
MessageBox (NULL, utf8ToTStr(e.what()), _T("NeL Painter"), MB_OK|MB_ICONEXCLAMATION);
|
MessageBox (NULL, MaxTStrFromUtf8(e.what()).data(), _T("NeL Painter"), MB_OK|MB_ICONEXCLAMATION);
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -319,7 +319,7 @@ void getColors (COLORREF *array)
|
||||||
DWORD len=4;
|
DWORD len=4;
|
||||||
DWORD type;
|
DWORD type;
|
||||||
std::string regName = toString("Color%u", i);
|
std::string regName = toString("Color%u", i);
|
||||||
RegQueryValueEx (hKey, utf8ToTStr(regName), 0, &type, (LPBYTE)(array+i), &len);
|
RegQueryValueEx (hKey, MaxTStrFromUtf8(regName).data(), 0, &type, (LPBYTE)(array+i), &len);
|
||||||
}
|
}
|
||||||
RegCloseKey (hKey);
|
RegCloseKey (hKey);
|
||||||
}
|
}
|
||||||
|
@ -337,7 +337,7 @@ void setColors (const COLORREF *array)
|
||||||
{
|
{
|
||||||
DWORD len=4;
|
DWORD len=4;
|
||||||
std::string regName = toString("Color%u", i);
|
std::string regName = toString("Color%u", i);
|
||||||
RegSetValueEx (hKey, utf8ToTStr(regName), 0, REG_DWORD, (LPBYTE)(array+i), 4);
|
RegSetValueEx (hKey, MaxTStrFromUtf8(regName).data(), 0, REG_DWORD, (LPBYTE)(array+i), 4);
|
||||||
}
|
}
|
||||||
RegCloseKey (hKey);
|
RegCloseKey (hKey);
|
||||||
}
|
}
|
||||||
|
@ -412,7 +412,7 @@ void LoadKeyCfg ()
|
||||||
if (res)
|
if (res)
|
||||||
{
|
{
|
||||||
// Make a new path
|
// Make a new path
|
||||||
std::string cfgPath = NLMISC::CFile::getPath(tStrToUtf8(sModulePath)) + "keys.cfg";
|
std::string cfgPath = NLMISC::CFile::getPath(MCharStrToUtf8(sModulePath)) + "keys.cfg";
|
||||||
|
|
||||||
CConfigFile cf;
|
CConfigFile cf;
|
||||||
|
|
||||||
|
@ -455,7 +455,7 @@ void LoadVarCfg ()
|
||||||
{
|
{
|
||||||
// Make a new path
|
// Make a new path
|
||||||
char cgfPath[256];
|
char cgfPath[256];
|
||||||
std::string cfgPath = NLMISC::CFile::getPath(tStrToUtf8(sModulePath)) + "keys.cfg";
|
std::string cfgPath = NLMISC::CFile::getPath(MCharStrToUtf8(sModulePath)) + "keys.cfg";
|
||||||
|
|
||||||
CConfigFile cf;
|
CConfigFile cf;
|
||||||
|
|
||||||
|
|
|
@ -402,7 +402,7 @@ bool CPaintColor::loadBrush (const std::string &brushFileName)
|
||||||
{
|
{
|
||||||
// Error message
|
// Error message
|
||||||
std::string msg = toString("Can't open the file %s.", brushFileName.c_str());
|
std::string msg = toString("Can't open the file %s.", brushFileName.c_str());
|
||||||
MessageBox ((HWND)CNELU::Driver->getDisplay(), utf8ToTStr(msg), _T("NeL Painter"), MB_OK|MB_ICONEXCLAMATION);
|
MessageBox((HWND)CNELU::Driver->getDisplay(), MaxTStrFromUtf8(msg).data(), _T("NeL Painter"), MB_OK|MB_ICONEXCLAMATION);
|
||||||
|
|
||||||
// Return false
|
// Return false
|
||||||
return false;
|
return false;
|
||||||
|
@ -411,7 +411,7 @@ bool CPaintColor::loadBrush (const std::string &brushFileName)
|
||||||
catch (const Exception &e)
|
catch (const Exception &e)
|
||||||
{
|
{
|
||||||
// Error message
|
// Error message
|
||||||
MessageBox ((HWND)CNELU::Driver->getDisplay(), utf8ToTStr(e.what()), _T("NeL Painter"), MB_OK|MB_ICONEXCLAMATION);
|
MessageBox((HWND)CNELU::Driver->getDisplay(), MaxTStrFromUtf8(e.what()).data(), _T("NeL Painter"), MB_OK|MB_ICONEXCLAMATION);
|
||||||
|
|
||||||
// Return false
|
// Return false
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -1 +1,3 @@
|
||||||
#include "stdafx.h"
|
#include "stdafx.h"
|
||||||
|
|
||||||
|
void nlmax_patch_painter_stdafx_dummy() { }
|
||||||
|
|
|
@ -483,7 +483,7 @@ void VertexPaint::EndEditParams(IObjParam *ip, ULONG flags, Animatable *next)
|
||||||
|
|
||||||
|
|
||||||
//From ReferenceMaker
|
//From ReferenceMaker
|
||||||
RefResult VertexPaint::NotifyRefChanged(const Interval& changeInt, RefTargetHandle hTarget, PartID& partID, RefMessage message, BOOL propagate)
|
RefResult VertexPaint::NotifyRefChanged(NOTIFY_REF_PARAMS)
|
||||||
{
|
{
|
||||||
return REF_SUCCEED;
|
return REF_SUCCEED;
|
||||||
}
|
}
|
||||||
|
|
|
@ -29,6 +29,7 @@
|
||||||
#define NL_MAP_ASSERT
|
#define NL_MAP_ASSERT
|
||||||
#include <nel/misc/debug.h>
|
#include <nel/misc/debug.h>
|
||||||
|
|
||||||
|
#include "../nel_3dsmax_shared/string_common.h"
|
||||||
|
|
||||||
#define VERTEX_TREE_PAINT_CLASS_ID Class_ID(0x40c7005e, 0x2a95082c)
|
#define VERTEX_TREE_PAINT_CLASS_ID Class_ID(0x40c7005e, 0x2a95082c)
|
||||||
#define CID_PAINT (CID_USER+0x439c)
|
#define CID_PAINT (CID_USER+0x439c)
|
||||||
|
@ -131,7 +132,7 @@ public:
|
||||||
void GetClassName(TSTR& s) { s= TSTR(GetString(IDS_CLASS_NAME)); }
|
void GetClassName(TSTR& s) { s= TSTR(GetString(IDS_CLASS_NAME)); }
|
||||||
virtual Class_ID ClassID() { return VERTEX_TREE_PAINT_CLASS_ID;}
|
virtual Class_ID ClassID() { return VERTEX_TREE_PAINT_CLASS_ID;}
|
||||||
RefTargetHandle Clone(RemapDir& remap = DefaultRemapDir());
|
RefTargetHandle Clone(RemapDir& remap = DefaultRemapDir());
|
||||||
const MCHAR *GetObjectName() { return GetString(IDS_CLASS_NAME); }
|
GET_OBJECT_NAME_CONST MCHAR *GetObjectName() { return GetString(IDS_CLASS_NAME); }
|
||||||
IOResult Load(ILoad *iload);
|
IOResult Load(ILoad *iload);
|
||||||
IOResult Save(ISave *isave);
|
IOResult Save(ISave *isave);
|
||||||
IOResult LoadLocalData(ILoad *iload, LocalModData **pld);
|
IOResult LoadLocalData(ILoad *iload, LocalModData **pld);
|
||||||
|
@ -161,7 +162,7 @@ public:
|
||||||
Animatable* SubAnim(int i);
|
Animatable* SubAnim(int i);
|
||||||
TSTR SubAnimName(int i);
|
TSTR SubAnimName(int i);
|
||||||
|
|
||||||
RefResult NotifyRefChanged(const Interval& changeInt,RefTargetHandle hTarget, PartID& partID, RefMessage message, BOOL propagate);
|
RefResult NotifyRefChanged(NOTIFY_REF_PARAMS);
|
||||||
|
|
||||||
CreateMouseCallBack* GetCreateMouseCallBack() {return NULL;}
|
CreateMouseCallBack* GetCreateMouseCallBack() {return NULL;}
|
||||||
void BeginEditParams(IObjParam *ip, ULONG flags,Animatable *prev);
|
void BeginEditParams(IObjParam *ip, ULONG flags,Animatable *prev);
|
||||||
|
|
|
@ -85,7 +85,7 @@ class RGBAdd: public Texmap {
|
||||||
int RemapRefOnLoad(int iref);
|
int RemapRefOnLoad(int iref);
|
||||||
|
|
||||||
RefTargetHandle Clone(RemapDir &remap = DefaultRemapDir());
|
RefTargetHandle Clone(RemapDir &remap = DefaultRemapDir());
|
||||||
RefResult NotifyRefChanged(const Interval &changeInt, RefTargetHandle hTarget, PartID& partID, RefMessage message, BOOL propagate);
|
RefResult NotifyRefChanged(NOTIFY_REF_PARAMS);
|
||||||
|
|
||||||
// IO
|
// IO
|
||||||
IOResult Save(ISave *isave);
|
IOResult Save(ISave *isave);
|
||||||
|
@ -130,41 +130,41 @@ enum
|
||||||
|
|
||||||
static ParamBlockDesc2 RGBAdd_param_blk ( RGBAdd_params, _T("parameters"), 0, &maskCD, P_AUTO_CONSTRUCT + P_AUTO_UI, 0,
|
static ParamBlockDesc2 RGBAdd_param_blk ( RGBAdd_params, _T("parameters"), 0, &maskCD, P_AUTO_CONSTRUCT + P_AUTO_UI, 0,
|
||||||
//rollout
|
//rollout
|
||||||
IDD_RGBMULT, "RGB Additif Parameters", 0, 0, NULL,
|
IDD_RGBMULT, _T("RGB Additif Parameters"), 0, 0, NULL,
|
||||||
// params
|
// params
|
||||||
RGBAdd_color1, _T("color1"), TYPE_RGBA, P_ANIMATABLE, IDS_DS_COLOR1,
|
RGBAdd_color1, _T("color1"), TYPE_RGBA, P_ANIMATABLE, IDS_DS_COLOR1,
|
||||||
p_default, Color(0,0,0),
|
p_default, Color(0,0,0),
|
||||||
p_ui, TYPE_COLORSWATCH, IDC_MULT_COL1,
|
p_ui, TYPE_COLORSWATCH, IDC_MULT_COL1,
|
||||||
p_end,
|
nl_p_end,
|
||||||
RGBAdd_color2, _T("color2"), TYPE_RGBA, P_ANIMATABLE, IDS_DS_COLOR2,
|
RGBAdd_color2, _T("color2"), TYPE_RGBA, P_ANIMATABLE, IDS_DS_COLOR2,
|
||||||
p_default, Color(0.5,0.5,0.5),
|
p_default, Color(0.5,0.5,0.5),
|
||||||
p_ui, TYPE_COLORSWATCH, IDC_MULT_COL2,
|
p_ui, TYPE_COLORSWATCH, IDC_MULT_COL2,
|
||||||
p_end,
|
nl_p_end,
|
||||||
RGBAdd_map1, _T("map1"), TYPE_TEXMAP, P_OWNERS_REF, IDS_JW_MAP1,
|
RGBAdd_map1, _T("map1"), TYPE_TEXMAP, P_OWNERS_REF, IDS_JW_MAP1,
|
||||||
p_refno, 1,
|
p_refno, 1,
|
||||||
p_subtexno, 0,
|
p_subtexno, 0,
|
||||||
p_ui, TYPE_TEXMAPBUTTON, IDC_MULT_TEX1,
|
p_ui, TYPE_TEXMAPBUTTON, IDC_MULT_TEX1,
|
||||||
p_end,
|
nl_p_end,
|
||||||
RGBAdd_map2, _T("map2"), TYPE_TEXMAP, P_OWNERS_REF, IDS_JW_MAP2,
|
RGBAdd_map2, _T("map2"), TYPE_TEXMAP, P_OWNERS_REF, IDS_JW_MAP2,
|
||||||
p_refno, 2,
|
p_refno, 2,
|
||||||
p_subtexno, 1,
|
p_subtexno, 1,
|
||||||
p_ui, TYPE_TEXMAPBUTTON, IDC_MULT_TEX2,
|
p_ui, TYPE_TEXMAPBUTTON, IDC_MULT_TEX2,
|
||||||
p_end,
|
nl_p_end,
|
||||||
RGBAdd_map1_on, _T("map1Enabled"), TYPE_BOOL, 0, IDS_JW_MAP1ENABLE,
|
RGBAdd_map1_on, _T("map1Enabled"), TYPE_BOOL, 0, IDS_JW_MAP1ENABLE,
|
||||||
p_default, TRUE,
|
p_default, TRUE,
|
||||||
p_ui, TYPE_SINGLECHEKBOX, IDC_MAPON1,
|
p_ui, TYPE_SINGLECHEKBOX, IDC_MAPON1,
|
||||||
p_end,
|
nl_p_end,
|
||||||
RGBAdd_map2_on, _T("map2Enabled"), TYPE_BOOL, 0, IDS_JW_MAP2ENABLE,
|
RGBAdd_map2_on, _T("map2Enabled"), TYPE_BOOL, 0, IDS_JW_MAP2ENABLE,
|
||||||
p_default, TRUE,
|
p_default, TRUE,
|
||||||
p_ui, TYPE_SINGLECHEKBOX, IDC_MAPON2,
|
p_ui, TYPE_SINGLECHEKBOX, IDC_MAPON2,
|
||||||
p_end,
|
nl_p_end,
|
||||||
RGBAdd_type, _T("alphaFrom"), TYPE_INT, 0, IDS_PW_ALPHAFROM,
|
RGBAdd_type, _T("alphaFrom"), TYPE_INT, 0, IDS_PW_ALPHAFROM,
|
||||||
p_default, 2,
|
p_default, 2,
|
||||||
p_range, 0, 2,
|
p_range, 0, 2,
|
||||||
p_ui, TYPE_RADIO, 3, IDC_MULT_ALPHA1, IDC_MULT_ALPHA2, IDC_MULT_ALPHA3,
|
p_ui, TYPE_RADIO, 3, IDC_MULT_ALPHA1, IDC_MULT_ALPHA2, IDC_MULT_ALPHA3,
|
||||||
p_end,
|
nl_p_end,
|
||||||
|
|
||||||
p_end
|
nl_p_end
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
@ -364,7 +364,7 @@ TSTR RGBAdd::SubAnimName(int i) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
RefResult RGBAdd::NotifyRefChanged(const Interval& changeInt, RefTargetHandle hTarget, PartID& partID, RefMessage message, BOOL propagate)
|
RefResult RGBAdd::NotifyRefChanged(NOTIFY_REF_PARAMS)
|
||||||
{
|
{
|
||||||
switch (message)
|
switch (message)
|
||||||
{
|
{
|
||||||
|
|
|
@ -21,6 +21,8 @@
|
||||||
#include "nel/misc/file.h"
|
#include "nel/misc/file.h"
|
||||||
#include "../nel_patch_lib/rpo.h"
|
#include "../nel_patch_lib/rpo.h"
|
||||||
|
|
||||||
|
#include "../nel_3dsmax_shared/string_common.h"
|
||||||
|
|
||||||
#define TILE_UTILITY_CLASS_ID Class_ID(0x2301c0, 0x4c156b46)
|
#define TILE_UTILITY_CLASS_ID Class_ID(0x2301c0, 0x4c156b46)
|
||||||
|
|
||||||
extern ClassDesc* GetRGBAddDesc();
|
extern ClassDesc* GetRGBAddDesc();
|
||||||
|
@ -192,7 +194,7 @@ static INT_PTR CALLBACK Tile_utilityDlgProc(HWND hWnd, UINT msg, WPARAM wParam,
|
||||||
ofn.lpTemplateName=0;
|
ofn.lpTemplateName=0;
|
||||||
if (GetOpenFileName(&ofn))
|
if (GetOpenFileName(&ofn))
|
||||||
{
|
{
|
||||||
theTile_utility.Load (tStrToUtf8(sPath));
|
theTile_utility.Load (MCharStrToUtf8(sPath));
|
||||||
theTile_utility.SetLand (theTile_utility.Land);
|
theTile_utility.SetLand (theTile_utility.Land);
|
||||||
theTile_utility.SetupUI ();
|
theTile_utility.SetupUI ();
|
||||||
}
|
}
|
||||||
|
@ -287,7 +289,7 @@ void Tile_utility::Load (const std::string& path)
|
||||||
if (!file.open (path))
|
if (!file.open (path))
|
||||||
{
|
{
|
||||||
std::string tmp = toString("File not found: %s", path.c_str());
|
std::string tmp = toString("File not found: %s", path.c_str());
|
||||||
MessageBox (NULL, utf8ToTStr(tmp), _T("Error.."), MB_OK|MB_ICONEXCLAMATION);
|
MessageBox (NULL, MaxTStrFromUtf8(tmp).data(), _T("Error.."), MB_OK|MB_ICONEXCLAMATION);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -299,7 +301,7 @@ void Tile_utility::Load (const std::string& path)
|
||||||
catch (const EStream &stream)
|
catch (const EStream &stream)
|
||||||
{
|
{
|
||||||
std::string tmp = toString("Error while loading %s:\n\n%s", path.c_str(), stream.what());
|
std::string tmp = toString("Error while loading %s:\n\n%s", path.c_str(), stream.what());
|
||||||
MessageBox (NULL, utf8ToTStr(tmp), _T("Error.."), MB_OK|MB_ICONEXCLAMATION);
|
MessageBox (NULL, MaxTStrFromUtf8(tmp).data(), _T("Error.."), MB_OK|MB_ICONEXCLAMATION);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -337,7 +339,7 @@ void Tile_utility::SetupUI ()
|
||||||
std::string name=Bank.getLand(nLand)->getName();
|
std::string name=Bank.getLand(nLand)->getName();
|
||||||
if (hCombo)
|
if (hCombo)
|
||||||
{
|
{
|
||||||
SendMessage (hCombo, CB_INSERTSTRING, -1, (LPARAM)utf8ToTStr(name));
|
SendMessage (hCombo, CB_INSERTSTRING, -1, (LPARAM)MaxTStrFromUtf8(name).data());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -369,7 +371,7 @@ void Tile_utility::SetupUI ()
|
||||||
name[0] = upName[0];
|
name[0] = upName[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
SetWindowText (hwnd, utf8ToTStr(name));
|
SetWindowText (hwnd, MaxTStrFromUtf8(name).data());
|
||||||
|
|
||||||
// Static text
|
// Static text
|
||||||
TCHAR sTmp[256];
|
TCHAR sTmp[256];
|
||||||
|
@ -451,7 +453,7 @@ bool Tile_utility::SetupMaterial () const
|
||||||
tex->SetAlphaSource (ALPHA_NONE);
|
tex->SetAlphaSource (ALPHA_NONE);
|
||||||
tex->SetAlphaAsMono (FALSE);
|
tex->SetAlphaAsMono (FALSE);
|
||||||
tex->SetAlphaAsRGB (FALSE);
|
tex->SetAlphaAsRGB (FALSE);
|
||||||
tex->SetMapName (utf8ToTStr(Bank.getAbsPath() + tile->getRelativeFileName(CTile::diffuse)));
|
tex->SetMapName (MaxTStrFromUtf8(Bank.getAbsPath() + tile->getRelativeFileName(CTile::diffuse)).data());
|
||||||
|
|
||||||
// Assign BitmapTex
|
// Assign BitmapTex
|
||||||
rgb->SetSubTexmap (0, tex);
|
rgb->SetSubTexmap (0, tex);
|
||||||
|
@ -471,7 +473,7 @@ bool Tile_utility::SetupMaterial () const
|
||||||
tex->SetAlphaSource (ALPHA_NONE);
|
tex->SetAlphaSource (ALPHA_NONE);
|
||||||
tex->SetAlphaAsMono (FALSE);
|
tex->SetAlphaAsMono (FALSE);
|
||||||
tex->SetAlphaAsRGB (FALSE);
|
tex->SetAlphaAsRGB (FALSE);
|
||||||
tex->SetMapName (utf8ToTStr(Bank.getAbsPath() + tile->getRelativeFileName(CTile::additive)));
|
tex->SetMapName (MaxTStrFromUtf8(Bank.getAbsPath() + tile->getRelativeFileName(CTile::additive)).data());
|
||||||
|
|
||||||
// Assign BitmapTex
|
// Assign BitmapTex
|
||||||
rgb->SetSubTexmap (1, tex);
|
rgb->SetSubTexmap (1, tex);
|
||||||
|
|
|
@ -48,4 +48,6 @@ extern HINSTANCE hInstance;
|
||||||
|
|
||||||
#define RGBAddClassID (Class_ID(0x5621932, 0x565a6387))
|
#define RGBAddClassID (Class_ID(0x5621932, 0x565a6387))
|
||||||
|
|
||||||
|
#include "../nel_3dsmax_shared/string_common.h"
|
||||||
|
|
||||||
#endif // __TILE_UTILITY__H
|
#endif // __TILE_UTILITY__H
|
||||||
|
|
Loading…
Reference in a new issue