Merge with develop

--HG--
branch : compatibility-develop
This commit is contained in:
kervala 2016-11-25 10:44:44 +01:00
commit 8adf092cb8
106 changed files with 1227 additions and 1277 deletions

View file

@ -77,7 +77,7 @@ MACRO(PCH_SET_COMPILE_FLAGS _target)
GET_DIRECTORY_PROPERTY(DEFINITIONS COMPILE_DEFINITIONS)
IF(DEFINITIONS)
FOREACH(item ${DEFINITIONS})
LIST(APPEND GLOBAL_DEFINITIONS "$<$<BOOL:${item}>:-D$<JOIN:${item},-D>>")
LIST(APPEND GLOBAL_DEFINITIONS "$<$<BOOL:${item}>:-D$<JOIN:${item},-D>>")
ENDFOREACH()
ENDIF()
@ -91,14 +91,14 @@ MACRO(PCH_SET_COMPILE_FLAGS _target)
GET_DIRECTORY_PROPERTY(DEFINITIONS DIRECTORY ${CMAKE_SOURCE_DIR} COMPILE_DEFINITIONS)
IF(DEFINITIONS)
FOREACH(item ${DEFINITIONS})
LIST(APPEND GLOBAL_DEFINITIONS "$<$<BOOL:${item}>:-D$<JOIN:${item},-D>>")
LIST(APPEND GLOBAL_DEFINITIONS "$<$<BOOL:${item}>:-D$<JOIN:${item},-D>>")
ENDFOREACH()
ENDIF()
GET_DIRECTORY_PROPERTY(DEFINITIONS DIRECTORY ${CMAKE_SOURCE_DIR} COMPILE_DEFINITIONS_${_UPPER_BUILD})
IF(DEFINITIONS)
FOREACH(item ${DEFINITIONS})
LIST(APPEND GLOBAL_DEFINITIONS "$<$<BOOL:${item}>:-D$<JOIN:${item},-D>>")
LIST(APPEND GLOBAL_DEFINITIONS "$<$<BOOL:${item}>:-D$<JOIN:${item},-D>>")
ENDFOREACH()
ENDIF()
@ -122,14 +122,14 @@ MACRO(PCH_SET_COMPILE_FLAGS _target)
GET_TARGET_PROPERTY(DEFINITIONS ${_target} COMPILE_DEFINITIONS)
IF(DEFINITIONS)
FOREACH(item ${DEFINITIONS})
LIST(APPEND GLOBAL_DEFINITIONS "$<$<BOOL:${item}>:-D$<JOIN:${item},-D>>")
LIST(APPEND GLOBAL_DEFINITIONS "$<$<BOOL:${item}>:-D$<JOIN:${item},-D>>")
ENDFOREACH()
ENDIF()
GET_TARGET_PROPERTY(DEFINITIONS ${_target} COMPILE_DEFINITIONS_${_UPPER_BUILD})
IF(DEFINITIONS)
FOREACH(item ${DEFINITIONS})
LIST(APPEND GLOBAL_DEFINITIONS "$<$<BOOL:${item}>:-D$<JOIN:${item},-D>>")
LIST(APPEND GLOBAL_DEFINITIONS "$<$<BOOL:${item}>:-D$<JOIN:${item},-D>>")
ENDFOREACH()
ENDIF()
@ -176,10 +176,21 @@ MACRO(PCH_SET_COMPILE_FLAGS _target)
ENDIF()
IF(CMAKE_VERSION VERSION_LESS "3.3.0")
GET_DIRECTORY_PROPERTY(_directory_flags DEFINITIONS)
GET_DIRECTORY_PROPERTY(_directory_definitions DIRECTORY ${CMAKE_SOURCE_DIR} DEFINITIONS)
LIST(APPEND _FLAGS ${_directory_flags})
LIST(APPEND _FLAGS ${_directory_definitions})
GET_DIRECTORY_PROPERTY(_DIRECTORY_FLAGS DEFINITIONS)
IF(_DIRECTORY_FLAGS)
FOREACH(item ${_DIRECTORY_FLAGS})
LIST(APPEND _FLAGS "$<$<BOOL:${item}>:-D$<JOIN:${item},-D>>")
ENDFOREACH()
ENDIF()
GET_DIRECTORY_PROPERTY(_DIRECTORY_DEFINITIONS DIRECTORY ${CMAKE_SOURCE_DIR} DEFINITIONS)
IF(_DIRECTORY_DEFINITIONS)
FOREACH(item ${_DIRECTORY_DEFINITIONS})
LIST(APPEND _FLAGS "$<$<BOOL:${item}>:-D$<JOIN:${item},-D>>")
ENDFOREACH()
ENDIF()
ENDIF()
# Format definitions

View file

@ -870,9 +870,6 @@ MACRO(NL_SETUP_BUILD)
ELSE()
# Check wrong formats in printf-like functions
ADD_PLATFORM_FLAGS("-Wformat -Werror=format-security")
# Don't display invalid or unused command lines arguments by default (often too verbose)
ADD_PLATFORM_FLAGS("-Wno-invalid-command-line-argument -Wno-unused-command-line-argument")
ENDIF()
IF(ANDROID)

View file

@ -72,8 +72,8 @@ namespace NLGUI
bool link( NLMISC::CCDBNodeBranch *dbNode, const std::string &leafId, NLMISC::CCDBNodeLeaf *defaultLeaf = NULL );
/// float operations
void setDouble (double value) {setSInt64((sint64&) value);}
double getDouble () const {sint64 i = getSInt64(); return (double &) i; }
void setDouble(double value);
double getDouble() const;
void readDouble (const char* value, const std::string& id);
/// sint32 operations

View file

@ -40,20 +40,20 @@ public:
/// Return the value of the property.
inline sint64 getValue64() { return _Property; }
inline sint64 getValue64() const { return _Property; }
/// Set the value of the property (set '_Changed' flag with 'true').
void setValue64 (sint64 prop);
inline sint32 getValue32() { return *((sint32*)&_Property); }
inline sint32 getValue32() const { return (sint32)(_Property & 0xffffffff); }
void setValue32 (sint32 prop);
inline sint16 getValue16() { return *((sint16*)&_Property); }
inline sint16 getValue16() const { return (sint16)(_Property & 0xffff); }
void setValue16 (sint16 prop);
inline sint8 getValue8() { return *((sint8*)&_Property); }
inline sint8 getValue8() const { return (sint8)(_Property & 0xff); }
void setValue8 (sint8 prop);
inline bool getValueBool() { return (_Property!=(sint64)0 ); }
inline bool getValueBool() const { return (_Property!=(sint64)0 ); }
void setValueBool (bool prop);
inline CRGBA getValueRGBA()
inline CRGBA getValueRGBA() const
{
CRGBA col;
col.R = (uint8)(_Property&0xff);
@ -65,11 +65,11 @@ public:
void setValueRGBA (const CRGBA &color);
/// Return the value of the property before the database change
inline sint64 getOldValue64() { return _oldProperty; }
inline sint32 getOldValue32() { return *((sint32*)&_oldProperty); }
inline sint16 getOldValue16() { return *((sint16*)&_oldProperty); }
inline sint8 getOldValue8() { return *((sint8*)&_oldProperty); }
inline bool getOldValueBool() { return (_oldProperty!=(sint64)0 ); }
inline sint64 getOldValue64() const { return _oldProperty; }
inline sint32 getOldValue32() const { return (sint32)(_oldProperty & 0xffffffff); }
inline sint16 getOldValue16() const { return (sint16)(_oldProperty & 0xffff); }
inline sint8 getOldValue8() const { return (sint8)(_oldProperty & 0xff); }
inline bool getOldValueBool() const { return (_oldProperty!=(sint64)0 ); }
/// Return the type of the property.

View file

@ -478,6 +478,22 @@ template <class T> void explode (const T &src, const T &sep, std::vector<T> &res
while(pos != std::string::npos);
}
/** Join a string (or ucstring) from a vector of strings with *sep* as separator. If sep can be more than 1 char, in this case,
* we find the entire sep to separator (it s not a set of possible separator)
*/
template <class T, class U> void join(const std::vector<T>& strings, const U& separator, T &res)
{
res.clear();
for (uint i = 0, len = strings.size(); i<len; ++i)
{
// add in separators before all but the first string
if (!res.empty()) res += separator;
// append next string
res += strings[i];
}
}
/* All the code above is used to add our types (uint8, ...) in the stringstream (used by the toString() function).
* So we can use stringstream operator << and >> with all NeL simple types (except for ucchar and ucstring)

View file

@ -61,7 +61,7 @@ struct TMessageRecord
{
nlassert( stream.stringMode() );
uint32 len;
uint32 len = 0;
std::string s_event;
stream.serial( UpdateCounter );
if ( stream.isReading() )

View file

@ -26,6 +26,12 @@ using namespace std;
namespace NLGUI
{
// helper to convert double <> sint64
union C64BitsParts
{
sint64 i64;
double d;
};
bool CInterfaceProperty::link( CCDBNodeLeaf *dbNode )
{
@ -66,6 +72,20 @@ namespace NLGUI
}
void CInterfaceProperty::setDouble(double value)
{
C64BitsParts parts;
parts.d = value;
setSInt64(parts.i64);
}
double CInterfaceProperty::getDouble() const
{
C64BitsParts parts;
parts.i64 = getSInt64();
return parts.d;
}
// *****************
// sint64 operations
// *****************
@ -104,10 +124,9 @@ namespace NLGUI
if ( isdigit(*ptr) || *ptr=='-')
{
_VolatileValue = NLGUI::CDBManager::getInstance()->getDbProp(id);
double buf;
fromString(ptr, buf);
sint64 i = *(sint64*)&buf;
_VolatileValue->setValue64( i );
C64BitsParts buf;
fromString(ptr, buf.d);
_VolatileValue->setValue64(buf.i64);
}
else
{

View file

@ -632,6 +632,9 @@ CEvalNumExpr::TReturnState CEvalNumExpr::evalExpression (double &finalResult, TT
TOperator resultUnaryOp[InternalOperator];
vector<TOperator> resultUnaryOpSup;
// init table
for (uint i = 0; i < (uint)InternalOperator; ++i) resultUnaryOp[i] = NotOperator;
// Current value
double value;

View file

@ -1387,13 +1387,10 @@ uint64 CSystemInfo::availableHDSpace (const string &filename)
std::string path = CFile::getPath(filename);
#ifdef NL_OS_UNIX
struct stat stst;
struct statfs stfs;
if (::statfs(path.c_str(), &stfs) != 0) return 0;
if (::stat(path.c_str(), &stst) == -1) return 0;
if (::statfs(path.c_str(), &stfs) == -1) return 0;
return (uint64)(stfs.f_bavail * stst.st_blksize);
return (uint64)(stfs.f_bavail * stfs.f_bsize);
#else
ULARGE_INTEGER freeSpace = {0};
BOOL bRes = ::GetDiskFreeSpaceExW(utf8ToWide(path), &freeSpace, NULL, NULL);

View file

@ -212,8 +212,8 @@ namespace NLNET
{
// name is more deep, need to resurse
parts.erase(parts.begin());
CSString subName;
subName.join(reinterpret_cast<CVectorSString&>(parts), ".");
std::string subName;
join(parts, ".", subName);
sub->setParam(subName, value);
}
else

View file

@ -53,7 +53,7 @@ bool CDatabaseConfig::init(const std::string &asset)
TPathString configPath = rootPath + "/database.cfg";
while (!CFile::fileExists(configPath))
{
int sep = CFile::getLastSeparator(rootPath);
std::string::size_type sep = CFile::getLastSeparator(rootPath);
if (sep == string::npos)
return false;

View file

@ -65,7 +65,7 @@ bool CProjectConfig::init(const std::string &asset, Flags flags, bool partial)
TPathString configPath = rootPath + "/nel.cfg";
while (!CFile::fileExists(configPath))
{
int sep = CFile::getLastSeparator(rootPath);
std::string::size_type sep = CFile::getLastSeparator(rootPath);
if (sep == string::npos)
return false;
@ -82,7 +82,7 @@ bool CProjectConfig::init(const std::string &asset, Flags flags, bool partial)
std::vector<TPathString> configRootPaths;
TPathString projectConfigPath;
uint32 projectConfigModification;
uint32 projectConfigModification = 0;
std::string projectName;
if (partial)
{

View file

@ -139,7 +139,7 @@ bool CMaxToLigo::loadLigoConfigFile (CLigoConfig& config, Interface& it, bool di
try
{
// Load the config file
config.readConfigFile (sModulePath, false);
config.readConfigFile (tStrToUtf8(sModulePath), false);
// ok
return true;

View file

@ -151,7 +151,7 @@ Value* export_material_cf (Value** arg_list, int count)
nlassert (node);
// The second arg
const char *fileName = arg_list[1]->to_string();
const std::string fileName = tStrToUtf8(arg_list[1]->to_string());
// The third arg
bool checkOnly = (arg_list[2]->to_bool() != FALSE);
@ -204,12 +204,7 @@ Value* export_material_cf (Value** arg_list, int count)
{
// Make a name for the zone
char drive[512];
char dir[512];
char name[512];
char path[512];
_splitpath (fileName, drive, dir, name, NULL);
_makepath (path, drive, dir, name, ".zone");
std::string path = CFile::getPath(fileName) + CFile::getFilenameWithoutExtension(fileName) + ".zone";
// Ok ?
bool ok = true;
@ -322,7 +317,7 @@ Value* export_transition_cf (Value** arg_list, int count)
nlassert (is_array(nodes));
// The second arg
const char *fileName = arg_list[1]->to_string();
std::string fileName = tStrToUtf8(arg_list[1]->to_string());
// The second arg
string matFilename[2];
@ -505,10 +500,7 @@ Value* export_transition_cf (Value** arg_list, int count)
for (zone=0; zone<CTransition::TransitionZoneCount; zone++)
{
// Final path
char path[512];
_splitpath (fileName, drive, dir, path, NULL);
sprintf (name, "%s-%d", path, zone);
_makepath (path, drive, dir, name, ".zone");
std::string path = CFile::getPath(fileName) + toString("%s-%u", CFile::getFilenameWithoutExtension(fileName).c_str(), zone) + ".zone";
// Another the stream
COFile outputfile2;
@ -1072,30 +1064,17 @@ Value* export_zone_cf (Value** arg_list, int count)
else
{
// Build a filename
char drive[512];
char path[512];
char finalpath[512];
char name[512];
char ext[512];
_splitpath (fileName.c_str(), drive, path, name, ext);
std::string path = NLMISC::CFile::getPath(fileName);
std::string name = NLMISC::CFile::getFilenameWithoutExtension(fileName);
// Build the zone filename
char outputFilenameZone[512];
strcpy (finalpath, path);
strcat (finalpath, "zones\\");
_makepath (outputFilenameZone, drive, finalpath, name, ".zone");
std::string outputFilenameZone = path + "zones/" + name + ".zone";
// Build the snap shot filename
char outputFilenameSnapShot[512];
strcpy (finalpath, path);
strcat (finalpath, "zoneBitmaps\\");
_makepath (outputFilenameSnapShot, drive, finalpath, name, ".tga");
std::string outputFilenameSnapShot = path + "zonesBitmaps/" + name + ".tga";
// Build the ligozone filename
char outputFilenameLigozone[512];
strcpy (finalpath, path);
strcat (finalpath, "zoneLigos\\");
_makepath (outputFilenameLigozone, drive, finalpath, name, ".ligozone");
std::string outputFilenameLigozone = path + "zoneLigos/" + name + ".ligozone";
// Build the zone
CZone zone;
@ -1179,12 +1158,12 @@ Value* export_zone_cf (Value** arg_list, int count)
if (weWantToMakeASnapshot)
{
CIFile fileFarBank;
char drive[512];
char path[512];
char name[512];
char farBankPathName[512];
_splitpath (GetBankPathName ().c_str (), drive, path, name, NULL);
_makepath (farBankPathName, drive, path, name, "farbank");
std::string path = NLMISC::CFile::getPath(GetBankPathName());
std::string name = NLMISC::CFile::getFilenameWithoutExtension(GetBankPathName());
std::string farBankPathName = path + name + ".farbank";
if (fileFarBank.open (farBankPathName))
{
// Create an xml stream
@ -1908,11 +1887,9 @@ Value* make_snapshot_cf (Value** arg_list, int count)
else
{
// Build a filename
char drivetga[512];
char pathtga[512];
char nametga[512];
char exttga[512];
_splitpath (fileName.c_str(), drivetga, pathtga, nametga, exttga);
std::string nametga = CFile::getFilenameWithoutExtension(fileName);
std::string pathtga = CFile::getPath(fileName);
// Build the zone
CZone zone;
@ -1956,12 +1933,9 @@ Value* make_snapshot_cf (Value** arg_list, int count)
if (tileBank != NULL)
{
CIFile fileFarBank;
char drive[512];
char path[512];
char name[512];
char farBankPathName[512];
_splitpath (GetBankPathName ().c_str (), drive, path, name, NULL);
_makepath (farBankPathName, drive, path, name, "farbank");
std::string name = CFile::getFilenameWithoutExtension(GetBankPathName());
std::string farBankPathName = CFile::getPath(GetBankPathName()) + name + ".farbank";
if (fileFarBank.open (farBankPathName))
{
// Create an xml stream
@ -1974,8 +1948,7 @@ Value* make_snapshot_cf (Value** arg_list, int count)
if (MakeSnapShot (snapshot, *tileBank, *tileFarBank, xMin, xMax, yMin, yMax, config, errorInDialog))
{
// Build the snap shot filename
char outputFilenameSnapShot[512];
_makepath (outputFilenameSnapShot, drivetga, pathtga, nametga, ".tga");
std::string outputFilenameSnapShot = pathtga + nametga + ".tga";
// Output the snap shot
COFile outputSnapShot;
@ -2014,12 +1987,14 @@ Value* make_snapshot_cf (Value** arg_list, int count)
bankElm.addCategory (strlwr (categories[j].first), strlwr (categories[j].second));
}
// Catch exception
#if 0
// Write the zone
COFile outputLigoZone;
std::string outputFilenameSnapShot = pathtga + nametga + ".tga";
_makepath (outputFilenameSnapShot, drivetga, pathtga, nametga, ".ligozone");
// Catch exception
/*try
try
{
// Open the selected zone file
if (outputLigoZone.open (outputFilenameSnapShot))
@ -2048,7 +2023,8 @@ Value* make_snapshot_cf (Value** arg_list, int count)
char tmp[512];
smprintf (tmp, 512, "Error while loading the file %s : %s", fileName, e.what());
CMaxToLigo::errorMessage (tmp, "NeL Ligo export zone", *MAXScript_interface, errorInDialog);
}*/
}
#endif
}
else
{

View file

@ -262,8 +262,7 @@ void CAnimationSetDlg::refresh (BOOL update)
for (i=0; i<object->Saved.AnimationFileName.size(); i++)
{
// Get the animation name
char name[512];
_splitpath (object->Saved.AnimationFileName[i].c_str(), NULL, NULL, name, NULL);
std::string name = NLMISC::CFile::getFilenameWithoutExtension(object->Saved.AnimationFileName[i]);
// Get the animation pointer
CAnimation *anim = object->AnimationSet.getAnimation (object->AnimationSet.getAnimationIdByName (name));
@ -314,8 +313,7 @@ void CAnimationSetDlg::refresh (BOOL update)
for (i=0; i<object->Saved.SWTFileName.size(); i++)
{
// Get the animation name
char name[512];
_splitpath (object->Saved.SWTFileName[i].c_str(), NULL, NULL, name, NULL);
std::string name = NLMISC::CFile::getFilenameWithoutExtension(object->Saved.SWTFileName[i]);
// Get the animation pointer
CSkeletonWeight *swt = object->AnimationSet.getSkeletonWeight (object->AnimationSet.getSkeletonWeightIdByName (name));

View file

@ -84,21 +84,9 @@ bool CEditMorphMeshDlg::getShapeNameFromDlg(std::string &name)
CFileDialog fd(TRUE, _T(".shape"), _T("*.shape"), 0, NULL, this);
if (fd.DoModal() == IDOK)
{
// Add to the path
/*
char drive[256];
char dir[256];
char path[256];
char fname[256];
char ext[256];
*/
// Add search path for the texture
/*
_splitpath (fd.GetPathName(), drive, dir, fname, ext);
_makepath (path, drive, dir, NULL, NULL);
NLMISC::CPath::addSearchPath (path);
NLMISC::CPath::addSearchPath (NLMISC::CFile::getPath(tStrToUtf8(fd.GetPathName()));
*/
name = tStrToUtf8(fd.GetPathName());

View file

@ -317,7 +317,7 @@ inline void CEditableRangeT<float>::value2CString(float value, CString &dest)
inline const TCHAR *CEditableRangeT<float>::string2value(const CString &value, float &result)
{
if (sscanf((LPCTSTR) value, "%f", &result) == 1)
if (NLMISC::fromString(tStrToUtf8(value), result))
{
return NULL;
}
@ -343,8 +343,8 @@ inline void CEditableRangeT<uint32>::value2CString(uint32 value, CString &dest)
inline const TCHAR *CEditableRangeT<uint32>::string2value(const CString &value, uint32 &result)
{
uint32 tmp;
if (sscanf((LPCTSTR) value, "%d", &tmp) == 1)
sint32 tmp;
if (NLMISC::fromString(tStrToUtf8(value), tmp))
{
if (strchr((LPCTSTR) value, '-'))
{
@ -379,8 +379,8 @@ inline void CEditableRangeT<sint32>::value2CString(sint32 value, CString &dest)
inline const TCHAR *CEditableRangeT<sint32>::string2value(const CString &value, sint32 &result)
{
uint32 tmp;
if (sscanf((LPCTSTR) value, "%d", &tmp) == 1)
sint32 tmp;
if (NLMISC::fromString(tStrToUtf8(value), tmp))
{
result = tmp;
return NULL;

View file

@ -137,7 +137,7 @@ void CLocatedTargetDlg::OnRemoveTarget()
m_Targets.DeleteString(indexs[k] - k);
int l = m_AvailableTargets.AddString(utf8ToTStr(loc->getName()));
m_AvailableTargets.SetItemData(l, (DWORD) loc);
m_AvailableTargets.SetItemData(l, (DWORD_PTR) loc);
}
UpdateData(FALSE);
updateModifiedFlag();
@ -159,8 +159,8 @@ BOOL CLocatedTargetDlg::OnInitDialog()
// fill the box thta tells us what the target are
for(k = 0; k < nbTarg; ++k)
{
m_Targets.AddString(_LBTarget->getTarget(k)->getName().c_str() );
m_Targets.SetItemData(k, (DWORD) _LBTarget->getTarget(k) );
m_Targets.AddString(utf8ToTStr(_LBTarget->getTarget(k)->getName()));
m_Targets.SetItemData(k, (DWORD_PTR) _LBTarget->getTarget(k));
targetSet.insert(_LBTarget->getTarget(k));
};
@ -179,8 +179,8 @@ BOOL CLocatedTargetDlg::OnInitDialog()
{
if (targetSet.find(loc) == targetSet.end())
{
int l = m_AvailableTargets.AddString(loc->getName().c_str() );
m_AvailableTargets.SetItemData(l, (DWORD) loc );
int l = m_AvailableTargets.AddString(utf8ToTStr(loc->getName()));
m_AvailableTargets.SetItemData(l, (DWORD_PTR) loc);
}
}
}

View file

@ -94,22 +94,17 @@ void CMeshDlg::OnBrowseShape()
if (fd.DoModal() == IDOK)
{
// Add to the path
char drive[256];
char dir[256];
char path[256];
char fname[256];
char ext[256];
std::string fullPath = tStrToUtf8(fd.GetPathName());
std::string fname = NLMISC::CFile::getFilenameWithoutExtension(fullPath);
std::string ext = NLMISC::CFile::getExtension(fullPath);
// Add search path for the texture
_splitpath (fd.GetPathName(), drive, dir, fname, ext);
_makepath (path, drive, dir, NULL, NULL);
NLMISC::CPath::addSearchPath (path);
NLMISC::CPath::addSearchPath (NLMISC::CFile::getPath(fullPath));
try
{
_ShapeParticle->setShape(std::string(fname) + ext);
m_ShapeName = (std::string(fname) + ext).c_str();
_ShapeParticle->setShape(fname + "." + ext);
m_ShapeName = utf8ToTStr(fname + "." + ext);
touchPSState();
}
catch (const NLMISC::Exception &e)
@ -162,7 +157,7 @@ void CMeshDlg::updateForMorph()
GetDlgItem(IDC_SHAPE_NAME)->EnableWindow(!enable);
if (!enable)
{
m_ShapeName = cm->getShape().c_str();
m_ShapeName = utf8ToTStr(cm->getShape());
}
else
{

View file

@ -188,6 +188,7 @@ void CMultiTexDlg::readValues(bool alternate)
}
}
GetDlgItem(IDC_BUMP_FACTOR)->SetWindowText(utf8ToTStr(NLMISC::toString("%.3f", _MTP->getBumpFactor())));
}
@ -206,7 +207,6 @@ void CMultiTexDlg::writeValues(bool alternate)
TCHAR u1[10], u2[10], v1[10], v2[10];
NLMISC::CVector2f vs1, vs2;
if (!alternate)
{
GetDlgItem(IDC_U_SPEED_1)->GetWindowText(u1, 10);

View file

@ -852,8 +852,8 @@ BOOL CParticleTreeCtrl::OnCmdMsg(UINT nID, int nCode, void* pExtra, AFX_CMDHA
nt = new CNodeType(nt->Loc, objIndex);
_NodeTypes.push_back(nt);
// insert the element in the tree
HTREEITEM root = InsertItem(TVIF_IMAGE | TVIF_SELECTEDIMAGE | TVIF_PARAM | TVIF_TEXT, "instance", PSIconLocatedInstance, PSIconLocatedInstance, 0, 0, (LPARAM) nt, GetSelectedItem(), TVI_LAST);
SetItemData(root, (DWORD) nt);
HTREEITEM root = InsertItem(TVIF_IMAGE | TVIF_SELECTEDIMAGE | TVIF_PARAM | TVIF_TEXT, _T("instance"), PSIconLocatedInstance, PSIconLocatedInstance, 0, 0, (LPARAM) nt, GetSelectedItem(), TVI_LAST);
SetItemData(root, (DWORD_PTR) nt);
Invalidate();
}
break;

View file

@ -159,7 +159,7 @@ void CPickSound::OnDblclkList()
stopCurrSource();
CString sName;
m_NameList.GetText(curSel, sName);
_CurrSource = CSoundSystem::create(std::string( (LPCTSTR) sName));
_CurrSource = CSoundSystem::create(tStrToUtf8(sName));
}
//========================================================================================

View file

@ -178,8 +178,8 @@ BOOL CPSMoverDlg::OnInitDialog()
{
if (dynamic_cast<NL3D::IPSMover *>(_EditedLocated->getBoundObject(k)))
{
uint insertedLine = m_SubComponentCtrl.AddString(_EditedLocated->getBoundObject(k)->getName().c_str());
m_SubComponentCtrl.SetItemData(insertedLine, (DWORD) _EditedLocated->getBoundObject(k));
uint insertedLine = m_SubComponentCtrl.AddString(utf8ToTStr(_EditedLocated->getBoundObject(k)->getName()));
m_SubComponentCtrl.SetItemData(insertedLine, (DWORD_PTR) _EditedLocated->getBoundObject(k));
++nbCandidates;
}
}

View file

@ -843,13 +843,13 @@ void CSkeletonScaleDlg::OnSsdButtonSaveas()
return;
// choose the file
CFileDialog fd(FALSE, "skel", _SkeletonFileName.c_str(), OFN_OVERWRITEPROMPT, "SkelFiles (*.skel)|*.skel|All Files (*.*)|*.*||", this) ;
fd.m_ofn.lpstrTitle= "Save As Skeleton";
CFileDialog fd(FALSE, _T("skel"), utf8ToTStr(_SkeletonFileName), OFN_OVERWRITEPROMPT, _T("SkelFiles (*.skel)|*.skel|All Files (*.*)|*.*||"), this) ;
fd.m_ofn.lpstrTitle = _T("Save As Skeleton");
if (fd.DoModal() == IDOK)
{
NLMISC::COFile f;
if( f.open((const char*)fd.GetPathName()) )
if( f.open(tStrToUtf8(fd.GetPathName())) )
{
if(saveCurrentInStream(f))
{
@ -859,7 +859,7 @@ void CSkeletonScaleDlg::OnSsdButtonSaveas()
}
// bkup the valid fileName (new file edited)
_SkeletonFileName= (const char*)fd.GetPathName();
_SkeletonFileName= tStrToUtf8(fd.GetPathName());
_StaticFileName= _SkeletonFileName.c_str();
UpdateData(FALSE);
}

View file

@ -196,7 +196,7 @@ void CVegetableDlg::updateCurSelVegetableName()
_Vegetables[id].updateVegetableName();
// replace name in the listBox: must delete, and re-insert
VegetableList.DeleteString(id);
VegetableList.InsertString(id, _Vegetables[id].VegetableName.c_str());
VegetableList.InsertString(id, utf8ToTStr(_Vegetables[id].VegetableName));
VegetableList.SetCurSel(id);
}
}
@ -349,14 +349,14 @@ bool CVegetableDlg::loadVegetableSet(NL3D::CTileVegetableDesc &vegetSet, const
ok= true;
if( f.open((const char*)fd.GetPathName()) )
if( f.open(tStrToUtf8(fd.GetPathName())))
{
try
{
// read the vegetable
f.serial(vegetSet);
// bkup fileName.
_LastVegetSetName= (const char*)fd.GetFileName();
_LastVegetSetName = tStrToUtf8(fd.GetFileName());
}
catch(const NLMISC::EStream &)
{
@ -439,7 +439,7 @@ void CVegetableDlg::appendVegetableSet(NL3D::CTileVegetableDesc &vegetSet)
_Vegetables[id].initVegetable(veget);
// update view
VegetableList.AddString(_Vegetables[id].VegetableName.c_str());
VegetableList.AddString(utf8ToTStr(_Vegetables[id].VegetableName));
}
}
}
@ -529,7 +529,7 @@ void CVegetableDlg::OnButtonVegetableAdd()
_Vegetables[id].initDefaultVegetable();
// update view
VegetableList.AddString(_Vegetables[id].VegetableName.c_str());
VegetableList.AddString(utf8ToTStr(_Vegetables[id].VegetableName));
// update 3D view
refreshVegetableDisplay();
@ -559,7 +559,7 @@ void CVegetableDlg::OnButtonVegetableInsert()
_Vegetables[id].initDefaultVegetable();
// update view
VegetableList.InsertString(id, _Vegetables[id].VegetableName.c_str());
VegetableList.InsertString(id, utf8ToTStr(_Vegetables[id].VegetableName));
// update 3D view
refreshVegetableDisplay();
@ -611,7 +611,7 @@ void CVegetableDlg::OnButtonVegetableLoadDesc()
{
NLMISC::CIFile f;
if( f.open((const char*)fd.GetPathName()) )
if( f.open(tStrToUtf8(fd.GetPathName())) )
{
NL3D::CVegetable veget;
try
@ -624,7 +624,7 @@ void CVegetableDlg::OnButtonVegetableLoadDesc()
_Vegetables[id].initVegetable(veget);
// update view
VegetableList.AddString(_Vegetables[id].VegetableName.c_str());
VegetableList.AddString(utf8ToTStr(_Vegetables[id].VegetableName));
// update 3D view
refreshVegetableDisplay();
@ -651,13 +651,13 @@ void CVegetableDlg::OnButtonVegetableSaveDesc()
std::string fileName= _Vegetables[id].VegetableName + ".vegetdesc";
CFileDialog fd(FALSE, "vegetdesc", fileName.c_str(), OFN_OVERWRITEPROMPT, "VegetDescFiles (*.vegetdesc)|*.vegetdesc|All Files (*.*)|*.*||", this) ;
fd.m_ofn.lpstrTitle= "Save Vegetable Descriptor";
CFileDialog fd(FALSE, _T("vegetdesc"), utf8ToTStr(fileName), OFN_OVERWRITEPROMPT, _T("VegetDescFiles (*.vegetdesc)|*.vegetdesc|All Files (*.*)|*.*||"), this) ;
fd.m_ofn.lpstrTitle = _T("Save Vegetable Descriptor");
if (fd.DoModal() == IDOK)
{
NLMISC::COFile f;
if( f.open((const char*)fd.GetPathName()) )
if( f.open(tStrToUtf8(fd.GetPathName())) )
{
try
{
@ -722,13 +722,13 @@ void CVegetableDlg::OnButtonVegetableSaveSet()
buildVegetableSet(vegetSet);
// Then try to save it.
CFileDialog fd(FALSE, "vegetset", _LastVegetSetName.c_str(), OFN_OVERWRITEPROMPT, "VegetSetFiles (*.vegetset)|*.vegetset|All Files (*.*)|*.*||", this) ;
fd.m_ofn.lpstrTitle= "Save Vegetable Set";
CFileDialog fd(FALSE, _T("vegetset"), utf8ToTStr(_LastVegetSetName), OFN_OVERWRITEPROMPT, _T("VegetSetFiles (*.vegetset)|*.vegetset|All Files (*.*)|*.*||"), this) ;
fd.m_ofn.lpstrTitle = _T("Save Vegetable Set");
if (fd.DoModal() == IDOK)
{
NLMISC::COFile f;
if( f.open((const char*)fd.GetPathName()) )
if( f.open(tStrToUtf8(fd.GetPathName())) )
{
try
{

View file

@ -33,7 +33,7 @@ void CDirectEditableRangeFloat::init(uint32 x, uint32 y, CWnd *pParent)
CRect rect;
rect.SetRect(x, y+10, x+dx, y+25);
_StaticText.Create(_Title.c_str(), WS_CHILD | WS_VISIBLE, rect, pParent);
_StaticText.Create(utf8ToTStr(_Title), WS_CHILD | WS_VISIBLE, rect, pParent);
_StaticText.SetFont(pParent->GetFont());
}

View file

@ -154,7 +154,7 @@ BOOL CVegetableNoiseValueDlg::OnInitDialog()
// Set the name.
NoiseValueName.SetWindowText(_TitleName.c_str());
NoiseValueName.SetWindowText(utf8ToTStr(_TitleName));
// if previously setuped, setup now the noiseValue.
@ -264,7 +264,5 @@ void CVegetableNoiseValueDlg::applyScaleSlider(sint scrollValue)
_RandValue->updateValueFromReader();
// update marker text
char str[256];
sprintf(str, "%d%%", (sint)(factor*100));
StaticScaleMarker.SetWindowText(str);
StaticScaleMarker.SetWindowText(utf8ToTStr(NLMISC::toString("%d%%", (sint)(factor * 100))));
}

View file

@ -63,7 +63,7 @@ BOOL CVegetableSelectDlg::OnInitDialog()
uint num= _VegetableDlg->getNumVegetables();
for(uint i=0; i<num; i++)
{
VegetableList.AddString(_VegetableDlg->getVegetableName(i).c_str());
VegetableList.AddString(utf8ToTStr(_VegetableDlg->getVegetableName(i)));
}
return TRUE; // return TRUE unless you set the focus to a control

View file

@ -70,26 +70,22 @@ END_MESSAGE_MAP()
void CVegetableWindDlg::updateView()
{
float a;
char str[256];
// update Power.
a= _ObjViewer->getVegetableWindPower();
sprintf(str, "%.2f", a);
StaticPower.SetWindowText(str);
StaticPower.SetWindowText(utf8ToTStr(NLMISC::toString("%.2f", a)));
NLMISC::clamp(a, 0, NL_VEGETABLE_EDIT_WIND_MAX_POWER);
SliderPower.SetPos((sint)(a*NL_VEGETABLE_EDIT_WIND_SLIDER_RANGE / NL_VEGETABLE_EDIT_WIND_MAX_POWER));
// update BendStart.
a= _ObjViewer->getVegetableWindBendStart();
sprintf(str, "%.2f", a);
StaticBendStart.SetWindowText(str);
StaticBendStart.SetWindowText(utf8ToTStr(NLMISC::toString("%.2f", a)));
NLMISC::clamp(a, 0, NL_VEGETABLE_EDIT_WIND_MAX_BENDSTART);
SliderBendStart.SetPos((sint)(a*NL_VEGETABLE_EDIT_WIND_SLIDER_RANGE / NL_VEGETABLE_EDIT_WIND_MAX_BENDSTART));
// update Frequency.
a= _ObjViewer->getVegetableWindFrequency();
sprintf(str, "%.2f", a);
StaticFrequency.SetWindowText(str);
StaticFrequency.SetWindowText(utf8ToTStr(NLMISC::toString("%.2f", a)));
NLMISC::clamp(a, 0, NL_VEGETABLE_EDIT_WIND_MAX_FREQUENCY);
SliderFrequency.SetPos((sint)(a*NL_VEGETABLE_EDIT_WIND_SLIDER_RANGE / NL_VEGETABLE_EDIT_WIND_MAX_FREQUENCY));
@ -129,28 +125,24 @@ void CVegetableWindDlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBa
&& nSBCode==SB_THUMBPOSITION || nSBCode==SB_THUMBTRACK)
{
float a;
char str[256];
if(sliderCtrl == &SliderPower)
{
a= (float)nPos * NL_VEGETABLE_EDIT_WIND_MAX_POWER / NL_VEGETABLE_EDIT_WIND_SLIDER_RANGE;
_ObjViewer->setVegetableWindPower(a);
sprintf(str, "%.2f", a);
StaticPower.SetWindowText(str);
StaticPower.SetWindowText(utf8ToTStr(NLMISC::toString("%.2f", a)));
}
else if(sliderCtrl == &SliderBendStart)
{
a= (float)nPos * NL_VEGETABLE_EDIT_WIND_MAX_BENDSTART / NL_VEGETABLE_EDIT_WIND_SLIDER_RANGE;
_ObjViewer->setVegetableWindBendStart(a);
sprintf(str, "%.2f", a);
StaticBendStart.SetWindowText(str);
StaticBendStart.SetWindowText(utf8ToTStr(NLMISC::toString("%.2f", a)));
}
else if(sliderCtrl == &SliderFrequency)
{
a= (float)nPos * NL_VEGETABLE_EDIT_WIND_MAX_FREQUENCY / NL_VEGETABLE_EDIT_WIND_SLIDER_RANGE;
_ObjViewer->setVegetableWindFrequency(a);
sprintf(str, "%.2f", a);
StaticFrequency.SetWindowText(str);
StaticFrequency.SetWindowText(utf8ToTStr(NLMISC::toString("%.2f", a)));
}
}
else

View file

@ -165,9 +165,8 @@ BOOL CWaterPoolEditor::OnInitDialog()
int CWaterPoolEditor::addPool(uint32 ID)
{
char poolId[128];
sprintf(poolId, "%d (%s)", ID, _Wpm->getPoolByID(ID).getName().c_str());
int index = m_PoolList.AddString(poolId);
std::string poolId = NLMISC::toString("%d (%s)", ID, _Wpm->getPoolByID(ID).getName().c_str());
int index = m_PoolList.AddString(utf8ToTStr(poolId));
nlassert(index != LB_ERR);
m_PoolList.SetItemData(index, ID);
return index;
@ -358,7 +357,7 @@ void CWaterPoolEditor::OnLoadPool()
{
NLMISC::CIXml iXml;
NLMISC::CIFile iF;
if (iF.open((LPCTSTR) fileDlg.GetPathName()))
if (iF.open(tStrToUtf8(fileDlg.GetPathName())))
{
if (iXml.init (iF))
{
@ -370,17 +369,17 @@ void CWaterPoolEditor::OnLoadPool()
else
{
iF.close();
MessageBox (("Unable to init xml stream from file : " + std::string((LPCTSTR) fileDlg.GetPathName())).c_str(), "NeL object viewer", MB_OK|MB_ICONEXCLAMATION);
MessageBox (utf8ToTStr(NLMISC::toString("Unable to init xml stream from file: %s", tStrToUtf8(fileDlg.GetPathName()).c_str())), _T("NeL object viewer"), MB_OK|MB_ICONEXCLAMATION);
}
}
else
{
MessageBox (("Unable to open file : " + std::string((LPCTSTR) fileDlg.GetPathName())).c_str(), "NeL object viewer", MB_OK|MB_ICONEXCLAMATION);
MessageBox (utf8ToTStr(NLMISC::toString("Unable to open file: %s", tStrToUtf8(fileDlg.GetPathName()).c_str())), _T("NeL object viewer"), MB_OK|MB_ICONEXCLAMATION);
}
}
catch (const NLMISC::Exception& e)
{
MessageBox (e.what(), "NeL object viewer", MB_OK|MB_ICONEXCLAMATION);
MessageBox (utf8ToTStr(e.what()), _T("NeL object viewer"), MB_OK|MB_ICONEXCLAMATION);
}
}
}
@ -396,7 +395,7 @@ void CWaterPoolEditor::OnSavePool()
{
NLMISC::COXml oXml;
NLMISC::COFile oF;
if (oF.open((LPCTSTR) fileDlg.GetPathName()))
if (oF.open(tStrToUtf8(fileDlg.GetPathName())))
{
if (oXml.init (&oF))
{
@ -407,17 +406,17 @@ void CWaterPoolEditor::OnSavePool()
else
{
oF.close();
MessageBox (("Unable to init xml stream from file : " + std::string((LPCTSTR) fileDlg.GetPathName())).c_str(), "NeL object viewer", MB_OK|MB_ICONEXCLAMATION);
MessageBox (utf8ToTStr(NLMISC::toString("Unable to init xml stream from file: %s", tStrToUtf8(fileDlg.GetPathName()).c_str())), _T("NeL object viewer"), MB_OK|MB_ICONEXCLAMATION);
}
}
else
{
MessageBox (("Unable to open file : " + std::string((LPCTSTR) fileDlg.GetPathName())).c_str(), "NeL object viewer", MB_OK|MB_ICONEXCLAMATION);
MessageBox (utf8ToTStr(NLMISC::toString("Unable to open file: %s", tStrToUtf8(fileDlg.GetPathName()).c_str())), _T("NeL object viewer"), MB_OK|MB_ICONEXCLAMATION);
}
}
catch (const NLMISC::Exception& e)
{
MessageBox (e.what(), "NeL object viewer", MB_OK|MB_ICONEXCLAMATION);
MessageBox (utf8ToTStr(e.what()), _T("NeL object viewer"), MB_OK|MB_ICONEXCLAMATION);
}
}

View file

@ -325,14 +325,14 @@ static INT_PTR CALLBACK CNelExportDlgProc(HWND hWnd, UINT msg, WPARAM wParam, LP
// Name of the node
char sNodeMsg[256];
nlwarning (sNodeMsg, "Save %s model...", pNode->GetName());
nlwarning (sNodeMsg, "Save %s model...", tStrToUtf8(pNode->GetName()).c_str());
// It is a zone ?
if (RPO::isZone (*pNode, time))
{
// Save path
char sSavePath[256];
strcpy (sSavePath, pNode->GetName());
strcpy (sSavePath, tStrToUtf8(pNode->GetName()).c_str());
// Choose a file to export
if (!CExportNel::getScriptAppData (pNode, NEL3D_APPDATA_DONTEXPORT, 0))
@ -342,24 +342,22 @@ static INT_PTR CALLBACK CNelExportDlgProc(HWND hWnd, UINT msg, WPARAM wParam, LP
if (!theCNelExport.exportZone (sSavePath, *pNode, time))
{
// Error message
char sErrorMsg[512];
sprintf (sErrorMsg, "Error exporting the zone %s in the file\n%s", pNode->GetName(), sSavePath);
MessageBox (hWnd, sErrorMsg, "NeL export", MB_OK|MB_ICONEXCLAMATION);
std::string sErrorMsg = toString("Error exporting the zone %s in the file\n%s", tStrToUtf8(pNode->GetName()).c_str(), sSavePath);
MessageBox (hWnd, utf8ToTStr(sErrorMsg), L"NeL export", MB_OK|MB_ICONEXCLAMATION);
}
}
}
else if (CExportNel::isVegetable (*pNode, time))
{
// Save path
char sSavePath[256];
strcpy (sSavePath, pNode->GetName());
std::string sSavePath = tStrToUtf8(pNode->GetName());
// Choose a file to export
if (!CExportNel::getScriptAppData (pNode, NEL3D_APPDATA_DONTEXPORT, 0))
if (theCNelExport.SelectFileForSave(hWnd, sNodeMsg, vegetableFilter, sSavePath))
if (theCNelExport.SelectFileForSave(hWnd, sNodeMsg, vegetableFilter, sSavePath.c_str()))
{
// Export the mesh
if (!theCNelExport.exportVegetable (sSavePath, *pNode, time))
if (!theCNelExport.exportVegetable (sSavePath.c_str(), *pNode, time))
{
// Error message
char sErrorMsg[512];

View file

@ -99,7 +99,7 @@ bool CNelExport::exportMesh (const char *sPath, INode& node, TimeValue time)
{
// Open a file
COFile file;
if (file.open(tempFileName))
if (file.open(tStrToUtf8(tempFileName)))
{
try
{

View file

@ -2338,24 +2338,24 @@ INT_PTR CALLBACK MiscDialogCallback (
currentParam->LigoSymmetry = SendMessage (GetDlgItem (hwndDlg, IDC_LIGO_SYMMETRY), BM_GETCHECK, 0, 0);
TCHAR tmp[512];
GetWindowText (GetDlgItem (hwndDlg, IDC_LIGO_ROTATE), tmp, 512);
currentParam->LigoRotate = tmp;
currentParam->LigoRotate = tStrToUtf8(tmp);
// SWT
currentParam->SWT = SendMessage (GetDlgItem (hwndDlg, IDC_SWT), BM_GETCHECK, 0, 0);
GetWindowText (GetDlgItem (hwndDlg, IDC_SWT_WEIGHT), tmp, 512);
currentParam->SWTWeight = tmp;
currentParam->SWTWeight = tStrToUtf8(tmp);
// Radial normals
for (uint smoothGroup=0; smoothGroup<NEL3D_RADIAL_NORMAL_COUNT; smoothGroup++)
{
HWND edit = GetDlgItem (hwndDlg, IDC_RADIAL_NORMAL_29+smoothGroup);
GetWindowText (edit, tmp, 512);
currentParam->RadialNormals[smoothGroup]=tmp;
currentParam->RadialNormals[smoothGroup] = tStrToUtf8(tmp);
}
// mesh interfaces
GetWindowText (GetDlgItem (hwndDlg, IDC_EDIT_INTERFACE_FILE), tmp, 512);
currentParam->InterfaceFileName=tmp;
currentParam->InterfaceFileName = tStrToUtf8(tmp);
GetWindowText (GetDlgItem (hwndDlg, IDC_EDIT_INTERFACE_THRESHOLD), tmp, 512);
if (strlen(tmp) != 0)
currentParam->InterfaceThreshold = toFloatMax(tmp);
@ -2365,7 +2365,7 @@ INT_PTR CALLBACK MiscDialogCallback (
// Skeleton Scale
currentParam->ExportBoneScale= SendMessage( GetDlgItem(hwndDlg, IDC_EXPORT_BONE_SCALE), BM_GETCHECK, 0, 0);
GetWindowText (GetDlgItem (hwndDlg, IDC_EXPORT_BONE_SCALE_NAME_EXT), tmp, 512);
currentParam->ExportBoneScaleNameExt = wideToUtf8(tmp);
currentParam->ExportBoneScaleNameExt = tStrToUtf8(tmp);
// remanence
currentParam->UseRemanence = SendMessage (GetDlgItem (hwndDlg, IDC_USE_REMANENCE), BM_GETCHECK, 0, 0);
@ -2373,7 +2373,7 @@ INT_PTR CALLBACK MiscDialogCallback (
GetWindowText (GetDlgItem (hwndDlg, IDC_REMANENCE_SLICE_NUMBER), tmp, 512);
uint rsn;
if (sscanf(tmp, "%d", &rsn) == 1)
if (NLMISC::fromString(tStrToUtf8(tmp), rsn))
{
currentParam->RemanenceSliceNumber = rsn;
}

View file

@ -111,15 +111,13 @@ void regsiterOVPath ()
if (!hModule) { ::MessageBox(NULL, "'hModule' failed at '" __FUNCTION__ "' in file '" __FILE__ " on line " NL_MACRO_TO_STR(__LINE__), "NeL Export", MB_OK | MB_ICONERROR); return; }
char sModulePath[256];
int res = GetModuleFileName(hModule, sModulePath, 256);
if (!res) { ::MessageBox(NULL, "'res' failed at '" __FUNCTION__ "' in file '" __FILE__ " on line " NL_MACRO_TO_STR(__LINE__), "NeL Export", MB_OK | MB_ICONERROR); return; }
char SDrive[512];
char SDir[512];
_splitpath (sModulePath, SDrive, SDir, NULL, NULL);
_makepath (sModulePath, SDrive, SDir, "object_viewer", ".cfg");
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";
// Load the config file
CConfigFile cf;
cf.load (sModulePath);
cf.load (modulePath);
try
{
@ -367,7 +365,7 @@ void CNelExport::viewMesh (TimeValue time)
INode* pNode=_Ip->GetSelNode (nNode);
string sTmp = "Object Name: ";
sTmp += pNode->GetName();
sTmp += tStrToUtf8(pNode->GetName());
ProgBar.setLine (0, sTmp);
sTmp.clear();
for (uint32 i = 1; i < 10; ++i)
@ -412,7 +410,7 @@ void CNelExport::viewMesh (TimeValue time)
if (pShape)
{
// Add the shape in the view
uint instance = view->addMesh (pShape, pNode->GetName(), iteSkelShape->second.SkeletonInstance);
uint instance = view->addMesh (pShape, tStrToUtf8(pNode->GetName()).c_str(), iteSkelShape->second.SkeletonInstance);
// Add tracks
CAnimation *anim=new CAnimation;

View file

@ -128,7 +128,7 @@ void SLightBuild::convertFromMaxLight (INode *node,TimeValue tvTime)
if (maxLight->EvalLightState(tvTime, valid, &ls)!=REF_SUCCEED)
return;
this->Name = node->GetName();
this->Name = tStrToUtf8(node->GetName());
// Retrieve the correct light Group Name
this->AnimatedLight = CExportNel::getAnimatedLight (node);
@ -295,7 +295,7 @@ void SLightBuild::convertFromMaxLight (INode *node,TimeValue tvTime)
INode *exclNode = exclusionList[i];
if (exclNode) // Crashfix // FIXME: Why is this NULL?
{
string tmp = exclNode->GetName();
string tmp = tStrToUtf8(exclNode->GetName());
this->setExclusion.insert(tmp);
}
}
@ -1930,7 +1930,7 @@ void supprLightNoInteractOne( vector<SLightBuild> &vLights, CMesh::CMeshBuild* p
{
bool bInteract = false;
if( vLights[i].setExclusion.find( node.GetName() ) != vLights[i].setExclusion.end() )
if( vLights[i].setExclusion.find(tStrToUtf8(node.GetName()) ) != vLights[i].setExclusion.end() )
{
bInteract = false;
}
@ -2005,7 +2005,7 @@ void CExportNel::deleteLM(INode& ZeNode)
string sSaveName;
sSaveName = _Options.sExportLighting;
if( sSaveName[sSaveName.size()-1] != '\\' ) sSaveName += "\\";
sSaveName += ZeNode.GetName();
sSaveName += tStrToUtf8(ZeNode.GetName());
char tmp[32];
sprintf( tmp, "%d", i );
sSaveName += tmp;
@ -2276,7 +2276,7 @@ bool CExportNel::calculateLM( CMesh::CMeshBuild *pZeMeshBuild, CMeshBase::CMeshB
{
string thetext;
thetext = "Warning ";
thetext += ZeNode.GetName();
thetext += tStrToUtf8(ZeNode.GetName());
thetext = "have all faces NOT mapped (UV2)";
if (gOptions.FeedBack != NULL)
{
@ -2325,11 +2325,11 @@ bool CExportNel::calculateLM( CMesh::CMeshBuild *pZeMeshBuild, CMeshBase::CMeshB
{
// Make an error message
string sTmp = "Warning : ";
sTmp += ZeNode.GetName();
sTmp += tStrToUtf8(ZeNode.GetName());
sTmp += " has mapping problem";
// Script trace
mprintf ((sTmp+"\n").c_str());
mprintf (utf8ToTStr((sTmp+"\n")));
// Feedback is here ?
if (gOptions.FeedBack != NULL)
@ -2525,12 +2525,12 @@ bool CExportNel::calculateLM( CMesh::CMeshBuild *pZeMeshBuild, CMeshBase::CMeshB
// Get the name of the max project
char projectName[512];
_splitpath (_Ip->GetCurFileName(), NULL, NULL, projectName, NULL);
_wsplitpath (_Ip->GetCurFileName(), NULL, NULL, utf8ToTStr(projectName), NULL);
// Add lightmap information in the lightmap log
COFile outputLog;
if (outputLightmapLog)
createLightmapLog (outputLog, gOptions.sExportLighting.c_str(), projectName, ZeNode.GetName());
createLightmapLog (outputLog, gOptions.sExportLighting.c_str(), projectName, tStrToUtf8(ZeNode.GetName()).c_str());
// Update UV coords to Texture space
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();
//string sSaveName = AllMeshBuilds[nNode].second->GetName();
string sSaveName = ZeNode.GetName();
string sSaveName = tStrToUtf8(ZeNode.GetName());
char tmp[32];
sSaveName += "_";
sprintf( tmp, "%d", nLightMapNb );
@ -2632,9 +2632,8 @@ bool CExportNel::calculateLM( CMesh::CMeshBuild *pZeMeshBuild, CMeshBase::CMeshB
{
if (gOptions.FeedBack != NULL)
{
char message[512];
sprintf (message, "Can't write the file %s : %s", sSaveName, e.what());
mprintf (message);
std::string message = toString("Can't write the file %s : %s", sSaveName.c_str(), e.what());
mprintf (utf8ToTStr(message));
}
}

View file

@ -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
for( j = 0; j < vMB.size(); ++j )
{
if (rLight.setExclusion.find (vINode[j]->GetName()) != rLight.setExclusion.end())
if (rLight.setExclusion.find (tStrToUtf8(vINode[j]->GetName())) != rLight.setExclusion.end())
continue;
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);
for( j = 0; j < vMB.size(); ++j )
{
if (rLight.setExclusion.find (vINode[j]->GetName()) != rLight.setExclusion.end())
if (rLight.setExclusion.find (tStrToUtf8(vINode[j]->GetName())) != rLight.setExclusion.end())
continue;
for (k = 0; k < vMB[j]->Faces.size(); ++k)

View file

@ -605,7 +605,7 @@ void CExportNel::addMorphTracks (NL3D::CAnimation& animation, INode& node, const
if (pNode == NULL)
continue;
std::string name = parentName;
name += pNode->GetName();
name += tStrToUtf8(pNode->GetName());
name += "MorphFactor";
IParamBlock *pb = (IParamBlock*)(pMorphMod->SubAnim (i+1));

View file

@ -73,7 +73,7 @@ CCollisionMeshBuild* CExportNel::createCollisionMeshBuild(std::vector<INode *> &
{
// get the mesh name
uint meshId = rootMeshNames.size();
rootMeshNames.push_back(nodes[node]->GetName());
rootMeshNames.push_back(tStrToUtf8(nodes[node]->GetName()));
bool collision = getScriptAppData (nodes[node], NEL3D_APPDATA_COLLISION, 0) != 0;
bool exterior = getScriptAppData (nodes[node], NEL3D_APPDATA_COLLISION_EXTERIOR, 0) != 0;

View file

@ -1142,22 +1142,6 @@ int CExportNel::getVertMapChannel (Texmap& texmap, Matrix3& channelMatrix, TimeV
// get the absolute or relative path from a texture filename
static std::string ConvertTexFileName(const std::string &path, bool _AbsolutePath)
{
/*// File name, maxlen 256 under windows
char sFileName[512];
strcpy (sFileName, src);
// Let absolute path ?
if (!_AbsolutePath)
{
// Decompose bitmap file name
char sName[256];
char sExt[256];
_splitpath (sFileName, NULL, NULL, sName, sExt);
// Make the final path
_makepath (sFileName, NULL, NULL, sName, sExt);
}
return std::string(sFileName);*/
if (_AbsolutePath)
{
return path;
@ -1271,7 +1255,7 @@ ITexture* CExportNel::buildATexture (Texmap& texmap, CMaterialDesc &remap3dsTexC
else // standard texture
{
srcTex = new CTextureFile;
std::string mapName = pBitmap->GetMapName();
std::string mapName = tStrToUtf8(pBitmap->GetMapName());
static_cast<CTextureFile *>(srcTex)->setFileName (ConvertTexFileName(mapName, _AbsolutePath));
}

View file

@ -266,7 +266,7 @@ NL3D::IShape *CExportNel::buildShape (INode& node, TimeValue time, const TInodeP
std::string nodeName=getScriptAppData (&node, NEL3D_APPDATA_LOD_NAME+lod, "");
// Get the node
INode *lodNode=_Ip->GetINodeByName(nodeName.c_str());
INode *lodNode=_Ip->GetINodeByName(utf8ToTStr(nodeName));
if (lodNode)
{
// Index of the lod in the build structure
@ -611,7 +611,7 @@ void CExportNel::buildBaseMeshInterface (NL3D::CMeshBase::CMeshBaseBuild& buildM
continue;
// get factor here !
buildMesh.DefaultBSFactors.push_back(0.0f);
std::string sTemp = pNode->GetName();
std::string sTemp = tStrToUtf8(pNode->GetName());
buildMesh.BSNames.push_back (sTemp);
}
@ -1063,9 +1063,8 @@ void CExportNel::buildMeshInterface (TriObject &tri, CMesh::CMeshBuild& buildMes
// Error code ?
if (error!=NoError)
{
char msg[512];
sprintf (msg, "%s skin: %s", getName (node).c_str(), ErrorMessage[error]);
MessageBox (NULL, msg, "NeL export", MB_OK|MB_ICONEXCLAMATION);
std::string msg = toString("%s skin: %s", getName (node).c_str(), ErrorMessage[error]);
MessageBoxW (NULL, utf8ToTStr(msg), L"NeL export", MB_OK|MB_ICONEXCLAMATION);
}
else
{
@ -1493,7 +1492,7 @@ void CExportNel::buildMeshMorph (CMesh::CMeshBuild& buildMesh, INode &node, Time
continue;
}
bs.Name = pNode->GetName();
bs.Name = tStrToUtf8(pNode->GetName());
bool bIsDeltaPos = false;
bs.deltaPos.resize (nNbVertVB, CVector::Null);

View file

@ -316,7 +316,7 @@ static void AddNodeToQuadGrid(const NLMISC::CAABBox &delimiter, TNodeFaceQG &des
{
if (delimiter.intersect(nodeBBox))
{
nldebug((std::string("Adding ") + node.GetName() + std::string(" to mesh interface quad grid")).c_str());
nldebug("Adding %s to mesh interface quad grid", tStrToUtf8(node.GetName()).c_str());
// add this node tris
ObjectState os = node.EvalWorldState(time);
Object *obj = os.obj;
@ -581,7 +581,7 @@ static bool BuildMeshInterfaces(const char *cMaxFileName, std::vector<CMeshInter
string newName = "NelAutoMergeRenamedTmp" + toString (i);
string originalName = (*lib)[i]->GetName ();
renameMap.insert (map<string, string>::value_type (newName, originalName));
(*lib)[i]->SetName (newName.c_str ());
(*lib)[i]->SetName (utf8ToTStr(newName));
}
// Merge the interface project
@ -614,7 +614,7 @@ static bool BuildMeshInterfaces(const char *cMaxFileName, std::vector<CMeshInter
string newName = "NelAutoMergeRenamed" + toString (i);
string originalName = (*lib)[i]->GetName ();
renameMap.insert (map<string, string>::value_type (newName, originalName));
(*lib)[i]->SetName (newName.c_str ());
(*lib)[i]->SetName (utf8ToTStr(newName));
}
}
@ -627,7 +627,7 @@ static bool BuildMeshInterfaces(const char *cMaxFileName, std::vector<CMeshInter
if (ite != renameMap.end ())
{
// Rename the material with its original name
(*lib)[i]->SetName (ite->second.c_str ());
(*lib)[i]->SetName (utf8ToTStr(ite->second));
}
}

View file

@ -265,7 +265,7 @@ Control* CExportNel::getControlerByName (Animatable& node, const char* sName)
ParamDef& paramDef=param->GetParamDef(id);
// Good name?
if (strcmp (paramDef.int_name, sName)==0)
if (strcmp (tStrToUtf8(paramDef.int_name).c_str(), sName)==0)
{
// ok, return this subanim
#if MAX_VERSION_MAJOR >= 14
@ -332,7 +332,7 @@ bool getValueByNameUsingParamBlock2Internal (Animatable& node, const char* sName
ParamDef& paramDef=param->GetParamDef(id);
// Good name?
if (strcmp (paramDef.int_name, sName)==0)
if (strcmp (tStrToUtf8(paramDef.int_name).c_str(), sName)==0)
{
// Check this value is good type
ParamType2 paramType = param->GetParameterType(id);
@ -372,7 +372,7 @@ bool getValueByNameUsingParamBlock2Internal (Animatable& node, const char* sName
break;
case TYPE_FILENAME:
case TYPE_STRING:
*(std::string*)pValue = param->GetStr (id, tvTime);
*(std::string*)pValue = tStrToUtf8(param->GetStr (id, tvTime));
bRes = TRUE;
break;
case TYPE_FILENAME_TAB:
@ -382,7 +382,7 @@ bool getValueByNameUsingParamBlock2Internal (Animatable& node, const char* sName
uint total = param->Count (id);
rTab.resize(total);
for( uint i = 0; i < total; ++i )
rTab[i] = param->GetStr (id, tvTime, i);
rTab[i] = tStrToUtf8(param->GetStr (id, tvTime, i));
bRes = TRUE;
}
break;
@ -511,8 +511,8 @@ std::string CExportNel::getName (MtlBase& mtl)
std::string CExportNel::getName(INode& node)
{
// Return its name
MCHAR* name = node.GetName();
return std::string(name);
const MCHAR* name = node.GetName();
return tStrToUtf8(name);
}
// --------------------------------------------------
@ -549,7 +549,7 @@ std::string CExportNel::getNelObjectName (INode& node)
}
else
{
return node.GetName();
return tStrToUtf8(node.GetName());
}
}
else
@ -561,29 +561,26 @@ std::string CExportNel::getNelObjectName (INode& node)
ad = obj->GetAppDataChunk (MAXSCRIPT_UTILITY_CLASS_ID, UTILITY_CLASS_ID, NEL3D_APPDATA_INSTANCE_SHAPE);
if (ad&&ad->data)
{
if (::strlen((const char *) ad->data) != 0)
if (_tcslen((const TCHAR *) ad->data) != 0)
{
// get file name only
char fName[_MAX_FNAME];
char ext[_MAX_FNAME];
::_splitpath((const char*)ad->data, NULL, NULL, fName, ext) ;
return std::string(fName + std::string(ext));
return NLMISC::CFile::getFilename(tStrToUtf8((const TCHAR*)ad->data));
}
else
{
return node.GetName();
return tStrToUtf8(node.GetName());
}
}
else
{
// Extract the node name
return node.GetName();
return tStrToUtf8(node.GetName());
}
}
else
{
// Extract the node name
return node.GetName();
return tStrToUtf8(node.GetName());
}
}
}
@ -763,17 +760,17 @@ bool CExportNel::hasLightMap (INode& node, TimeValue time)
// --------------------------------------------------
void CExportNel::outputErrorMessage (const char *message)
void CExportNel::outputErrorMessage(const std::string &message)
{
if (_ErrorInDialog)
{
MessageBox (_Ip->GetMAXHWnd(), message, _ErrorTitle.c_str(), MB_OK|MB_ICONEXCLAMATION);
MessageBoxW (_Ip->GetMAXHWnd(), utf8ToTStr(message), utf8ToTStr(_ErrorTitle), MB_OK|MB_ICONEXCLAMATION);
}
mprintf (message);
mprintf ("\n");
mprintf (utf8ToTStr(message));
mprintf (_T("\n"));
nlwarning ("Error in max file %s : ", _Ip->GetCurFilePath());
nlwarning (message);
nlwarning (message.c_str());
}
// --------------------------------------------------

View file

@ -667,8 +667,8 @@ public:
static void setScriptAppData (Animatable *node, uint32 id, NLMISC::CRGBA val);
// Output error message
void outputErrorMessage (const char *message);
void outputWarningMessage (const char *message);
void outputErrorMessage (const std::string &message);
void outputWarningMessage(const std::string &message);
// Get an appData VertexProgram WindTree (ensure same default values for all retrieve).

View file

@ -51,7 +51,7 @@ IShape* CExportNel::buildParticleSystem(INode& node, TimeValue time)
iF.serial(ss);
if (!dynamic_cast<CParticleSystemShape *>(ss.getShapePointer()))
{
mprintf("Error : Object shape %s isn't a particle system", shapeName.c_str());
mprintf(_T("Error : Object shape %s isn't a particle system"), utf8ToTStr(shapeName));
return NULL;
}
@ -78,7 +78,7 @@ IShape* CExportNel::buildParticleSystem(INode& node, TimeValue time)
}
else
{
mprintf("Error : Can't find %s while exporting a particle system \n", shapeName.c_str());
mprintf(_T("Error : Can't find %s while exporting a particle system \n"), utf8ToTStr(shapeName));
return NULL;
}
}

View file

@ -62,7 +62,7 @@ void CRadialVertices::init (INode *node, Mesh *mesh, TimeValue time, Interface &
_SmoothingGroupMask |= (1<<app);
// Get the node by name
INode *pivotNode = ip.GetINodeByName(pivotName.c_str());
INode *pivotNode = ip.GetINodeByName(utf8ToTStr(pivotName));
if (pivotNode)
{
// Get the world Pivot point

View file

@ -93,7 +93,7 @@ CInstanceGroup* CExportNel::buildInstanceGroup(const vector<INode*>& vectNode, v
resultInstanceNode[nNumIG] = pNode;
if (aIGArray[nNumIG].InstanceName == "") // no instance name was set, takes the node name instead
{
aIGArray[nNumIG].InstanceName = pNode->GetName();
aIGArray[nNumIG].InstanceName = tStrToUtf8(pNode->GetName());
}
// Visible? always true, but if special flag for camera collision
@ -236,10 +236,7 @@ CInstanceGroup* CExportNel::buildInstanceGroup(const vector<INode*>& vectNode, v
pMB->Vertices[pMB->Faces[j].Corner[2].Vertex]) )
{
// ERROR : The volume is not convex !!!
char tam[256];
sprintf(tam,"ERROR: The cluster %s is not convex.",vectNode[i]->GetName());
//MessageBox(NULL,tam,"Error",MB_OK|MB_ICONERROR);
nlwarning(tam);
nlwarning("ERROR: The cluster %s is not convex.", tStrToUtf8(vectNode[i]->GetName()).c_str());
}
}
@ -247,7 +244,7 @@ CInstanceGroup* CExportNel::buildInstanceGroup(const vector<INode*>& vectNode, v
clusterTemp.VisibleFromFather = bVisibleFromFather;
clusterTemp.FatherAudible = bFatherAudible;
clusterTemp.AudibleFromFather = bAudibleFromFather;
clusterTemp.Name = pNode->GetName();
clusterTemp.Name = tStrToUtf8(pNode->GetName());
vClusters.push_back (clusterTemp);
delete pMB; pMB = NULL;
@ -336,10 +333,7 @@ CInstanceGroup* CExportNel::buildInstanceGroup(const vector<INode*>& vectNode, v
if (!portalTemp.setPoly (polyv))
{
// ERROR : Poly not convex, or set of vertices not plane
char tam[256];
sprintf(tam,"ERROR: The portal %s is not convex.",vectNode[i]->GetName());
//MessageBox(NULL,tam,"Error",MB_OK|MB_ICONERROR);
nlwarning(tam);
nlwarning("ERROR: The portal %s is not convex.", tStrToUtf8(vectNode[i]->GetName()).c_str());
}
if (nAccelType&16) // is dynamic portal ?
@ -348,7 +342,7 @@ CInstanceGroup* CExportNel::buildInstanceGroup(const vector<INode*>& vectNode, v
if (!InstanceName.empty())
portalTemp.setName (InstanceName);
else
portalTemp.setName (string(pNode->GetName()));
portalTemp.setName (tStrToUtf8(pNode->GetName()));
}
// Check if portal has 2 cluster
@ -368,10 +362,7 @@ CInstanceGroup* CExportNel::buildInstanceGroup(const vector<INode*>& vectNode, v
if (nNbCluster != 2)
{
// ERROR
char tam[256];
sprintf(tam,"ERROR: The portal %s has not 2 clusters but %d",vectNode[i]->GetName(), nNbCluster);
//MessageBox(NULL,tam,"Error",MB_OK|MB_ICONERROR);
nlwarning(tam);
nlwarning("ERROR: The portal %s has not 2 clusters but %d", tStrToUtf8(vectNode[i]->GetName()).c_str(), nNbCluster);
}
@ -513,10 +504,7 @@ CInstanceGroup* CExportNel::buildInstanceGroup(const vector<INode*>& vectNode, v
if (vClusters.size() > 0)
if (aIGArray[nNumIG].Clusters.size() == 0)
{
char tam[256];
sprintf(tam,"ERROR: Object %s is not attached to any cluster\nbut his flag clusterize is set", pNode->GetName());
//MessageBox(NULL, tam, "Warning", MB_OK);
nlwarning(tam);
nlwarning("ERROR: Object %s is not attached to any cluster\nbut his flag clusterize is set", tStrToUtf8(pNode->GetName()).c_str());
}
// debug purpose : to remove
@ -712,7 +700,7 @@ void CExportNel::buildScene (NL3D::CScene &scene, NL3D::CShapeBank &shapeBank, I
if ( (!pNode->IsHidden () || buildHidden) && (pNode->Selected () || !onlySelected) )
{
string sTmp = "Object Name: ";
sTmp += pNode->GetName();
sTmp += tStrToUtf8(pNode->GetName());
if (progress)
progress->setLine (0, sTmp);
sTmp.clear();

View file

@ -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);
vl.parser = new Parser;
vl.source = new StringStream (const_cast<char *>(script));
vl.source = new StringStream (utf8ToTStr(script));
vl.source->log_to(NULL);
save_current_frames();
try
@ -125,7 +125,7 @@ float CExportNel::getScriptAppData (Animatable *node, uint32 id, float def)
// String to int
float value = 0.f;
if (toFloatMax((const char*)ap->data, value))
if (toFloatMax((const TCHAR*)ap->data, value))
return value;
else
return def;

View file

@ -114,7 +114,7 @@ INode *CExportNel::getNELScaleReferenceNode(INode &node)
{
std::string boneScaleName= getName(node) + boneScaleNameExt;
// Get the reference node
referenceNode= _Ip->GetINodeByName(boneScaleName.c_str());
referenceNode= _Ip->GetINodeByName(utf8ToTStr(boneScaleName));
}
}
@ -455,7 +455,7 @@ uint CExportNel::buildSkinning (CMesh::CMeshBuild& buildMesh, const TInodePtrInt
nlassert ((uint)ite->second<buildMesh.BonesNames.size());
// Names
buildMesh.BonesNames[ite->second] = ite->first->GetName();
buildMesh.BonesNames[ite->second] = tStrToUtf8(ite->first->GetName());
// Next
ite++;
@ -1306,7 +1306,7 @@ static sint getBoneSide(INode *bone, std::string &mirrorName)
{
sint side= 0;
sint pos;
mirrorName= bone->GetName();
mirrorName = tStrToUtf8(bone->GetName());
if((pos= mirrorName.find(" R "))!=std::string::npos)
{
@ -1335,7 +1335,7 @@ static INode *getMirrorBone(const std::vector<INode*> &skeletonNodes, INode *bon
// find
for(uint i=0;i<skeletonNodes.size();i++)
{
if(mirrorName == skeletonNodes[i]->GetName())
if(mirrorName == tStrToUtf8(skeletonNodes[i]->GetName()))
return skeletonNodes[i];
}
}

View file

@ -450,7 +450,7 @@ public:
}
catch (const NLMISC::EStream& excp)
{
MessageBox (NULL, excp.what(), "Load error", MB_OK|MB_ICONEXCLAMATION);
MessageBox (NULL, utf8ToTStr(excp.what()), _T("Load error"), MB_OK|MB_ICONEXCLAMATION);
}
}
return _bank;

View file

@ -193,7 +193,7 @@ bool RPatchMesh::exportZone(INode* pNode, PatchMesh* pPM, NL3D::CZone& zone, CZo
}
catch (const EStream& e)
{
MessageBox (NULL, stream.what(), _T("Error"), MB_OK|MB_ICONEXCLAMATION);
MessageBox (NULL, utf8ToTStr(e.what()), _T("Error"), MB_OK|MB_ICONEXCLAMATION);
}
}
}
@ -253,25 +253,22 @@ bool RPatchMesh::exportZone(INode* pNode, PatchMesh* pPM, NL3D::CZone& zone, CZo
if (!patchError.empty())
{
// Make an error message
char error[2098];
smprintf (error, 2098, "Error: triple edge detected in ");
std::string error = "Error: triple edge detected in ";
// For each error
set<uint>::iterator ite=patchError.begin();
while (ite!=patchError.end())
{
// Sub error message
char subError[512];
smprintf (subError, 512, "patch %d ", (*ite)+1);
strcat (error, subError);
error += toString("patch %d ", (*ite)+1);
// Next error
ite++;
}
// Show the message
mprintf (error);
nlwarning (error);
mprintf (utf8ToTStr(error));
nlwarning (error.c_str());
// Error
return false;
@ -612,7 +609,7 @@ bool RPatchMesh::exportZone(INode* pNode, PatchMesh* pPM, NL3D::CZone& zone, CZo
uint i;
for (i=0; i<error.Errors.size (); i++)
{
mprintf (error.Errors[i].c_str ());
mprintf (utf8ToTStr(error.Errors[i]));
}
return false;
}

View file

@ -3992,7 +3992,7 @@ void EPM_PaintCMode::DoPaint ()
}
catch (const EStream& stream)
{
MessageBox (NULL, stream.what(), "Error", MB_OK|MB_ICONEXCLAMATION);
MessageBox (NULL, utf8ToTStr(stream.what()), _T("Error"), MB_OK|MB_ICONEXCLAMATION);
}
}
}
@ -4058,20 +4058,18 @@ bool loadLigoConfigFile (CLigoConfig& config, Interface& it)
if (hModule)
{
// Get the path
char sModulePath[256];
TCHAR sModulePath[256];
int res=GetModuleFileName(hModule, sModulePath, 256);
// Success ?
if (res)
{
// Path
char sDrive[256];
char sDir[256];
_splitpath (sModulePath, sDrive, sDir, NULL, NULL);
_makepath (sModulePath, sDrive, sDir, "ligoscape", ".cfg");
std::string modulePath = NLMISC::CFile::getPath(tStrToUtf8(sModulePath));
try
{
// Load the config file
config.readConfigFile (sModulePath, false);
config.readConfigFile (modulePath, false);
// ok
return true;
}

View file

@ -242,7 +242,7 @@ void CTileSetCont::build (CTileBank& bank, uint tileSet)
if (!dmwarn)
{
dmwarn = true;
MessageBox(NULL, "Tile bank not loaded, or bad tile bank. Missing a displacement tile. Use the tile bank utility to load the correct tilebank.", "NeL Patch Paint", MB_OK | MB_ICONWARNING);
MessageBox(NULL, _T("Tile bank not loaded, or bad tile bank. Missing a displacement tile. Use the tile bank utility to load the correct tilebank."), _T("NeL Patch Paint"), MB_OK | MB_ICONWARNING);
}
continue; // with next displace
}
@ -409,24 +409,17 @@ void LoadKeyCfg ()
HMODULE hModule = hInstance;
if (hModule)
{
char sModulePath[256];
TCHAR sModulePath[256];
int res=GetModuleFileName(hModule, sModulePath, 256);
if (res)
{
// split path
char drive[256];
char dir[256];
_splitpath (sModulePath, drive, dir, NULL, NULL);
// Make a new path
char cgfPath[256];
_makepath (cgfPath, drive, dir, "keys", ".cfg");
std::string cfgPath = NLMISC::CFile::getPath(tStrToUtf8(sModulePath)) + "keys.cfg";
CConfigFile cf;
// Load and parse "test.txt" file
cf.load (cgfPath);
cf.load (cfgPath);
// For each keys
for (uint key=0; key<KeyCounter; key++)
@ -458,23 +451,18 @@ void LoadVarCfg ()
HMODULE hModule = hInstance;
if (hModule)
{
char sModulePath[256];
TCHAR sModulePath[256];
int res=GetModuleFileName(hModule, sModulePath, 256);
if (res)
{
// split path
char drive[256];
char dir[256];
_splitpath (sModulePath, drive, dir, NULL, NULL);
// Make a new path
char cgfPath[256];
_makepath (cgfPath, drive, dir, "keys", ".cfg");
std::string cfgPath = NLMISC::CFile::getPath(tStrToUtf8(sModulePath)) + "keys.cfg";
CConfigFile cf;
// Load and parse "test.txt" file
cf.load (cgfPath);
cf.load (cfgPath);
// go
try

View file

@ -72,7 +72,7 @@ class Tile_utilityClassDesc:public ClassDesc2
{
return &theTile_utility;
}
const TCHAR * ClassName() {return "NeL Tile Bank";}
const TCHAR * ClassName() {return _T("NeL Tile Bank");}
SClass_ID SuperClassID() {return UTILITY_CLASS_ID;}
Class_ID ClassID() {return TILE_UTILITY_CLASS_ID;}
const TCHAR* Category() {return _T("NeL Tools");}
@ -96,7 +96,7 @@ static INT_PTR CALLBACK Tile_utilityDlgProc(HWND hWnd, UINT msg, WPARAM wParam,
if (hModule)
{
// Get module file name
char moduldeFileName[512];
TCHAR moduldeFileName[512];
if (GetModuleFileName (hModule, moduldeFileName, 512))
{
// Get version info size
@ -112,15 +112,15 @@ static INT_PTR CALLBACK Tile_utilityDlgProc(HWND hWnd, UINT msg, WPARAM wParam,
{
uint *versionTab;
uint versionSize;
if (VerQueryValue (buffer, "\\", (void**)&versionTab, &versionSize))
if (VerQueryValue (buffer, _T("\\"), (void**)&versionTab, &versionSize))
{
// Get the pointer on the structure
VS_FIXEDFILEINFO *info=(VS_FIXEDFILEINFO*)versionTab;
if (info)
{
// Setup version number
char version[512];
sprintf (version, "Version %d.%d.%d.%d",
TCHAR version[512];
_tcprintf (version, "Version %d.%d.%d.%d",
info->dwFileVersionMS>>16,
info->dwFileVersionMS&0xffff,
info->dwFileVersionLS>>16,
@ -128,25 +128,25 @@ static INT_PTR CALLBACK Tile_utilityDlgProc(HWND hWnd, UINT msg, WPARAM wParam,
SetWindowText (GetDlgItem (hWnd, IDC_VERSION), version);
}
else
SetWindowText (GetDlgItem (hWnd, IDC_VERSION), "VS_FIXEDFILEINFO * is NULL");
SetWindowText (GetDlgItem (hWnd, IDC_VERSION), _T("VS_FIXEDFILEINFO * is NULL"));
}
else
SetWindowText (GetDlgItem (hWnd, IDC_VERSION), "VerQueryValue failed");
SetWindowText (GetDlgItem (hWnd, IDC_VERSION), _T("VerQueryValue failed"));
}
else
SetWindowText (GetDlgItem (hWnd, IDC_VERSION), "GetFileVersionInfo failed");
SetWindowText (GetDlgItem (hWnd, IDC_VERSION), _T("GetFileVersionInfo failed"));
// Free the buffer
delete [] buffer;
}
else
SetWindowText (GetDlgItem (hWnd, IDC_VERSION), "GetFileVersionInfoSize failed");
SetWindowText (GetDlgItem (hWnd, IDC_VERSION), _T("GetFileVersionInfoSize failed"));
}
else
SetWindowText (GetDlgItem (hWnd, IDC_VERSION), "GetModuleFileName failed");
SetWindowText (GetDlgItem (hWnd, IDC_VERSION), _T("GetModuleFileName failed"));
}
else
SetWindowText (GetDlgItem (hWnd, IDC_VERSION), "hInstance NULL");
SetWindowText (GetDlgItem (hWnd, IDC_VERSION), _T("hInstance NULL"));
theTile_utility.Init(hWnd);
@ -168,7 +168,7 @@ static INT_PTR CALLBACK Tile_utilityDlgProc(HWND hWnd, UINT msg, WPARAM wParam,
{
case IDC_BANK_PATH:
{
static char sPath[256];
static TCHAR sPath[256];
static bool bFirst=false;
if (!bFirst)
{
@ -178,7 +178,7 @@ static INT_PTR CALLBACK Tile_utilityDlgProc(HWND hWnd, UINT msg, WPARAM wParam,
OPENFILENAME ofn;
ofn.lStructSize=sizeof (ofn);
ofn.hwndOwner=NULL;
ofn.lpstrFilter="Rykol bank files (*.bank)\0*.bank\0All Files (*.*)\0*.*\0";
ofn.lpstrFilter = _T("Rykol bank files (*.bank)\0*.bank\0All Files (*.*)\0*.*\0");
ofn.lpstrCustomFilter=NULL;
ofn.nMaxCustFilter=0;
ofn.nFilterIndex=0;
@ -187,7 +187,7 @@ static INT_PTR CALLBACK Tile_utilityDlgProc(HWND hWnd, UINT msg, WPARAM wParam,
ofn.lpstrFileTitle=NULL;
ofn.nMaxFileTitle=NULL;
ofn.lpstrInitialDir=NULL;
ofn.lpstrTitle="Choose a bank file";
ofn.lpstrTitle = _T("Choose a bank file");
ofn.Flags=OFN_ENABLESIZING|OFN_FILEMUSTEXIST;
ofn.nFileOffset=0;
ofn.nFileExtension=0;
@ -197,7 +197,7 @@ static INT_PTR CALLBACK Tile_utilityDlgProc(HWND hWnd, UINT msg, WPARAM wParam,
ofn.lpTemplateName=0;
if (GetOpenFileName(&ofn))
{
theTile_utility.Load (sPath);
theTile_utility.Load (tStrToUtf8(sPath));
theTile_utility.SetLand (theTile_utility.Land);
theTile_utility.SetupUI ();
}
@ -223,7 +223,7 @@ static INT_PTR CALLBACK Tile_utilityDlgProc(HWND hWnd, UINT msg, WPARAM wParam,
case IDC_SETUP:
{
if (!theTile_utility.SetupMaterial ())
MessageBox (NULL, "Select some nel patch object..", "Rykol tile", MB_OK|MB_ICONEXCLAMATION);
MessageBox (NULL, _T("Select some nel patch object.."), _T("Rykol tile"), MB_OK|MB_ICONEXCLAMATION);
}
}
}
@ -291,9 +291,8 @@ void Tile_utility::Load (const std::string& path)
CIFile file;
if (!file.open (path))
{
char tmp[1024];
sprintf (tmp, "File not found: %s", path);
MessageBox (NULL, tmp, "Error..", MB_OK|MB_ICONEXCLAMATION);
std::string tmp = toString("File not found: %s", path.c_str());
MessageBox (NULL, utf8ToTStr(tmp), _T("Error.."), MB_OK|MB_ICONEXCLAMATION);
}
else
{
@ -304,9 +303,8 @@ void Tile_utility::Load (const std::string& path)
}
catch (const EStream &stream)
{
char tmp[1024];
sprintf (tmp, "Error while loading %s:\n\n%s", path, stream.what());
MessageBox (NULL, tmp, "Error..", MB_OK|MB_ICONEXCLAMATION);
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);
}
}
@ -368,32 +366,29 @@ void Tile_utility::SetupUI ()
if (Bank.getLandCount())
{
// Button text
char sName[256];
_splitpath (Path.c_str(), NULL, NULL, sName, NULL);
char *sName2=sName;
if (*sName2)
*sName2=toupper (*sName2);
sName2++;
while (*sName2)
std::string name = toLower(NLMISC::CFile::getFilenameWithoutExtension(Path));
if (!name.empty())
{
*sName2=tolower (*sName2);
sName2++;
std::string upName = toUpper(name);
name[0] = upName[0];
}
SetWindowText (hwnd, sName);
SetWindowText (hwnd, utf8ToTStr(name));
// Static text
char sTmp[256];
sprintf (sTmp, "%d diffuse tiles.", Bank.getNumBitmap (CTile::diffuse));
TCHAR sTmp[256];
_tcprintf (sTmp, "%d diffuse tiles.", Bank.getNumBitmap (CTile::diffuse));
SetWindowText (hwndStatic1, sTmp);
sprintf (sTmp, "%d additive tiles.", Bank.getNumBitmap (CTile::additive));
_tcprintf (sTmp, "%d additive tiles.", Bank.getNumBitmap (CTile::additive));
SetWindowText (hwndStatic2, sTmp);
}
else
{
SetWindowText (hwnd, "Click to choose a bank..");
SetWindowText (hwndStatic1, "");
SetWindowText (hwndStatic2, "");
SetWindowText (hwndStatic3, "");
SetWindowText (hwnd, _T("Click to choose a bank.."));
SetWindowText (hwndStatic1, _T(""));
SetWindowText (hwndStatic2, _T(""));
SetWindowText (hwndStatic3, _T(""));
}
}
}
@ -412,7 +407,7 @@ bool Tile_utility::SetupMaterial () const
// Multi
MultiMtl* multi=NewDefaultMultiMtl();
multi->SetNumSubMtls (Bank.getTileCount()+1);
multi->SetName ("Rykol Bank");
multi->SetName (_T("Rykol Bank"));
// Default mtl
Mtl* firstMtl=multi->GetSubMtl (0);
@ -420,7 +415,7 @@ bool Tile_utility::SetupMaterial () const
// Mtl param
firstMtl->SetDiffuse (Color (0.5f,0.5f,0.5f), t);
firstMtl->SetAmbient (Color (0,0,0), t);
firstMtl->SetName ("Rykol Tile Default");
firstMtl->SetName (_T("Rykol Tile Default"));
firstMtl->SetShininess (0.0, t);
firstMtl->SetSpecular (Color (0,0,0), t);
@ -439,7 +434,7 @@ bool Tile_utility::SetupMaterial () const
// Mtl param
mtl->SetDiffuse (Color (1.f,1.f,1.f), t);
mtl->SetAmbient (Color (0,0,0), t);
mtl->SetName ("Rykol Tile");
mtl->SetName (_T("Rykol Tile"));
mtl->SetShininess (0.0, t);
mtl->SetSpecular (Color (0,0,0), t);
@ -461,7 +456,7 @@ bool Tile_utility::SetupMaterial () const
tex->SetAlphaSource (ALPHA_NONE);
tex->SetAlphaAsMono (FALSE);
tex->SetAlphaAsRGB (FALSE);
tex->SetMapName (const_cast<char*>((Bank.getAbsPath()+tile->getRelativeFileName(CTile::diffuse)).c_str()));
tex->SetMapName (utf8ToTStr(Bank.getAbsPath() + tile->getRelativeFileName(CTile::diffuse)));
// Assign BitmapTex
rgb->SetSubTexmap (0, tex);
@ -481,7 +476,7 @@ bool Tile_utility::SetupMaterial () const
tex->SetAlphaSource (ALPHA_NONE);
tex->SetAlphaAsMono (FALSE);
tex->SetAlphaAsRGB (FALSE);
tex->SetMapName (const_cast<char*>((Bank.getAbsPath()+tile->getRelativeFileName(CTile::additive)).c_str()));
tex->SetMapName (utf8ToTStr(Bank.getAbsPath() + tile->getRelativeFileName(CTile::additive)));
// Assign BitmapTex
rgb->SetSubTexmap (1, tex);

View file

@ -889,11 +889,11 @@ void Browse::OnBatchLoad ()
if (sFile.DoModal()==IDOK)
{
char sDrive[256];
char sPath[256];
char sName[256];
char sExt[256];
_splitpath (sFile.GetPathName(), sDrive, sPath, sName, sExt);
std::string fullPath = tStrToUtf8(sFile.GetPathName());
std::string path = NLMISC::CFile::getPath(fullPath);
std::string filename = NLMISC::CFile::getFilenameWithoutExtension(fullPath);
std::string ext = NLMISC::CFile::getExtension(fullPath);
// look for some numbers..
char *sNumber=sName+strlen(sName)-1;
@ -925,11 +925,9 @@ void Browse::OnBatchLoad ()
for (int rot=0; rot<4; rot++)
{
// Try to load a tile with a file name like /tiletransition0.tga
char sName2[256];
char sFinal[256];
sprintf (sName2, "%s%02d", sName, (int)transition);
_makepath (sFinal, sDrive, sPath, sName2, sExt);
FILE *pFile=fopen (sFinal, "rb");
std::string sFinal = path + toString("%s%02d.%s", filename.c_str(), (int)transition, ext.c_str());
FILE *pFile = nlfopen (sFinal, "rb");
// Close the file and add the tile if opened
if (pFile)
@ -961,11 +959,9 @@ void Browse::OnBatchLoad ()
if (tileBank2.getTile (trans->getTile())->getRelativeFileName (m_ctrl.Texture==1?CTile::diffuse:CTile::additive).empty())
{
// Try to load a tile with a file name like /tiletransition0.tga
char sName2[256];
char sFinal[256];
sprintf (sName2, "%s%02d", sName, (int)transition);
_makepath (sFinal, sDrive, sPath, sName2, sExt);
FILE *pFile=fopen (sFinal, "rb");
std::string sFinal = path + toString("%s%02d.%s", filename.c_str(), (int)transition, ext.c_str());
FILE *pFile = nlfopen (sFinal, "rb");
// Close the file and add the tile if opened
if (pFile)

View file

@ -25,15 +25,15 @@
#include "SelectionTerritoire.h"
#include "View.h"
#define REGKEY_TILEDIT "Software\\Nevrax\\Nel\\Tile_Edit"
#define REGKEY_BUTTONZOOM "Zoom button"
#define REGKEY_BUTTONVARIETY "Zoom variety"
#define REGKEY_BUTTONTEXTURE "Texture button"
#define REGKEY_BUTTONSORT "Sort button"
#define REGKEY_BUTTONTEXTINFO "Info button"
#define REGKEY_LISTCOMBOBOX "List type combo box"
#define REGKEY_WNDPL "Window placement"
#define REGKEY_LASTPATH "Last path"
#define REGKEY_TILEDIT _T("Software\\Nevrax\\Nel\\Tile_Edit")
#define REGKEY_BUTTONZOOM _T("Zoom button")
#define REGKEY_BUTTONVARIETY _T("Zoom variety")
#define REGKEY_BUTTONTEXTURE _T("Texture button")
#define REGKEY_BUTTONSORT _T("Sort button")
#define REGKEY_BUTTONTEXTINFO _T("Info button")
#define REGKEY_LISTCOMBOBOX _T("List type combo box")
#define REGKEY_WNDPL _T("Window placement")
#define REGKEY_LASTPATH _T("Last path")
#define SCROLL_MAX 50000

View file

@ -386,12 +386,8 @@ void SelectionTerritoire::OnSelect()
list2->AddString(tileBank.getTileSet(i)->getName().c_str());
}
char drive[256],name[256],path[256],ext[256];
_splitpath(temp,drive,path,name,ext);
MainFileName = name;
MainFileName += ext;
DefautPath = drive;
DefautPath += path;
MainFileName = CString(utf8ToTStr(NLMISC::CFile::getFilename(temp)));
DefautPath = CString(utf8ToTStr(NLMISC::CFile::getPath(temp)));
MainFileOk = 1;
CButton *button = (CButton*)GetDlgItem(IDC_ADD_TERRITOIRE);
@ -468,12 +464,10 @@ void SelectionTerritoire::OnSaveAs()
button->EnableWindow(true);
// Create a file name
char drive[256],name[256],path[256],ext[256];
_splitpath(sFile.GetPathName(), drive, path, name, ext);
MainFileName = name;
MainFileName += ext;
DefautPath = drive;
DefautPath += path;
std::string temp = tStrToUtf8(sFile.GetPathName());
MainFileName = CString(utf8ToTStr(NLMISC::CFile::getFilename(temp)));
DefautPath = CString(utf8ToTStr(NLMISC::CFile::getPath(temp)));
}
}

View file

@ -417,9 +417,8 @@ int TileList::setTileTransition (int tile, const std::string& name, NL3D::CTile:
else
{
// Error: bitmap not in the absolute path..
char msg[512];
sprintf (msg, "The bitmap %s is not in the absolute path %s.", name.c_str(), tileBank2.getAbsPath ().c_str());
MessageBox (NULL, msg, "Load error", MB_OK|MB_ICONEXCLAMATION);
std::string msg = NLMISC::toString("The bitmap %s is not in the absolute path %s.", name.c_str(), tileBank2.getAbsPath ().c_str());
MessageBox (NULL, utf8ToTStr(msg), _T("Load error"), MB_OK|MB_ICONEXCLAMATION);
}
return 1;
@ -438,14 +437,14 @@ int TileList::setDisplacement (int tile, const std::string& name)
theListDisplacement[tile].loaded=0;
if (!_LoadBitmap(tileBank2.getAbsPath() + troncated, &theListDisplacement[tile].BmpInfo, theListDisplacement[tile].Bits, NULL, 0))
MessageBox (NULL, (tileBank2.getAbsPath() + troncated).c_str(), "Can't load file", MB_OK|MB_ICONEXCLAMATION);
MessageBox (NULL, (tileBank2.getAbsPath() + troncated).c_str(), _T("Can't load file"), MB_OK|MB_ICONEXCLAMATION);
else
{
// Check the size
if ((theListDisplacement[tile].BmpInfo.bmiHeader.biWidth!=32)||(-theListDisplacement[tile].BmpInfo.bmiHeader.biHeight!=32))
{
// Error message
MessageBox (NULL, "Invalid size: displacement map must be 32x32 8 bits.", troncated.c_str(),
MessageBox (NULL, _T("Invalid size: displacement map must be 32x32 8 bits."), troncated.c_str(),
MB_OK|MB_ICONEXCLAMATION);
// Free the bitmap
@ -1284,11 +1283,10 @@ void CTView::DrawTile(tilelist::iterator i,CDC *pDC,int clear, int n)
&*bits->begin(),bmpinf,DIB_RGB_COLORS,SRCCOPY);
}
char temp[100];
char Name[256]; Name[0] = 0;
std::string Name;
if (InfoTexte==2)
{
_splitpath(pth.c_str(),temp,temp,Name,temp);
Name = NLMISC::CFile::getFilenameWithoutExtension(pth);
}
else if (InfoTexte==3)
{
@ -1296,12 +1294,20 @@ void CTView::DrawTile(tilelist::iterator i,CDC *pDC,int clear, int n)
}
else if (InfoTexte==1)
{
sprintf(Name,"%d",i->id);
Name = NLMISC::toString("%d", i->id);
}
rect_txt.top = pt.y + sizetile_y + spacing_tile_text;
rect_txt.bottom += rect_txt.top + sizetext_y;
rect_txt.left -= spacing_x;
pDC->DrawText(Name,(int)strlen(Name),&rect_txt,DT_CENTER | DT_SINGLELINE);
#ifdef _UNICODE
ucstring tmp;
tmp.fromUtf8(Name);
#else
std::string tmp = Name;
#endif
pDC->DrawText((LPCTSTR)tmp.c_str(), (int)tmp.length(), &rect_txt,DT_CENTER | DT_SINGLELINE);
// Restore the device context
pDC->SetBkColor( clrBk );
@ -1538,15 +1544,12 @@ LRESULT CTView::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
CString str = load.GetNextPathName(p);
char sDrive[256];
char sPath[256];
_splitpath (str, sDrive, sPath, NULL, NULL);
LastPath=string (sDrive)+string (sPath);
LastPath = NLMISC::CFile::getPath(tStrToUtf8(str));
if (str!=CString(""))
if (!str.IsEmpty())
{
int index=0;
const char *pathname = (LPCTSTR)str;
std::string pathname = tStrToUtf8(str);
// Add mode, to the end of the list
if (id==ID_MENU_ADD)

View file

@ -61,15 +61,15 @@ END_MESSAGE_MAP()
void CChooseVegetSet::OnBrowse()
{
// Select a veget set
static char BASED_CODE szFilter[] = "NeL VegetSet Files (*.vegetset)|*.vegetset|All Files (*.*)|*.*||";
static TCHAR BASED_CODE szFilter[] = _T("NeL VegetSet Files (*.vegetset)|*.vegetset|All Files (*.*)|*.*||");
// Create a file dialog
CFileDialog dialog ( TRUE, "*.vegetset", "*.vegetset", OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, szFilter, (CWnd*)Parent);
CFileDialog dialog ( TRUE, _T("*.vegetset"), _T("*.vegetset"), OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, szFilter, (CWnd*)Parent);
if (dialog.DoModal() == IDOK)
{
// Get the file name
FileName = dialog.GetFileName ();
Name.SetWindowText (FileName.c_str());
FileName = tStrToUtf8(dialog.GetFileName ());
Name.SetWindowText (utf8ToTStr(FileName));
}
}
@ -80,7 +80,7 @@ BOOL CChooseVegetSet::OnInitDialog()
if (!FileName.empty())
Name.SetWindowText (utf8ToTStr(FileName));
else
Name.SetWindowText ("Browse...");
Name.SetWindowText (_T("Browse..."));
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE

View file

@ -669,7 +669,7 @@ void CBranch_patcherDlg::OnButtonExtractTokens()
m_SrcDirLabel = "Enter Token 1";
m_TargetDirLabel = "Enter Token 2";
m_Filename = "The tokens above were extracted from the directories.";
((CButton*)GetDlgItem( IDC_ButtonExtractTokens ))->SetWindowText( "Store Tokens" );
((CButton*)GetDlgItem( IDC_ButtonExtractTokens ))->SetWindowText( _T("Store Tokens") );
GetDlgItem( IDC_TopText )->ShowWindow( SW_HIDE );
GetDlgItem( IDC_ButtonClearTokens )->EnableWindow( FALSE );
GetDlgItem( IDC_ButtonPatch )->ShowWindow( SW_HIDE );

View file

@ -87,7 +87,7 @@ BOOL CPlugInSelector::OnInitDialog()
}
int getLastSeparator (const string &filename)
std::string::size_type getLastSeparator (const string &filename)
{
string::size_type pos = filename.find_last_of ('/');
if (pos == string::npos)

View file

@ -529,9 +529,9 @@ int main( int argc, char ** argv )
readFormId( outputFileName );
// output path
sint lastSeparator = CFile::getLastSeparator(outputFileName);
std::string::size_type lastSeparator = CFile::getLastSeparator(outputFileName);
string outputPath;
if( lastSeparator != -1 )
if( lastSeparator != std::string::npos )
{
outputPath = outputFileName.substr(0,lastSeparator+1);
}

View file

@ -323,7 +323,7 @@ static void ConvertFileTimeToString(const CNtfsFileTime *nt, char *s)
UIntToStr_2(s, sec); s[2] = 0;
}
void PrintError(char *sz)
void PrintError(const char *sz)
{
printf("\nERROR: %s\n", sz);
}

View file

@ -77,6 +77,7 @@ typedef CFastBitField<uint16, 16> T1BitField;
class I16x16Layer
{
public:
virtual ~I16x16Layer() {}
/**
* Get uncompressed value at i, j where i is y-like and j is x-like

View file

@ -578,8 +578,8 @@ public:
sint16 asSint16() const { return (sint16)_Value1[0]; }
sint32 asSint32() const { return (sint32)_Value2[0]; }
sint64 asSint64() const { return (sint64)_Value3[0]; }
float asFloat() const { return *(float*)(&_Value2[0]); }
double asDouble() const { return *(double*)(&_Value3[0]); }
float asFloat() const { return (float)_ValueFloat[0]; }
double asDouble() const { return (double)_ValueDouble[0]; }
const NLMISC::CSheetId& asSheetId() const { return *(NLMISC::CSheetId*)(&_Value2[0]); }
const NLMISC::CEntityId& asEntityId() const { return *(NLMISC::CEntityId*)(&_Value3[0]); }
@ -668,6 +668,8 @@ private:
uint16 _Value1[4];
uint32 _Value2[2];
uint64 _Value3[1];
float _ValueFloat[2];
double _ValueDouble[1];
};
bool _ObjectIdPresent;

View file

@ -74,7 +74,7 @@ public:
/**
* Destructor
*/
~CDatabase();
virtual ~CDatabase();
/**

View file

@ -25,7 +25,8 @@
CConfigFile *CConfigFile::s_instance = NULL;
CConfigFile::CConfigFile(QObject *parent):QObject(parent), m_version(-1),
m_defaultServerIndex(0), m_defaultProfileIndex(0), m_installerCopied(false), m_use64BitsClient(false), m_shouldUninstallOldClient(true)
m_defaultServerIndex(0), m_defaultProfileIndex(0), m_installerCopied(false), m_use64BitsClient(false),
m_shouldUninstallOldClient(true), m_ignoreFreeDiskSpaceChecks(false)
{
s_instance = this;
@ -82,6 +83,7 @@ bool CConfigFile::load(const QString &filename)
m_installationDirectory = settings.value("installation_directory").toString();
m_use64BitsClient = settings.value("use_64bits_client", true).toBool();
m_shouldUninstallOldClient = settings.value("should_uninstall_old_client", true).toBool();
m_ignoreFreeDiskSpaceChecks = settings.value("ignore_free_disk_space_checks", false).toBool();
// fix problems when src directory doesn't exist anymore
if (!m_srcDirectory.isEmpty() && QFile::exists(m_srcDirectory)) m_srcDirectory.clear();
@ -175,6 +177,7 @@ bool CConfigFile::save() const
settings.setValue("installation_directory", m_installationDirectory);
settings.setValue("use_64bits_client", m_use64BitsClient);
settings.setValue("should_uninstall_old_client", m_shouldUninstallOldClient);
settings.setValue("ignore_free_disk_space_checks", m_ignoreFreeDiskSpaceChecks);
#if defined(Q_OS_WIN)
settings.setValue("installer_filename_windows", m_installerFilename);
@ -441,6 +444,16 @@ void CConfigFile::setShouldUninstallOldClient(bool on)
m_shouldUninstallOldClient = on;
}
bool CConfigFile::ignoreFreeDiskSpaceChecks() const
{
return m_ignoreFreeDiskSpaceChecks;
}
void CConfigFile::setIgnoreFreeDiskSpaceChecks(bool on)
{
m_ignoreFreeDiskSpaceChecks = on;
}
bool CConfigFile::uninstallingOldClient() const
{
return QFile::exists(getInstallationDirectory() + "/ryzom_installer_uninstalling_old_client");
@ -693,7 +706,7 @@ int CConfigFile::compareInstallersVersion() const
// if installer not found in installation directory
if (!QFile::exists(installerDst)) return 1;
QString installedVersion = getVersionFromExecutable(installerDst);
QString installedVersion = getVersionFromExecutable(installerDst, getInstallationDirectory());
// if unable to get version, copy it
if (installedVersion.isEmpty()) return 1;

View file

@ -113,6 +113,9 @@ public:
bool shouldUninstallOldClient() const;
void setShouldUninstallOldClient(bool on);
bool ignoreFreeDiskSpaceChecks() const;
void setIgnoreFreeDiskSpaceChecks(bool on);
bool uninstallingOldClient() const;
void setUninstallingOldClient(bool on) const;
@ -158,6 +161,7 @@ private:
QString m_srcDirectory;
bool m_use64BitsClient;
bool m_shouldUninstallOldClient;
bool m_ignoreFreeDiskSpaceChecks;
QString m_installerFilename;
QString m_language;

View file

@ -18,6 +18,7 @@
#include "operation.h"
#include "downloader.h"
#include "utils.h"
#include "configfile.h"
#include "nel/misc/system_info.h"
#include "nel/misc/path.h"
@ -179,7 +180,7 @@ void CDownloader::getFileHead()
void CDownloader::downloadFile()
{
qint64 freeSpace = NLMISC::CSystemInfo::availableHDSpace(m_fullPath.toUtf8().constData());
qint64 freeSpace = CConfigFile::getInstance()->ignoreFreeDiskSpaceChecks() ? 0:NLMISC::CSystemInfo::availableHDSpace(m_fullPath.toUtf8().constData());
if (freeSpace == 0)
{

View file

@ -130,7 +130,7 @@ void CInstallDialog::updateDestinationText()
void CInstallDialog::accept()
{
// check free disk space
qint64 freeSpace = NLMISC::CSystemInfo::availableHDSpace(m_dstDirectory.toUtf8().constData());
qint64 freeSpace = CConfigFile::getInstance()->ignoreFreeDiskSpaceChecks() ? 0:NLMISC::CSystemInfo::availableHDSpace(m_dstDirectory.toUtf8().constData());
// shouldn't happen
if (freeSpace == 0)

View file

@ -152,13 +152,13 @@ int main(int argc, char *argv[])
bool res = config.load();
// init log
CLogHelper logHelper(config.getInstallationDirectory());
CLogHelper logHelper(config.getInstallationDirectory().isEmpty() ? config.getNewInstallationDirectory():config.getInstallationDirectory());
nlinfo("Launched %s", Q2C(config.getInstallerCurrentFilePath()));
OperationStep step = res ? config.getInstallNextStep():DisplayNoServerError;
if (res == DisplayNoServerError)
if (step == DisplayNoServerError)
{
QMessageBox::critical(NULL, QApplication::tr("Error"), QApplication::tr("Unable to find ryzom_installer.ini"));
return 1;

View file

@ -123,7 +123,7 @@ void CMigrateDialog::updateDestinationText()
void CMigrateDialog::accept()
{
// check free disk space
qint64 freeSpace = NLMISC::CSystemInfo::availableHDSpace(m_dstDirectory.toUtf8().constData());
qint64 freeSpace = CConfigFile::getInstance()->ignoreFreeDiskSpaceChecks() ? 0:NLMISC::CSystemInfo::availableHDSpace(m_dstDirectory.toUtf8().constData());
// shouldn't happen
if (freeSpace == 0)

View file

@ -226,20 +226,21 @@ void CProfilesDialog::updateExecutableVersion(int index)
if (index < 0) return;
const CProfile &profile = m_model->getProfiles()[index];
const CServer &server = CConfigFile::getInstance()->getServer(profile.server);
QString executable = profile.executable;
// file empty, use default one
if (executable.isEmpty())
{
executable += CConfigFile::getInstance()->getServer(profile.server).getClientFullPath();
executable = server.getClientFullPath();
}
// file doesn't exist
if (executable.isEmpty() || !QFile::exists(executable)) return;
// convert output to string
QString versionString = getVersionFromExecutable(executable);
QString versionString = getVersionFromExecutable(executable, server.getDirectory());
if (!versionString.isEmpty())
{

View file

@ -406,7 +406,7 @@ QString appendShortcutExtension(const QString &shortcut)
return shortcut + extension;
}
QString getVersionFromExecutable(const QString &path)
QString getVersionFromExecutable(const QString &path, const QString &workingDirectory)
{
// check if file exists
if (!QFile::exists(path))
@ -426,6 +426,7 @@ QString getVersionFromExecutable(const QString &path)
// launch executable with --version argument
QProcess process;
process.setProcessChannelMode(QProcess::MergedChannels);
process.setWorkingDirectory(workingDirectory);
process.start(path, QStringList() << "--version", QIODevice::ReadOnly);
if (!process.waitForStarted())

View file

@ -76,7 +76,7 @@ bool resolveShortcut(const QWidget &window, const QString &shortcut, QString &pa
QString appendShortcutExtension(const QString &shortcut);
// launch an executable with --version parameter and parse version string
QString getVersionFromExecutable(const QString &path);
QString getVersionFromExecutable(const QString &path, const QString &workingDirectory);
// write a resource in QRC to disk
bool writeResource(const QString &resource, const QString &path);

View file

@ -90,7 +90,7 @@ BOOL CDfnDialog::OnInitDialog()
// Create the type combo
setStaticSize (currentPos);
LabelParents.Create ("Parents:", WS_VISIBLE, currentPos, this);
LabelParents.Create (_T("Parents:"), WS_VISIBLE, currentPos, this);
initWidget (LabelParents);
getNextPosLabel (currentPos);
@ -105,7 +105,7 @@ BOOL CDfnDialog::OnInitDialog()
// Create the type combo
setStaticSize (currentPos);
LabelStruct.Create ("Structure:", WS_VISIBLE, currentPos, this);
LabelStruct.Create (_T("Structure:"), WS_VISIBLE, currentPos, this);
initWidget (LabelStruct);
getNextPosLabel (currentPos);
@ -193,7 +193,7 @@ void CDfnDialog::getFromDocument (const NLGEORGES::CFormDfn &dfn)
for (parent=0; parent<dfn.getNumParent (); parent++)
{
// Add the label and value
Parents.ListCtrl.InsertItem (parent, dfn.getParentFilename (parent).c_str ());
Parents.ListCtrl.InsertItem (parent, utf8ToTStr(dfn.getParentFilename (parent)));
}
// Add the struct element
@ -202,22 +202,22 @@ void CDfnDialog::getFromDocument (const NLGEORGES::CFormDfn &dfn)
for (elm=0; elm<dfn.getNumEntry (); elm++)
{
// Add the label and value
Struct.ListCtrl.InsertItem (elm, dfn.getEntry (elm).getName ().c_str());
Struct.ListCtrl.InsertItem (elm, utf8ToTStr(dfn.getEntry (elm).getName()));
switch (elm, dfn.getEntry (elm).getType ())
{
case UFormDfn::EntryType:
Struct.ListCtrl.SetItemText (elm, 1, dfn.getEntry (elm).getArrayFlag () ? "Type array" : "Type");
Struct.ListCtrl.SetItemText (elm, 4, dfn.getEntry (elm).getFilenameExt ().c_str());
Struct.ListCtrl.SetItemText (elm, 1, dfn.getEntry (elm).getArrayFlag () ? _T("Type array") : _T("Type"));
Struct.ListCtrl.SetItemText (elm, 4, utf8ToTStr(dfn.getEntry (elm).getFilenameExt ()));
break;
case UFormDfn::EntryDfn:
Struct.ListCtrl.SetItemText (elm, 1, dfn.getEntry (elm).getArrayFlag () ? "Dfn array" : "Dfn");
Struct.ListCtrl.SetItemText (elm, 1, dfn.getEntry (elm).getArrayFlag () ? _T("Dfn array") : _T("Dfn"));
break;
case UFormDfn::EntryVirtualDfn:
Struct.ListCtrl.SetItemText (elm, 1, "Virtual Dfn");
Struct.ListCtrl.SetItemText (elm, 1, _T("Virtual Dfn"));
break;
}
Struct.ListCtrl.SetItemText (elm, 2, dfn.getEntry (elm).getFilename ().c_str());
Struct.ListCtrl.SetItemText (elm, 3, dfn.getEntry (elm).getDefault ().c_str());
Struct.ListCtrl.SetItemText (elm, 2, utf8ToTStr(dfn.getEntry (elm).getFilename()));
Struct.ListCtrl.SetItemText (elm, 3, utf8ToTStr(dfn.getEntry (elm).getDefault()));
}
}
}
@ -238,7 +238,7 @@ void CDfnDialog::setParentsToDocument ()
{
// Add the label and value
CString str = Parents.ListCtrl.GetItemText ( parent, 0);
vectValue[parent] = str;
vectValue[parent] = tStrToUtf8(str);
}
// Modify the document
@ -267,7 +267,7 @@ void CDfnDialog::setStructToDocument ()
{
// Get the name
CString name= Struct.ListCtrl.GetItemText (elm, subElm);
stringVector[elm][subElm] = (const char*)name;
stringVector[elm][subElm] = tStrToUtf8(name);
}
}
doc->modify (new CActionStringVectorVector (IAction::DfnStructure, stringVector, *doc, doc->getLeftView ()->getCurrentSelectionId (), 0));
@ -301,19 +301,19 @@ CEditListCtrl::TItemEdit CDfnEditListCtrl::getItemEditMode (uint item, uint subI
return CEditListCtrl::EditFixedCombo;
else if (subItem == 2)
{
string type = ListCtrl.GetItemText (item, 1);
string type = tStrToUtf8(ListCtrl.GetItemText (item, 1));
if (type != "Virtual Dfn")
return CEditListCtrl::EditMemCombo;
}
else if (subItem == 3)
{
string type = ListCtrl.GetItemText (item, 1);
string type = tStrToUtf8(ListCtrl.GetItemText (item, 1));
if ((type == "Type") || (type == "Type array"))
return CEditListCtrl::EditMemCombo;
}
else if (subItem == 4)
{
string type = ListCtrl.GetItemText (item, 1);
string type = tStrToUtf8(ListCtrl.GetItemText (item, 1));
if ((type == "Type") || (type == "Type array"))
return CEditListCtrl::EditMemCombo;
}
@ -349,7 +349,7 @@ void CDfnEditListCtrl::getMemComboBoxProp (uint item, uint subItem, std::string
browse = true;
// Get type string
string type = ListCtrl.GetItemText (item, 1);
string type = tStrToUtf8(ListCtrl.GetItemText (item, 1));
if ((type == "Type") || (type == "Type array"))
regAdr = GEORGES_EDIT_BASE_REG_KEY"\\Type MemCombo";
else if ((type == "Dfn") || (type == "Dfn array"))
@ -390,7 +390,7 @@ void CDfnEditListCtrl::getBrowseInfo (uint item, uint subItem, std::string &defE
if (subItem == 2)
{
// Get type string
string type = ListCtrl.GetItemText (item, 1);
string type = tStrToUtf8(ListCtrl.GetItemText (item, 1));
if ((type == "Type") || (type == "Type array"))
{
filter = TypeFilter;
@ -415,35 +415,33 @@ void CDfnEditListCtrl::onItemChanged (uint item, uint subItem)
if (subItem == 1)
{
// Get type string
string type = ListCtrl.GetItemText (item, 1);
string type = tStrToUtf8(ListCtrl.GetItemText (item, 1));
if ((type == "Type") || (type == "Type array"))
{
CString str;
str = Dialog->Struct.ListCtrl.GetItemText (item, 2);
char ext[MAX_PATH];
_splitpath (str, NULL, NULL, NULL, ext);
if (stricmp (ext, ".typ") != 0)
Dialog->Struct.ListCtrl.SetItemText (item, 2, theApp.DefaultType.c_str ());
std::string ext = NLMISC::CFile::getExtension(tStrToUtf8(str));
if (ext == "typ")
Dialog->Struct.ListCtrl.SetItemText (item, 2, utf8ToTStr(theApp.DefaultType));
}
else if ((type == "Dfn") || (type == "Dfn array"))
{
CString str;
str = Dialog->Struct.ListCtrl.GetItemText (item, 2);
char ext[MAX_PATH];
_splitpath (str, NULL, NULL, NULL, ext);
if (stricmp (ext, ".dfn") != 0)
Dialog->Struct.ListCtrl.SetItemText (item, 2, theApp.DefaultDfn.c_str ());
std::string ext = NLMISC::CFile::getExtension(tStrToUtf8(str));
if (ext == "dfn")
Dialog->Struct.ListCtrl.SetItemText (item, 2, utf8ToTStr(theApp.DefaultDfn));
// Clear default value
Dialog->Struct.ListCtrl.SetItemText (item, 3, "");
Dialog->Struct.ListCtrl.SetItemText (item, 3, _T(""));
}
else if (type == "Virtual Dfn")
{
// Clear the value
Dialog->Struct.ListCtrl.SetItemText (item, 2, "");
Dialog->Struct.ListCtrl.SetItemText (item, 2, _T(""));
// Clear default value
Dialog->Struct.ListCtrl.SetItemText (item, 3, "");
Dialog->Struct.ListCtrl.SetItemText (item, 3, _T(""));
}
}
}
@ -470,16 +468,16 @@ void CDfnDialog::onOpenSelected ()
int nItem = Parents.ListCtrl.GetNextSelectedItem(pos);
// Get the string
CString str = Parents.ListCtrl.GetItemText (nItem, 0);
if (str != "")
std::string str = tStrToUtf8(Parents.ListCtrl.GetItemText (nItem, 0));
if (!str.empty())
{
// Look for the file
string name = CPath::lookup ((const char*)str, false, false);
string name = CPath::lookup (str, false, false);
if (name.empty ())
name = str;
// Open the file
theApp.OpenDocumentFile (name.c_str ());
theApp.OpenDocumentFile (utf8ToTStr(name));
}
}
}
@ -492,16 +490,16 @@ void CDfnDialog::onOpenSelected ()
int nItem = Struct.ListCtrl.GetNextSelectedItem(pos);
// Get the string
CString str = Struct.ListCtrl.GetItemText (nItem, 2);
if (str != "")
std::string str = tStrToUtf8(Struct.ListCtrl.GetItemText (nItem, 2));
if (!str.empty())
{
// Look for the file
string name = CPath::lookup ((const char*)str, false, false);
string name = CPath::lookup (str, false, false);
if (name.empty ())
name = str;
// Open the file
theApp.OpenDocumentFile (name.c_str ());
theApp.OpenDocumentFile (utf8ToTStr(name));
}
}
}

View file

@ -51,7 +51,7 @@ bool CFileTreeCtrl::create( const RECT& rect, CWnd* pParentWnd, UINT nID )
LPCTSTR className = AfxRegisterWndClass( 0 );
// Create this window
if (CWnd::Create (className, "empty", WS_CHILD, rect, pParentWnd, nID ))
if (CWnd::Create (className, _T("empty"), WS_CHILD, rect, pParentWnd, nID ))
#if defined(NL_COMP_VC) && NL_COMP_VC_VERSION >= 80
@ -403,11 +403,9 @@ int CALLBACK CompareFunc(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort)
return stricmp (pItemInfo1->displayName.c_str(), pItemInfo2->displayName.c_str());
if (pfileTreeCtrl->_ArrangeMode == CFileTreeCtrl::ByType)
{
char ext1[_MAX_EXT];
_splitpath (pItemInfo1->displayName.c_str(), NULL, NULL, NULL, ext1);
char ext2[_MAX_EXT];
_splitpath (pItemInfo2->displayName.c_str(), NULL, NULL, NULL, ext2);
int res = stricmp (ext1, ext2);
std::string ext1 = NLMISC::CFile::getExtension(pItemInfo1->displayName);
std::string ext2 = NLMISC::CFile::getExtension(pItemInfo2->displayName);
int res = stricmp (ext1.c_str(), ext2.c_str());
if ( res == 0)
return stricmp (pItemInfo1->displayName.c_str(), pItemInfo2->displayName.c_str());
else

View file

@ -1173,9 +1173,7 @@ void CFormDialog::getDfnName (string &result) const
{
// Get the DFN filename
CString str = doc->GetPathName ();
char extension[512];
_splitpath (str, NULL, NULL, NULL, extension);
result = (*extension == '.') ? extension+1 : extension;
result NLMISC::CFile::getExtension(tStrToUtf8(str));
}
else
result.clear();

View file

@ -477,20 +477,15 @@ void CGeorgesEditApp::OnAppAbout()
void CGeorgesEditApp::outputError (const char* message)
{
if (m_pMainWnd)
m_pMainWnd->MessageBox (message, "Georges Edit", MB_OK|MB_ICONEXCLAMATION);
m_pMainWnd->MessageBox (utf8ToTStr(message), _T("Georges Edit"), MB_OK|MB_ICONEXCLAMATION);
else
MessageBox (NULL, message, "Georges Edit", MB_OK|MB_ICONEXCLAMATION);
MessageBox (NULL, utf8ToTStr(message), _T("Georges Edit"), MB_OK|MB_ICONEXCLAMATION);
}
void CGeorgesEditApp::getConfigFilePath (std::string &output)
{
// Get the config file path
char sDrive[MAX_PATH];
char sDir[MAX_PATH];
char sPath[MAX_PATH];
_splitpath (theApp.ExePath.c_str (), sDrive, sDir, NULL, NULL);
_makepath (sPath, sDrive, sDir, "georges", ".cfg");
output = sPath;
output = NLMISC::CFile::getPath(theApp.ExePath) + "georges.cfg";
}
bool CGeorgesEditApp::loadCfg ()
@ -962,12 +957,7 @@ void CGeorgesEditApp::gotoURL (LPCTSTR url)
void CGeorgesEditApp::WinHelp(DWORD dwData, UINT nCmd)
{
char drive[512];
char dir[512];
char path[512];
_splitpath (ExePath.c_str (), drive, dir, NULL, NULL);
_makepath (path, drive, dir, "georges_edit", ".html");
gotoURL (path);
gotoURL(utf8ToTStr(NLMISC::CFile::getPath(ExePath) + "georges_edit.html"));
}
void CGeorgesEditApp::OnViewRefresh()
@ -1478,9 +1468,8 @@ BOOL CGeorgesEditApp::OnDDECommand(LPTSTR lpszCommand)
name = name.substr (6, name.size ()-8);
// Get the extension
char ext[MAX_PATH];
_splitpath (name.c_str (), NULL, NULL, NULL, ext);
string dfnName = string (ext+1) + ".dfn";
std::string ext = NLMISC::CFile::getExtension(name);
string dfnName = ext + ".dfn";
// Get the doc template
CMultiDocTemplate *docTemplate = getFormDocTemplate (dfnName.c_str ());
@ -1541,18 +1530,15 @@ BOOL CGeorgesEditApp::OnDDECommand(LPTSTR lpszCommand)
name = name.substr (8, name.size ()-10);
// Get the extension
char ext[MAX_PATH];
_splitpath (name.c_str (), NULL, NULL, NULL, ext);
string dfnName = string (ext+1) + ".dfn";
std::string ext = NLMISC::CFile::getExtension(name);
string dfnName = ext + ".dfn";
// Create a document
CGeorgesEditDocForm *doc = (CGeorgesEditDocForm*)createDocument (dfnName.c_str (), "");
if (doc)
{
char nameFile[MAX_PATH];
char extFile[MAX_PATH];
_splitpath (name.c_str (), NULL, NULL, nameFile, extFile);
doc->addParent ((string (nameFile) + extFile).c_str ());
std::string nameFile = NLMISC::CFile::getFilename(name);
doc->addParent (nameFile.c_str());
doc->updateDocumentStructure ();
doc->UpdateAllViews (NULL);
}
@ -1570,11 +1556,7 @@ BOOL CGeorgesEditApp::OnDDECommand(LPTSTR lpszCommand)
name = name.substr (10, name.size ()-12);
// Get the extension
char name2[MAX_PATH];
char ext[MAX_PATH];
_splitpath (name.c_str (), NULL, NULL, name2, ext);
string dfnName = name2;
dfnName += ext;
std::string dfnName = NLMISC::CFile::getFilename(name);
// Create a document
CGeorgesEditDocForm *doc = (CGeorgesEditDocForm*)createDocument (dfnName.c_str (), "");

View file

@ -181,13 +181,9 @@ bool CGeorgesEditDocForm::initDocument (const char *dfnName, bool newElement)
}
// Set file name and title
char name[512];
char ext[512];
_splitpath (dfnName, NULL, NULL, name, ext);
string name2 = (const char*)(name);
name2 = strlwr (name2);
SetPathName ( ("*."+name2).c_str(), FALSE);
SetTitle ( ("New "+name2+" form").c_str() );
std::string name2 = toLower(NLMISC::CFile::getFilenameWithoutExtension(dfnName));
SetPathName (utf8ToTStr("*." + name2), FALSE);
SetTitle (utf8ToTStr("New " + name2 + " form"));
// TMp
if (newElement)
@ -547,9 +543,9 @@ BOOL CGeorgesEditDoc::OnOpenDocument(LPCTSTR lpszPathName)
try
{
// Check form
char ext[MAX_PATH];
_splitpath (lpszPathName, NULL, NULL, NULL, ext);
string extLower = strlwr (string (ext));
std::string ext = NLMISC::CFile::getExtension(tStrToUtf8(lpszPathName));
string extLower = toLower(ext);
if (!extLower.empty ())
{
string dfnName = extLower.substr (1, string::npos) + ".dfn";
@ -1090,10 +1086,7 @@ void CGeorgesEditDoc::getDfnFilename (std::string &dfnName)
// Get the DFN filename
CString str = GetPathName ();
char extension[512];
_splitpath (str, NULL, NULL, NULL, extension);
dfnName = extension+1;
dfnName += ".dfn";
dfnName = NLMISC::CFile::getExtension(tStrToUtf8(str)) + ".dfn";
}
// ***************************************************************************

View file

@ -103,10 +103,8 @@ void CImageListEx::addResourceIcon (const char *filename)
index = ImageList.Replace( index, handle);
// Add in the map
char name[MAX_PATH];
_splitpath (filename, NULL, NULL, name, NULL);
string llwr = strlwr (string (name));
_IconMapString.insert (std::map<string, int>::value_type (llwr, index));
std::string name = NLMISC::CFile::getFilenameWithoutExtension(filename);
_IconMapString.insert (std::map<string, int>::value_type (toLower(name), index));
// Release the icon
DestroyIcon (handle);
@ -131,10 +129,8 @@ int CImageListEx::getImage (int resource) const
int CImageListEx::getImage (const char *filename) const
{
char name[MAX_PATH];
_splitpath (filename, NULL, NULL, name, NULL);
string llwr = strlwr (string (name));
std::map<string, int>::const_iterator ite = _IconMapString.find (llwr);
std::string name = toLower(NLMISC::CFile::getFilenameWithoutExtension(filename));
std::map<string, int>::const_iterator ite = _IconMapString.find (name);
if (ite == _IconMapString.end())
return -1;
else

View file

@ -698,8 +698,8 @@ void CMissionCompilerFeDlg::OnSpecialRuncompilertest()
catch(const EParseException &e)
{
string msg = "In primitive ";
msg += buildPrimPath(e.Primitive) +" : "+e.Why;
AfxMessageBox(msg.c_str());
msg += buildPrimPath(e.Primitive) + ": " + e.Why;
AfxMessageBox(utf8ToTStr(msg));
}
}

View file

@ -875,17 +875,26 @@ bool CMissionCompiler::publishFiles(const std::string &serverPathPrim, const std
return true;
}
bool CMissionCompiler::includeText(const std::string filename, const std::string text)
bool CMissionCompiler::includeText(const std::string &filename, const std::string &text)
{
FILE *f = nlfopen(filename, "r+");
if (f == NULL)
{
nlwarning("Unable to open %s", filename.c_str());
return false;
}
bool isIn = false;
char buffer[1024];
// Check for UTF8 format
fread(buffer, 1, 3, f);
if (fread(buffer, 1, 3, f) != 3)
{
fclose(f);
nlwarning("Unable to read 3 bytes from %s", filename.c_str());
return false;
}
if (buffer[0] != -17 || buffer[1] != -69 || buffer[2] != -65)
fseek(f, 0, SEEK_SET);

View file

@ -447,7 +447,7 @@ public:
bool publishFiles(const std::string &serverPathPrim, const std::string &serverPathText, const std::string &localPathText);
/// Search for text in the file : add it if it's not in
bool includeText(const std::string filename, const std::string text);
bool includeText(const std::string &filename, const std::string &text);
/// Parse the pre requisite node of a mission.
bool parsePreRequisite(CMissionData &md, NLLIGO::IPrimitive *preReq);

View file

@ -1279,15 +1279,23 @@ void ItemNamesSave()
printf( "-- SAVING ITEM NAMES --\n");
CSString data, output;
FILE* file;
file = nlfopen( ITEM_WORDS_WK, "rb" );
FILE *file = nlfopen( ITEM_WORDS_WK, "rb" );
char c;
fread( &c, 1, 1, file );
if (fread(&c, 1, 1, file) != 1)
{
nlwarning("Unable to read 1 byte from %s", ITEM_WORDS_WK.c_str());
return;
}
while ( !feof( file ) )
{
data += toString( "%c", c );
fread( &c, 1, 1, file );
if (fread(&c, 1, 1, file) != 1)
{
nlwarning("Unable to read 1 byte from %s", ITEM_WORDS_WK.c_str());
return;
}
}
fclose( file );

View file

@ -199,7 +199,13 @@ int getNbItemFromFile(const char *filename)
while (fgets(buffer, 1024, f))
{
int n;
fscanf(f, "_Items#%d", &n);
if (fscanf(f, "_Items#%d", &n) != 1)
{
fclose(f);
nlerror("Unable to parse 1 item from %s", filename);
return max;
}
if (n > max)
max = n;
}
@ -247,7 +253,13 @@ int importCsv(const char *filename)
// read fields name
{
fgets(buffer, 1024, f);
if (fgets(buffer, 1024, f) != buffer)
{
fclose(f);
nlerror("Unable to read line from %s", filename);
return 1;
}
CSString s(buffer);
s = s.strtok("\n");

View file

@ -130,7 +130,7 @@ bool CDataBase::init (const string &Path, CZoneBank &zb)
string sDirBackup = NLMISC::CPath::getCurrentPath();
// "Path" can be relative to the doc path so we have to be first in the doc path
string s2 = NLMISC::CFile::getPath ((LPCTSTR)getMainFrame()->getDocument()->GetPathName());
string s2 = NLMISC::CFile::getPath (tStrToUtf8(getMainFrame()->getDocument()->GetPathName()));
NLMISC::CPath::setCurrentPath(s2.c_str());
string ss = NLMISC::CPath::getFullPath(Path);
NLMISC::CPath::setCurrentPath (ss.c_str());
@ -609,8 +609,7 @@ bool CBuilderZone::refresh ()
if ((sZone != STRING_UNUSED)&&(sZone != STRING_OUT_OF_BOUND))
{
unload (_ZoneRegionSelected);
MessageBox (NULL, "Cannot add this zone because it overlaps existing ones",
"Error", MB_ICONERROR|MB_OK);
MessageBox (NULL, _T("Cannot add this zone because it overlaps existing ones"), _T("Error"), MB_ICONERROR|MB_OK);
return false;
}
}
@ -623,8 +622,8 @@ bool CBuilderZone::refresh ()
if (!_ZoneRegions[_ZoneRegionSelected]->init (&_ZoneBank, this, error))
{
unload (_ZoneRegionSelected);
MessageBox (NULL, ("Cannot add this zone :\n"+error).c_str(),
"Error", MB_ICONERROR|MB_OK);
std::string msg = NLMISC::toString("Cannot add this zone :\n%s", error.c_str());
MessageBox (NULL, utf8ToTStr(msg), _T("Error"), MB_ICONERROR|MB_OK);
return false;
}
@ -1599,20 +1598,21 @@ void CBuilderZone::del (const CVector &worldPos)
// ---------------------------------------------------------------------------
bool CBuilderZone::initZoneBank (const string &sPathName)
{
char sDirBackup[512];
// TODO: replace by NeL methods
TCHAR sDirBackup[512];
GetCurrentDirectory (512, sDirBackup);
SetCurrentDirectory (sPathName.c_str());
SetCurrentDirectory (utf8ToTStr(sPathName));
WIN32_FIND_DATA findData;
HANDLE hFind;
hFind = FindFirstFile ("*.ligozone", &findData);
hFind = FindFirstFile (_T("*.ligozone"), &findData);
while (hFind != INVALID_HANDLE_VALUE)
{
// If the name of the file is not . or .. then its a valid entry in the DataBase
if (!((strcmp (findData.cFileName, ".") == 0) || (strcmp (findData.cFileName, "..") == 0)))
if (!((_tcscmp (findData.cFileName, _T(".")) == 0) || (_tcscmp (findData.cFileName, _T("..")) == 0)))
{
string error;
if (!_ZoneBank.addElement (findData.cFileName, error))
if (!_ZoneBank.addElement (tStrToUtf8(findData.cFileName), error))
theApp.errorMessage (error.c_str());
}
if (FindNextFile (hFind, &findData) == 0)

View file

@ -49,8 +49,8 @@ using namespace NLMISC;
#define STRING_SELECT_COMBOBOX_ID 9
#define DIFFERENT_VALUE_STRING "<different values>"
#define DIFFERENT_VALUE_MULTI_STRING "<diff>"
#define DIFFERENT_VALUE_STRING _T("<different values>")
#define DIFFERENT_VALUE_MULTI_STRING _T("<diff>")
//CDialogProperties PropertyDialog;
std::list<CDialogProperties*> PropertiesDialogs;
@ -327,12 +327,12 @@ void CDialogProperties::addWidget (const CPrimitiveClass::CParameter &parameter,
buttonRect.right = buttonRect.left + FILE_BUTTON_WIDTH;
// Create an edit box
nlverify (widget.CheckBox.Create ("Select", BS_PUSHBUTTON|WS_VISIBLE|WS_TABSTOP|(enabled?0:WS_DISABLED), buttonRect, &m_PropertyCont, id));
nlverify (widget.CheckBox.Create (_T("Select"), BS_PUSHBUTTON|WS_VISIBLE|WS_TABSTOP|(enabled?0:WS_DISABLED), buttonRect, &m_PropertyCont, id));
widget.CheckBox.SetFont (GetFont ());
}
// Create the label
widget.Static.Create ("", WS_VISIBLE, widgetPos, &m_PropertyCont);
widget.Static.Create (_T(""), WS_VISIBLE, widgetPos, &m_PropertyCont);
widget.Static.SetFont (GetFont ());
// Next position
@ -372,11 +372,11 @@ void CDialogProperties::addWidget (const CPrimitiveClass::CParameter &parameter,
// we insert an empty string in case of a default value
if (!widget.Parameter.SortEntries)
{
widget.ComboBox.InsertString( -1, "");
widget.ComboBox.InsertString( -1, _T(""));
}
else
{
widget.ComboBox.AddString("");
widget.ComboBox.AddString(_T(""));
}
if (ite != widget.Parameter.ComboValues.end ())
{
@ -431,7 +431,7 @@ void CDialogProperties::addWidget (const CPrimitiveClass::CParameter &parameter,
widgetPos.bottom = widgetPos.top + EDIT_HEIGHT;
// Create an edit box
nlverify (widget.EditBox.CreateEx (WS_EX_CLIENTEDGE, _T("EDIT"), "", WS_CHILD|WS_VISIBLE|WS_TABSTOP|ES_AUTOHSCROLL|(enabled?0:ES_READONLY), widgetPos, &m_PropertyCont, id));
nlverify (widget.EditBox.CreateEx (WS_EX_CLIENTEDGE, _T("EDIT"), _T(""), WS_CHILD|WS_VISIBLE|WS_TABSTOP|ES_AUTOHSCROLL|(enabled?0:ES_READONLY), widgetPos, &m_PropertyCont, id));
widget.EditBox.SetFont (GetFont ());
if (widget.Parameter.FileExtension != "")
{
@ -440,7 +440,7 @@ void CDialogProperties::addWidget (const CPrimitiveClass::CParameter &parameter,
buttonRect.right = buttonRect.left + FILE_BUTTON_WIDTH;
// Create an edit box
nlverify (widget.CheckBox.Create ("Open...", BS_PUSHBUTTON|WS_VISIBLE|WS_TABSTOP|(enabled?0:WS_DISABLED), buttonRect, &m_PropertyCont, id));
nlverify (widget.CheckBox.Create (_T("Open..."), BS_PUSHBUTTON|WS_VISIBLE|WS_TABSTOP|(enabled?0:WS_DISABLED), buttonRect, &m_PropertyCont, id));
widget.CheckBox.SetFont (GetFont ());
}
}
@ -452,12 +452,12 @@ void CDialogProperties::addWidget (const CPrimitiveClass::CParameter &parameter,
// Create an edit box
if (widget.Parameter.DisplayHS)
{
nlverify (widget.MultiLineEditBox.CreateEx (WS_EX_CLIENTEDGE, _T("EDIT"), "",
nlverify (widget.MultiLineEditBox.CreateEx (WS_EX_CLIENTEDGE, _T("EDIT"), _T(""),
WS_VSCROLL|WS_HSCROLL|ES_MULTILINE|ES_WANTRETURN|WS_CHILD|WS_VISIBLE|WS_TABSTOP|ES_AUTOHSCROLL|ES_AUTOVSCROLL|(enabled?0:ES_READONLY), widgetPos, &m_PropertyCont, id));
}
else
{
nlverify (widget.MultiLineEditBox.CreateEx (WS_EX_CLIENTEDGE, _T("EDIT"), "",
nlverify (widget.MultiLineEditBox.CreateEx (WS_EX_CLIENTEDGE, _T("EDIT"), _T(""),
WS_VSCROLL|ES_MULTILINE|ES_WANTRETURN|WS_CHILD|WS_VISIBLE|WS_TABSTOP|ES_AUTOHSCROLL|ES_AUTOVSCROLL|(enabled?0:ES_READONLY), widgetPos, &m_PropertyCont, id));
}
@ -478,7 +478,7 @@ void CDialogProperties::addWidget (const CPrimitiveClass::CParameter &parameter,
RECT buttonRect = widgetPos;
// Create an edit box
nlverify (widget.CheckBox.Create ("Edit...", BS_PUSHBUTTON|WS_VISIBLE|WS_TABSTOP|(enabled?0:WS_DISABLED), buttonRect, &m_PropertyCont, id));
nlverify (widget.CheckBox.Create (_T("Edit..."), BS_PUSHBUTTON|WS_VISIBLE|WS_TABSTOP|(enabled?0:WS_DISABLED), buttonRect, &m_PropertyCont, id));
widget.CheckBox.SetFont (GetFont ());
}
}
@ -488,7 +488,7 @@ void CDialogProperties::addWidget (const CPrimitiveClass::CParameter &parameter,
widgetPos.bottom = widgetPos.top + widget.Parameter.WidgetHeight;
// Create an edit box
nlverify (widget.ListEditBox.CreateEx (WS_EX_CLIENTEDGE, _T("LISTBOX"), "", WS_VSCROLL|WS_CHILD|WS_VISIBLE|WS_TABSTOP|LBS_NOTIFY|(enabled?0:WS_DISABLED), widgetPos, &m_PropertyCont, id));
nlverify (widget.ListEditBox.CreateEx (WS_EX_CLIENTEDGE, _T("LISTBOX"), _T(""), WS_VSCROLL|WS_CHILD|WS_VISIBLE|WS_TABSTOP|LBS_NOTIFY|(enabled?0:WS_DISABLED), widgetPos, &m_PropertyCont, id));
// Resize the column
RECT listRect;
@ -498,7 +498,7 @@ void CDialogProperties::addWidget (const CPrimitiveClass::CParameter &parameter,
widget.ListEditBox.StringSelectComboBox.ResetContent ();
std::map<std::string, CPrimitiveClass::CParameter::CConstStringValue>::iterator ite = widget.Parameter.ComboValues.find (doc->getContext ().c_str());
// we insert an empty string in case of a default value
widget.ListEditBox.StringSelectComboBox.InsertString( -1, "");
widget.ListEditBox.StringSelectComboBox.InsertString( -1, _T(""));
if (ite != widget.Parameter.ComboValues.end ())
{
vector<string> PathList;
@ -565,7 +565,7 @@ void CDialogProperties::addWidget (const CPrimitiveClass::CParameter &parameter,
// Create an edit box
//nlverify (widget.CheckBox.Create ("Open...", BS_PUSHBUTTON|WS_VISIBLE|WS_TABSTOP, buttonRect, this, id));
nlverify (widget.CheckBox.Create ("View...", BS_PUSHBUTTON|WS_VISIBLE|WS_TABSTOP|(enabled?0:WS_DISABLED), buttonRect, &m_PropertyCont, id));
nlverify (widget.CheckBox.Create (_T("View..."), BS_PUSHBUTTON|WS_VISIBLE|WS_TABSTOP|(enabled?0:WS_DISABLED), buttonRect, &m_PropertyCont, id));
widget.CheckBox.SetFont (GetFont ());
}
@ -661,7 +661,7 @@ BOOL CDialogProperties::OnInitDialog()
// m_PropertyFrame.ClientToScreen(&contRect);
// leave 16 px for the scroll bar
contRect.right-=16;
m_PropertyCont.Create("", 0, contRect, &m_PropertyFrame);
m_PropertyCont.Create(_T(""), 0, contRect, &m_PropertyFrame);
// m_PropertyCont.SetCursor()
m_PropertyCont.ShowWindow(SW_SHOW);

View file

@ -3400,7 +3400,7 @@ void CDisplay::updateCursor ()
// Moved with middle click ?
case DragView:
cursor = theApp.LoadCursor (MAKEINTRESOURCE(IDC_HAND));
cursor = theApp.LoadCursor (MAKEINTRESOURCE(IDC_HAND1));
break;
// Moved with left click ?

View file

@ -163,20 +163,20 @@ int CALLBACK expBrowseCallbackProc (HWND hwnd,UINT uMsg,LPARAM lp, LPARAM pData)
bool CExportDlg::callChoosePathDlg(CString &dest) const
{
BROWSEINFO bi;
char str[MAX_PATH];
TCHAR str[MAX_PATH];
ITEMIDLIST* pidl;
char sTemp[1024];
TCHAR sTemp[1024];
bi.hwndOwner = this->m_hWnd;
bi.pidlRoot = NULL;
bi.pidlRoot = NULL;
bi.pszDisplayName = sTemp;;
bi.lpszTitle = "Choose the path";
bi.lpszTitle = _T("Choose the path");
bi.ulFlags = 0;
bi.lpfn = expBrowseCallbackProc;
char sDir[512];
strcpy(sDir, (LPCSTR)RefZoneDir);
TCHAR sDir[512];
_tcscpy(sDir, (LPCTSTR)RefZoneDir);
bi.lParam = (LPARAM)sDir;
bi.iImage = 0;
@ -218,7 +218,7 @@ void CExportDlg::OnButtonOutIGdir()
// ---------------------------------------------------------------------------
void CExportDlg::OnButtonTilebankfile()
{
CFileDialogEx dialog (BASE_REGISTRY_KEY, "bank", true, "smallbank", NULL, OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT, "SmallBank (*.smallbank)|*.smallbank||", this);
CFileDialogEx dialog (BASE_REGISTRY_KEY, _T("bank"), true, _T("smallbank"), NULL, OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT, _T("SmallBank (*.smallbank)|*.smallbank||"), this);
if (dialog.DoModal() == IDOK)
{
TileBankFile = dialog.GetPathName ();
@ -229,7 +229,7 @@ void CExportDlg::OnButtonTilebankfile()
// ---------------------------------------------------------------------------
void CExportDlg::OnButtonColormapfile()
{
CFileDialogEx dialog (BASE_REGISTRY_KEY, "image", true, "tga", NULL, OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT, "Tga Files (*.tga)|*.tga|All Files (*.*)|*.*||", this);
CFileDialogEx dialog (BASE_REGISTRY_KEY, _T("image"), true, _T("tga"), NULL, OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT, _T("Tga Files (*.tga)|*.tga|All Files (*.*)|*.*||"), this);
if (dialog.DoModal() == IDOK)
{
ColorMapFile = dialog.GetPathName ();
@ -240,7 +240,7 @@ void CExportDlg::OnButtonColormapfile()
// ---------------------------------------------------------------------------
void CExportDlg::OnButtonHeightmapfile()
{
CFileDialogEx dialog (BASE_REGISTRY_KEY, "image", true, "tga", NULL, OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT, "Grayscale Tga (*.tga)|*.tga||", this);
CFileDialogEx dialog (BASE_REGISTRY_KEY, _T("image"), true, _T("tga"), NULL, OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT, _T("Grayscale Tga (*.tga)|*.tga||"), this);
if (dialog.DoModal() == IDOK)
{
HeightMapFile = dialog.GetPathName ();
@ -251,7 +251,7 @@ void CExportDlg::OnButtonHeightmapfile()
// ---------------------------------------------------------------------------
void CExportDlg::OnButtonHeightmapfile2()
{
CFileDialogEx dialog (BASE_REGISTRY_KEY, "image", true, "tga", NULL, OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT, "Grayscale Tga (*.tga)|*.tga||", this);
CFileDialogEx dialog (BASE_REGISTRY_KEY, _T("image"), true, _T("tga"), NULL, OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT, _T("Grayscale Tga (*.tga)|*.tga||"), this);
if (dialog.DoModal() == IDOK)
{
HeightMapFile2 = dialog.GetPathName ();
@ -299,7 +299,7 @@ void CExportDlg::OnButtonContinentsDir()
// ---------------------------------------------------------------------------
void CExportDlg::OnButtonContinentFile()
{
CFileDialogEx dialog (BASE_REGISTRY_KEY, "continent", true, "continent", NULL, OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT, "Continent file (*.continent)|*.continent||", this);
CFileDialogEx dialog (BASE_REGISTRY_KEY, _T("continent"), true, _T("continent"), NULL, OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT, _T("Continent file (*.continent)|*.continent||"), this);
if (dialog.DoModal() == IDOK)
{
ContinentFile = dialog.GetPathName ();

View file

@ -37,9 +37,9 @@ CFileDialogEx::CFileDialogEx(LPCTSTR lpszRegistryPath, LPCTSTR lpszFileType,BOOL
LPCTSTR lpszDefExt, LPCTSTR lpszFileName, DWORD dwFlags, LPCTSTR lpszFilter, CWnd* pParentWnd) :
CFileDialog(bOpenFileDialog, lpszDefExt, lpszFileName, dwFlags, lpszFilter, pParentWnd)
{
_RegistryPath = lpszRegistryPath;
_RegistryPath = tStrToUtf8(lpszRegistryPath);
_RegistryPath += "\\CFileDialogEx";
_FileType = lpszFileType;
_FileType = tStrToUtf8(lpszFileType);
}
// ***************************************************************************
@ -54,14 +54,14 @@ END_MESSAGE_MAP()
INT_PTR CFileDialogEx::DoModal ()
{
// Get the path
char path[512];
TCHAR path[512];
path[0] = 0;
HKEY hKey;
DWORD type = REG_SZ;
DWORD size = 512;
if (RegCreateKey (HKEY_CURRENT_USER, _RegistryPath.c_str (), &hKey) == ERROR_SUCCESS)
DWORD size = 512 * sizeof(TCHAR);
if (RegCreateKey (HKEY_CURRENT_USER, utf8ToTStr(_RegistryPath), &hKey) == ERROR_SUCCESS)
{
if (RegQueryValueEx (hKey, _FileType.c_str (), 0, &type, (LPBYTE)path, &size) == ERROR_SUCCESS)
if (RegQueryValueEx (hKey, utf8ToTStr(_FileType), 0, &type, (LPBYTE)path, &size) == ERROR_SUCCESS)
m_ofn.lpstrInitialDir = path;
}
@ -73,9 +73,9 @@ INT_PTR CFileDialogEx::DoModal ()
if ((result = CFileDialog::DoModal ()) == IDOK)
{
// Update the path
std::string newPath = (const char *)GetPathName ();
std::string newPath = tStrToUtf8(GetPathName ());
newPath = NLMISC::CFile::getPath (newPath);
RegSetValueEx (hKey, _FileType.c_str (), 0, REG_SZ, (LPBYTE)newPath.c_str (), newPath.size ()+1);
RegSetValueEx (hKey, utf8ToTStr(_FileType), 0, REG_SZ, (LPBYTE)newPath.c_str (), newPath.size ()+1);
// Update the path list
set<string> oldPath;
@ -83,15 +83,15 @@ INT_PTR CFileDialogEx::DoModal ()
for (i=0; i<PATH_REMEBERED_SIZE; i++)
{
size = 512;
if (RegQueryValueEx (hKey, toString (i).c_str (), 0, &type, (LPBYTE)path, &size) == ERROR_SUCCESS)
oldPath.insert (path);
if (RegQueryValueEx (hKey, utf8ToTStr(toString(i)), 0, &type, (LPBYTE)path, &size) == ERROR_SUCCESS)
oldPath.insert (tStrToUtf8(path));
}
oldPath.insert (newPath);
set<string>::const_iterator ite = oldPath.begin ();
uint index = 0;
while (ite != oldPath.end ())
{
RegSetValueEx (hKey, toString (index).c_str (), 0, REG_SZ, (LPBYTE)ite->c_str (), ite->size ()+1);
RegSetValueEx (hKey, utf8ToTStr(toString(index)), 0, REG_SZ, (LPBYTE)ite->c_str (), ite->size ()+1);
ite++;
index++;
}
@ -122,7 +122,7 @@ BOOL CFileDialogEx::OnCommand( WPARAM wParam, LPARAM lParam )
::GetDlgItemText (parent, edt1, s, MAX_PATH);
// Replace with the directory name
::SendMessage (parent, CDM_SETCONTROLTEXT, edt1, (LPARAM)(const char*)text);
::SendMessage (parent, CDM_SETCONTROLTEXT, edt1, (LPARAM)(LPCTSTR)text);
// Click on the OK button
::SendMessage (parent, WM_COMMAND, IDOK, 0);
@ -148,18 +148,18 @@ BOOL CFileDialogEx::OnInitDialog()
combo.Attach (::GetDlgItem (*this, IDC_DIRLIST));
// Insert the strings
char text[512];
TCHAR text[512];
text[0] = 0;
HKEY hKey;
DWORD type = REG_SZ;
DWORD size;
if (RegCreateKey (HKEY_CURRENT_USER, _RegistryPath.c_str (), &hKey) == ERROR_SUCCESS)
if (RegCreateKey (HKEY_CURRENT_USER, utf8ToTStr(_RegistryPath), &hKey) == ERROR_SUCCESS)
{
uint i;
for (i=0; i<PATH_REMEBERED_SIZE; i++)
{
size = 512;
if (RegQueryValueEx (hKey, toString (i).c_str (), 0, &type, (LPBYTE)text, &size) == ERROR_SUCCESS)
size = 512 * sizeof(TCHAR);
if (RegQueryValueEx (hKey, utf8ToTStr(toString(i)), 0, &type, (LPBYTE)text, &size) == ERROR_SUCCESS)
combo.InsertString (-1, text);
}
if (m_ofn.lpstrInitialDir)

View file

@ -175,7 +175,7 @@ void CFindPrimitiveDlg::OnFindNext()
}
else
{
MessageBox ("End of the document", "Find a primitive...", MB_OK|MB_ICONEXCLAMATION);
MessageBox (_T("End of the document"), _T("Find a primitive..."), MB_OK|MB_ICONEXCLAMATION);
// Init locator
_Locator.getRoot (0);

View file

@ -103,10 +103,8 @@ void CImageListEx::addResourceIcon (const char *filename)
index = ImageList.Replace( index, handle);
// Add in the map
char name[MAX_PATH];
_splitpath (filename, NULL, NULL, name, NULL);
string llwr = strlwr (string (name));
_IconMapString.insert (std::map<string, int>::value_type (llwr, index));
std::string name = toLower(NLMISC::CFile::getFilenameWithoutExtension(filename));
_IconMapString.insert (std::map<string, int>::value_type (name, index));
// Release the icon
DestroyIcon (handle);
@ -131,10 +129,8 @@ int CImageListEx::getImage (int resource) const
int CImageListEx::getImage (const char *filename) const
{
char name[MAX_PATH];
_splitpath (filename, NULL, NULL, name, NULL);
string llwr = strlwr (string (name));
std::map<string, int>::const_iterator ite = _IconMapString.find (llwr);
std::string name = toLower(NLMISC::CFile::getFilenameWithoutExtension(filename));
std::map<string, int>::const_iterator ite = _IconMapString.find (name);
if (ite == _IconMapString.end())
return -1;
else

View file

@ -248,8 +248,8 @@ void CNameDlg::OnBtnAssign()
// get strings
ucstring id;
std::string gn = m_assignGn;
std::string ig = m_assignIg;
std::string gn = tStrToUtf8(m_assignGn);
std::string ig = tStrToUtf8(m_assignIg);
for (uint i=0 ; i<sel.size() ; i++)
{
@ -265,7 +265,7 @@ void CNameDlg::OnBtnAssign()
uint n = m_idList.GetTextLen(i);
m_idList.GetText(i, str.GetBuffer(n));
str.ReleaseBuffer();
id = str;
id.fromUtf8(tStrToUtf8(str));
}
// assign name to selected id

View file

@ -65,7 +65,7 @@
#define IDI_LINE_HIDE 149
#define IDC_INSERT_POINT 149
#define IDI_ZONE_HIDE 150
#define IDC_HAND 150
#define IDC_HAND1 150
#define IDI_ZONE 151
#define IDI_ZONE_OPENED 151
#define IDD_LOADING 152

View file

@ -36,7 +36,7 @@
#include "nel/ligo/ligo_config.h"
// Base registry key
#define BASE_REGISTRY_KEY "Software\\Nevrax\\NeL World Editor"
#define BASE_REGISTRY_KEY _T("Software\\Nevrax\\NeL World Editor")
/////////////////////////////////////////////////////////////////////////////
// CWorldEditorApp:

View file

@ -934,7 +934,7 @@ IDC_COPY CURSOR DISCARDABLE "res\\copy.cur"
IDC_SELECT CURSOR DISCARDABLE "res\\select.cur"
IDC_SELECT_COPY CURSOR DISCARDABLE "res\\select_copy.cur"
IDC_INSERT_POINT CURSOR DISCARDABLE "res\\insert_point.cur"
IDC_HAND CURSOR DISCARDABLE "res\\hand.cur"
IDC_HAND1 CURSOR DISCARDABLE "res\\hand.cur"
IDC_ZOOM CURSOR DISCARDABLE "res\\zoom.cur"
IDC_RADIUS CURSOR DISCARDABLE "res\\radius.cur"

View file

@ -353,7 +353,7 @@ void CPlugin::postRender(CDisplay &display)
// TODO nico This code is duplicated with world_editor_shard_monitor
static bool createFailed = false;
if (createFailed) return;
HRSRC rsc = FindResource(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDR_FLAG_ICONS_TGA), "TGA");
HRSRC rsc = FindResource(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDR_FLAG_ICONS_TGA), _T("TGA"));
if (rsc == NULL)
{
DWORD lastError = GetLastError();

View file

@ -172,7 +172,7 @@ void CGraphPlugin::refreshPrimitives()
{
string msg("Can't write script file '");
msg += tmpPath+"/lang.dot'";
AfxMessageBox(msg.c_str());
AfxMessageBox(utf8ToTStr(msg));
}
else
{
@ -186,7 +186,7 @@ void CGraphPlugin::refreshPrimitives()
//currently using output.png as the input file...
if(!createBitmap(tmpPath))
AfxMessageBox("BEWARE: the image couldn't be loaded.");
AfxMessageBox(_T("BEWARE: the image couldn't be loaded."));
}
while (missionTreeRoot->getParent()!=NULL)
@ -207,11 +207,11 @@ void CGraphPlugin::refreshPrimitives()
err = toString("%s : %s", primName.c_str(), e.Why.c_str());
}
AfxMessageBox(err.c_str());
AfxMessageBox(utf8ToTStr(err));
}
catch (const exception &e) //catch a possible exception from getRootFileName
{
AfxMessageBox(e.what());
AfxMessageBox(utf8ToTStr(e.what()));
}
}
else
@ -254,7 +254,7 @@ void CGraphPlugin::refreshMachine()
{
string msg("Can't write script file '");
msg += tmpPath+"/lang.dot'";
AfxMessageBox(msg.c_str());
AfxMessageBox(utf8ToTStr(msg));
}
else
{
@ -268,7 +268,7 @@ void CGraphPlugin::refreshMachine()
//currently using output.png as the input file...
if(!createBitmap(tmpPath))
AfxMessageBox("BEWARE: the image couldn't be loaded.");
AfxMessageBox(_T("BEWARE: the image couldn't be loaded."));
}
while (missionTreeRoot->getParent()!=NULL)
@ -298,7 +298,7 @@ void CGraphPlugin::refreshMachine()
{
string msg("Can't write script file '");
msg += tmpPath+"/lang.dot'";
AfxMessageBox(msg.c_str());
AfxMessageBox(utf8ToTStr(msg));
}
else
{
@ -312,7 +312,7 @@ void CGraphPlugin::refreshMachine()
//currently using output.png as the input file...
if(!createBitmap(tmpPath))
AfxMessageBox("BEWARE: the image couldn't be loaded.");
AfxMessageBox(_T("BEWARE: the image couldn't be loaded."));
}
while (missionTreeRoot->getParent()!=NULL)
@ -323,7 +323,7 @@ void CGraphPlugin::refreshMachine()
}
else
{
AfxMessageBox("The selected node could not be processed.");
AfxMessageBox(_T("The selected node could not be processed."));
}
}
@ -938,9 +938,10 @@ void CGraphPlugin::doSelection(const string& primPath)
selectPrimByPath(rootNode,primPath,resSet);
_PluginAccess->setCurrentSelection(resSet);
}catch(const exception &e){
GraphDlg->MessageBox(e.what());
}
catch(const exception &e)
{
GraphDlg->MessageBox(utf8ToTStr(e.what()));
}
}
}

View file

@ -73,18 +73,18 @@ CDialogFlags::CDialogFlags(CWnd* pParent /*=NULL*/)
{
CEntityDisplayInfo di[] =
{
CEntityDisplayInfo(RYZOMID::building, "Building", NLMISC::CRGBA(192, 0, 0)),
CEntityDisplayInfo(RYZOMID::creature, "Creature", NLMISC::CRGBA(255, 127, 0), 2, 0),
CEntityDisplayInfo(RYZOMID::deposit, "Deposit", NLMISC::CRGBA(0, 255, 0)),
CEntityDisplayInfo(RYZOMID::flora, "Flora", NLMISC::CRGBA(255, 127, 0)),
CEntityDisplayInfo(RYZOMID::forageSource, "Forage Source", NLMISC::CRGBA(0, 255, 0)),
CEntityDisplayInfo(RYZOMID::mount, "Mount", NLMISC::CRGBA(127, 63, 0), 3, 0),
CEntityDisplayInfo(RYZOMID::npc, "NPC", NLMISC::CRGBA(255, 0, 0), 1, 0),
CEntityDisplayInfo(RYZOMID::object, "Object", NLMISC::CRGBA(192, 255, 255)),
CEntityDisplayInfo(RYZOMID::pack_animal, "Pack Animal", NLMISC::CRGBA(127, 63, 0), 3, 0),
CEntityDisplayInfo(RYZOMID::player, "Player", NLMISC::CRGBA(127, 127, 255), 0, 0),
CEntityDisplayInfo(RYZOMID::fx_entity, "FX Entity", NLMISC::CRGBA(0, 255, 0)),
CEntityDisplayInfo(RYZOMID::unknown, "Unknown", NLMISC::CRGBA(127, 127, 127)),
CEntityDisplayInfo(RYZOMID::building, _T("Building"), NLMISC::CRGBA(192, 0, 0)),
CEntityDisplayInfo(RYZOMID::creature, _T("Creature"), NLMISC::CRGBA(255, 127, 0), 2, 0),
CEntityDisplayInfo(RYZOMID::deposit, _T("Deposit"), NLMISC::CRGBA(0, 255, 0)),
CEntityDisplayInfo(RYZOMID::flora, _T("Flora"), NLMISC::CRGBA(255, 127, 0)),
CEntityDisplayInfo(RYZOMID::forageSource, _T("Forage Source"), NLMISC::CRGBA(0, 255, 0)),
CEntityDisplayInfo(RYZOMID::mount, _T("Mount"), NLMISC::CRGBA(127, 63, 0), 3, 0),
CEntityDisplayInfo(RYZOMID::npc, _T("NPC"), NLMISC::CRGBA(255, 0, 0), 1, 0),
CEntityDisplayInfo(RYZOMID::object, _T("Object"), NLMISC::CRGBA(192, 255, 255)),
CEntityDisplayInfo(RYZOMID::pack_animal, _T("Pack Animal"), NLMISC::CRGBA(127, 63, 0), 3, 0),
CEntityDisplayInfo(RYZOMID::player, _T("Player"), NLMISC::CRGBA(127, 127, 255), 0, 0),
CEntityDisplayInfo(RYZOMID::fx_entity, _T("FX Entity"), NLMISC::CRGBA(0, 255, 0)),
CEntityDisplayInfo(RYZOMID::unknown, _T("Unknown"), NLMISC::CRGBA(127, 127, 127)),
};
initDisplayInfo(di, sizeofarray(di), _EntityDisplayInfo[EntityType]);
}
@ -92,10 +92,10 @@ CDialogFlags::CDialogFlags(CWnd* pParent /*=NULL*/)
{
CEntityDisplayInfo di[] =
{
CEntityDisplayInfo(0, "Dead", NLMISC::CRGBA(255, 0, 0)),
CEntityDisplayInfo(1, "Weak", NLMISC::CRGBA(255, 255, 0)),
CEntityDisplayInfo(2, "Full shape", NLMISC::CRGBA(0, 255, 0)),
CEntityDisplayInfo(3, "No Hit Points", NLMISC::CRGBA(127, 127, 127)),
CEntityDisplayInfo(0, _T("Dead"), NLMISC::CRGBA(255, 0, 0)),
CEntityDisplayInfo(1, _T("Weak"), NLMISC::CRGBA(255, 255, 0)),
CEntityDisplayInfo(2, _T("Full shape"), NLMISC::CRGBA(0, 255, 0)),
CEntityDisplayInfo(3, _T("No Hit Points"), NLMISC::CRGBA(127, 127, 127)),
};
initDisplayInfo(di, sizeofarray(di), _EntityDisplayInfo[EntityHitPoints]);
}
@ -103,9 +103,9 @@ CDialogFlags::CDialogFlags(CWnd* pParent /*=NULL*/)
{
CEntityDisplayInfo di[] =
{
CEntityDisplayInfo(0, "Dead", NLMISC::CRGBA(255, 0, 0)),
CEntityDisplayInfo(1, "Alive", NLMISC::CRGBA(0, 0, 255)),
CEntityDisplayInfo(2, "No Hit Points", NLMISC::CRGBA(127, 127, 127)),
CEntityDisplayInfo(0, _T("Dead"), NLMISC::CRGBA(255, 0, 0)),
CEntityDisplayInfo(1, _T("Alive"), NLMISC::CRGBA(0, 0, 255)),
CEntityDisplayInfo(2, _T("No Hit Points"), NLMISC::CRGBA(127, 127, 127)),
};
initDisplayInfo(di, sizeofarray(di), _EntityDisplayInfo[EntityAlive]);
}
@ -113,19 +113,19 @@ CDialogFlags::CDialogFlags(CWnd* pParent /*=NULL*/)
{
CEntityDisplayInfo di[] =
{
CEntityDisplayInfo(MBEHAV::UNKNOWN_MODE, "Unknown", NLMISC::CRGBA(127, 127, 127)),
CEntityDisplayInfo(MBEHAV::NORMAL, "Normal", NLMISC::CRGBA(255, 255, 255)),
CEntityDisplayInfo(MBEHAV::COMBAT_FLOAT, "Combat float", NLMISC::CRGBA(255, 0, 0), 0, 1),
CEntityDisplayInfo(MBEHAV::COMBAT, "Combat", NLMISC::CRGBA(255, 0, 0), 0, 1),
CEntityDisplayInfo(MBEHAV::SWIM, "Swim", NLMISC::CRGBA(0, 0, 255)),
CEntityDisplayInfo(MBEHAV::SIT, "Sit", NLMISC::CRGBA(0, 255, 255)),
CEntityDisplayInfo(MBEHAV::MOUNT_NORMAL, "Mount Normal", NLMISC::CRGBA(192, 128, 0)),
CEntityDisplayInfo(MBEHAV::MOUNT_SWIM, "Mount Swim", NLMISC::CRGBA(0, 0, 255)),
CEntityDisplayInfo(MBEHAV::EAT, "Eat", NLMISC::CRGBA(0, 255, 0)),
CEntityDisplayInfo(MBEHAV::ALERT, "Alert", NLMISC::CRGBA(255, 127, 0)),
CEntityDisplayInfo(MBEHAV::HUNGRY, "Hungry", NLMISC::CRGBA(255, 255, 0)),
CEntityDisplayInfo(MBEHAV::DEATH, "Death", NLMISC::CRGBA(0, 0, 0)),
CEntityDisplayInfo(MBEHAV::SWIM_DEATH, "SwimDeath", NLMISC::CRGBA(0, 0, 0))
CEntityDisplayInfo(MBEHAV::UNKNOWN_MODE, _T("Unknown"), NLMISC::CRGBA(127, 127, 127)),
CEntityDisplayInfo(MBEHAV::NORMAL, _T("Normal"), NLMISC::CRGBA(255, 255, 255)),
CEntityDisplayInfo(MBEHAV::COMBAT_FLOAT, _T("Combat float"), NLMISC::CRGBA(255, 0, 0), 0, 1),
CEntityDisplayInfo(MBEHAV::COMBAT, _T("Combat"), NLMISC::CRGBA(255, 0, 0), 0, 1),
CEntityDisplayInfo(MBEHAV::SWIM, _T("Swim"), NLMISC::CRGBA(0, 0, 255)),
CEntityDisplayInfo(MBEHAV::SIT, _T("Sit"), NLMISC::CRGBA(0, 255, 255)),
CEntityDisplayInfo(MBEHAV::MOUNT_NORMAL, _T("Mount Normal"), NLMISC::CRGBA(192, 128, 0)),
CEntityDisplayInfo(MBEHAV::MOUNT_SWIM, _T("Mount Swim"), NLMISC::CRGBA(0, 0, 255)),
CEntityDisplayInfo(MBEHAV::EAT, _T("Eat"), NLMISC::CRGBA(0, 255, 0)),
CEntityDisplayInfo(MBEHAV::ALERT, _T("Alert"), NLMISC::CRGBA(255, 127, 0)),
CEntityDisplayInfo(MBEHAV::HUNGRY, _T("Hungry"), NLMISC::CRGBA(255, 255, 0)),
CEntityDisplayInfo(MBEHAV::DEATH, _T("Death"), NLMISC::CRGBA(0, 0, 0)),
CEntityDisplayInfo(MBEHAV::SWIM_DEATH, _T("SwimDeath"), NLMISC::CRGBA(0, 0, 0))
};
initDisplayInfo(di, sizeofarray(di), _EntityDisplayInfo[EntityMode]);
}
@ -213,7 +213,7 @@ BOOL CDialogFlags::OnInitDialog()
{
CDialog::OnInitDialog();
HRSRC rsc = FindResource(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDR_ENTITY_ICONS_TGA), "TGA");
HRSRC rsc = FindResource(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDR_ENTITY_ICONS_TGA), _T("TGA"));
if (rsc != NULL)
{
NLMISC::CBitmap bm;
@ -247,7 +247,7 @@ BOOL CDialogFlags::OnInitDialog()
::CRect shardListRect;
GetDlgItem(IDC_SHARD_LIST_PLACEMENT)->GetWindowRect(shardListRect);
ScreenToClient(&shardListRect);
ShardCtrl.create(WS_CHILD|WS_TABSTOP, shardListRect, this, 0, REGKEY_BASE_PATH "\\shard_list", 10);
ShardCtrl.create(WS_CHILD|WS_TABSTOP, shardListRect, this, 0, REGKEY_BASE_PATH _T("\\shard_list"), 10);
ShardCtrl.ShowWindow (SW_SHOW);
CFont* font = GetFont ();
ShardCtrl.SetFont(font);
@ -295,24 +295,24 @@ void CDialogFlags::setCurrentEntityDisplayMode(TEntityDisplayMode edm)
#define REGKEY_ENTITY_DISPLAY_INFO REGKEY_BASE_PATH "\\entity_display_info\\"
#define REGKEY_ENTITY_DISPLAY_INFO REGKEY_BASE_PATH _T("\\entity_display_info\\")
//******************************************************************************************************
void CDialogFlags::loadEntityDisplayInfoToRegistry(TEntityDisplayInfoVect &infos, const std::string &regId)
{
HKEY hKey;
if (RegOpenKeyEx(HKEY_CURRENT_USER, (REGKEY_ENTITY_DISPLAY_INFO + regId).c_str(), 0, KEY_QUERY_VALUE, &hKey) == ERROR_SUCCESS)
if (RegOpenKeyEx(HKEY_CURRENT_USER, utf8ToTStr(tStrToUtf8(REGKEY_ENTITY_DISPLAY_INFO) + regId), 0, KEY_QUERY_VALUE, &hKey) == ERROR_SUCCESS)
{
DWORD index = 0;
for(;;)
{
char valueStr[256] = { 0 };
TCHAR valueStr[256] = { 0 };
BYTE dataStr[256] = { 0 };
DWORD valueSize = sizeofarray(valueStr);
DWORD dataSize = sizeofarray(dataStr);
LONG result = RegEnumValue(hKey, index, valueStr, &valueSize, NULL, NULL, dataStr, &dataSize);
if (result != ERROR_SUCCESS) break;
uint value = (uint) atoi(valueStr);
uint value = (uint) _ttoi(valueStr);
for(uint k = 0; k < infos.size(); ++k)
{
if (infos[k].Value == value)
@ -338,14 +338,14 @@ void CDialogFlags::loadEntityDisplayInfoToRegistry(TEntityDisplayInfoVect &infos
void CDialogFlags::saveEntityDisplayInfoToRegistry(const TEntityDisplayInfoVect &infos, const std::string &regId)
{
HKEY hKey;
if (RegCreateKeyEx(HKEY_CURRENT_USER, (REGKEY_ENTITY_DISPLAY_INFO + regId).c_str(), 0, NULL, REG_OPTION_NON_VOLATILE, KEY_WRITE, NULL, &hKey, NULL) == ERROR_SUCCESS)
if (RegCreateKeyEx(HKEY_CURRENT_USER, utf8ToTStr(tStrToUtf8(REGKEY_ENTITY_DISPLAY_INFO) + regId), 0, NULL, REG_OPTION_NON_VOLATILE, KEY_WRITE, NULL, &hKey, NULL) == ERROR_SUCCESS)
{
for(uint k = 0; k < infos.size(); ++k)
{
char colorStr[128];
CRGBA color = infos[k].Color;
sprintf(colorStr, "%d, %d, %d, visible = %d", (int) color.R, (int) color.G, (int) color.B, (int) (infos[k].Visible ? 1 : 0));
LONG result = RegSetValueEx(hKey, toString((int) infos[k].Value).c_str(), 0, REG_SZ, (const BYTE *) colorStr, strlen(colorStr));
LONG result = RegSetValueEx(hKey, utf8ToTStr(toString(infos[k].Value)), 0, REG_SZ, (const BYTE *) colorStr, strlen(colorStr));
if (result != ERROR_SUCCESS)
{
nlwarning("Couldn't write registry key for entity % color", infos[k].Name);

Some files were not shown because too many files have changed in this diff Show more