Merged in Glorf/ryzomcore/target_sheet (pull request #142)

Update target command
This commit is contained in:
C?dric OCHS 2016-12-04 12:43:36 +00:00
commit 916f1b008b
126 changed files with 1853 additions and 1817 deletions

View file

@ -176,10 +176,23 @@ MACRO(PCH_SET_COMPILE_FLAGS _target)
ENDIF() ENDIF()
IF(CMAKE_VERSION VERSION_LESS "3.3.0") IF(CMAKE_VERSION VERSION_LESS "3.3.0")
GET_DIRECTORY_PROPERTY(_directory_flags DEFINITIONS) GET_DIRECTORY_PROPERTY(_DIRECTORY_FLAGS DEFINITIONS)
GET_DIRECTORY_PROPERTY(_directory_definitions DIRECTORY ${CMAKE_SOURCE_DIR} DEFINITIONS)
LIST(APPEND _FLAGS ${_directory_flags}) IF(_DIRECTORY_FLAGS)
LIST(APPEND _FLAGS ${_directory_definitions}) SEPARATE_ARGUMENTS(_DIRECTORY_FLAGS)
FOREACH(item ${_DIRECTORY_FLAGS})
LIST(APPEND _FLAGS "${item}")
ENDFOREACH()
ENDIF()
GET_DIRECTORY_PROPERTY(_DIRECTORY_DEFINITIONS DIRECTORY ${CMAKE_SOURCE_DIR} DEFINITIONS)
IF(_DIRECTORY_DEFINITIONS)
SEPARATE_ARGUMENTS(_DIRECTORY_DEFINITIONS)
FOREACH(item ${_DIRECTORY_DEFINITIONS})
LIST(APPEND _FLAGS "${item}")
ENDFOREACH()
ENDIF()
ENDIF() ENDIF()
# Format definitions # Format definitions

View file

@ -870,9 +870,6 @@ MACRO(NL_SETUP_BUILD)
ELSE() ELSE()
# Check wrong formats in printf-like functions # Check wrong formats in printf-like functions
ADD_PLATFORM_FLAGS("-Wformat -Werror=format-security") 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() ENDIF()
IF(ANDROID) IF(ANDROID)
@ -929,8 +926,10 @@ MACRO(NL_SETUP_BUILD)
SET(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -Wl,--no-undefined -Wl,--as-needed") SET(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -Wl,--no-undefined -Wl,--as-needed")
ENDIF() ENDIF()
IF(NOT APPLE)
# hardening # hardening
SET(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now") SET(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now")
ENDIF()
IF(WITH_SYMBOLS) IF(WITH_SYMBOLS)
SET(NL_RELEASE_CFLAGS "${NL_RELEASE_CFLAGS} -g") SET(NL_RELEASE_CFLAGS "${NL_RELEASE_CFLAGS} -g")

View file

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

View file

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

View file

@ -291,7 +291,7 @@ inline sint nlstricmp(const char *lhs, const std::string &rhs) { return stricmp(
#define tStrToUtf8(str) (ucstring((ucchar*)(LPCWSTR)str).toUtf8()) #define tStrToUtf8(str) (ucstring((ucchar*)(LPCWSTR)str).toUtf8())
#define utf8ToTStr(str) ((wchar_t*)ucstring::makeFromUtf8(str).c_str()) #define utf8ToTStr(str) ((wchar_t*)ucstring::makeFromUtf8(str).c_str())
#else #else
#define tStrToUtf8(str) ((LPCSTR)str) #define tStrToUtf8(str) (std::string((LPCSTR)str))
#define utf8ToTStr(str) (str.c_str()) #define utf8ToTStr(str) (str.c_str())
#endif #endif
@ -478,6 +478,22 @@ template <class T> void explode (const T &src, const T &sep, std::vector<T> &res
while(pos != std::string::npos); 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). /* 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) * 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() ); nlassert( stream.stringMode() );
uint32 len; uint32 len = 0;
std::string s_event; std::string s_event;
stream.serial( UpdateCounter ); stream.serial( UpdateCounter );
if ( stream.isReading() ) if ( stream.isReading() )

View file

@ -1120,8 +1120,6 @@ void CPSConstraintMesh::getShapesNames(std::string *shapesNames) const
#endif #endif
} }
//==================================================================================== //====================================================================================
void CPSConstraintMesh::setShape(uint index, const std::string &shapeName) void CPSConstraintMesh::setShape(uint index, const std::string &shapeName)
{ {
@ -1132,7 +1130,6 @@ void CPSConstraintMesh::setShape(uint index, const std::string &shapeName)
_ValidBuild = 0; _ValidBuild = 0;
} }
//==================================================================================== //====================================================================================
const std::string &CPSConstraintMesh::getShape(uint index) const const std::string &CPSConstraintMesh::getShape(uint index) const
{ {

View file

@ -26,6 +26,12 @@ using namespace std;
namespace NLGUI namespace NLGUI
{ {
// helper to convert double <> sint64
union C64BitsParts
{
sint64 i64;
double d;
};
bool CInterfaceProperty::link( CCDBNodeLeaf *dbNode ) 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 // sint64 operations
// ***************** // *****************
@ -104,10 +124,9 @@ namespace NLGUI
if ( isdigit(*ptr) || *ptr=='-') if ( isdigit(*ptr) || *ptr=='-')
{ {
_VolatileValue = NLGUI::CDBManager::getInstance()->getDbProp(id); _VolatileValue = NLGUI::CDBManager::getInstance()->getDbProp(id);
double buf; C64BitsParts buf;
fromString(ptr, buf); fromString(ptr, buf.d);
sint64 i = *(sint64*)&buf; _VolatileValue->setValue64(buf.i64);
_VolatileValue->setValue64( i );
} }
else else
{ {

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -262,8 +262,7 @@ void CAnimationSetDlg::refresh (BOOL update)
for (i=0; i<object->Saved.AnimationFileName.size(); i++) for (i=0; i<object->Saved.AnimationFileName.size(); i++)
{ {
// Get the animation name // Get the animation name
char name[512]; std::string name = NLMISC::CFile::getFilenameWithoutExtension(object->Saved.AnimationFileName[i]);
_splitpath (object->Saved.AnimationFileName[i].c_str(), NULL, NULL, name, NULL);
// Get the animation pointer // Get the animation pointer
CAnimation *anim = object->AnimationSet.getAnimation (object->AnimationSet.getAnimationIdByName (name)); CAnimation *anim = object->AnimationSet.getAnimation (object->AnimationSet.getAnimationIdByName (name));
@ -288,6 +287,7 @@ void CAnimationSetDlg::refresh (BOOL update)
// Keyframer ? // Keyframer ?
UTrackKeyframer *keyTrack=dynamic_cast<UTrackKeyframer *>(track); UTrackKeyframer *keyTrack=dynamic_cast<UTrackKeyframer *>(track);
if (keyTrack) if (keyTrack)
{ {
// Get number of keys // Get number of keys
@ -314,8 +314,7 @@ void CAnimationSetDlg::refresh (BOOL update)
for (i=0; i<object->Saved.SWTFileName.size(); i++) for (i=0; i<object->Saved.SWTFileName.size(); i++)
{ {
// Get the animation name // Get the animation name
char name[512]; std::string name = NLMISC::CFile::getFilenameWithoutExtension(object->Saved.SWTFileName[i]);
_splitpath (object->Saved.SWTFileName[i].c_str(), NULL, NULL, name, NULL);
// Get the animation pointer // Get the animation pointer
CSkeletonWeight *swt = object->AnimationSet.getSkeletonWeight(object->AnimationSet.getSkeletonWeightIdByName(name)); 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); CFileDialog fd(TRUE, _T(".shape"), _T("*.shape"), 0, NULL, this);
if (fd.DoModal() == IDOK) 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 // Add search path for the texture
/* /*
_splitpath (fd.GetPathName(), drive, dir, fname, ext); NLMISC::CPath::addSearchPath (NLMISC::CFile::getPath(tStrToUtf8(fd.GetPathName()));
_makepath (path, drive, dir, NULL, NULL);
NLMISC::CPath::addSearchPath (path);
*/ */
name = 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) 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; 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) inline const TCHAR *CEditableRangeT<uint32>::string2value(const CString &value, uint32 &result)
{ {
uint32 tmp; sint32 tmp;
if (sscanf((LPCTSTR) value, "%d", &tmp) == 1) if (NLMISC::fromString(tStrToUtf8(value), tmp))
{ {
if (strchr((LPCTSTR) value, '-')) 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) inline const TCHAR *CEditableRangeT<sint32>::string2value(const CString &value, sint32 &result)
{ {
uint32 tmp; sint32 tmp;
if (sscanf((LPCTSTR) value, "%d", &tmp) == 1) if (NLMISC::fromString(tStrToUtf8(value), tmp))
{ {
result = tmp; result = tmp;
return NULL; return NULL;

View file

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

View file

@ -94,30 +94,27 @@ void CMeshDlg::OnBrowseShape()
if (fd.DoModal() == IDOK) if (fd.DoModal() == IDOK)
{ {
// Add to the path // Add to the path
char drive[256]; std::string fullPath = tStrToUtf8(fd.GetPathName());
char dir[256]; std::string fname = NLMISC::CFile::getFilenameWithoutExtension(fullPath);
char path[256]; std::string ext = NLMISC::CFile::getExtension(fullPath);
char fname[256];
char ext[256];
// Add search path for the texture // Add search path for the texture
_splitpath (fd.GetPathName(), drive, dir, fname, ext); NLMISC::CPath::addSearchPath (NLMISC::CFile::getPath(fullPath));
_makepath (path, drive, dir, NULL, NULL);
NLMISC::CPath::addSearchPath (path);
try try
{ {
_ShapeParticle->setShape(std::string(fname) + ext); _ShapeParticle->setShape(fname + "." + ext);
m_ShapeName = (std::string(fname) + ext).c_str(); m_ShapeName = utf8ToTStr(fname + "." + ext);
touchPSState(); touchPSState();
} }
catch (const NLMISC::Exception &e) catch (const NLMISC::Exception &e)
{ {
MessageBox(utf8ToTStr(e.what()), _T("shape loading error")); MessageBox(utf8ToTStr(e.what()), _T("shape loading error"));
} }
updateMeshErrorString(); updateMeshErrorString();
} }
UpdateData(FALSE); UpdateData(FALSE);
} }
@ -162,7 +159,7 @@ void CMeshDlg::updateForMorph()
GetDlgItem(IDC_SHAPE_NAME)->EnableWindow(!enable); GetDlgItem(IDC_SHAPE_NAME)->EnableWindow(!enable);
if (!enable) if (!enable)
{ {
m_ShapeName = cm->getShape().c_str(); m_ShapeName = utf8ToTStr(cm->getShape());
} }
else 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]; TCHAR u1[10], u2[10], v1[10], v2[10];
NLMISC::CVector2f vs1, vs2; NLMISC::CVector2f vs1, vs2;
if (!alternate) if (!alternate)
{ {
GetDlgItem(IDC_U_SPEED_1)->GetWindowText(u1, 10); GetDlgItem(IDC_U_SPEED_1)->GetWindowText(u1, 10);

View file

@ -220,6 +220,7 @@ void CParticleSystemEdit::updateDieOnEventParams()
{ {
ew = FALSE; ew = FALSE;
} }
GetDlgItem(IDC_APPLY_AFTER_DELAY)->EnableWindow(ew); GetDlgItem(IDC_APPLY_AFTER_DELAY)->EnableWindow(ew);
CString out; CString out;
@ -232,6 +233,7 @@ void CParticleSystemEdit::updateDieOnEventParams()
{ {
out = _T("???"); out = _T("???");
} }
GetDlgItem(IDC_APPLY_AFTER_DELAY)->SetWindowText(out); GetDlgItem(IDC_APPLY_AFTER_DELAY)->SetWindowText(out);
((CButton *) GetDlgItem(IDC_AUTO_DELAY))->SetCheck(autoDelay ? 1 : 0); ((CButton *) GetDlgItem(IDC_AUTO_DELAY))->SetCheck(autoDelay ? 1 : 0);
} }

View file

@ -852,8 +852,8 @@ BOOL CParticleTreeCtrl::OnCmdMsg(UINT nID, int nCode, void* pExtra, AFX_CMDHA
nt = new CNodeType(nt->Loc, objIndex); nt = new CNodeType(nt->Loc, objIndex);
_NodeTypes.push_back(nt); _NodeTypes.push_back(nt);
// insert the element in the tree // 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); 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) nt); SetItemData(root, (DWORD_PTR) nt);
Invalidate(); Invalidate();
} }
break; break;

View file

@ -386,6 +386,7 @@ CParticleWorkspace::CNode *CParticleWorkspace::addNode(const std::string &filena
{ {
relativePath = resultPath; relativePath = resultPath;
} }
if (relativePath.size() >= 2) if (relativePath.size() >= 2)
{ {
if (relativePath[0] == '\\' && relativePath[1] != '\\') if (relativePath[0] == '\\' && relativePath[1] != '\\')
@ -393,6 +394,7 @@ CParticleWorkspace::CNode *CParticleWorkspace::addNode(const std::string &filena
relativePath = relativePath.substr(1); relativePath = relativePath.substr(1);
} }
} }
CNode *newNode = new CNode; CNode *newNode = new CNode;
newNode->init(this); newNode->init(this);
newNode->setRelativePath(relativePath); newNode->setRelativePath(relativePath);

View file

@ -159,7 +159,7 @@ void CPickSound::OnDblclkList()
stopCurrSource(); stopCurrSource();
CString sName; CString sName;
m_NameList.GetText(curSel, 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))) if (dynamic_cast<NL3D::IPSMover *>(_EditedLocated->getBoundObject(k)))
{ {
uint insertedLine = m_SubComponentCtrl.AddString(_EditedLocated->getBoundObject(k)->getName().c_str()); uint insertedLine = m_SubComponentCtrl.AddString(utf8ToTStr(_EditedLocated->getBoundObject(k)->getName()));
m_SubComponentCtrl.SetItemData(insertedLine, (DWORD) _EditedLocated->getBoundObject(k)); m_SubComponentCtrl.SetItemData(insertedLine, (DWORD_PTR) _EditedLocated->getBoundObject(k));
++nbCandidates; ++nbCandidates;
} }
} }

View file

@ -201,10 +201,13 @@ void CSkeletonScaleDlg::setSkeletonToEdit(NL3D::CSkeletonModel *skel, const std
{ {
const std::string tabStr = " "; const std::string tabStr = " ";
std::string name = _SkeletonModel->Bones[i].getBoneName(); std::string name = _SkeletonModel->Bones[i].getBoneName();
// append a tab for easy hierarchy // append a tab for easy hierarchy
uint boneId = i; uint boneId = i;
while((boneId=_SkeletonModel->Bones[boneId].getFatherId())!=-1) while((boneId=_SkeletonModel->Bones[boneId].getFatherId())!=-1)
name = tabStr + name; name = tabStr + name;
// append to the list // append to the list
_BoneList.AddString(utf8ToTStr(name)); _BoneList.AddString(utf8ToTStr(name));
} }
@ -843,13 +846,13 @@ void CSkeletonScaleDlg::OnSsdButtonSaveas()
return; return;
// choose the file // choose the file
CFileDialog fd(FALSE, "skel", _SkeletonFileName.c_str(), OFN_OVERWRITEPROMPT, "SkelFiles (*.skel)|*.skel|All Files (*.*)|*.*||", this) ; CFileDialog fd(FALSE, _T("skel"), utf8ToTStr(_SkeletonFileName), OFN_OVERWRITEPROMPT, _T("SkelFiles (*.skel)|*.skel|All Files (*.*)|*.*||"), this) ;
fd.m_ofn.lpstrTitle= "Save As Skeleton"; fd.m_ofn.lpstrTitle = _T("Save As Skeleton");
if (fd.DoModal() == IDOK) if (fd.DoModal() == IDOK)
{ {
NLMISC::COFile f; NLMISC::COFile f;
if( f.open((const char*)fd.GetPathName()) ) if( f.open(tStrToUtf8(fd.GetPathName())) )
{ {
if(saveCurrentInStream(f)) if(saveCurrentInStream(f))
{ {
@ -859,7 +862,7 @@ void CSkeletonScaleDlg::OnSsdButtonSaveas()
} }
// bkup the valid fileName (new file edited) // bkup the valid fileName (new file edited)
_SkeletonFileName= (const char*)fd.GetPathName(); _SkeletonFileName= tStrToUtf8(fd.GetPathName());
_StaticFileName= _SkeletonFileName.c_str(); _StaticFileName= _SkeletonFileName.c_str();
UpdateData(FALSE); UpdateData(FALSE);
} }

View file

@ -114,6 +114,7 @@ void CSnapshotToolDlg::stringFromRegistry(HKEY hKey, const TCHAR *name, CString
DWORD type; DWORD type;
DWORD size; DWORD size;
LONG result = RegQueryValueEx(hKey, name, NULL, &type, NULL, &size); LONG result = RegQueryValueEx(hKey, name, NULL, &type, NULL, &size);
if (type != REG_SZ || result != ERROR_SUCCESS || size == 0) if (type != REG_SZ || result != ERROR_SUCCESS || size == 0)
{ {
dest = defaultStr; dest = defaultStr;
@ -144,18 +145,22 @@ template <class T, class U> void integralTypeFromRegistry(HKEY hKey, const TCHAR
DWORD type; DWORD type;
DWORD size; DWORD size;
LONG result = RegQueryValueEx(hKey, name, NULL, &type, NULL, &size); LONG result = RegQueryValueEx(hKey, name, NULL, &type, NULL, &size);
if (type != REG_DWORD || result != ERROR_SUCCESS || size == 0) if (type != REG_DWORD || result != ERROR_SUCCESS || size == 0)
{ {
dest = (T) defaultValue; dest = (T) defaultValue;
return; return;
} }
DWORD value; DWORD value;
result = RegQueryValueEx(hKey, name, NULL, &type, LPBYTE(&value), &size); result = RegQueryValueEx(hKey, name, NULL, &type, LPBYTE(&value), &size);
if (result != ERROR_SUCCESS) if (result != ERROR_SUCCESS)
{ {
dest = defaultValue; dest = defaultValue;
return; return;
} }
dest = (T) value; dest = (T) value;
} }
@ -175,6 +180,7 @@ void CSnapshotToolDlg::fromRegistry()
NLMISC::splitString(tStrToUtf8(filters), ",", filterList); NLMISC::splitString(tStrToUtf8(filters), ",", filterList);
m_Filters.ResetContent(); m_Filters.ResetContent();
for (uint k = 0; k < filterList.size(); ++k) for (uint k = 0; k < filterList.size(); ++k)
{ {
m_Filters.AddString(utf8ToTStr(filterList[k])); m_Filters.AddString(utf8ToTStr(filterList[k]));
@ -431,7 +437,6 @@ void CSnapshotToolDlg::OnGo()
} }
} }
// make sure that the screen can contains the window client area // make sure that the screen can contains the window client area
RECT desktopSize; RECT desktopSize;
::GetClientRect(::GetDesktopWindow(), &desktopSize); ::GetClientRect(::GetDesktopWindow(), &desktopSize);

View file

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

View file

@ -33,7 +33,7 @@ void CDirectEditableRangeFloat::init(uint32 x, uint32 y, CWnd *pParent)
CRect rect; CRect rect;
rect.SetRect(x, y+10, x+dx, y+25); 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()); _StaticText.SetFont(pParent->GetFont());
} }

View file

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

View file

@ -63,7 +63,7 @@ BOOL CVegetableSelectDlg::OnInitDialog()
uint num= _VegetableDlg->getNumVegetables(); uint num= _VegetableDlg->getNumVegetables();
for(uint i=0; i<num; i++) 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 return TRUE; // return TRUE unless you set the focus to a control

View file

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

View file

@ -165,9 +165,8 @@ BOOL CWaterPoolEditor::OnInitDialog()
int CWaterPoolEditor::addPool(uint32 ID) int CWaterPoolEditor::addPool(uint32 ID)
{ {
char poolId[128]; std::string poolId = NLMISC::toString("%d (%s)", ID, _Wpm->getPoolByID(ID).getName().c_str());
sprintf(poolId, "%d (%s)", ID, _Wpm->getPoolByID(ID).getName().c_str()); int index = m_PoolList.AddString(utf8ToTStr(poolId));
int index = m_PoolList.AddString(poolId);
nlassert(index != LB_ERR); nlassert(index != LB_ERR);
m_PoolList.SetItemData(index, ID); m_PoolList.SetItemData(index, ID);
return index; return index;
@ -358,7 +357,7 @@ void CWaterPoolEditor::OnLoadPool()
{ {
NLMISC::CIXml iXml; NLMISC::CIXml iXml;
NLMISC::CIFile iF; NLMISC::CIFile iF;
if (iF.open((LPCTSTR) fileDlg.GetPathName())) if (iF.open(tStrToUtf8(fileDlg.GetPathName())))
{ {
if (iXml.init (iF)) if (iXml.init (iF))
{ {
@ -370,17 +369,17 @@ void CWaterPoolEditor::OnLoadPool()
else else
{ {
iF.close(); 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 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) 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::COXml oXml;
NLMISC::COFile oF; NLMISC::COFile oF;
if (oF.open((LPCTSTR) fileDlg.GetPathName())) if (oF.open(tStrToUtf8(fileDlg.GetPathName())))
{ {
if (oXml.init (&oF)) if (oXml.init (&oF))
{ {
@ -407,17 +406,17 @@ void CWaterPoolEditor::OnSavePool()
else else
{ {
oF.close(); 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 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) 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 // Name of the node
char sNodeMsg[256]; char sNodeMsg[256];
nlwarning (sNodeMsg, "Save %s model...", pNode->GetName()); nlwarning (sNodeMsg, "Save %s model...", tStrToUtf8(pNode->GetName()).c_str());
// It is a zone ? // It is a zone ?
if (RPO::isZone (*pNode, time)) if (RPO::isZone (*pNode, time))
{ {
// Save path // Save path
char sSavePath[256]; char sSavePath[256];
strcpy (sSavePath, pNode->GetName()); strcpy (sSavePath, tStrToUtf8(pNode->GetName()).c_str());
// Choose a file to export // Choose a file to export
if (!CExportNel::getScriptAppData (pNode, NEL3D_APPDATA_DONTEXPORT, 0)) if (!CExportNel::getScriptAppData (pNode, NEL3D_APPDATA_DONTEXPORT, 0))
@ -342,24 +342,22 @@ static INT_PTR CALLBACK CNelExportDlgProc(HWND hWnd, UINT msg, WPARAM wParam, LP
if (!theCNelExport.exportZone (sSavePath, *pNode, time)) if (!theCNelExport.exportZone (sSavePath, *pNode, time))
{ {
// Error message // Error message
char sErrorMsg[512]; std::string sErrorMsg = toString("Error exporting the zone %s in the file\n%s", tStrToUtf8(pNode->GetName()).c_str(), sSavePath);
sprintf (sErrorMsg, "Error exporting the zone %s in the file\n%s", pNode->GetName(), sSavePath); MessageBox (hWnd, utf8ToTStr(sErrorMsg), L"NeL export", MB_OK|MB_ICONEXCLAMATION);
MessageBox (hWnd, sErrorMsg, "NeL export", MB_OK|MB_ICONEXCLAMATION);
} }
} }
} }
else if (CExportNel::isVegetable (*pNode, time)) else if (CExportNel::isVegetable (*pNode, time))
{ {
// Save path // Save path
char sSavePath[256]; std::string sSavePath = tStrToUtf8(pNode->GetName());
strcpy (sSavePath, pNode->GetName());
// Choose a file to export // Choose a file to export
if (!CExportNel::getScriptAppData (pNode, NEL3D_APPDATA_DONTEXPORT, 0)) if (!CExportNel::getScriptAppData (pNode, NEL3D_APPDATA_DONTEXPORT, 0))
if (theCNelExport.SelectFileForSave(hWnd, sNodeMsg, vegetableFilter, sSavePath)) if (theCNelExport.SelectFileForSave(hWnd, sNodeMsg, vegetableFilter, sSavePath.c_str()))
{ {
// Export the mesh // Export the mesh
if (!theCNelExport.exportVegetable (sSavePath, *pNode, time)) if (!theCNelExport.exportVegetable (sSavePath.c_str(), *pNode, time))
{ {
// Error message // Error message
char sErrorMsg[512]; char sErrorMsg[512];

View file

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

View file

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

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; } 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]; char sModulePath[256];
int res = GetModuleFileName(hModule, 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; } 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; }
char SDrive[512];
char SDir[512]; std::string modulePath = NLMISC::CFile::getPath(tStrToUtf8(sModulePath)) + "object_viewer.cfg";
_splitpath (sModulePath, SDrive, SDir, NULL, NULL);
_makepath (sModulePath, SDrive, SDir, "object_viewer", ".cfg");
// Load the config file // Load the config file
CConfigFile cf; CConfigFile cf;
cf.load (sModulePath); cf.load (modulePath);
try try
{ {
@ -367,7 +365,7 @@ void CNelExport::viewMesh (TimeValue time)
INode* pNode=_Ip->GetSelNode (nNode); INode* pNode=_Ip->GetSelNode (nNode);
string sTmp = "Object Name: "; string sTmp = "Object Name: ";
sTmp += pNode->GetName(); sTmp += tStrToUtf8(pNode->GetName());
ProgBar.setLine (0, sTmp); ProgBar.setLine (0, sTmp);
sTmp.clear(); sTmp.clear();
for (uint32 i = 1; i < 10; ++i) for (uint32 i = 1; i < 10; ++i)
@ -412,7 +410,7 @@ void CNelExport::viewMesh (TimeValue time)
if (pShape) if (pShape)
{ {
// Add the shape in the view // Add the shape in the view
uint instance = view->addMesh (pShape, pNode->GetName(), iteSkelShape->second.SkeletonInstance); uint instance = view->addMesh (pShape, tStrToUtf8(pNode->GetName()).c_str(), iteSkelShape->second.SkeletonInstance);
// Add tracks // Add tracks
CAnimation *anim=new CAnimation; 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) if (maxLight->EvalLightState(tvTime, valid, &ls)!=REF_SUCCEED)
return; return;
this->Name = node->GetName(); this->Name = tStrToUtf8(node->GetName());
// Retrieve the correct light Group Name // Retrieve the correct light Group Name
this->AnimatedLight = CExportNel::getAnimatedLight (node); this->AnimatedLight = CExportNel::getAnimatedLight (node);
@ -295,7 +295,7 @@ void SLightBuild::convertFromMaxLight (INode *node,TimeValue tvTime)
INode *exclNode = exclusionList[i]; INode *exclNode = exclusionList[i];
if (exclNode) // Crashfix // FIXME: Why is this NULL? if (exclNode) // Crashfix // FIXME: Why is this NULL?
{ {
string tmp = exclNode->GetName(); string tmp = tStrToUtf8(exclNode->GetName());
this->setExclusion.insert(tmp); this->setExclusion.insert(tmp);
} }
} }
@ -1930,7 +1930,7 @@ void supprLightNoInteractOne( vector<SLightBuild> &vLights, CMesh::CMeshBuild* p
{ {
bool bInteract = false; bool bInteract = false;
if( vLights[i].setExclusion.find( node.GetName() ) != vLights[i].setExclusion.end() ) if( vLights[i].setExclusion.find(tStrToUtf8(node.GetName()) ) != vLights[i].setExclusion.end() )
{ {
bInteract = false; bInteract = false;
} }
@ -2005,7 +2005,7 @@ void CExportNel::deleteLM(INode& ZeNode)
string sSaveName; string sSaveName;
sSaveName = _Options.sExportLighting; sSaveName = _Options.sExportLighting;
if( sSaveName[sSaveName.size()-1] != '\\' ) sSaveName += "\\"; if( sSaveName[sSaveName.size()-1] != '\\' ) sSaveName += "\\";
sSaveName += ZeNode.GetName(); sSaveName += tStrToUtf8(ZeNode.GetName());
char tmp[32]; char tmp[32];
sprintf( tmp, "%d", i ); sprintf( tmp, "%d", i );
sSaveName += tmp; sSaveName += tmp;
@ -2276,7 +2276,7 @@ bool CExportNel::calculateLM( CMesh::CMeshBuild *pZeMeshBuild, CMeshBase::CMeshB
{ {
string thetext; string thetext;
thetext = "Warning "; thetext = "Warning ";
thetext += ZeNode.GetName(); thetext += tStrToUtf8(ZeNode.GetName());
thetext = "have all faces NOT mapped (UV2)"; thetext = "have all faces NOT mapped (UV2)";
if (gOptions.FeedBack != NULL) if (gOptions.FeedBack != NULL)
{ {
@ -2325,11 +2325,11 @@ bool CExportNel::calculateLM( CMesh::CMeshBuild *pZeMeshBuild, CMeshBase::CMeshB
{ {
// Make an error message // Make an error message
string sTmp = "Warning : "; string sTmp = "Warning : ";
sTmp += ZeNode.GetName(); sTmp += tStrToUtf8(ZeNode.GetName());
sTmp += " has mapping problem"; sTmp += " has mapping problem";
// Script trace // Script trace
mprintf ((sTmp+"\n").c_str()); mprintf (utf8ToTStr((sTmp+"\n")));
// Feedback is here ? // Feedback is here ?
if (gOptions.FeedBack != NULL) if (gOptions.FeedBack != NULL)
@ -2525,12 +2525,12 @@ bool CExportNel::calculateLM( CMesh::CMeshBuild *pZeMeshBuild, CMeshBase::CMeshB
// Get the name of the max project // Get the name of the max project
char projectName[512]; 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 // Add lightmap information in the lightmap log
COFile outputLog; COFile outputLog;
if (outputLightmapLog) 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 // Update UV coords to Texture space
PutFaceUV1InTextureCoord( LightMap.w, LightMap.h, AllFaces.begin(), AllFaces.size() ); PutFaceUV1InTextureCoord( LightMap.w, LightMap.h, AllFaces.begin(), AllFaces.size() );
@ -2559,7 +2559,7 @@ bool CExportNel::calculateLM( CMesh::CMeshBuild *pZeMeshBuild, CMeshBase::CMeshB
{ {
CTextureFile *pLightMap = new CTextureFile(); CTextureFile *pLightMap = new CTextureFile();
//string sSaveName = AllMeshBuilds[nNode].second->GetName(); //string sSaveName = AllMeshBuilds[nNode].second->GetName();
string sSaveName = ZeNode.GetName(); string sSaveName = tStrToUtf8(ZeNode.GetName());
char tmp[32]; char tmp[32];
sSaveName += "_"; sSaveName += "_";
sprintf( tmp, "%d", nLightMapNb ); sprintf( tmp, "%d", nLightMapNb );
@ -2632,9 +2632,8 @@ bool CExportNel::calculateLM( CMesh::CMeshBuild *pZeMeshBuild, CMeshBase::CMeshB
{ {
if (gOptions.FeedBack != NULL) if (gOptions.FeedBack != NULL)
{ {
char message[512]; std::string message = toString("Can't write the file %s : %s", sSaveName.c_str(), e.what());
sprintf (message, "Can't write the file %s : %s", sSaveName, e.what()); mprintf (utf8ToTStr(message));
mprintf (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 pLAP->create( 64 ); // width of each grid in number of square
for( j = 0; j < vMB.size(); ++j ) for( j = 0; j < vMB.size(); ++j )
{ {
if (rLight.setExclusion.find (vINode[j]->GetName()) != rLight.setExclusion.end()) if (rLight.setExclusion.find (tStrToUtf8(vINode[j]->GetName())) != rLight.setExclusion.end())
continue; continue;
for (k = 0; k < vMB[j]->Faces.size(); ++k) for (k = 0; k < vMB[j]->Faces.size(); ++k)
@ -142,7 +142,7 @@ void CRTWorld::build (vector<SLightBuild> &AllLights, CVector &trans, bool bExcl
pLAD->create (64, rLight.rDirRadius/64.0f, rLight.Direction); pLAD->create (64, rLight.rDirRadius/64.0f, rLight.Direction);
for( j = 0; j < vMB.size(); ++j ) for( j = 0; j < vMB.size(); ++j )
{ {
if (rLight.setExclusion.find (vINode[j]->GetName()) != rLight.setExclusion.end()) if (rLight.setExclusion.find (tStrToUtf8(vINode[j]->GetName())) != rLight.setExclusion.end())
continue; continue;
for (k = 0; k < vMB[j]->Faces.size(); ++k) for (k = 0; k < vMB[j]->Faces.size(); ++k)

View file

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

View file

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

View file

@ -1142,22 +1142,6 @@ int CExportNel::getVertMapChannel (Texmap& texmap, Matrix3& channelMatrix, TimeV
// get the absolute or relative path from a texture filename // get the absolute or relative path from a texture filename
static std::string ConvertTexFileName(const std::string &path, bool _AbsolutePath) 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) if (_AbsolutePath)
{ {
return path; return path;
@ -1271,7 +1255,7 @@ ITexture* CExportNel::buildATexture (Texmap& texmap, CMaterialDesc &remap3dsTexC
else // standard texture else // standard texture
{ {
srcTex = new CTextureFile; srcTex = new CTextureFile;
std::string mapName = pBitmap->GetMapName(); std::string mapName = tStrToUtf8(pBitmap->GetMapName());
static_cast<CTextureFile *>(srcTex)->setFileName (ConvertTexFileName(mapName, _AbsolutePath)); 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, ""); std::string nodeName=getScriptAppData (&node, NEL3D_APPDATA_LOD_NAME+lod, "");
// Get the node // Get the node
INode *lodNode=_Ip->GetINodeByName(nodeName.c_str()); INode *lodNode=_Ip->GetINodeByName(utf8ToTStr(nodeName));
if (lodNode) if (lodNode)
{ {
// Index of the lod in the build structure // Index of the lod in the build structure
@ -611,7 +611,7 @@ void CExportNel::buildBaseMeshInterface (NL3D::CMeshBase::CMeshBaseBuild& buildM
continue; continue;
// get factor here ! // get factor here !
buildMesh.DefaultBSFactors.push_back(0.0f); buildMesh.DefaultBSFactors.push_back(0.0f);
std::string sTemp = pNode->GetName(); std::string sTemp = tStrToUtf8(pNode->GetName());
buildMesh.BSNames.push_back (sTemp); buildMesh.BSNames.push_back (sTemp);
} }
@ -1063,9 +1063,8 @@ void CExportNel::buildMeshInterface (TriObject &tri, CMesh::CMeshBuild& buildMes
// Error code ? // Error code ?
if (error!=NoError) if (error!=NoError)
{ {
char msg[512]; std::string msg = toString("%s skin: %s", getName (node).c_str(), ErrorMessage[error]);
sprintf (msg, "%s skin: %s", getName (node).c_str(), ErrorMessage[error]); MessageBoxW (NULL, utf8ToTStr(msg), L"NeL export", MB_OK|MB_ICONEXCLAMATION);
MessageBox (NULL, msg, "NeL export", MB_OK|MB_ICONEXCLAMATION);
} }
else else
{ {
@ -1493,7 +1492,7 @@ void CExportNel::buildMeshMorph (CMesh::CMeshBuild& buildMesh, INode &node, Time
continue; continue;
} }
bs.Name = pNode->GetName(); bs.Name = tStrToUtf8(pNode->GetName());
bool bIsDeltaPos = false; bool bIsDeltaPos = false;
bs.deltaPos.resize (nNbVertVB, CVector::Null); 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)) 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 // add this node tris
ObjectState os = node.EvalWorldState(time); ObjectState os = node.EvalWorldState(time);
Object *obj = os.obj; Object *obj = os.obj;
@ -581,7 +581,7 @@ static bool BuildMeshInterfaces(const char *cMaxFileName, std::vector<CMeshInter
string newName = "NelAutoMergeRenamedTmp" + toString (i); string newName = "NelAutoMergeRenamedTmp" + toString (i);
string originalName = (*lib)[i]->GetName (); string originalName = (*lib)[i]->GetName ();
renameMap.insert (map<string, string>::value_type (newName, originalName)); renameMap.insert (map<string, string>::value_type (newName, originalName));
(*lib)[i]->SetName (newName.c_str ()); (*lib)[i]->SetName (utf8ToTStr(newName));
} }
// Merge the interface project // Merge the interface project
@ -614,7 +614,7 @@ static bool BuildMeshInterfaces(const char *cMaxFileName, std::vector<CMeshInter
string newName = "NelAutoMergeRenamed" + toString (i); string newName = "NelAutoMergeRenamed" + toString (i);
string originalName = (*lib)[i]->GetName (); string originalName = (*lib)[i]->GetName ();
renameMap.insert (map<string, string>::value_type (newName, originalName)); 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 ()) if (ite != renameMap.end ())
{ {
// Rename the material with its original name // 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); ParamDef& paramDef=param->GetParamDef(id);
// Good name? // Good name?
if (strcmp (paramDef.int_name, sName)==0) if (strcmp (tStrToUtf8(paramDef.int_name).c_str(), sName)==0)
{ {
// ok, return this subanim // ok, return this subanim
#if MAX_VERSION_MAJOR >= 14 #if MAX_VERSION_MAJOR >= 14
@ -332,7 +332,7 @@ bool getValueByNameUsingParamBlock2Internal (Animatable& node, const char* sName
ParamDef& paramDef=param->GetParamDef(id); ParamDef& paramDef=param->GetParamDef(id);
// Good name? // Good name?
if (strcmp (paramDef.int_name, sName)==0) if (strcmp (tStrToUtf8(paramDef.int_name).c_str(), sName)==0)
{ {
// Check this value is good type // Check this value is good type
ParamType2 paramType = param->GetParameterType(id); ParamType2 paramType = param->GetParameterType(id);
@ -372,7 +372,7 @@ bool getValueByNameUsingParamBlock2Internal (Animatable& node, const char* sName
break; break;
case TYPE_FILENAME: case TYPE_FILENAME:
case TYPE_STRING: case TYPE_STRING:
*(std::string*)pValue = param->GetStr (id, tvTime); *(std::string*)pValue = tStrToUtf8(param->GetStr (id, tvTime));
bRes = TRUE; bRes = TRUE;
break; break;
case TYPE_FILENAME_TAB: case TYPE_FILENAME_TAB:
@ -382,7 +382,7 @@ bool getValueByNameUsingParamBlock2Internal (Animatable& node, const char* sName
uint total = param->Count (id); uint total = param->Count (id);
rTab.resize(total); rTab.resize(total);
for( uint i = 0; i < total; ++i ) for( uint i = 0; i < total; ++i )
rTab[i] = param->GetStr (id, tvTime, i); rTab[i] = tStrToUtf8(param->GetStr (id, tvTime, i));
bRes = TRUE; bRes = TRUE;
} }
break; break;
@ -511,8 +511,8 @@ std::string CExportNel::getName (MtlBase& mtl)
std::string CExportNel::getName(INode& node) std::string CExportNel::getName(INode& node)
{ {
// Return its name // Return its name
MCHAR* name = node.GetName(); const MCHAR* name = node.GetName();
return std::string(name); return tStrToUtf8(name);
} }
// -------------------------------------------------- // --------------------------------------------------
@ -549,7 +549,7 @@ std::string CExportNel::getNelObjectName (INode& node)
} }
else else
{ {
return node.GetName(); return tStrToUtf8(node.GetName());
} }
} }
else 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); ad = obj->GetAppDataChunk (MAXSCRIPT_UTILITY_CLASS_ID, UTILITY_CLASS_ID, NEL3D_APPDATA_INSTANCE_SHAPE);
if (ad&&ad->data) if (ad&&ad->data)
{ {
if (::strlen((const char *) ad->data) != 0) if (_tcslen((const TCHAR *) ad->data) != 0)
{ {
// get file name only // get file name only
char fName[_MAX_FNAME]; return NLMISC::CFile::getFilename(tStrToUtf8((const TCHAR*)ad->data));
char ext[_MAX_FNAME];
::_splitpath((const char*)ad->data, NULL, NULL, fName, ext) ;
return std::string(fName + std::string(ext));
} }
else else
{ {
return node.GetName(); return tStrToUtf8(node.GetName());
} }
} }
else else
{ {
// Extract the node name // Extract the node name
return node.GetName(); return tStrToUtf8(node.GetName());
} }
} }
else else
{ {
// Extract the node name // 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) 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 (utf8ToTStr(message));
mprintf ("\n"); mprintf (_T("\n"));
nlwarning ("Error in max file %s : ", _Ip->GetCurFilePath()); 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); static void setScriptAppData (Animatable *node, uint32 id, NLMISC::CRGBA val);
// Output error message // Output error message
void outputErrorMessage (const char *message); void outputErrorMessage (const std::string &message);
void outputWarningMessage (const char *message); void outputWarningMessage(const std::string &message);
// Get an appData VertexProgram WindTree (ensure same default values for all retrieve). // 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.serial(ss);
if (!dynamic_cast<CParticleSystemShape *>(ss.getShapePointer())) 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; return NULL;
} }
@ -78,7 +78,7 @@ IShape* CExportNel::buildParticleSystem(INode& node, TimeValue time)
} }
else 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; return NULL;
} }
} }

View file

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

View file

@ -93,7 +93,7 @@ CInstanceGroup* CExportNel::buildInstanceGroup(const vector<INode*>& vectNode, v
resultInstanceNode[nNumIG] = pNode; resultInstanceNode[nNumIG] = pNode;
if (aIGArray[nNumIG].InstanceName == "") // no instance name was set, takes the node name instead if (aIGArray[nNumIG].InstanceName == "") // no instance name was set, takes the node name instead
{ {
aIGArray[nNumIG].InstanceName = pNode->GetName(); aIGArray[nNumIG].InstanceName = tStrToUtf8(pNode->GetName());
} }
// Visible? always true, but if special flag for camera collision // 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]) ) pMB->Vertices[pMB->Faces[j].Corner[2].Vertex]) )
{ {
// ERROR : The volume is not convex !!! // ERROR : The volume is not convex !!!
char tam[256]; nlwarning("ERROR: The cluster %s is not convex.", tStrToUtf8(vectNode[i]->GetName()).c_str());
sprintf(tam,"ERROR: The cluster %s is not convex.",vectNode[i]->GetName());
//MessageBox(NULL,tam,"Error",MB_OK|MB_ICONERROR);
nlwarning(tam);
} }
} }
@ -247,7 +244,7 @@ CInstanceGroup* CExportNel::buildInstanceGroup(const vector<INode*>& vectNode, v
clusterTemp.VisibleFromFather = bVisibleFromFather; clusterTemp.VisibleFromFather = bVisibleFromFather;
clusterTemp.FatherAudible = bFatherAudible; clusterTemp.FatherAudible = bFatherAudible;
clusterTemp.AudibleFromFather = bAudibleFromFather; clusterTemp.AudibleFromFather = bAudibleFromFather;
clusterTemp.Name = pNode->GetName(); clusterTemp.Name = tStrToUtf8(pNode->GetName());
vClusters.push_back (clusterTemp); vClusters.push_back (clusterTemp);
delete pMB; pMB = NULL; delete pMB; pMB = NULL;
@ -336,10 +333,7 @@ CInstanceGroup* CExportNel::buildInstanceGroup(const vector<INode*>& vectNode, v
if (!portalTemp.setPoly (polyv)) if (!portalTemp.setPoly (polyv))
{ {
// ERROR : Poly not convex, or set of vertices not plane // ERROR : Poly not convex, or set of vertices not plane
char tam[256]; nlwarning("ERROR: The portal %s is not convex.", tStrToUtf8(vectNode[i]->GetName()).c_str());
sprintf(tam,"ERROR: The portal %s is not convex.",vectNode[i]->GetName());
//MessageBox(NULL,tam,"Error",MB_OK|MB_ICONERROR);
nlwarning(tam);
} }
if (nAccelType&16) // is dynamic portal ? if (nAccelType&16) // is dynamic portal ?
@ -348,7 +342,7 @@ CInstanceGroup* CExportNel::buildInstanceGroup(const vector<INode*>& vectNode, v
if (!InstanceName.empty()) if (!InstanceName.empty())
portalTemp.setName (InstanceName); portalTemp.setName (InstanceName);
else else
portalTemp.setName (string(pNode->GetName())); portalTemp.setName (tStrToUtf8(pNode->GetName()));
} }
// Check if portal has 2 cluster // Check if portal has 2 cluster
@ -368,10 +362,7 @@ CInstanceGroup* CExportNel::buildInstanceGroup(const vector<INode*>& vectNode, v
if (nNbCluster != 2) if (nNbCluster != 2)
{ {
// ERROR // ERROR
char tam[256]; nlwarning("ERROR: The portal %s has not 2 clusters but %d", tStrToUtf8(vectNode[i]->GetName()).c_str(), nNbCluster);
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);
} }
@ -513,10 +504,7 @@ CInstanceGroup* CExportNel::buildInstanceGroup(const vector<INode*>& vectNode, v
if (vClusters.size() > 0) if (vClusters.size() > 0)
if (aIGArray[nNumIG].Clusters.size() == 0) if (aIGArray[nNumIG].Clusters.size() == 0)
{ {
char tam[256]; nlwarning("ERROR: Object %s is not attached to any cluster\nbut his flag clusterize is set", tStrToUtf8(pNode->GetName()).c_str());
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);
} }
// debug purpose : to remove // 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) ) if ( (!pNode->IsHidden () || buildHidden) && (pNode->Selected () || !onlySelected) )
{ {
string sTmp = "Object Name: "; string sTmp = "Object Name: ";
sTmp += pNode->GetName(); sTmp += tStrToUtf8(pNode->GetName());
if (progress) if (progress)
progress->setLine (0, sTmp); progress->setLine (0, sTmp);
sTmp.clear(); 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); four_typed_value_locals(Parser* parser,Value* code,Value* result,StringStream* source);
vl.parser = new Parser; vl.parser = new Parser;
vl.source = new StringStream (const_cast<char *>(script)); vl.source = new StringStream (utf8ToTStr(script));
vl.source->log_to(NULL); vl.source->log_to(NULL);
save_current_frames(); save_current_frames();
try try
@ -125,7 +125,7 @@ float CExportNel::getScriptAppData (Animatable *node, uint32 id, float def)
// String to int // String to int
float value = 0.f; float value = 0.f;
if (toFloatMax((const char*)ap->data, value)) if (toFloatMax((const TCHAR*)ap->data, value))
return value; return value;
else else
return def; return def;

View file

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

View file

@ -435,6 +435,7 @@ public:
CBankManager () CBankManager ()
{ {
} }
const NL3D::CTileBank& getBank (std::string& path=GetBankPathName ()) const NL3D::CTileBank& getBank (std::string& path=GetBankPathName ())
{ {
if (path!=_lastPath) if (path!=_lastPath)
@ -450,7 +451,7 @@ public:
} }
catch (const NLMISC::EStream& excp) 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; return _bank;

View file

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

View file

@ -3992,7 +3992,7 @@ void EPM_PaintCMode::DoPaint ()
} }
catch (const EStream& stream) 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) if (hModule)
{ {
// Get the path // Get the path
char sModulePath[256]; TCHAR sModulePath[256];
int res=GetModuleFileName(hModule, sModulePath, 256); int res=GetModuleFileName(hModule, sModulePath, 256);
// Success ? // Success ?
if (res) if (res)
{ {
// Path // Path
char sDrive[256]; std::string modulePath = NLMISC::CFile::getPath(tStrToUtf8(sModulePath));
char sDir[256];
_splitpath (sModulePath, sDrive, sDir, NULL, NULL);
_makepath (sModulePath, sDrive, sDir, "ligoscape", ".cfg");
try try
{ {
// Load the config file // Load the config file
config.readConfigFile (sModulePath, false); config.readConfigFile (modulePath, false);
// ok // ok
return true; return true;
} }

View file

@ -242,7 +242,7 @@ void CTileSetCont::build (CTileBank& bank, uint tileSet)
if (!dmwarn) if (!dmwarn)
{ {
dmwarn = true; 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 continue; // with next displace
} }
@ -409,24 +409,17 @@ void LoadKeyCfg ()
HMODULE hModule = hInstance; HMODULE hModule = hInstance;
if (hModule) if (hModule)
{ {
char sModulePath[256]; TCHAR sModulePath[256];
int res=GetModuleFileName(hModule, sModulePath, 256); int res=GetModuleFileName(hModule, sModulePath, 256);
if (res) if (res)
{ {
// split path
char drive[256];
char dir[256];
_splitpath (sModulePath, drive, dir, NULL, NULL);
// Make a new path // Make a new path
char cgfPath[256]; std::string cfgPath = NLMISC::CFile::getPath(tStrToUtf8(sModulePath)) + "keys.cfg";
_makepath (cgfPath, drive, dir, "keys", ".cfg");
CConfigFile cf; CConfigFile cf;
// Load and parse "test.txt" file // Load and parse "test.txt" file
cf.load (cgfPath); cf.load (cfgPath);
// For each keys // For each keys
for (uint key=0; key<KeyCounter; key++) for (uint key=0; key<KeyCounter; key++)
@ -458,23 +451,18 @@ void LoadVarCfg ()
HMODULE hModule = hInstance; HMODULE hModule = hInstance;
if (hModule) if (hModule)
{ {
char sModulePath[256]; TCHAR sModulePath[256];
int res=GetModuleFileName(hModule, sModulePath, 256); int res=GetModuleFileName(hModule, sModulePath, 256);
if (res) if (res)
{ {
// split path
char drive[256];
char dir[256];
_splitpath (sModulePath, drive, dir, NULL, NULL);
// Make a new path // Make a new path
char cgfPath[256]; char cgfPath[256];
_makepath (cgfPath, drive, dir, "keys", ".cfg"); std::string cfgPath = NLMISC::CFile::getPath(tStrToUtf8(sModulePath)) + "keys.cfg";
CConfigFile cf; CConfigFile cf;
// Load and parse "test.txt" file // Load and parse "test.txt" file
cf.load (cgfPath); cf.load (cfgPath);
// go // go
try try

View file

@ -21,7 +21,8 @@ static WNDPROC colorSwatchOriginalWndProc;
static HIMAGELIST hButtonImages = NULL; static HIMAGELIST hButtonImages = NULL;
static void LoadImages() { static void LoadImages()
{
if (hButtonImages) return; if (hButtonImages) return;
HBITMAP hBitmap, hMask; HBITMAP hBitmap, hMask;
hButtonImages = ImageList_Create(15, 14, ILC_MASK, 2, 0); // 17 is kluge to center square. -SA hButtonImages = ImageList_Create(15, 14, ILC_MASK, 2, 0); // 17 is kluge to center square. -SA
@ -35,7 +36,8 @@ static void LoadImages() {
ClassDesc* GetVertexPaintDesc(); ClassDesc* GetVertexPaintDesc();
class VertexPaintClassDesc:public ClassDesc { class VertexPaintClassDesc :public ClassDesc
{
public: public:
int IsPublic() { return 1; } int IsPublic() { return 1; }
void * Create(BOOL loading = FALSE) { return new VertexPaint(); } void * Create(BOOL loading = FALSE) { return new VertexPaint(); }
@ -49,8 +51,7 @@ class VertexPaintClassDesc:public ClassDesc {
static VertexPaintClassDesc VertexPaintDesc; static VertexPaintClassDesc VertexPaintDesc;
ClassDesc* GetVertexPaintDesc() { return &VertexPaintDesc; } ClassDesc* GetVertexPaintDesc() { return &VertexPaintDesc; }
static INT_PTR CALLBACK VertexPaintDlgProc( static INT_PTR CALLBACK VertexPaintDlgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{ {
int numPoints; int numPoints;
VertexPaint *mod = (VertexPaint*)GetWindowLongPtr(hWnd, GWLP_USERDATA); VertexPaint *mod = (VertexPaint*)GetWindowLongPtr(hWnd, GWLP_USERDATA);
@ -82,7 +83,8 @@ static INT_PTR CALLBACK VertexPaintDlgProc(
} }
} }
switch (msg) { switch (msg)
{
case WM_INITDIALOG: case WM_INITDIALOG:
LoadImages(); LoadImages();
mod = (VertexPaint*)lParam; mod = (VertexPaint*)lParam;
@ -159,7 +161,8 @@ static INT_PTR CALLBACK VertexPaintDlgProc(
break; break;
case WM_COMMAND: case WM_COMMAND:
switch(LOWORD(wParam)) { switch (LOWORD(wParam))
{
case IDC_PAINT: case IDC_PAINT:
mod->ActivatePaint(mod->iPaintButton->IsChecked()); mod->ActivatePaint(mod->iPaintButton->IsChecked());
break; break;
@ -206,19 +209,18 @@ static INT_PTR CALLBACK VertexPaintDlgProc(
} }
// Subclass procedure // Subclass procedure
LRESULT APIENTRY colorSwatchSubclassWndProc( LRESULT APIENTRY colorSwatchSubclassWndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
HWND hwnd, {
UINT uMsg, switch (uMsg)
WPARAM wParam,
LPARAM lParam)
{ {
switch (uMsg) {
case WM_LBUTTONDOWN: case WM_LBUTTONDOWN:
case WM_LBUTTONUP: case WM_LBUTTONUP:
case WM_LBUTTONDBLCLK: { case WM_LBUTTONDBLCLK:
{
HWND hPanel = GetParent(hwnd); HWND hPanel = GetParent(hwnd);
LONG_PTR mod = GetWindowLongPtr(hPanel, GWLP_USERDATA); LONG_PTR mod = GetWindowLongPtr(hPanel, GWLP_USERDATA);
if (mod) { if (mod)
{
((VertexPaint*)mod)->PaletteButton(hwnd); ((VertexPaint*)mod)->PaletteButton(hwnd);
} }
} }
@ -242,7 +244,8 @@ ICustButton* VertexPaint::iPickButton = NULL;
IColorSwatch* VertexPaint::iColor = NULL; IColorSwatch* VertexPaint::iColor = NULL;
COLORREF VertexPaint::lastWeightColor = RGB(85, 85, 85); COLORREF VertexPaint::lastWeightColor = RGB(85, 85, 85);
COLORREF VertexPaint::lastPhaseColor = RGB(0, 0, 0); COLORREF VertexPaint::lastPhaseColor = RGB(0, 0, 0);
COLORREF VertexPaint::palColors[] = { COLORREF VertexPaint::palColors[] =
{
//RGB(32, 32, 32), RGB( 96,96,96), RGB( 160,160,160), RGB(224,224,224) }; //RGB(32, 32, 32), RGB( 96,96,96), RGB( 160,160,160), RGB(224,224,224) };
RGB(0, 0, 0), RGB(85,85,85), RGB(170,170,170), RGB(255,255,255), RGB(0, 0, 0), RGB(85,85,85), RGB(170,170,170), RGB(255,255,255),
RGB(42, 42, 42), RGB(127, 127, 127), RGB(212, 212, 212) }; RGB(42, 42, 42), RGB(127, 127, 127), RGB(212, 212, 212) };
@ -400,13 +403,9 @@ void VertexPaint::BeginEditParams( IObjParam *ip, ULONG flags,Animatable *prev )
this->ip = ip; this->ip = ip;
editMod = this; editMod = this;
if (!hParams) { if (!hParams)
hParams = ip->AddRollupPage( {
hInstance, hParams = ip->AddRollupPage(hInstance, MAKEINTRESOURCE(IDD_PANEL), VertexPaintDlgProc, GetString(IDS_PARAMS), (LPARAM)this);
MAKEINTRESOURCE(IDD_PANEL),
VertexPaintDlgProc,
GetString(IDS_PARAMS),
(LPARAM)this);
// Subclass the palette controls // Subclass the palette controls
hPaletteWnd[0] = GetDlgItem(hParams, IDC_PALETTE_1); hPaletteWnd[0] = GetDlgItem(hParams, IDC_PALETTE_1);
@ -418,7 +417,8 @@ void VertexPaint::BeginEditParams( IObjParam *ip, ULONG flags,Animatable *prev )
hPaletteWnd[6] = GetDlgItem(hParams, IDC_PALETTE_7); hPaletteWnd[6] = GetDlgItem(hParams, IDC_PALETTE_7);
int i; int i;
for (i=0; i<NUMPALETTES; i++) { for (i = 0; i < NUMPALETTES; i++)
{
colorSwatchOriginalWndProc = (WNDPROC)SetWindowLongPtr(hPaletteWnd[i], GWLP_WNDPROC, (LONG_PTR)colorSwatchSubclassWndProc); colorSwatchOriginalWndProc = (WNDPROC)SetWindowLongPtr(hPaletteWnd[i], GWLP_WNDPROC, (LONG_PTR)colorSwatchSubclassWndProc);
} }
@ -457,7 +457,8 @@ void VertexPaint::EndEditParams( IObjParam *ip, ULONG flags,Animatable *next)
ModContextList list; ModContextList list;
INodeTab nodes; INodeTab nodes;
ip->GetModContexts(list, nodes); ip->GetModContexts(list, nodes);
for (int i=0; i<list.Count(); i++) { for (int i = 0; i < list.Count(); i++)
{
VertexPaintData *vd = (VertexPaintData*)list[i]->localData; VertexPaintData *vd = (VertexPaintData*)list[i]->localData;
if (vd) vd->FreeCache(); if (vd) vd->FreeCache();
} }
@ -482,9 +483,7 @@ void VertexPaint::EndEditParams( IObjParam *ip, ULONG flags,Animatable *next)
//From ReferenceMaker //From ReferenceMaker
RefResult VertexPaint::NotifyRefChanged( RefResult VertexPaint::NotifyRefChanged(const Interval& changeInt, RefTargetHandle hTarget, PartID& partID, RefMessage message, BOOL propagate)
Interval changeInt, RefTargetHandle hTarget,
PartID& partID, RefMessage message)
{ {
return REF_SUCCEED; return REF_SUCCEED;
} }
@ -531,8 +530,10 @@ IOResult VertexPaint::Load(ILoad *iload)
int version = 1; int version = 1;
Modifier::Load(iload); Modifier::Load(iload);
while (IO_OK==(res=iload->OpenChunk())) { while (IO_OK == (res = iload->OpenChunk()))
switch(iload->CurChunkID()) { {
switch (iload->CurChunkID())
{
case VERSION_CHUNKID: case VERSION_CHUNKID:
iload->Read(&version, sizeof(version), &nb); iload->Read(&version, sizeof(version), &nb);
break; break;
@ -573,7 +574,8 @@ IOResult VertexPaint::SaveLocalData(ISave *isave, LocalModData *ld)
isave->BeginChunk(COLORLIST_CHUNKID); isave->BeginChunk(COLORLIST_CHUNKID);
numColors = d->GetNumColors(); numColors = d->GetNumColors();
res = isave->Write(&numColors, sizeof(int), &nb); res = isave->Write(&numColors, sizeof(int), &nb);
for (int i=0; i<numColors ; i++) { for (int i = 0; i < numColors; i++)
{
col = d->GetColorData(i); col = d->GetColorData(i);
isave->Write(&col.color, sizeof(col.color), &nb); isave->Write(&col.color, sizeof(col.color), &nb);
} }
@ -582,7 +584,8 @@ IOResult VertexPaint::SaveLocalData(ISave *isave, LocalModData *ld)
return IO_OK; return IO_OK;
} }
IOResult VertexPaint::LoadLocalData(ILoad *iload, LocalModData **pld) { IOResult VertexPaint::LoadLocalData(ILoad *iload, LocalModData **pld)
{
VertexPaintData *d = new VertexPaintData; VertexPaintData *d = new VertexPaintData;
IOResult res; IOResult res;
ULONG nb; ULONG nb;
@ -592,8 +595,10 @@ IOResult VertexPaint::LoadLocalData(ILoad *iload, LocalModData **pld) {
*pld = d; *pld = d;
while (IO_OK==(res=iload->OpenChunk())) { while (IO_OK == (res = iload->OpenChunk()))
switch(iload->CurChunkID()) { {
switch (iload->CurChunkID())
{
case VERSION_CHUNKID: case VERSION_CHUNKID:
iload->Read(&version, sizeof(version), &nb); iload->Read(&version, sizeof(version), &nb);
break; break;
@ -601,7 +606,8 @@ IOResult VertexPaint::LoadLocalData(ILoad *iload, LocalModData **pld) {
{ {
iload->Read(&numColors, sizeof(int), &nb); iload->Read(&numColors, sizeof(int), &nb);
d->AllocColorData(numColors); d->AllocColorData(numColors);
for (int i=0; i<numColors; i++) { for (int i = 0; i < numColors; i++)
{
iload->Read(&col.color, sizeof(col.color), &nb); iload->Read(&col.color, sizeof(col.color), &nb);
d->SetColor(i, col); d->SetColor(i, col);
} }
@ -617,7 +623,8 @@ IOResult VertexPaint::LoadLocalData(ILoad *iload, LocalModData **pld) {
void VertexPaint::PaletteButton(HWND hWnd) void VertexPaint::PaletteButton(HWND hWnd)
{ {
IColorSwatch* iPal = GetIColorSwatch(hWnd); IColorSwatch* iPal = GetIColorSwatch(hWnd);
if (iPal && iColor) { if (iPal && iColor)
{
iColor->SetColor(iPal->GetColor(), TRUE); iColor->SetColor(iPal->GetColor(), TRUE);
} }
} }
@ -625,7 +632,8 @@ void VertexPaint::PaletteButton(HWND hWnd)
void VertexPaint::InitPalettes() void VertexPaint::InitPalettes()
{ {
IColorSwatch* c; IColorSwatch* c;
for (int i=0; i<NUMPALETTES; i++) { for (int i = 0; i < NUMPALETTES; i++)
{
c = GetIColorSwatch(hPaletteWnd[i]); c = GetIColorSwatch(hPaletteWnd[i]);
c->SetColor(palColors[i]); c->SetColor(palColors[i]);
ReleaseIColorSwatch(c); ReleaseIColorSwatch(c);
@ -635,7 +643,8 @@ void VertexPaint::InitPalettes()
void VertexPaint::SavePalettes() void VertexPaint::SavePalettes()
{ {
IColorSwatch* c; IColorSwatch* c;
for (int i=0; i<NUMPALETTES; i++) { for (int i = 0; i < NUMPALETTES; i++)
{
c = GetIColorSwatch(hPaletteWnd[i]); c = GetIColorSwatch(hPaletteWnd[i]);
palColors[i] = c->GetColor(); palColors[i] = c->GetColor();
ReleaseIColorSwatch(c); ReleaseIColorSwatch(c);
@ -1141,17 +1150,20 @@ LocalModData* VertexPaintData::Clone()
{ {
VertexPaintData* d = new VertexPaintData(); VertexPaintData* d = new VertexPaintData();
if (colordata) { if (colordata)
{
d->colordata = new ColorData[numColors]; d->colordata = new ColorData[numColors];
d->numColors = numColors; d->numColors = numColors;
for (int i=0; i<numColors; i++) { for (int i = 0; i < numColors; i++)
{
d->colordata[i] = colordata[i]; d->colordata[i] = colordata[i];
} }
} }
if (nverts) if (nverts)
{ {
d->nverts = new NVert[numnverts]; d->nverts = new NVert[numnverts];
for(int i = 0 ; i < numnverts ; i++ ) { for (int i = 0; i < numnverts; i++)
{
d->nverts[i] = nverts[i]; d->nverts[i] = nverts[i];
} }
@ -1159,7 +1171,8 @@ LocalModData* VertexPaintData::Clone()
if (nvcverts) if (nvcverts)
{ {
d->nvcverts = new NVert[numnvcverts]; d->nvcverts = new NVert[numnvcverts];
for(int i = 0 ; i < numnvcverts ; i++ ) { for (int i = 0; i < numnvcverts; i++)
{
d->nvcverts[i] = nvcverts[i]; d->nvcverts[i] = nvcverts[i];
} }
@ -1168,7 +1181,6 @@ LocalModData* VertexPaintData::Clone()
return d; return d;
} }
void VertexPaintData::SynchVerts(Mesh &m) void VertexPaintData::SynchVerts(Mesh &m)
{ {
if (mesh == NULL) if (mesh == NULL)

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -61,15 +61,15 @@ END_MESSAGE_MAP()
void CChooseVegetSet::OnBrowse() void CChooseVegetSet::OnBrowse()
{ {
// Select a veget set // 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 // 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) if (dialog.DoModal() == IDOK)
{ {
// Get the file name // Get the file name
FileName = dialog.GetFileName (); FileName = tStrToUtf8(dialog.GetFileName ());
Name.SetWindowText (FileName.c_str()); Name.SetWindowText (utf8ToTStr(FileName));
} }
} }
@ -80,7 +80,7 @@ BOOL CChooseVegetSet::OnInitDialog()
if (!FileName.empty()) if (!FileName.empty())
Name.SetWindowText (utf8ToTStr(FileName)); Name.SetWindowText (utf8ToTStr(FileName));
else else
Name.SetWindowText ("Browse..."); Name.SetWindowText (_T("Browse..."));
return TRUE; // return TRUE unless you set the focus to a control return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE // EXCEPTION: OCX Property Pages should return FALSE

View file

@ -669,7 +669,7 @@ void CBranch_patcherDlg::OnButtonExtractTokens()
m_SrcDirLabel = "Enter Token 1"; m_SrcDirLabel = "Enter Token 1";
m_TargetDirLabel = "Enter Token 2"; m_TargetDirLabel = "Enter Token 2";
m_Filename = "The tokens above were extracted from the directories."; 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_TopText )->ShowWindow( SW_HIDE );
GetDlgItem( IDC_ButtonClearTokens )->EnableWindow( FALSE ); GetDlgItem( IDC_ButtonClearTokens )->EnableWindow( FALSE );
GetDlgItem( IDC_ButtonPatch )->ShowWindow( SW_HIDE ); 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 ('/'); string::size_type pos = filename.find_last_of ('/');
if (pos == string::npos) if (pos == string::npos)

View file

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

View file

@ -105,6 +105,7 @@ FreeLookAcceleration_min = 20;
FreeLookAcceleration_max = 80; FreeLookAcceleration_max = 80;
FreeLookInverted = 0; FreeLookInverted = 0;
FreeLookTablet = 0;
AutomaticCamera = 0; AutomaticCamera = 0;
DblClickMode = 1; DblClickMode = 1;
AutoEquipTool = 1; AutoEquipTool = 1;

View file

@ -2672,9 +2672,9 @@
<instance template="tgcw_checkbox" <instance template="tgcw_checkbox"
id="hard" id="hard"
text="uiMouseHardware" text="uiMouseHardware"
posref="TR TR" posref="TM TL"
x="-55" x="0"
y="-20" /> y="-35" />
<instance template="tgcw_checkbox" <instance template="tgcw_checkbox"
id="inverted" id="inverted"
text="uiMouseInverted" text="uiMouseInverted"
@ -2689,6 +2689,13 @@
posref="BL TL" posref="BL TL"
x="0" x="0"
y="-2" /> y="-2" />
<instance template="tgcw_checkbox"
id="tablet"
text="uiMouseTablet"
posparent="dbl"
posref="BL TL"
x="0"
y="-2" />
<view style="sgc_title2" <view style="sgc_title2"
type="text" type="text"
id="inter" id="inter"
@ -3833,6 +3840,11 @@
widget="boolbut" widget="boolbut"
link="DblClickMode" link="DblClickMode"
realtime="true" /> realtime="true" />
<param ui="mouse:tablet:c"
type="cfg"
widget="boolbut"
link="FreeLookTablet"
realtime="true" />
<param ui="mouse:dcspeed:c" <param ui="mouse:dcspeed:c"
type="db" type="db"
widget="sbint" widget="sbint"

View file

@ -350,6 +350,7 @@ CClientConfig::CClientConfig()
FreeLookAcceleration = 0; // Default FreeLookAcceleration FreeLookAcceleration = 0; // Default FreeLookAcceleration
FreeLookSmoothingPeriod = 0.f; // when in absolute mode, free look factor is used instead of speed, the mouse gives the absolute angle FreeLookSmoothingPeriod = 0.f; // when in absolute mode, free look factor is used instead of speed, the mouse gives the absolute angle
FreeLookInverted = false; FreeLookInverted = false;
FreeLookTablet = false; // Mouse reports absolute coordinates, so avoid mouse recentering
AutomaticCamera = true; AutomaticCamera = true;
DblClickMode = true; // when in dbl click mode, a double click is needed to execute default contextual action DblClickMode = true; // when in dbl click mode, a double click is needed to execute default contextual action
AutoEquipTool = true; // when true player will auto-equip last used weapon or forage tool when doing an action AutoEquipTool = true; // when true player will auto-equip last used weapon or forage tool when doing an action
@ -855,6 +856,7 @@ void CClientConfig::setValues()
READ_INT_FV(FreeLookAcceleration) READ_INT_FV(FreeLookAcceleration)
READ_FLOAT_FV(FreeLookSmoothingPeriod) READ_FLOAT_FV(FreeLookSmoothingPeriod)
READ_BOOL_FV(FreeLookInverted) READ_BOOL_FV(FreeLookInverted)
READ_BOOL_FV(FreeLookTablet)
READ_BOOL_FV(AutomaticCamera) READ_BOOL_FV(AutomaticCamera)
READ_BOOL_FV(DblClickMode) READ_BOOL_FV(DblClickMode)
READ_BOOL_FV(AutoEquipTool) READ_BOOL_FV(AutoEquipTool)

View file

@ -199,6 +199,7 @@ struct CClientConfig
uint FreeLookAcceleration; uint FreeLookAcceleration;
float FreeLookSmoothingPeriod; float FreeLookSmoothingPeriod;
bool FreeLookInverted; bool FreeLookInverted;
bool FreeLookTablet;
// true if camera is centered when user casts a spell // true if camera is centered when user casts a spell
bool AutomaticCamera; bool AutomaticCamera;
bool DblClickMode; bool DblClickMode;

View file

@ -204,7 +204,7 @@ void CEventsListener::operator()(const CEvent& event)
// updateFreeLookPos is called in updateMouseSmoothing per frame // updateFreeLookPos is called in updateMouseSmoothing per frame
// Center cursor // Center cursor
if (outsideBounds && !s_MouseFreeLookWaitCenter) if (outsideBounds && !s_MouseFreeLookWaitCenter && !ClientCfg.FreeLookTablet)
{ {
s_MouseFreeLookWaitCenter = true; s_MouseFreeLookWaitCenter = true;
Driver->setMousePos(0.5f, 0.5f); Driver->setMousePos(0.5f, 0.5f);

View file

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

View file

@ -77,6 +77,7 @@ typedef CFastBitField<uint16, 16> T1BitField;
class I16x16Layer class I16x16Layer
{ {
public: public:
virtual ~I16x16Layer() {}
/** /**
* Get uncompressed value at i, j where i is y-like and j is x-like * 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]; } sint16 asSint16() const { return (sint16)_Value1[0]; }
sint32 asSint32() const { return (sint32)_Value2[0]; } sint32 asSint32() const { return (sint32)_Value2[0]; }
sint64 asSint64() const { return (sint64)_Value3[0]; } sint64 asSint64() const { return (sint64)_Value3[0]; }
float asFloat() const { return *(float*)(&_Value2[0]); } float asFloat() const { return (float)_ValueFloat[0]; }
double asDouble() const { return *(double*)(&_Value3[0]); } double asDouble() const { return (double)_ValueDouble[0]; }
const NLMISC::CSheetId& asSheetId() const { return *(NLMISC::CSheetId*)(&_Value2[0]); } const NLMISC::CSheetId& asSheetId() const { return *(NLMISC::CSheetId*)(&_Value2[0]); }
const NLMISC::CEntityId& asEntityId() const { return *(NLMISC::CEntityId*)(&_Value3[0]); } const NLMISC::CEntityId& asEntityId() const { return *(NLMISC::CEntityId*)(&_Value3[0]); }
@ -668,6 +668,8 @@ private:
uint16 _Value1[4]; uint16 _Value1[4];
uint32 _Value2[2]; uint32 _Value2[2];
uint64 _Value3[1]; uint64 _Value3[1];
float _ValueFloat[2];
double _ValueDouble[1];
}; };
bool _ObjectIdPresent; bool _ObjectIdPresent;

View file

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

View file

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

View file

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

View file

@ -18,6 +18,7 @@
#include "operation.h" #include "operation.h"
#include "downloader.h" #include "downloader.h"
#include "utils.h" #include "utils.h"
#include "configfile.h"
#include "nel/misc/system_info.h" #include "nel/misc/system_info.h"
#include "nel/misc/path.h" #include "nel/misc/path.h"
@ -179,7 +180,7 @@ void CDownloader::getFileHead()
void CDownloader::downloadFile() 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) if (freeSpace == 0)
{ {

View file

@ -130,7 +130,7 @@ void CInstallDialog::updateDestinationText()
void CInstallDialog::accept() void CInstallDialog::accept()
{ {
// check free disk space // 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 // shouldn't happen
if (freeSpace == 0) if (freeSpace == 0)

View file

@ -152,13 +152,13 @@ int main(int argc, char *argv[])
bool res = config.load(); bool res = config.load();
// init log // init log
CLogHelper logHelper(config.getInstallationDirectory()); CLogHelper logHelper(config.getInstallationDirectory().isEmpty() ? config.getNewInstallationDirectory():config.getInstallationDirectory());
nlinfo("Launched %s", Q2C(config.getInstallerCurrentFilePath())); nlinfo("Launched %s", Q2C(config.getInstallerCurrentFilePath()));
OperationStep step = res ? config.getInstallNextStep():DisplayNoServerError; 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")); QMessageBox::critical(NULL, QApplication::tr("Error"), QApplication::tr("Unable to find ryzom_installer.ini"));
return 1; return 1;
@ -232,8 +232,8 @@ int main(int argc, char *argv[])
dialog.setSelectedComponents(components); dialog.setSelectedComponents(components);
// TODO: check real return codes from Uninstallers // exit if press Cancel button or close dialog
if (!dialog.exec()) return 1; if (!dialog.exec()) return 0;
components = dialog.getSelectedCompenents(); components = dialog.getSelectedCompenents();
} }

View file

@ -123,7 +123,7 @@ void CMigrateDialog::updateDestinationText()
void CMigrateDialog::accept() void CMigrateDialog::accept()
{ {
// check free disk space // 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 // shouldn't happen
if (freeSpace == 0) if (freeSpace == 0)

View file

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

View file

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

View file

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

View file

@ -4,42 +4,46 @@
<context> <context>
<name>CDownloader</name> <name>CDownloader</name>
<message> <message>
<location filename="../src/downloader.cpp" line="156"/> <location filename="../src/downloader.cpp" line="158"/>
<source>File is larger (%1B) than expected (%2B)</source> <source>File is larger (%1B) than expected (%2B)</source>
<translation>Die Datei ist (%1B) größer als erwartet (%2B)</translation> <translation>Die Datei ist (%1B) größer als erwartet (%2B)</translation>
</message> </message>
<message> <message>
<location filename="../src/downloader.cpp" line="186"/> <location filename="../src/downloader.cpp" line="190"/>
<source>Error &apos;%1&apos; occurred when trying to check free disk space on %2.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/downloader.cpp" line="198"/>
<source>You only have %1 bytes left on the device, but %2 bytes are needed.</source> <source>You only have %1 bytes left on the device, but %2 bytes are needed.</source>
<translation>Auf dem Gerät sind nur noch %1 Byte Speicherplatz verfügbar, es werden aber %2 Byte benötigt.</translation> <translation>Auf dem Gerät sind nur noch %1 Byte Speicherplatz verfügbar, es werden aber %2 Byte benötigt.</translation>
</message> </message>
<message> <message>
<location filename="../src/downloader.cpp" line="192"/> <location filename="../src/downloader.cpp" line="204"/>
<source>Unable to write file</source> <source>Unable to write file</source>
<translation>Datei kann nicht geschrieben werden</translation> <translation>Datei kann nicht geschrieben werden</translation>
</message> </message>
<message> <message>
<location filename="../src/downloader.cpp" line="227"/> <location filename="../src/downloader.cpp" line="239"/>
<source>Timeout</source> <source>Timeout</source>
<translation>Zeitüberschreitung</translation> <translation>Zeitüberschreitung</translation>
</message> </message>
<message> <message>
<location filename="../src/downloader.cpp" line="264"/> <location filename="../src/downloader.cpp" line="287"/>
<source>Redirection URL is not defined</source> <source>Redirection URL is not defined</source>
<translation>Weiterleitungs-URL ist nicht definiert</translation> <translation>Weiterleitungs-URL ist nicht definiert</translation>
</message> </message>
<message> <message>
<location filename="../src/downloader.cpp" line="329"/>
<source>File is not available, please retry later (status code: %1)</source> <source>File is not available, please retry later (status code: %1)</source>
<translation>Datei ist nicht abrufbar, bitte versuch es später noch einmal (Status-Code: %1)</translation> <translation type="vanished">Datei ist nicht abrufbar, bitte versuch es später noch einmal (Status-Code: %1)</translation>
</message> </message>
<message> <message>
<location filename="../src/downloader.cpp" line="336"/> <location filename="../src/downloader.cpp" line="357"/>
<source>Incorrect status code: %1</source> <source>Incorrect status code: %1</source>
<translation>Falscher Status-Code: %1</translation> <translation>Falscher Status-Code: %1</translation>
</message> </message>
<message> <message>
<location filename="../src/downloader.cpp" line="382"/> <location filename="../src/downloader.cpp" line="411"/>
<source>HTTP error: %1</source> <source>HTTP error: %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -59,7 +63,7 @@
<translation type="vanished">Internet (%1 herunterzuladen)</translation> <translation type="vanished">Internet (%1 herunterzuladen)</translation>
</message> </message>
<message> <message>
<location filename="../src/installdialog.cpp" line="80"/> <location filename="../src/installdialog.cpp" line="81"/>
<source>Files will be installed to (requires %1):</source> <source>Files will be installed to (requires %1):</source>
<translation>Dateien werden installiert nach (benötigt %1):</translation> <translation>Dateien werden installiert nach (benötigt %1):</translation>
</message> </message>
@ -76,7 +80,7 @@
<translation type="vanished">Ryzom konnte im gewählten Verzeichnis nicht gefunden werden. Wähle bitte ein anderes Verzeichnis oder brich ab.</translation> <translation type="vanished">Ryzom konnte im gewählten Verzeichnis nicht gefunden werden. Wähle bitte ein anderes Verzeichnis oder brich ab.</translation>
</message> </message>
<message> <message>
<location filename="../src/installdialog.cpp" line="115"/> <location filename="../src/installdialog.cpp" line="116"/>
<source>Please choose directory to install Ryzom in</source> <source>Please choose directory to install Ryzom in</source>
<translation>Bitte wähle ein Verzeichnis, in dem Ryzom installiert werden soll.</translation> <translation>Bitte wähle ein Verzeichnis, in dem Ryzom installiert werden soll.</translation>
</message> </message>
@ -89,32 +93,32 @@
<translation type="vanished">Undefiniert</translation> <translation type="vanished">Undefiniert</translation>
</message> </message>
<message> <message>
<location filename="../src/installdialog.cpp" line="138"/> <location filename="../src/installdialog.cpp" line="148"/>
<source>Not enough free disk space</source> <source>Not enough free disk space</source>
<translation>Nicht genügend freier Festplattenspeicher</translation> <translation>Nicht genügend freier Festplattenspeicher</translation>
</message> </message>
<message> <message>
<location filename="../src/installdialog.cpp" line="138"/> <location filename="../src/installdialog.cpp" line="148"/>
<source>You don&apos;t have enough free space on this disk, please make more space or choose a directory on another disk.</source> <source>You don&apos;t have enough free space on this disk, please make more space or choose a directory on another disk.</source>
<translation>Auf diesem Laufwerk ist nicht genügend freier Speicher verfügbar, bitte schaffe mehr Platz oder wähle ein Verzeichnis auf einem anderen Laufwerk.</translation> <translation>Auf diesem Laufwerk ist nicht genügend freier Speicher verfügbar, bitte schaffe mehr Platz oder wähle ein Verzeichnis auf einem anderen Laufwerk.</translation>
</message> </message>
<message> <message>
<location filename="../src/installdialog.cpp" line="157"/> <location filename="../src/installdialog.cpp" line="167"/>
<source>Unable to write in directory</source> <source>Unable to write in directory</source>
<translation>In das Verzeichnis konnte nicht geschrieben werden</translation> <translation>In das Verzeichnis konnte nicht geschrieben werden</translation>
</message> </message>
<message> <message>
<location filename="../src/installdialog.cpp" line="157"/> <location filename="../src/installdialog.cpp" line="167"/>
<source>You don&apos;t have the permission to write in this directory with your current user account, please choose another directory.</source> <source>You don&apos;t have the permission to write in this directory with your current user account, please choose another directory.</source>
<translation>Du hast nicht die Berechtigungen, um mit deinem derzeitigen Benutzer-Konto in dieses Verzeichnis zu schreiben, bitte wähle ein anderes Verzeichnis.</translation> <translation>Du hast nicht die Berechtigungen, um mit deinem derzeitigen Benutzer-Konto in dieses Verzeichnis zu schreiben, bitte wähle ein anderes Verzeichnis.</translation>
</message> </message>
<message> <message>
<location filename="../src/installdialog.cpp" line="166"/> <location filename="../src/installdialog.cpp" line="176"/>
<source>Directory not empty</source> <source>Directory not empty</source>
<translation>Verzeichnist ist nicht leer</translation> <translation>Verzeichnist ist nicht leer</translation>
</message> </message>
<message> <message>
<location filename="../src/installdialog.cpp" line="166"/> <location filename="../src/installdialog.cpp" line="176"/>
<source>This directory is not empty, please choose another one.</source> <source>This directory is not empty, please choose another one.</source>
<translation>Dieses Verzeichnis ist nicht leer, bitte wähle ein anderes.</translation> <translation>Dieses Verzeichnis ist nicht leer, bitte wähle ein anderes.</translation>
</message> </message>
@ -122,27 +126,27 @@
<context> <context>
<name>CMainWindow</name> <name>CMainWindow</name>
<message> <message>
<location filename="../src/mainwindow.cpp" line="270"/> <location filename="../src/mainwindow.cpp" line="287"/>
<source>About %1</source> <source>About %1</source>
<translation>Über %1</translation> <translation>Über %1</translation>
</message> </message>
<message> <message>
<location filename="../src/mainwindow.cpp" line="272"/> <location filename="../src/mainwindow.cpp" line="289"/>
<source>Program to install, download and manage Ryzom profiles.</source> <source>Program to install, download and manage Ryzom profiles.</source>
<translation>Programm, um Ryzom-Profile zu installieren, herunterzuladen und zu verwalten.</translation> <translation>Programm, um Ryzom-Profile zu installieren, herunterzuladen und zu verwalten.</translation>
</message> </message>
<message> <message>
<location filename="../src/mainwindow.cpp" line="274"/> <location filename="../src/mainwindow.cpp" line="291"/>
<source>Author: %1</source> <source>Author: %1</source>
<translation>Autor: %1</translation> <translation>Autor: %1</translation>
</message> </message>
<message> <message>
<location filename="../src/mainwindow.cpp" line="275"/> <location filename="../src/mainwindow.cpp" line="292"/>
<source>Copyright: %1</source> <source>Copyright: %1</source>
<translation>Copyright: %1</translation> <translation>Copyright: %1</translation>
</message> </message>
<message> <message>
<location filename="../src/mainwindow.cpp" line="276"/> <location filename="../src/mainwindow.cpp" line="293"/>
<source>Support: %1</source> <source>Support: %1</source>
<translation>Support: %1</translation> <translation>Support: %1</translation>
</message> </message>
@ -150,42 +154,42 @@
<context> <context>
<name>CMigrateDialog</name> <name>CMigrateDialog</name>
<message> <message>
<location filename="../src/migratedialog.cpp" line="94"/> <location filename="../src/migratedialog.cpp" line="72"/>
<source>Files will be installed to (requires %1):</source> <source>Files will be installed to (requires %1):</source>
<translation>Dateien werden installiert nach (benötigt %1):</translation> <translation>Dateien werden installiert nach (benötigt %1):</translation>
</message> </message>
<message> <message>
<location filename="../src/migratedialog.cpp" line="131"/> <location filename="../src/migratedialog.cpp" line="109"/>
<source>Please choose directory to install Ryzom in</source> <source>Please choose directory to install Ryzom in</source>
<translation>Bitte wähle ein Verzeichnis, in dem Ryzom installiert werden soll.</translation> <translation>Bitte wähle ein Verzeichnis, in dem Ryzom installiert werden soll.</translation>
</message> </message>
<message> <message>
<location filename="../src/migratedialog.cpp" line="153"/> <location filename="../src/migratedialog.cpp" line="139"/>
<source>Not enough free disk space</source> <source>Not enough free disk space</source>
<translation>Nicht genügend freier Festplattenspeicher</translation> <translation>Nicht genügend freier Festplattenspeicher</translation>
</message> </message>
<message> <message>
<location filename="../src/migratedialog.cpp" line="153"/> <location filename="../src/migratedialog.cpp" line="139"/>
<source>You don&apos;t have enough free space on this disk, please make more space or choose a directory on another disk.</source> <source>You don&apos;t have enough free space on this disk, please make more space or choose a directory on another disk.</source>
<translation>Auf diesem Laufwerk ist nicht genügend freier Speicher verfügbar, bitte schaffe mehr Platz oder wähle ein Verzeichnis auf einem anderen Laufwerk.</translation> <translation>Auf diesem Laufwerk ist nicht genügend freier Speicher verfügbar, bitte schaffe mehr Platz oder wähle ein Verzeichnis auf einem anderen Laufwerk.</translation>
</message> </message>
<message> <message>
<location filename="../src/migratedialog.cpp" line="172"/> <location filename="../src/migratedialog.cpp" line="158"/>
<source>Unable to write in directory</source> <source>Unable to write in directory</source>
<translation>Kann nicht in dieses Verzeichnis schreiben</translation> <translation>Kann nicht in dieses Verzeichnis schreiben</translation>
</message> </message>
<message> <message>
<location filename="../src/migratedialog.cpp" line="172"/> <location filename="../src/migratedialog.cpp" line="158"/>
<source>You don&apos;t have the permission to write in this directory with your current user account, please choose another directory.</source> <source>You don&apos;t have the permission to write in this directory with your current user account, please choose another directory.</source>
<translation>Du hast nicht die Berechtigungen, mit deinem derzeitigen Benutzer-Konto in dieses Verzeichnis zu schreiben, bitte wähle ein anderes Verzeichnis.</translation> <translation>Du hast nicht die Berechtigungen, mit deinem derzeitigen Benutzer-Konto in dieses Verzeichnis zu schreiben, bitte wähle ein anderes Verzeichnis.</translation>
</message> </message>
<message> <message>
<location filename="../src/migratedialog.cpp" line="181"/> <location filename="../src/migratedialog.cpp" line="167"/>
<source>Directory not empty</source> <source>Directory not empty</source>
<translation>Verzeichnis ist nicht leer</translation> <translation>Verzeichnis ist nicht leer</translation>
</message> </message>
<message> <message>
<location filename="../src/migratedialog.cpp" line="181"/> <location filename="../src/migratedialog.cpp" line="167"/>
<source>This directory is not empty, please choose another one.</source> <source>This directory is not empty, please choose another one.</source>
<translation>Dieses Verzeichnis ist nicht leer, bitte wähle ein anderes.</translation> <translation>Dieses Verzeichnis ist nicht leer, bitte wähle ein anderes.</translation>
</message> </message>
@ -197,109 +201,109 @@
<translation type="vanished">Profile aktualisieren</translation> <translation type="vanished">Profile aktualisieren</translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="275"/> <location filename="../src/operationdialog.cpp" line="276"/>
<source>Updating profiles...</source> <source>Updating profiles...</source>
<translation>Aktualisiere Profile...</translation> <translation>Aktualisiere Profile...</translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="428"/> <location filename="../src/operationdialog.cpp" line="429"/>
<source>Confirmation</source> <source>Confirmation</source>
<translation>Bestätigung</translation> <translation>Bestätigung</translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="428"/> <location filename="../src/operationdialog.cpp" line="429"/>
<source>Warning, this server doesn&apos;t support resume! If you stop download now, you won&apos;t be able to resume it later. <source>Warning, this server doesn&apos;t support resume! If you stop download now, you won&apos;t be able to resume it later.
Are you sure to abort download?</source> Are you sure to abort download?</source>
<translation>Warnung: dieser Server unterstützt kein Fortsetzen! Wenn du jetzt den Download abbrichst, wirst du nicht in der Lage sein, ihn später wieder fortzusetzen. <translation>Warnung: dieser Server unterstützt kein Fortsetzen! Wenn du jetzt den Download abbrichst, wirst du nicht in der Lage sein, ihn später wieder fortzusetzen.
Willst du den Download wirklich abbrechen?</translation> Willst du den Download wirklich abbrechen?</translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="453"/> <location filename="../src/operationdialog.cpp" line="454"/>
<source>%p% (%v/%m KiB)</source> <source>%p% (%v/%m KiB)</source>
<translation>%p% (%v/%m KiB)</translation> <translation>%p% (%v/%m KiB)</translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="513"/> <location filename="../src/operationdialog.cpp" line="514"/>
<source>Error</source> <source>Error</source>
<translation>Fehler</translation> <translation>Fehler</translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="534"/> <location filename="../src/operationdialog.cpp" line="535"/>
<source>Downloading data required by server %1...</source> <source>Downloading data required by server %1...</source>
<translation>Herunterzuladende Daten benötigt von Server %1...</translation> <translation>Herunterzuladende Daten benötigt von Server %1...</translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="545"/> <location filename="../src/operationdialog.cpp" line="546"/>
<source>Extracting data required by server %1...</source> <source>Extracting data required by server %1...</source>
<translation>Zu extrahierende Daten benötigt von Server %1...</translation> <translation>Zu extrahierende Daten benötigt von Server %1...</translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="569"/> <location filename="../src/operationdialog.cpp" line="570"/>
<source>Downloading client required by server %1...</source> <source>Downloading client required by server %1...</source>
<translation>Herunterzuladender Client benötigt von Server %1...</translation> <translation>Herunterzuladender Client benötigt von Server %1...</translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="580"/> <location filename="../src/operationdialog.cpp" line="581"/>
<source>Extracting client required by server %1...</source> <source>Extracting client required by server %1...</source>
<translation>Zu extrahierender Client benötigt von Server %1...</translation> <translation>Zu extrahierender Client benötigt von Server %1...</translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="602"/> <location filename="../src/operationdialog.cpp" line="603"/>
<source>Copying data required by server %1...</source> <source>Copying data required by server %1...</source>
<translation>Zu kopierende Daten benötigt von Server %1...</translation> <translation>Zu kopierende Daten benötigt von Server %1...</translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="631"/> <location filename="../src/operationdialog.cpp" line="632"/>
<source>Copying old profile to new location...</source> <source>Copying old profile to new location...</source>
<translation>Kopiere alte Profile zum neuen Zielort...</translation> <translation>Kopiere alte Profile zum neuen Zielort...</translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="661"/> <location filename="../src/operationdialog.cpp" line="662"/>
<source>Extracting client to new location...</source> <source>Extracting client to new location...</source>
<translation>Extrahiere Client an neuem Zielort...</translation> <translation>Extrahiere Client an neuem Zielort...</translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="726"/> <location filename="../src/operationdialog.cpp" line="727"/>
<source>Copying installer to new location...</source> <source>Copying installer to new location...</source>
<translation>Kopiere Installer zum neuen Zielort...</translation> <translation>Kopiere Installer zum neuen Zielort...</translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="847"/> <location filename="../src/operationdialog.cpp" line="855"/>
<source>Cleaning obsolete files...</source> <source>Cleaning obsolete files...</source>
<translation>Bereinige überholte Dateien...</translation> <translation>Bereinige überholte Dateien...</translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="862"/> <location filename="../src/operationdialog.cpp" line="870"/>
<source>Creating default profile...</source> <source>Creating default profile...</source>
<translation>Erstelle Standard-Profile...</translation> <translation>Erstelle Standard-Profile...</translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="921"/> <location filename="../src/operationdialog.cpp" line="929"/>
<source>Creating shortcuts for profile %1...</source> <source>Creating shortcuts for profile %1...</source>
<translation>Erstelle Verknüpfungen für Profile %1...</translation> <translation>Erstelle Verknüpfungen für Profile %1...</translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="1007"/> <location filename="../src/operationdialog.cpp" line="1015"/>
<source>Deleting client...</source> <source>Deleting client...</source>
<translation>Lösche Client...</translation> <translation>Lösche Client...</translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="1067"/> <location filename="../src/operationdialog.cpp" line="1075"/>
<source>Adding profiles...</source> <source>Adding profiles...</source>
<translation>Füge Profile hinzu...</translation> <translation>Füge Profile hinzu...</translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="1087"/> <location filename="../src/operationdialog.cpp" line="1095"/>
<source>Deleting profiles...</source> <source>Deleting profiles...</source>
<translation>Lösche Profile...</translation> <translation>Lösche Profile...</translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="1140"/> <location filename="../src/operationdialog.cpp" line="1148"/>
<source>Deleting installer...</source> <source>Deleting installer...</source>
<translation>Lösche Installer...</translation> <translation>Lösche Installer...</translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="1192"/> <location filename="../src/operationdialog.cpp" line="1200"/>
<source>Deleting downloaded files...</source> <source>Deleting downloaded files...</source>
<translation>Lösche heruntergeladene Dateien...</translation> <translation>Lösche heruntergeladene Dateien...</translation>
</message> </message>
@ -349,12 +353,12 @@ Willst du den Download wirklich abbrechen?</translation>
<translation type="vanished">Kopiere Installer an neuen Ort</translation> <translation type="vanished">Kopiere Installer an neuen Ort</translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="812"/> <location filename="../src/operationdialog.cpp" line="820"/>
<source>Uninstall old client</source> <source>Uninstall old client</source>
<translation>Deinstalliere alten Client</translation> <translation>Deinstalliere alten Client</translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="812"/> <location filename="../src/operationdialog.cpp" line="820"/>
<source>An old version of Ryzom has been detected on this system, would you like to uninstall it to save space disk?</source> <source>An old version of Ryzom has been detected on this system, would you like to uninstall it to save space disk?</source>
<translation>Eine ältere Version von Ryzom wurde auf diesem System gefunden, möchtest du sie deinstallieren, um Festplattenspeicher zu sparen?</translation> <translation>Eine ältere Version von Ryzom wurde auf diesem System gefunden, möchtest du sie deinstallieren, um Festplattenspeicher zu sparen?</translation>
</message> </message>
@ -379,7 +383,7 @@ Willst du den Download wirklich abbrechen?</translation>
<translation type="vanished">Lösche Client-Dateien</translation> <translation type="vanished">Lösche Client-Dateien</translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="1037"/> <location filename="../src/operationdialog.cpp" line="1045"/>
<source>Unable to delete files for client %1</source> <source>Unable to delete files for client %1</source>
<translation>Dateien für Client %1 konnten nicht gelöscht werden</translation> <translation>Dateien für Client %1 konnten nicht gelöscht werden</translation>
</message> </message>
@ -400,7 +404,7 @@ Willst du den Download wirklich abbrechen?</translation>
<translation type="vanished">Lösche Profil %1...</translation> <translation type="vanished">Lösche Profil %1...</translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="1116"/> <location filename="../src/operationdialog.cpp" line="1124"/>
<source>Unable to delete files for profile %1</source> <source>Unable to delete files for profile %1</source>
<translation>Dateien für Profil %1 konnten nicht gelöscht werden</translation> <translation>Dateien für Profil %1 konnten nicht gelöscht werden</translation>
</message> </message>
@ -433,17 +437,17 @@ Are you sure to delete this profile?</source>
Bist du sicher, dass du dieses Profil löschen willst?</translation> Bist du sicher, dass du dieses Profil löschen willst?</translation>
</message> </message>
<message> <message>
<location filename="../src/profilesdialog.cpp" line="277"/> <location filename="../src/profilesdialog.cpp" line="278"/>
<source>Executables (*)</source> <source>Executables (*)</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/profilesdialog.cpp" line="283"/> <location filename="../src/profilesdialog.cpp" line="284"/>
<source>Please choose Ryzom client executable to launch</source> <source>Please choose Ryzom client executable to launch</source>
<translation>Bitte wähle die ausführbare Datei, um den Ryzom-Client zu starten</translation> <translation>Bitte wähle die ausführbare Datei, um den Ryzom-Client zu starten</translation>
</message> </message>
<message> <message>
<location filename="../src/profilesdialog.cpp" line="275"/> <location filename="../src/profilesdialog.cpp" line="276"/>
<source>Executables (*.exe)</source> <source>Executables (*.exe)</source>
<translation>Ausführbare Dateien (*.exe)</translation> <translation>Ausführbare Dateien (*.exe)</translation>
</message> </message>
@ -753,7 +757,7 @@ Drücke Weiter und folge den verschiedenen Schritten bis zum Ende.</translation>
<translation>Löschen</translation> <translation>Löschen</translation>
</message> </message>
<message> <message>
<location filename="../ui/profilesdialog.ui" line="72"/> <location filename="../ui/profilesdialog.ui" line="75"/>
<source>Profile:</source> <source>Profile:</source>
<translation>Profil:</translation> <translation>Profil:</translation>
</message> </message>
@ -762,27 +766,27 @@ Drücke Weiter und folge den verschiedenen Schritten bis zum Ende.</translation>
<translation type="vanished">0</translation> <translation type="vanished">0</translation>
</message> </message>
<message> <message>
<location filename="../ui/profilesdialog.ui" line="86"/> <location filename="../ui/profilesdialog.ui" line="89"/>
<source>Name:</source> <source>Name:</source>
<translation>Name:</translation> <translation>Name:</translation>
</message> </message>
<message> <message>
<location filename="../ui/profilesdialog.ui" line="96"/> <location filename="../ui/profilesdialog.ui" line="99"/>
<source>Server:</source> <source>Server:</source>
<translation>Server:</translation> <translation>Server:</translation>
</message> </message>
<message> <message>
<location filename="../ui/profilesdialog.ui" line="107"/> <location filename="../ui/profilesdialog.ui" line="110"/>
<source>Atys</source> <source>Atys</source>
<translation>Atys</translation> <translation>Atys</translation>
</message> </message>
<message> <message>
<location filename="../ui/profilesdialog.ui" line="112"/> <location filename="../ui/profilesdialog.ui" line="115"/>
<source>Yubo</source> <source>Yubo</source>
<translation>Yubo</translation> <translation>Yubo</translation>
</message> </message>
<message> <message>
<location filename="../ui/profilesdialog.ui" line="120"/> <location filename="../ui/profilesdialog.ui" line="123"/>
<source>Executable:</source> <source>Executable:</source>
<translation>Ausführbare Datei:</translation> <translation>Ausführbare Datei:</translation>
</message> </message>
@ -791,27 +795,27 @@ Drücke Weiter und folge den verschiedenen Schritten bis zum Ende.</translation>
<translation type="vanished">ryzom_client_r.exe</translation> <translation type="vanished">ryzom_client_r.exe</translation>
</message> </message>
<message> <message>
<location filename="../ui/profilesdialog.ui" line="136"/> <location filename="../ui/profilesdialog.ui" line="139"/>
<source>Default</source> <source>Default</source>
<translation>Standard</translation> <translation>Standard</translation>
</message> </message>
<message> <message>
<location filename="../ui/profilesdialog.ui" line="143"/> <location filename="../ui/profilesdialog.ui" line="146"/>
<source>Browse...</source> <source>Browse...</source>
<translation>Durchsuchen...</translation> <translation>Durchsuchen...</translation>
</message> </message>
<message> <message>
<location filename="../ui/profilesdialog.ui" line="152"/> <location filename="../ui/profilesdialog.ui" line="155"/>
<source>Arguments:</source> <source>Arguments:</source>
<translation>Argumente:</translation> <translation>Argumente:</translation>
</message> </message>
<message> <message>
<location filename="../ui/profilesdialog.ui" line="162"/> <location filename="../ui/profilesdialog.ui" line="165"/>
<source>Comments:</source> <source>Comments:</source>
<translation>Kommentare:</translation> <translation>Kommentare:</translation>
</message> </message>
<message> <message>
<location filename="../ui/profilesdialog.ui" line="179"/> <location filename="../ui/profilesdialog.ui" line="182"/>
<source>Directory:</source> <source>Directory:</source>
<translation>Verzeichnis:</translation> <translation>Verzeichnis:</translation>
</message> </message>
@ -820,22 +824,22 @@ Drücke Weiter und folge den verschiedenen Schritten bis zum Ende.</translation>
<translation type="vanished">~/.ryzom/0</translation> <translation type="vanished">~/.ryzom/0</translation>
</message> </message>
<message> <message>
<location filename="../ui/profilesdialog.ui" line="195"/> <location filename="../ui/profilesdialog.ui" line="198"/>
<source>Open</source> <source>Open</source>
<translation>Öffnen</translation> <translation>Öffnen</translation>
</message> </message>
<message> <message>
<location filename="../ui/profilesdialog.ui" line="204"/> <location filename="../ui/profilesdialog.ui" line="207"/>
<source>Create shortcuts:</source> <source>Create shortcuts:</source>
<translation>Erstelle Verknüpfungen:</translation> <translation>Erstelle Verknüpfungen:</translation>
</message> </message>
<message> <message>
<location filename="../ui/profilesdialog.ui" line="213"/> <location filename="../ui/profilesdialog.ui" line="216"/>
<source>Desktop</source> <source>Desktop</source>
<translation>Desktop</translation> <translation>Desktop</translation>
</message> </message>
<message> <message>
<location filename="../ui/profilesdialog.ui" line="220"/> <location filename="../ui/profilesdialog.ui" line="223"/>
<source>Start Menu</source> <source>Start Menu</source>
<translation>Start-Menü</translation> <translation>Start-Menü</translation>
</message> </message>
@ -843,116 +847,123 @@ Drücke Weiter und folge den verschiedenen Schritten bis zum Ende.</translation>
<context> <context>
<name>QApplication</name> <name>QApplication</name>
<message> <message>
<location filename="../src/main.cpp" line="151"/> <location filename="../src/main.cpp" line="163"/>
<source>Error</source> <source>Error</source>
<translation>Fehler</translation> <translation>Fehler</translation>
</message> </message>
<message> <message>
<location filename="../src/main.cpp" line="151"/> <location filename="../src/main.cpp" line="163"/>
<source>Unable to find ryzom_installer.ini</source> <source>Unable to find ryzom_installer.ini</source>
<translation>ryzom_installer.ini konnte nicht gefunden werden</translation> <translation>ryzom_installer.ini konnte nicht gefunden werden</translation>
</message> </message>
<message> <message>
<location filename="../src/main.cpp" line="119"/> <location filename="../src/main.cpp" line="123"/>
<source>Installation and launcher tool for Ryzom</source> <source>Installation and launcher tool for Ryzom</source>
<translation>Installations- und Startprogramm für Ryzom</translation> <translation>Installations- und Startprogramm für Ryzom</translation>
</message> </message>
<message> <message>
<location filename="../src/main.cpp" line="122"/> <location filename="../src/main.cpp" line="126"/>
<source>Uninstall</source> <source>Uninstall</source>
<translation>Deinstallieren</translation> <translation>Deinstallieren</translation>
</message> </message>
<message> <message>
<location filename="../src/main.cpp" line="125"/> <location filename="../src/main.cpp" line="129"/>
<source>Silent mode</source> <source>Silent mode</source>
<translation>Stiller Modus</translation> <translation>Stiller Modus</translation>
</message> </message>
<message> <message>
<location filename="../src/main.cpp" line="128"/> <location filename="../src/main.cpp" line="132"/>
<source>Version</source> <source>Version</source>
<translation>Version</translation> <translation>Version</translation>
</message> </message>
<message> <message>
<location filename="../src/main.cpp" line="131"/> <location filename="../src/main.cpp" line="135"/>
<source>Install itself</source> <source>Install itself</source>
<translation>Selbstinstallation</translation> <translation>Selbstinstallation</translation>
</message> </message>
<message> <message>
<location filename="../src/filesextractor.cpp" line="322"/> <location filename="../src/filesextractor.cpp" line="324"/>
<location filename="../src/filesextractor.cpp" line="580"/> <location filename="../src/filesextractor.cpp" line="629"/>
<source>Unable to open %1</source> <source>Unable to open %1</source>
<translation>%1 konnte nicht geöffnet werden</translation> <translation>%1 konnte nicht geöffnet werden</translation>
</message> </message>
<message> <message>
<location filename="../src/filesextractor.cpp" line="437"/>
<source>Unable to open output file</source> <source>Unable to open output file</source>
<translation>Ausgabe-Datei konnte nicht geöffnet werden</translation> <translation type="vanished">Ausgabe-Datei konnte nicht geöffnet werden</translation>
</message> </message>
<message> <message>
<location filename="../src/filesextractor.cpp" line="446"/>
<source>Unable to write output file</source> <source>Unable to write output file</source>
<translation>Ausgabe-Datei konnte nicht geschrieben werden</translation> <translation type="vanished">Ausgabe-Datei konnte nicht geschrieben werden</translation>
</message> </message>
<message> <message>
<location filename="../src/filesextractor.cpp" line="495"/> <location filename="../src/filesextractor.cpp" line="471"/>
<location filename="../src/filesextractor.cpp" line="503"/> <source>Unable to open output file %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/filesextractor.cpp" line="494"/>
<source>Unable to write output file %1 (%2 bytes written but expecting %3 bytes)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/filesextractor.cpp" line="538"/>
<location filename="../src/filesextractor.cpp" line="546"/>
<source>7zip decoder doesn&apos;t support this archive</source> <source>7zip decoder doesn&apos;t support this archive</source>
<translation>7zip-Decoder unterstützt dieses Archiv nicht</translation> <translation>7zip-Decoder unterstützt dieses Archiv nicht</translation>
</message> </message>
<message> <message>
<location filename="../src/filesextractor.cpp" line="499"/> <location filename="../src/filesextractor.cpp" line="542"/>
<source>Unable to allocate memory</source> <source>Unable to allocate memory</source>
<translation>Speicher konnte nicht zugewiesen werden</translation> <translation>Speicher konnte nicht zugewiesen werden</translation>
</message> </message>
<message> <message>
<location filename="../src/filesextractor.cpp" line="507"/> <location filename="../src/filesextractor.cpp" line="550"/>
<source>File %1 is corrupted, unable to uncompress it</source> <source>File %1 is corrupted, unable to uncompress it</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/filesextractor.cpp" line="515"/> <location filename="../src/filesextractor.cpp" line="558"/>
<source>Error %1</source> <source>Error %1</source>
<translation>Fehler %1</translation> <translation>Fehler %1</translation>
</message> </message>
<message> <message>
<location filename="../src/filesextractor.cpp" line="542"/> <location filename="../src/filesextractor.cpp" line="587"/>
<source>Unable to create directory %1</source> <source>Unable to create directory %1</source>
<translation>Verzeichnis %1 konnte nicht erstellt werden</translation> <translation>Verzeichnis %1 konnte nicht erstellt werden</translation>
</message> </message>
<message> <message>
<location filename="../src/filesextractor.cpp" line="548"/> <location filename="../src/filesextractor.cpp" line="595"/>
<source>Unable to set permissions of %1</source> <source>Unable to set permissions of %1</source>
<translation>Berechtigungen für %1 konnten nicht gesetzt werden</translation> <translation>Berechtigungen für %1 konnten nicht gesetzt werden</translation>
</message> </message>
<message> <message>
<location filename="../src/filesextractor.cpp" line="663"/> <location filename="../src/filesextractor.cpp" line="718"/>
<source>disk full</source> <source>disk full</source>
<translation>Festplatte voll</translation> <translation>Festplatte voll</translation>
</message> </message>
<message> <message>
<location filename="../src/filesextractor.cpp" line="667"/> <location filename="../src/filesextractor.cpp" line="724"/>
<source>unable to write %1</source> <source>unable to write %1</source>
<translation>Konnte %1 nicht schreiben</translation> <translation>Konnte %1 nicht schreiben</translation>
</message> </message>
<message> <message>
<location filename="../src/filesextractor.cpp" line="671"/> <location filename="../src/filesextractor.cpp" line="730"/>
<source>unable to read %1</source> <source>unable to read %1</source>
<translation>Konnte %1 nicht lesen</translation> <translation>Konnte %1 nicht lesen</translation>
</message> </message>
<message> <message>
<location filename="../src/filesextractor.cpp" line="675"/> <location filename="../src/filesextractor.cpp" line="736"/>
<source>failed (%1)</source> <source>failed (%1)</source>
<translation>Fehlgeschlagen (%1)</translation> <translation>Fehlgeschlagen (%1)</translation>
</message> </message>
<message> <message>
<location filename="../src/filesextractor.cpp" line="678"/> <location filename="../src/filesextractor.cpp" line="739"/>
<source>Unable to unpack %1 to %2: %3</source> <source>Unable to unpack %1 to %2: %3</source>
<translation>Konnte %1 nicht nach %2 entpacken: %3</translation> <translation>Konnte %1 nicht nach %2 entpacken: %3</translation>
</message> </message>
<message> <message>
<location filename="../src/filescopier.cpp" line="189"/>
<source>Unable to copy file %1</source> <source>Unable to copy file %1</source>
<translation>Konnte Datei %1 nicht kopieren</translation> <translation type="vanished">Konnte Datei %1 nicht kopieren</translation>
</message> </message>
<message> <message>
<location filename="../src/profile.cpp" line="58"/> <location filename="../src/profile.cpp" line="58"/>
@ -964,6 +975,11 @@ Drücke Weiter und folge den verschiedenen Schritten bis zum Ende.</translation>
<source>Profile name %1 is using invalid character %2 at position %3</source> <source>Profile name %1 is using invalid character %2 at position %3</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location filename="../src/filescopier.cpp" line="179"/>
<source>Unable to copy file %1 to %2</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>QObject</name> <name>QObject</name>

View file

@ -4,42 +4,42 @@
<context> <context>
<name>CDownloader</name> <name>CDownloader</name>
<message> <message>
<location filename="../src/downloader.cpp" line="156"/> <location filename="../src/downloader.cpp" line="158"/>
<source>File is larger (%1B) than expected (%2B)</source> <source>File is larger (%1B) than expected (%2B)</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/downloader.cpp" line="186"/> <location filename="../src/downloader.cpp" line="190"/>
<source>Error &apos;%1&apos; occurred when trying to check free disk space on %2.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/downloader.cpp" line="198"/>
<source>You only have %1 bytes left on the device, but %2 bytes are needed.</source> <source>You only have %1 bytes left on the device, but %2 bytes are needed.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/downloader.cpp" line="192"/> <location filename="../src/downloader.cpp" line="204"/>
<source>Unable to write file</source> <source>Unable to write file</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/downloader.cpp" line="227"/> <location filename="../src/downloader.cpp" line="239"/>
<source>Timeout</source> <source>Timeout</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/downloader.cpp" line="264"/> <location filename="../src/downloader.cpp" line="287"/>
<source>Redirection URL is not defined</source> <source>Redirection URL is not defined</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/downloader.cpp" line="329"/> <location filename="../src/downloader.cpp" line="357"/>
<source>File is not available, please retry later (status code: %1)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/downloader.cpp" line="336"/>
<source>Incorrect status code: %1</source> <source>Incorrect status code: %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/downloader.cpp" line="382"/> <location filename="../src/downloader.cpp" line="411"/>
<source>HTTP error: %1</source> <source>HTTP error: %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -47,42 +47,42 @@
<context> <context>
<name>CInstallDialog</name> <name>CInstallDialog</name>
<message> <message>
<location filename="../src/installdialog.cpp" line="80"/> <location filename="../src/installdialog.cpp" line="81"/>
<source>Files will be installed to (requires %1):</source> <source>Files will be installed to (requires %1):</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/installdialog.cpp" line="115"/> <location filename="../src/installdialog.cpp" line="116"/>
<source>Please choose directory to install Ryzom in</source> <source>Please choose directory to install Ryzom in</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/installdialog.cpp" line="138"/> <location filename="../src/installdialog.cpp" line="148"/>
<source>Not enough free disk space</source> <source>Not enough free disk space</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/installdialog.cpp" line="138"/> <location filename="../src/installdialog.cpp" line="148"/>
<source>You don&apos;t have enough free space on this disk, please make more space or choose a directory on another disk.</source> <source>You don&apos;t have enough free space on this disk, please make more space or choose a directory on another disk.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/installdialog.cpp" line="157"/> <location filename="../src/installdialog.cpp" line="167"/>
<source>Unable to write in directory</source> <source>Unable to write in directory</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/installdialog.cpp" line="157"/> <location filename="../src/installdialog.cpp" line="167"/>
<source>You don&apos;t have the permission to write in this directory with your current user account, please choose another directory.</source> <source>You don&apos;t have the permission to write in this directory with your current user account, please choose another directory.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/installdialog.cpp" line="166"/> <location filename="../src/installdialog.cpp" line="176"/>
<source>Directory not empty</source> <source>Directory not empty</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/installdialog.cpp" line="166"/> <location filename="../src/installdialog.cpp" line="176"/>
<source>This directory is not empty, please choose another one.</source> <source>This directory is not empty, please choose another one.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -90,27 +90,27 @@
<context> <context>
<name>CMainWindow</name> <name>CMainWindow</name>
<message> <message>
<location filename="../src/mainwindow.cpp" line="270"/> <location filename="../src/mainwindow.cpp" line="287"/>
<source>About %1</source> <source>About %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/mainwindow.cpp" line="272"/> <location filename="../src/mainwindow.cpp" line="289"/>
<source>Program to install, download and manage Ryzom profiles.</source> <source>Program to install, download and manage Ryzom profiles.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/mainwindow.cpp" line="274"/> <location filename="../src/mainwindow.cpp" line="291"/>
<source>Author: %1</source> <source>Author: %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/mainwindow.cpp" line="275"/> <location filename="../src/mainwindow.cpp" line="292"/>
<source>Copyright: %1</source> <source>Copyright: %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/mainwindow.cpp" line="276"/> <location filename="../src/mainwindow.cpp" line="293"/>
<source>Support: %1</source> <source>Support: %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -118,42 +118,42 @@
<context> <context>
<name>CMigrateDialog</name> <name>CMigrateDialog</name>
<message> <message>
<location filename="../src/migratedialog.cpp" line="94"/> <location filename="../src/migratedialog.cpp" line="72"/>
<source>Files will be installed to (requires %1):</source> <source>Files will be installed to (requires %1):</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/migratedialog.cpp" line="131"/> <location filename="../src/migratedialog.cpp" line="109"/>
<source>Please choose directory to install Ryzom in</source> <source>Please choose directory to install Ryzom in</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/migratedialog.cpp" line="153"/> <location filename="../src/migratedialog.cpp" line="139"/>
<source>Not enough free disk space</source> <source>Not enough free disk space</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/migratedialog.cpp" line="153"/> <location filename="../src/migratedialog.cpp" line="139"/>
<source>You don&apos;t have enough free space on this disk, please make more space or choose a directory on another disk.</source> <source>You don&apos;t have enough free space on this disk, please make more space or choose a directory on another disk.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/migratedialog.cpp" line="172"/> <location filename="../src/migratedialog.cpp" line="158"/>
<source>Unable to write in directory</source> <source>Unable to write in directory</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/migratedialog.cpp" line="172"/> <location filename="../src/migratedialog.cpp" line="158"/>
<source>You don&apos;t have the permission to write in this directory with your current user account, please choose another directory.</source> <source>You don&apos;t have the permission to write in this directory with your current user account, please choose another directory.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/migratedialog.cpp" line="181"/> <location filename="../src/migratedialog.cpp" line="167"/>
<source>Directory not empty</source> <source>Directory not empty</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/migratedialog.cpp" line="181"/> <location filename="../src/migratedialog.cpp" line="167"/>
<source>This directory is not empty, please choose another one.</source> <source>This directory is not empty, please choose another one.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -161,128 +161,128 @@
<context> <context>
<name>COperationDialog</name> <name>COperationDialog</name>
<message> <message>
<location filename="../src/operationdialog.cpp" line="275"/> <location filename="../src/operationdialog.cpp" line="276"/>
<source>Updating profiles...</source> <source>Updating profiles...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="428"/> <location filename="../src/operationdialog.cpp" line="429"/>
<source>Confirmation</source> <source>Confirmation</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="428"/> <location filename="../src/operationdialog.cpp" line="429"/>
<source>Warning, this server doesn&apos;t support resume! If you stop download now, you won&apos;t be able to resume it later. <source>Warning, this server doesn&apos;t support resume! If you stop download now, you won&apos;t be able to resume it later.
Are you sure to abort download?</source> Are you sure to abort download?</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="453"/> <location filename="../src/operationdialog.cpp" line="454"/>
<source>%p% (%v/%m KiB)</source> <source>%p% (%v/%m KiB)</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="513"/> <location filename="../src/operationdialog.cpp" line="514"/>
<source>Error</source> <source>Error</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="534"/> <location filename="../src/operationdialog.cpp" line="535"/>
<source>Downloading data required by server %1...</source> <source>Downloading data required by server %1...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="545"/> <location filename="../src/operationdialog.cpp" line="546"/>
<source>Extracting data required by server %1...</source> <source>Extracting data required by server %1...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="569"/> <location filename="../src/operationdialog.cpp" line="570"/>
<source>Downloading client required by server %1...</source> <source>Downloading client required by server %1...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="580"/> <location filename="../src/operationdialog.cpp" line="581"/>
<source>Extracting client required by server %1...</source> <source>Extracting client required by server %1...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="602"/> <location filename="../src/operationdialog.cpp" line="603"/>
<source>Copying data required by server %1...</source> <source>Copying data required by server %1...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="631"/> <location filename="../src/operationdialog.cpp" line="632"/>
<source>Copying old profile to new location...</source> <source>Copying old profile to new location...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="661"/> <location filename="../src/operationdialog.cpp" line="662"/>
<source>Extracting client to new location...</source> <source>Extracting client to new location...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="726"/> <location filename="../src/operationdialog.cpp" line="727"/>
<source>Copying installer to new location...</source> <source>Copying installer to new location...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="847"/> <location filename="../src/operationdialog.cpp" line="855"/>
<source>Cleaning obsolete files...</source> <source>Cleaning obsolete files...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="862"/> <location filename="../src/operationdialog.cpp" line="870"/>
<source>Creating default profile...</source> <source>Creating default profile...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="921"/> <location filename="../src/operationdialog.cpp" line="929"/>
<source>Creating shortcuts for profile %1...</source> <source>Creating shortcuts for profile %1...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="1007"/> <location filename="../src/operationdialog.cpp" line="1015"/>
<source>Deleting client...</source> <source>Deleting client...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="1067"/> <location filename="../src/operationdialog.cpp" line="1075"/>
<source>Adding profiles...</source> <source>Adding profiles...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="1087"/> <location filename="../src/operationdialog.cpp" line="1095"/>
<source>Deleting profiles...</source> <source>Deleting profiles...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="1140"/> <location filename="../src/operationdialog.cpp" line="1148"/>
<source>Deleting installer...</source> <source>Deleting installer...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="1192"/> <location filename="../src/operationdialog.cpp" line="1200"/>
<source>Deleting downloaded files...</source> <source>Deleting downloaded files...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="812"/> <location filename="../src/operationdialog.cpp" line="820"/>
<source>Uninstall old client</source> <source>Uninstall old client</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="812"/> <location filename="../src/operationdialog.cpp" line="820"/>
<source>An old version of Ryzom has been detected on this system, would you like to uninstall it to save space disk?</source> <source>An old version of Ryzom has been detected on this system, would you like to uninstall it to save space disk?</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="1037"/> <location filename="../src/operationdialog.cpp" line="1045"/>
<source>Unable to delete files for client %1</source> <source>Unable to delete files for client %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="1116"/> <location filename="../src/operationdialog.cpp" line="1124"/>
<source>Unable to delete files for profile %1</source> <source>Unable to delete files for profile %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -306,17 +306,17 @@ Are you sure to delete this profile?</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/profilesdialog.cpp" line="277"/> <location filename="../src/profilesdialog.cpp" line="278"/>
<source>Executables (*)</source> <source>Executables (*)</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/profilesdialog.cpp" line="283"/> <location filename="../src/profilesdialog.cpp" line="284"/>
<source>Please choose Ryzom client executable to launch</source> <source>Please choose Ryzom client executable to launch</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/profilesdialog.cpp" line="275"/> <location filename="../src/profilesdialog.cpp" line="276"/>
<source>Executables (*.exe)</source> <source>Executables (*.exe)</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -574,77 +574,77 @@ Just press Continue button and follow the different steps until everything is do
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/profilesdialog.ui" line="72"/> <location filename="../ui/profilesdialog.ui" line="75"/>
<source>Profile:</source> <source>Profile:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/profilesdialog.ui" line="86"/> <location filename="../ui/profilesdialog.ui" line="89"/>
<source>Name:</source> <source>Name:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/profilesdialog.ui" line="96"/> <location filename="../ui/profilesdialog.ui" line="99"/>
<source>Server:</source> <source>Server:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/profilesdialog.ui" line="107"/> <location filename="../ui/profilesdialog.ui" line="110"/>
<source>Atys</source> <source>Atys</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/profilesdialog.ui" line="112"/> <location filename="../ui/profilesdialog.ui" line="115"/>
<source>Yubo</source> <source>Yubo</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/profilesdialog.ui" line="120"/> <location filename="../ui/profilesdialog.ui" line="123"/>
<source>Executable:</source> <source>Executable:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/profilesdialog.ui" line="136"/> <location filename="../ui/profilesdialog.ui" line="139"/>
<source>Default</source> <source>Default</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/profilesdialog.ui" line="143"/> <location filename="../ui/profilesdialog.ui" line="146"/>
<source>Browse...</source> <source>Browse...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/profilesdialog.ui" line="152"/> <location filename="../ui/profilesdialog.ui" line="155"/>
<source>Arguments:</source> <source>Arguments:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/profilesdialog.ui" line="162"/> <location filename="../ui/profilesdialog.ui" line="165"/>
<source>Comments:</source> <source>Comments:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/profilesdialog.ui" line="179"/> <location filename="../ui/profilesdialog.ui" line="182"/>
<source>Directory:</source> <source>Directory:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/profilesdialog.ui" line="195"/> <location filename="../ui/profilesdialog.ui" line="198"/>
<source>Open</source> <source>Open</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/profilesdialog.ui" line="204"/> <location filename="../ui/profilesdialog.ui" line="207"/>
<source>Create shortcuts:</source> <source>Create shortcuts:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/profilesdialog.ui" line="213"/> <location filename="../ui/profilesdialog.ui" line="216"/>
<source>Desktop</source> <source>Desktop</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/profilesdialog.ui" line="220"/> <location filename="../ui/profilesdialog.ui" line="223"/>
<source>Start Menu</source> <source>Start Menu</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -652,117 +652,112 @@ Just press Continue button and follow the different steps until everything is do
<context> <context>
<name>QApplication</name> <name>QApplication</name>
<message> <message>
<location filename="../src/main.cpp" line="151"/> <location filename="../src/main.cpp" line="163"/>
<source>Error</source> <source>Error</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/main.cpp" line="151"/> <location filename="../src/main.cpp" line="163"/>
<source>Unable to find ryzom_installer.ini</source> <source>Unable to find ryzom_installer.ini</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/main.cpp" line="119"/> <location filename="../src/main.cpp" line="123"/>
<source>Installation and launcher tool for Ryzom</source> <source>Installation and launcher tool for Ryzom</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/main.cpp" line="122"/> <location filename="../src/main.cpp" line="126"/>
<source>Uninstall</source> <source>Uninstall</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/main.cpp" line="125"/> <location filename="../src/main.cpp" line="129"/>
<source>Silent mode</source> <source>Silent mode</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/main.cpp" line="128"/> <location filename="../src/main.cpp" line="132"/>
<source>Version</source> <source>Version</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/main.cpp" line="131"/> <location filename="../src/main.cpp" line="135"/>
<source>Install itself</source> <source>Install itself</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/filesextractor.cpp" line="322"/> <location filename="../src/filesextractor.cpp" line="324"/>
<location filename="../src/filesextractor.cpp" line="580"/> <location filename="../src/filesextractor.cpp" line="629"/>
<source>Unable to open %1</source> <source>Unable to open %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/filesextractor.cpp" line="437"/> <location filename="../src/filesextractor.cpp" line="471"/>
<source>Unable to open output file</source> <source>Unable to open output file %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/filesextractor.cpp" line="446"/> <location filename="../src/filesextractor.cpp" line="494"/>
<source>Unable to write output file</source> <source>Unable to write output file %1 (%2 bytes written but expecting %3 bytes)</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/filesextractor.cpp" line="495"/> <location filename="../src/filesextractor.cpp" line="538"/>
<location filename="../src/filesextractor.cpp" line="503"/> <location filename="../src/filesextractor.cpp" line="546"/>
<source>7zip decoder doesn&apos;t support this archive</source> <source>7zip decoder doesn&apos;t support this archive</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/filesextractor.cpp" line="499"/> <location filename="../src/filesextractor.cpp" line="542"/>
<source>Unable to allocate memory</source> <source>Unable to allocate memory</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/filesextractor.cpp" line="507"/> <location filename="../src/filesextractor.cpp" line="550"/>
<source>File %1 is corrupted, unable to uncompress it</source> <source>File %1 is corrupted, unable to uncompress it</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/filesextractor.cpp" line="515"/> <location filename="../src/filesextractor.cpp" line="558"/>
<source>Error %1</source> <source>Error %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/filesextractor.cpp" line="542"/> <location filename="../src/filesextractor.cpp" line="587"/>
<source>Unable to create directory %1</source> <source>Unable to create directory %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/filesextractor.cpp" line="548"/> <location filename="../src/filesextractor.cpp" line="595"/>
<source>Unable to set permissions of %1</source> <source>Unable to set permissions of %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/filesextractor.cpp" line="663"/> <location filename="../src/filesextractor.cpp" line="718"/>
<source>disk full</source> <source>disk full</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/filesextractor.cpp" line="667"/> <location filename="../src/filesextractor.cpp" line="724"/>
<source>unable to write %1</source> <source>unable to write %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/filesextractor.cpp" line="671"/> <location filename="../src/filesextractor.cpp" line="730"/>
<source>unable to read %1</source> <source>unable to read %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/filesextractor.cpp" line="675"/> <location filename="../src/filesextractor.cpp" line="736"/>
<source>failed (%1)</source> <source>failed (%1)</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/filesextractor.cpp" line="678"/> <location filename="../src/filesextractor.cpp" line="739"/>
<source>Unable to unpack %1 to %2: %3</source> <source>Unable to unpack %1 to %2: %3</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location filename="../src/filescopier.cpp" line="189"/>
<source>Unable to copy file %1</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<location filename="../src/profile.cpp" line="58"/> <location filename="../src/profile.cpp" line="58"/>
<source>Profile ID %1 is using invalid characters (only lowercase letters, numbers and underscore are allowed)</source> <source>Profile ID %1 is using invalid characters (only lowercase letters, numbers and underscore are allowed)</source>
@ -773,6 +768,11 @@ Just press Continue button and follow the different steps until everything is do
<source>Profile name %1 is using invalid character %2 at position %3</source> <source>Profile name %1 is using invalid character %2 at position %3</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location filename="../src/filescopier.cpp" line="179"/>
<source>Unable to copy file %1 to %2</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>QObject</name> <name>QObject</name>

View file

@ -4,42 +4,46 @@
<context> <context>
<name>CDownloader</name> <name>CDownloader</name>
<message> <message>
<location filename="../src/downloader.cpp" line="156"/> <location filename="../src/downloader.cpp" line="158"/>
<source>File is larger (%1B) than expected (%2B)</source> <source>File is larger (%1B) than expected (%2B)</source>
<translation>Le fichier est plus volumineux (%1o) que prévu (%2o)</translation> <translation>Le fichier est plus volumineux (%1o) que prévu (%2o)</translation>
</message> </message>
<message> <message>
<location filename="../src/downloader.cpp" line="186"/> <location filename="../src/downloader.cpp" line="190"/>
<source>Error &apos;%1&apos; occurred when trying to check free disk space on %2.</source>
<translation>Erreur &apos;%1&apos; détectée lors de la vérification de l&apos;espace disque sur %2.</translation>
</message>
<message>
<location filename="../src/downloader.cpp" line="198"/>
<source>You only have %1 bytes left on the device, but %2 bytes are needed.</source> <source>You only have %1 bytes left on the device, but %2 bytes are needed.</source>
<translation>Il vous reste %1 octets de libre sur le disque, mais %2 octets sont nécessaires.</translation> <translation>Il vous reste %1 octets de libre sur le disque, mais %2 octets sont nécessaires.</translation>
</message> </message>
<message> <message>
<location filename="../src/downloader.cpp" line="192"/> <location filename="../src/downloader.cpp" line="204"/>
<source>Unable to write file</source> <source>Unable to write file</source>
<translation>Impossible de créer le fichier</translation> <translation>Impossible de créer le fichier</translation>
</message> </message>
<message> <message>
<location filename="../src/downloader.cpp" line="227"/> <location filename="../src/downloader.cpp" line="239"/>
<source>Timeout</source> <source>Timeout</source>
<translation>Délai expiré</translation> <translation>Délai expiré</translation>
</message> </message>
<message> <message>
<location filename="../src/downloader.cpp" line="264"/> <location filename="../src/downloader.cpp" line="287"/>
<source>Redirection URL is not defined</source> <source>Redirection URL is not defined</source>
<translation>L&apos;URL de redirection n&apos;est pas définie</translation> <translation>L&apos;URL de redirection n&apos;est pas définie</translation>
</message> </message>
<message> <message>
<location filename="../src/downloader.cpp" line="329"/>
<source>File is not available, please retry later (status code: %1)</source> <source>File is not available, please retry later (status code: %1)</source>
<translation>Le fichier est indisponible, veuillez réessayer ultérieurement (code de statut : %1) </translation> <translation type="vanished">Le fichier est indisponible, veuillez réessayer ultérieurement (code de statut : %1) </translation>
</message> </message>
<message> <message>
<location filename="../src/downloader.cpp" line="336"/> <location filename="../src/downloader.cpp" line="357"/>
<source>Incorrect status code: %1</source> <source>Incorrect status code: %1</source>
<translation>Code de statut incorrect : %1</translation> <translation>Code de statut incorrect : %1</translation>
</message> </message>
<message> <message>
<location filename="../src/downloader.cpp" line="382"/> <location filename="../src/downloader.cpp" line="411"/>
<source>HTTP error: %1</source> <source>HTTP error: %1</source>
<translation>Errreur HTTP : %1</translation> <translation>Errreur HTTP : %1</translation>
</message> </message>
@ -59,7 +63,7 @@
<translation type="vanished">Internet (%1 à télécharger)</translation> <translation type="vanished">Internet (%1 à télécharger)</translation>
</message> </message>
<message> <message>
<location filename="../src/installdialog.cpp" line="80"/> <location filename="../src/installdialog.cpp" line="81"/>
<source>Files will be installed to (requires %1):</source> <source>Files will be installed to (requires %1):</source>
<translation>Les fichiers seront installés dans (%1 nécessaires) :</translation> <translation>Les fichiers seront installés dans (%1 nécessaires) :</translation>
</message> </message>
@ -76,7 +80,7 @@
<translation type="vanished">Impossible de trouver Ryzom dans le répertoire sélectionné. Veuillez en choisir un autre ou annuler.</translation> <translation type="vanished">Impossible de trouver Ryzom dans le répertoire sélectionné. Veuillez en choisir un autre ou annuler.</translation>
</message> </message>
<message> <message>
<location filename="../src/installdialog.cpp" line="115"/> <location filename="../src/installdialog.cpp" line="116"/>
<source>Please choose directory to install Ryzom in</source> <source>Please choose directory to install Ryzom in</source>
<translation>Veuillez choisir le répertoire Ryzom sera installé</translation> <translation>Veuillez choisir le répertoire Ryzom sera installé</translation>
</message> </message>
@ -89,32 +93,32 @@
<translation type="vanished">Non défini</translation> <translation type="vanished">Non défini</translation>
</message> </message>
<message> <message>
<location filename="../src/installdialog.cpp" line="138"/> <location filename="../src/installdialog.cpp" line="148"/>
<source>Not enough free disk space</source> <source>Not enough free disk space</source>
<translation>Espace disque insuffisant</translation> <translation>Espace disque insuffisant</translation>
</message> </message>
<message> <message>
<location filename="../src/installdialog.cpp" line="138"/> <location filename="../src/installdialog.cpp" line="148"/>
<source>You don&apos;t have enough free space on this disk, please make more space or choose a directory on another disk.</source> <source>You don&apos;t have enough free space on this disk, please make more space or choose a directory on another disk.</source>
<translation>Vous ne disposez pas assez d&apos;espace libre sur ce disque, veuillez en libérer ou choisir un répertoire sur un autre disque.</translation> <translation>Vous ne disposez pas assez d&apos;espace libre sur ce disque, veuillez en libérer ou choisir un répertoire sur un autre disque.</translation>
</message> </message>
<message> <message>
<location filename="../src/installdialog.cpp" line="157"/> <location filename="../src/installdialog.cpp" line="167"/>
<source>Unable to write in directory</source> <source>Unable to write in directory</source>
<translation>Impossible d&apos;écrire dans le répertoire</translation> <translation>Impossible d&apos;écrire dans le répertoire</translation>
</message> </message>
<message> <message>
<location filename="../src/installdialog.cpp" line="157"/> <location filename="../src/installdialog.cpp" line="167"/>
<source>You don&apos;t have the permission to write in this directory with your current user account, please choose another directory.</source> <source>You don&apos;t have the permission to write in this directory with your current user account, please choose another directory.</source>
<translation>Vous n&apos;avez pas la permission d&apos;écrire dans ce répertoire avec votre compte utilisateur courant, veuillez en choisir un autre.</translation> <translation>Vous n&apos;avez pas la permission d&apos;écrire dans ce répertoire avec votre compte utilisateur courant, veuillez en choisir un autre.</translation>
</message> </message>
<message> <message>
<location filename="../src/installdialog.cpp" line="166"/> <location filename="../src/installdialog.cpp" line="176"/>
<source>Directory not empty</source> <source>Directory not empty</source>
<translation>Répertoire non vide</translation> <translation>Répertoire non vide</translation>
</message> </message>
<message> <message>
<location filename="../src/installdialog.cpp" line="166"/> <location filename="../src/installdialog.cpp" line="176"/>
<source>This directory is not empty, please choose another one.</source> <source>This directory is not empty, please choose another one.</source>
<translation>Ce répertoire n&apos;est pas vide, veuillez en choisir un autre.</translation> <translation>Ce répertoire n&apos;est pas vide, veuillez en choisir un autre.</translation>
</message> </message>
@ -126,27 +130,27 @@
<context> <context>
<name>CMainWindow</name> <name>CMainWindow</name>
<message> <message>
<location filename="../src/mainwindow.cpp" line="270"/> <location filename="../src/mainwindow.cpp" line="287"/>
<source>About %1</source> <source>About %1</source>
<translation>À propos de %1</translation> <translation>À propos de %1</translation>
</message> </message>
<message> <message>
<location filename="../src/mainwindow.cpp" line="272"/> <location filename="../src/mainwindow.cpp" line="289"/>
<source>Program to install, download and manage Ryzom profiles.</source> <source>Program to install, download and manage Ryzom profiles.</source>
<translation>Programme pour installer, télécharger et gérer les profils de Ryzom.</translation> <translation>Programme pour installer, télécharger et gérer les profils de Ryzom.</translation>
</message> </message>
<message> <message>
<location filename="../src/mainwindow.cpp" line="274"/> <location filename="../src/mainwindow.cpp" line="291"/>
<source>Author: %1</source> <source>Author: %1</source>
<translation>Auteur : %1</translation> <translation>Auteur : %1</translation>
</message> </message>
<message> <message>
<location filename="../src/mainwindow.cpp" line="275"/> <location filename="../src/mainwindow.cpp" line="292"/>
<source>Copyright: %1</source> <source>Copyright: %1</source>
<translation>Copyright : %1</translation> <translation>Copyright : %1</translation>
</message> </message>
<message> <message>
<location filename="../src/mainwindow.cpp" line="276"/> <location filename="../src/mainwindow.cpp" line="293"/>
<source>Support: %1</source> <source>Support: %1</source>
<translation>Assistance : %1</translation> <translation>Assistance : %1</translation>
</message> </message>
@ -154,42 +158,42 @@
<context> <context>
<name>CMigrateDialog</name> <name>CMigrateDialog</name>
<message> <message>
<location filename="../src/migratedialog.cpp" line="94"/> <location filename="../src/migratedialog.cpp" line="72"/>
<source>Files will be installed to (requires %1):</source> <source>Files will be installed to (requires %1):</source>
<translation>Les fichiers seront installés dans (%1 nécessaires) :</translation> <translation>Les fichiers seront installés dans (%1 nécessaires) :</translation>
</message> </message>
<message> <message>
<location filename="../src/migratedialog.cpp" line="131"/> <location filename="../src/migratedialog.cpp" line="109"/>
<source>Please choose directory to install Ryzom in</source> <source>Please choose directory to install Ryzom in</source>
<translation>Veuillez choisir le répertoire installer Ryzom</translation> <translation>Veuillez choisir le répertoire installer Ryzom</translation>
</message> </message>
<message> <message>
<location filename="../src/migratedialog.cpp" line="153"/> <location filename="../src/migratedialog.cpp" line="139"/>
<source>Not enough free disk space</source> <source>Not enough free disk space</source>
<translation>Espace disque insuffisant</translation> <translation>Espace disque insuffisant</translation>
</message> </message>
<message> <message>
<location filename="../src/migratedialog.cpp" line="153"/> <location filename="../src/migratedialog.cpp" line="139"/>
<source>You don&apos;t have enough free space on this disk, please make more space or choose a directory on another disk.</source> <source>You don&apos;t have enough free space on this disk, please make more space or choose a directory on another disk.</source>
<translation>Vous ne disposez pas assez d&apos;espace libre sur ce disque, veuillez en libérer ou choisir un répertoire sur un autre disque.</translation> <translation>Vous ne disposez pas assez d&apos;espace libre sur ce disque, veuillez en libérer ou choisir un répertoire sur un autre disque.</translation>
</message> </message>
<message> <message>
<location filename="../src/migratedialog.cpp" line="172"/> <location filename="../src/migratedialog.cpp" line="158"/>
<source>Unable to write in directory</source> <source>Unable to write in directory</source>
<translation>Impossible d&apos;écrire dans le répertoire</translation> <translation>Impossible d&apos;écrire dans le répertoire</translation>
</message> </message>
<message> <message>
<location filename="../src/migratedialog.cpp" line="172"/> <location filename="../src/migratedialog.cpp" line="158"/>
<source>You don&apos;t have the permission to write in this directory with your current user account, please choose another directory.</source> <source>You don&apos;t have the permission to write in this directory with your current user account, please choose another directory.</source>
<translation>Vous n&apos;avez pas la permission d&apos;écrire dans ce répertoire avec votre compte utilisateur courant, veuillez en choisir un autre.</translation> <translation>Vous n&apos;avez pas la permission d&apos;écrire dans ce répertoire avec votre compte utilisateur courant, veuillez en choisir un autre.</translation>
</message> </message>
<message> <message>
<location filename="../src/migratedialog.cpp" line="181"/> <location filename="../src/migratedialog.cpp" line="167"/>
<source>Directory not empty</source> <source>Directory not empty</source>
<translation>Répertoire non vide</translation> <translation>Répertoire non vide</translation>
</message> </message>
<message> <message>
<location filename="../src/migratedialog.cpp" line="181"/> <location filename="../src/migratedialog.cpp" line="167"/>
<source>This directory is not empty, please choose another one.</source> <source>This directory is not empty, please choose another one.</source>
<translation>Ce répertoire n&apos;est pas vide, veuillez en choisir un autre.</translation> <translation>Ce répertoire n&apos;est pas vide, veuillez en choisir un autre.</translation>
</message> </message>
@ -205,109 +209,109 @@
<translation type="vanished">Mettre à jour les profils</translation> <translation type="vanished">Mettre à jour les profils</translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="275"/> <location filename="../src/operationdialog.cpp" line="276"/>
<source>Updating profiles...</source> <source>Updating profiles...</source>
<translation>Mise à jour des profils...</translation> <translation>Mise à jour des profils...</translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="428"/> <location filename="../src/operationdialog.cpp" line="429"/>
<source>Confirmation</source> <source>Confirmation</source>
<translation>Confirmation</translation> <translation>Confirmation</translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="428"/> <location filename="../src/operationdialog.cpp" line="429"/>
<source>Warning, this server doesn&apos;t support resume! If you stop download now, you won&apos;t be able to resume it later. <source>Warning, this server doesn&apos;t support resume! If you stop download now, you won&apos;t be able to resume it later.
Are you sure to abort download?</source> Are you sure to abort download?</source>
<translation>Attention, ce serveur ne supporte pas la reprise de téléchargement ! Si vous arrêtez le téléchargement maintenant, vous ne pourrez pas le poursuivre ultérieurement. <translation>Attention, ce serveur ne supporte pas la reprise de téléchargement ! Si vous arrêtez le téléchargement maintenant, vous ne pourrez pas le poursuivre ultérieurement.
Êtes-vous sûr d&apos;interrompre le téléchargement ?</translation> Êtes-vous sûr d&apos;interrompre le téléchargement ?</translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="453"/> <location filename="../src/operationdialog.cpp" line="454"/>
<source>%p% (%v/%m KiB)</source> <source>%p% (%v/%m KiB)</source>
<translation>%p% (%v/%m Kio)</translation> <translation>%p% (%v/%m Kio)</translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="513"/> <location filename="../src/operationdialog.cpp" line="514"/>
<source>Error</source> <source>Error</source>
<translation>Erreur</translation> <translation>Erreur</translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="534"/> <location filename="../src/operationdialog.cpp" line="535"/>
<source>Downloading data required by server %1...</source> <source>Downloading data required by server %1...</source>
<translation>Téléchargement des données nécessaires pour le serveur %1...</translation> <translation>Téléchargement des données nécessaires pour le serveur %1...</translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="545"/> <location filename="../src/operationdialog.cpp" line="546"/>
<source>Extracting data required by server %1...</source> <source>Extracting data required by server %1...</source>
<translation>Extraction des données nécessaires pour le serveur %1...</translation> <translation>Extraction des données nécessaires pour le serveur %1...</translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="569"/> <location filename="../src/operationdialog.cpp" line="570"/>
<source>Downloading client required by server %1...</source> <source>Downloading client required by server %1...</source>
<translation>Téléchargement du client nécessaire pour le serveur %1...</translation> <translation>Téléchargement du client nécessaire pour le serveur %1...</translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="580"/> <location filename="../src/operationdialog.cpp" line="581"/>
<source>Extracting client required by server %1...</source> <source>Extracting client required by server %1...</source>
<translation>Extraction du client nécessaire pour le serveur %1...</translation> <translation>Extraction du client nécessaire pour le serveur %1...</translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="602"/> <location filename="../src/operationdialog.cpp" line="603"/>
<source>Copying data required by server %1...</source> <source>Copying data required by server %1...</source>
<translation>Copie des données nécessaires pour le serveur %1...</translation> <translation>Copie des données nécessaires pour le serveur %1...</translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="631"/> <location filename="../src/operationdialog.cpp" line="632"/>
<source>Copying old profile to new location...</source> <source>Copying old profile to new location...</source>
<translation>Copie de l&apos;ancien profil vers un nouvel emplacement...</translation> <translation>Copie de l&apos;ancien profil vers un nouvel emplacement...</translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="661"/> <location filename="../src/operationdialog.cpp" line="662"/>
<source>Extracting client to new location...</source> <source>Extracting client to new location...</source>
<translation>Extraction du client vers un nouvel emplacement...</translation> <translation>Extraction du client vers un nouvel emplacement...</translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="726"/> <location filename="../src/operationdialog.cpp" line="727"/>
<source>Copying installer to new location...</source> <source>Copying installer to new location...</source>
<translation>Copie de l&apos;installateur vers un nouvel emplacement...</translation> <translation>Copie de l&apos;installateur vers un nouvel emplacement...</translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="847"/> <location filename="../src/operationdialog.cpp" line="855"/>
<source>Cleaning obsolete files...</source> <source>Cleaning obsolete files...</source>
<translation>Nettoyage des fichiers obsolètes...</translation> <translation>Nettoyage des fichiers obsolètes...</translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="862"/> <location filename="../src/operationdialog.cpp" line="870"/>
<source>Creating default profile...</source> <source>Creating default profile...</source>
<translation>Création du profil par défaut...</translation> <translation>Création du profil par défaut...</translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="921"/> <location filename="../src/operationdialog.cpp" line="929"/>
<source>Creating shortcuts for profile %1...</source> <source>Creating shortcuts for profile %1...</source>
<translation>Création des raccourcis pour le profil %1...</translation> <translation>Création des raccourcis pour le profil %1...</translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="1007"/> <location filename="../src/operationdialog.cpp" line="1015"/>
<source>Deleting client...</source> <source>Deleting client...</source>
<translation>Suppression du client...</translation> <translation>Suppression du client...</translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="1067"/> <location filename="../src/operationdialog.cpp" line="1075"/>
<source>Adding profiles...</source> <source>Adding profiles...</source>
<translation>Ajout des profils...</translation> <translation>Ajout des profils...</translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="1087"/> <location filename="../src/operationdialog.cpp" line="1095"/>
<source>Deleting profiles...</source> <source>Deleting profiles...</source>
<translation>Suppression des profils...</translation> <translation>Suppression des profils...</translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="1140"/> <location filename="../src/operationdialog.cpp" line="1148"/>
<source>Deleting installer...</source> <source>Deleting installer...</source>
<translation>Suppression de l&apos;installateur...</translation> <translation>Suppression de l&apos;installateur...</translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="1192"/> <location filename="../src/operationdialog.cpp" line="1200"/>
<source>Deleting downloaded files...</source> <source>Deleting downloaded files...</source>
<translation>Suppression des fichiers téléchargés...</translation> <translation>Suppression des fichiers téléchargés...</translation>
</message> </message>
@ -356,12 +360,12 @@ Are you sure to abort download?</source>
<translation type="vanished">Copier l&apos;installateur vers un nouvel emplacement</translation> <translation type="vanished">Copier l&apos;installateur vers un nouvel emplacement</translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="812"/> <location filename="../src/operationdialog.cpp" line="820"/>
<source>Uninstall old client</source> <source>Uninstall old client</source>
<translation>Désinstaller l&apos;ancien client</translation> <translation>Désinstaller l&apos;ancien client</translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="812"/> <location filename="../src/operationdialog.cpp" line="820"/>
<source>An old version of Ryzom has been detected on this system, would you like to uninstall it to save space disk?</source> <source>An old version of Ryzom has been detected on this system, would you like to uninstall it to save space disk?</source>
<translation>Une ancienne version de Ryzom a é détectée sur ce système, souhaitez-vous la désinstaller afin de libérer de l&apos;espace disque ?</translation> <translation>Une ancienne version de Ryzom a é détectée sur ce système, souhaitez-vous la désinstaller afin de libérer de l&apos;espace disque ?</translation>
</message> </message>
@ -386,7 +390,7 @@ Are you sure to abort download?</source>
<translation type="vanished">Supprimer les fichiers du client</translation> <translation type="vanished">Supprimer les fichiers du client</translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="1037"/> <location filename="../src/operationdialog.cpp" line="1045"/>
<source>Unable to delete files for client %1</source> <source>Unable to delete files for client %1</source>
<translation>Impossible de supprimer les fichiers du client %1</translation> <translation>Impossible de supprimer les fichiers du client %1</translation>
</message> </message>
@ -407,7 +411,7 @@ Are you sure to abort download?</source>
<translation type="vanished">Suppression du profil %1 en cours...</translation> <translation type="vanished">Suppression du profil %1 en cours...</translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="1116"/> <location filename="../src/operationdialog.cpp" line="1124"/>
<source>Unable to delete files for profile %1</source> <source>Unable to delete files for profile %1</source>
<translation>Impossible de supprimer les fichiers du profil %1</translation> <translation>Impossible de supprimer les fichiers du profil %1</translation>
</message> </message>
@ -440,17 +444,17 @@ Are you sure to delete this profile?</source>
Êtes-vous sûr de supprimer ce profil ?</translation> Êtes-vous sûr de supprimer ce profil ?</translation>
</message> </message>
<message> <message>
<location filename="../src/profilesdialog.cpp" line="277"/> <location filename="../src/profilesdialog.cpp" line="278"/>
<source>Executables (*)</source> <source>Executables (*)</source>
<translation>Exécutables (*)</translation> <translation>Exécutables (*)</translation>
</message> </message>
<message> <message>
<location filename="../src/profilesdialog.cpp" line="283"/> <location filename="../src/profilesdialog.cpp" line="284"/>
<source>Please choose Ryzom client executable to launch</source> <source>Please choose Ryzom client executable to launch</source>
<translation>Veuillez choisir l&apos;exécutable du client de Ryzom à lancer</translation> <translation>Veuillez choisir l&apos;exécutable du client de Ryzom à lancer</translation>
</message> </message>
<message> <message>
<location filename="../src/profilesdialog.cpp" line="275"/> <location filename="../src/profilesdialog.cpp" line="276"/>
<source>Executables (*.exe)</source> <source>Executables (*.exe)</source>
<translation>Exécutables (*.exe)</translation> <translation>Exécutables (*.exe)</translation>
</message> </message>
@ -764,7 +768,7 @@ Vous n&apos;avez qu&apos;à cliquer sur Suivant et suivre les différentes étap
<translation>Supprimer</translation> <translation>Supprimer</translation>
</message> </message>
<message> <message>
<location filename="../ui/profilesdialog.ui" line="72"/> <location filename="../ui/profilesdialog.ui" line="75"/>
<source>Profile:</source> <source>Profile:</source>
<translation>Profil :</translation> <translation>Profil :</translation>
</message> </message>
@ -773,27 +777,27 @@ Vous n&apos;avez qu&apos;à cliquer sur Suivant et suivre les différentes étap
<translation type="vanished">0</translation> <translation type="vanished">0</translation>
</message> </message>
<message> <message>
<location filename="../ui/profilesdialog.ui" line="86"/> <location filename="../ui/profilesdialog.ui" line="89"/>
<source>Name:</source> <source>Name:</source>
<translation>Nom :</translation> <translation>Nom :</translation>
</message> </message>
<message> <message>
<location filename="../ui/profilesdialog.ui" line="96"/> <location filename="../ui/profilesdialog.ui" line="99"/>
<source>Server:</source> <source>Server:</source>
<translation>Serveur :</translation> <translation>Serveur :</translation>
</message> </message>
<message> <message>
<location filename="../ui/profilesdialog.ui" line="107"/> <location filename="../ui/profilesdialog.ui" line="110"/>
<source>Atys</source> <source>Atys</source>
<translation>Atys</translation> <translation>Atys</translation>
</message> </message>
<message> <message>
<location filename="../ui/profilesdialog.ui" line="112"/> <location filename="../ui/profilesdialog.ui" line="115"/>
<source>Yubo</source> <source>Yubo</source>
<translation>Yubo</translation> <translation>Yubo</translation>
</message> </message>
<message> <message>
<location filename="../ui/profilesdialog.ui" line="120"/> <location filename="../ui/profilesdialog.ui" line="123"/>
<source>Executable:</source> <source>Executable:</source>
<translation>Exécutable :</translation> <translation>Exécutable :</translation>
</message> </message>
@ -802,27 +806,27 @@ Vous n&apos;avez qu&apos;à cliquer sur Suivant et suivre les différentes étap
<translation type="vanished">ryzom_client_r.exe</translation> <translation type="vanished">ryzom_client_r.exe</translation>
</message> </message>
<message> <message>
<location filename="../ui/profilesdialog.ui" line="136"/> <location filename="../ui/profilesdialog.ui" line="139"/>
<source>Default</source> <source>Default</source>
<translation>Défaut</translation> <translation>Défaut</translation>
</message> </message>
<message> <message>
<location filename="../ui/profilesdialog.ui" line="143"/> <location filename="../ui/profilesdialog.ui" line="146"/>
<source>Browse...</source> <source>Browse...</source>
<translation>Parcourir...</translation> <translation>Parcourir...</translation>
</message> </message>
<message> <message>
<location filename="../ui/profilesdialog.ui" line="152"/> <location filename="../ui/profilesdialog.ui" line="155"/>
<source>Arguments:</source> <source>Arguments:</source>
<translation>Arguments :</translation> <translation>Arguments :</translation>
</message> </message>
<message> <message>
<location filename="../ui/profilesdialog.ui" line="162"/> <location filename="../ui/profilesdialog.ui" line="165"/>
<source>Comments:</source> <source>Comments:</source>
<translation>Commentaires :</translation> <translation>Commentaires :</translation>
</message> </message>
<message> <message>
<location filename="../ui/profilesdialog.ui" line="179"/> <location filename="../ui/profilesdialog.ui" line="182"/>
<source>Directory:</source> <source>Directory:</source>
<translation>Répertoire :</translation> <translation>Répertoire :</translation>
</message> </message>
@ -831,22 +835,22 @@ Vous n&apos;avez qu&apos;à cliquer sur Suivant et suivre les différentes étap
<translation type="vanished">~/.ryzom/0</translation> <translation type="vanished">~/.ryzom/0</translation>
</message> </message>
<message> <message>
<location filename="../ui/profilesdialog.ui" line="195"/> <location filename="../ui/profilesdialog.ui" line="198"/>
<source>Open</source> <source>Open</source>
<translation>Ouvrir</translation> <translation>Ouvrir</translation>
</message> </message>
<message> <message>
<location filename="../ui/profilesdialog.ui" line="204"/> <location filename="../ui/profilesdialog.ui" line="207"/>
<source>Create shortcuts:</source> <source>Create shortcuts:</source>
<translation>Créer les raccourcis :</translation> <translation>Créer les raccourcis :</translation>
</message> </message>
<message> <message>
<location filename="../ui/profilesdialog.ui" line="213"/> <location filename="../ui/profilesdialog.ui" line="216"/>
<source>Desktop</source> <source>Desktop</source>
<translation>Bureau</translation> <translation>Bureau</translation>
</message> </message>
<message> <message>
<location filename="../ui/profilesdialog.ui" line="220"/> <location filename="../ui/profilesdialog.ui" line="223"/>
<source>Start Menu</source> <source>Start Menu</source>
<translation>Menu Démarrer</translation> <translation>Menu Démarrer</translation>
</message> </message>
@ -854,116 +858,123 @@ Vous n&apos;avez qu&apos;à cliquer sur Suivant et suivre les différentes étap
<context> <context>
<name>QApplication</name> <name>QApplication</name>
<message> <message>
<location filename="../src/main.cpp" line="151"/> <location filename="../src/main.cpp" line="163"/>
<source>Error</source> <source>Error</source>
<translation>Erreur</translation> <translation>Erreur</translation>
</message> </message>
<message> <message>
<location filename="../src/main.cpp" line="151"/> <location filename="../src/main.cpp" line="163"/>
<source>Unable to find ryzom_installer.ini</source> <source>Unable to find ryzom_installer.ini</source>
<translation>Impossible de trouver ryzom_installer.ini</translation> <translation>Impossible de trouver ryzom_installer.ini</translation>
</message> </message>
<message> <message>
<location filename="../src/main.cpp" line="119"/> <location filename="../src/main.cpp" line="123"/>
<source>Installation and launcher tool for Ryzom</source> <source>Installation and launcher tool for Ryzom</source>
<translation>Outil d&apos;installation et lanceur pour Ryzom</translation> <translation>Outil d&apos;installation et lanceur pour Ryzom</translation>
</message> </message>
<message> <message>
<location filename="../src/main.cpp" line="122"/> <location filename="../src/main.cpp" line="126"/>
<source>Uninstall</source> <source>Uninstall</source>
<translation>Désinstaller</translation> <translation>Désinstaller</translation>
</message> </message>
<message> <message>
<location filename="../src/main.cpp" line="125"/> <location filename="../src/main.cpp" line="129"/>
<source>Silent mode</source> <source>Silent mode</source>
<translation>Mode silencieux</translation> <translation>Mode silencieux</translation>
</message> </message>
<message> <message>
<location filename="../src/main.cpp" line="128"/> <location filename="../src/main.cpp" line="132"/>
<source>Version</source> <source>Version</source>
<translation>Version</translation> <translation>Version</translation>
</message> </message>
<message> <message>
<location filename="../src/main.cpp" line="131"/> <location filename="../src/main.cpp" line="135"/>
<source>Install itself</source> <source>Install itself</source>
<translation>S&apos;auto-installer</translation> <translation>S&apos;auto-installer</translation>
</message> </message>
<message> <message>
<location filename="../src/filesextractor.cpp" line="322"/> <location filename="../src/filesextractor.cpp" line="324"/>
<location filename="../src/filesextractor.cpp" line="580"/> <location filename="../src/filesextractor.cpp" line="629"/>
<source>Unable to open %1</source> <source>Unable to open %1</source>
<translation>Impossible d&apos;ouvrir %1</translation> <translation>Impossible d&apos;ouvrir %1</translation>
</message> </message>
<message> <message>
<location filename="../src/filesextractor.cpp" line="437"/>
<source>Unable to open output file</source> <source>Unable to open output file</source>
<translation>Impossible d&apos;ouvrir le fichier de sortie</translation> <translation type="vanished">Impossible d&apos;ouvrir le fichier de sortie</translation>
</message> </message>
<message> <message>
<location filename="../src/filesextractor.cpp" line="446"/>
<source>Unable to write output file</source> <source>Unable to write output file</source>
<translation>Impossible d&apos;écrire le fichier de sortie</translation> <translation type="vanished">Impossible d&apos;écrire le fichier de sortie</translation>
</message> </message>
<message> <message>
<location filename="../src/filesextractor.cpp" line="495"/> <location filename="../src/filesextractor.cpp" line="471"/>
<location filename="../src/filesextractor.cpp" line="503"/> <source>Unable to open output file %1</source>
<translation>Impossible d&apos;ouvrir le fichier de sortie %1</translation>
</message>
<message>
<location filename="../src/filesextractor.cpp" line="494"/>
<source>Unable to write output file %1 (%2 bytes written but expecting %3 bytes)</source>
<translation>Impossible d&apos;écrire dans le fichier de sortie %1 (%2 octets écrits mais %3 octets attendus)</translation>
</message>
<message>
<location filename="../src/filesextractor.cpp" line="538"/>
<location filename="../src/filesextractor.cpp" line="546"/>
<source>7zip decoder doesn&apos;t support this archive</source> <source>7zip decoder doesn&apos;t support this archive</source>
<translation>Le décodeur 7zip n&apos;est pas compatible avec cette archive</translation> <translation>Le décodeur 7zip n&apos;est pas compatible avec cette archive</translation>
</message> </message>
<message> <message>
<location filename="../src/filesextractor.cpp" line="499"/> <location filename="../src/filesextractor.cpp" line="542"/>
<source>Unable to allocate memory</source> <source>Unable to allocate memory</source>
<translation>Impossible d&apos;allouer la mémoire</translation> <translation>Impossible d&apos;allouer la mémoire</translation>
</message> </message>
<message> <message>
<location filename="../src/filesextractor.cpp" line="507"/> <location filename="../src/filesextractor.cpp" line="550"/>
<source>File %1 is corrupted, unable to uncompress it</source> <source>File %1 is corrupted, unable to uncompress it</source>
<translation>Le fichier %1 est corrompu, impossible de le décompresser</translation> <translation>Le fichier %1 est corrompu, impossible de le décompresser</translation>
</message> </message>
<message> <message>
<location filename="../src/filesextractor.cpp" line="515"/> <location filename="../src/filesextractor.cpp" line="558"/>
<source>Error %1</source> <source>Error %1</source>
<translation>Erreur %1</translation> <translation>Erreur %1</translation>
</message> </message>
<message> <message>
<location filename="../src/filesextractor.cpp" line="542"/> <location filename="../src/filesextractor.cpp" line="587"/>
<source>Unable to create directory %1</source> <source>Unable to create directory %1</source>
<translation>Impossible de créer le répertoire %1</translation> <translation>Impossible de créer le répertoire %1</translation>
</message> </message>
<message> <message>
<location filename="../src/filesextractor.cpp" line="548"/> <location filename="../src/filesextractor.cpp" line="595"/>
<source>Unable to set permissions of %1</source> <source>Unable to set permissions of %1</source>
<translation>Impossible de définir les permissions de %1</translation> <translation>Impossible de définir les permissions de %1</translation>
</message> </message>
<message> <message>
<location filename="../src/filesextractor.cpp" line="663"/> <location filename="../src/filesextractor.cpp" line="718"/>
<source>disk full</source> <source>disk full</source>
<translation>disque plein</translation> <translation>disque plein</translation>
</message> </message>
<message> <message>
<location filename="../src/filesextractor.cpp" line="667"/> <location filename="../src/filesextractor.cpp" line="724"/>
<source>unable to write %1</source> <source>unable to write %1</source>
<translation>impossible d&apos;écrire %1</translation> <translation>impossible d&apos;écrire %1</translation>
</message> </message>
<message> <message>
<location filename="../src/filesextractor.cpp" line="671"/> <location filename="../src/filesextractor.cpp" line="730"/>
<source>unable to read %1</source> <source>unable to read %1</source>
<translation>impossible de lire %1</translation> <translation>impossible de lire %1</translation>
</message> </message>
<message> <message>
<location filename="../src/filesextractor.cpp" line="675"/> <location filename="../src/filesextractor.cpp" line="736"/>
<source>failed (%1)</source> <source>failed (%1)</source>
<translation>échec (%1)</translation> <translation>échec (%1)</translation>
</message> </message>
<message> <message>
<location filename="../src/filesextractor.cpp" line="678"/> <location filename="../src/filesextractor.cpp" line="739"/>
<source>Unable to unpack %1 to %2: %3</source> <source>Unable to unpack %1 to %2: %3</source>
<translation>Impossible d&apos;extraire %1 vers %2 : %3 </translation> <translation>Impossible d&apos;extraire %1 vers %2 : %3 </translation>
</message> </message>
<message> <message>
<location filename="../src/filescopier.cpp" line="189"/>
<source>Unable to copy file %1</source> <source>Unable to copy file %1</source>
<translation>Impossible de copier le fichier %1</translation> <translation type="vanished">Impossible de copier le fichier %1</translation>
</message> </message>
<message> <message>
<location filename="../src/profile.cpp" line="58"/> <location filename="../src/profile.cpp" line="58"/>
@ -975,6 +986,11 @@ Vous n&apos;avez qu&apos;à cliquer sur Suivant et suivre les différentes étap
<source>Profile name %1 is using invalid character %2 at position %3</source> <source>Profile name %1 is using invalid character %2 at position %3</source>
<translation>Le nom du profil %1 utilise un caractère invalide %2 à la position %3</translation> <translation>Le nom du profil %1 utilise un caractère invalide %2 à la position %3</translation>
</message> </message>
<message>
<location filename="../src/filescopier.cpp" line="179"/>
<source>Unable to copy file %1 to %2</source>
<translation>Impossible de copier le fichier %1 vers %2</translation>
</message>
</context> </context>
<context> <context>
<name>QObject</name> <name>QObject</name>

View file

@ -4,42 +4,46 @@
<context> <context>
<name>CDownloader</name> <name>CDownloader</name>
<message> <message>
<location filename="../src/downloader.cpp" line="156"/> <location filename="../src/downloader.cpp" line="158"/>
<source>File is larger (%1B) than expected (%2B)</source> <source>File is larger (%1B) than expected (%2B)</source>
<translation>Размер файла больше (%1Б) чем ожидалось (%2Б)</translation> <translation>Размер файла больше (%1Б) чем ожидалось (%2Б)</translation>
</message> </message>
<message> <message>
<location filename="../src/downloader.cpp" line="186"/> <location filename="../src/downloader.cpp" line="190"/>
<source>Error &apos;%1&apos; occurred when trying to check free disk space on %2.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/downloader.cpp" line="198"/>
<source>You only have %1 bytes left on the device, but %2 bytes are needed.</source> <source>You only have %1 bytes left on the device, but %2 bytes are needed.</source>
<translation>На диске осталось всего %1 байт, в то время как требуется %2 байт.</translation> <translation>На диске осталось всего %1 байт, в то время как требуется %2 байт.</translation>
</message> </message>
<message> <message>
<location filename="../src/downloader.cpp" line="192"/> <location filename="../src/downloader.cpp" line="204"/>
<source>Unable to write file</source> <source>Unable to write file</source>
<translation>Невозможно записать файл</translation> <translation>Невозможно записать файл</translation>
</message> </message>
<message> <message>
<location filename="../src/downloader.cpp" line="227"/> <location filename="../src/downloader.cpp" line="239"/>
<source>Timeout</source> <source>Timeout</source>
<translation>Тайм-аут</translation> <translation>Тайм-аут</translation>
</message> </message>
<message> <message>
<location filename="../src/downloader.cpp" line="264"/> <location filename="../src/downloader.cpp" line="287"/>
<source>Redirection URL is not defined</source> <source>Redirection URL is not defined</source>
<translation>URL перенаправления не определен</translation> <translation>URL перенаправления не определен</translation>
</message> </message>
<message> <message>
<location filename="../src/downloader.cpp" line="329"/>
<source>File is not available, please retry later (status code: %1)</source> <source>File is not available, please retry later (status code: %1)</source>
<translation>Файл недоступен, пожалуйста, попробуйте позднее (код состояния: %1)</translation> <translation type="vanished">Файл недоступен, пожалуйста, попробуйте позднее (код состояния: %1)</translation>
</message> </message>
<message> <message>
<location filename="../src/downloader.cpp" line="336"/> <location filename="../src/downloader.cpp" line="357"/>
<source>Incorrect status code: %1</source> <source>Incorrect status code: %1</source>
<translation>Некорректный код состояния: %1</translation> <translation>Некорректный код состояния: %1</translation>
</message> </message>
<message> <message>
<location filename="../src/downloader.cpp" line="382"/> <location filename="../src/downloader.cpp" line="411"/>
<source>HTTP error: %1</source> <source>HTTP error: %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -59,7 +63,7 @@
<translation type="vanished">Интернет (%1 для загрузки)</translation> <translation type="vanished">Интернет (%1 для загрузки)</translation>
</message> </message>
<message> <message>
<location filename="../src/installdialog.cpp" line="80"/> <location filename="../src/installdialog.cpp" line="81"/>
<source>Files will be installed to (requires %1):</source> <source>Files will be installed to (requires %1):</source>
<translation>Файлы будут установлены в (требуется %1):</translation> <translation>Файлы будут установлены в (требуется %1):</translation>
</message> </message>
@ -76,7 +80,7 @@
<translation type="vanished">Невозможно найти Ryzom в выбранной директории. Пожалуйста, выберите другую директорию или отмену.</translation> <translation type="vanished">Невозможно найти Ryzom в выбранной директории. Пожалуйста, выберите другую директорию или отмену.</translation>
</message> </message>
<message> <message>
<location filename="../src/installdialog.cpp" line="115"/> <location filename="../src/installdialog.cpp" line="116"/>
<source>Please choose directory to install Ryzom in</source> <source>Please choose directory to install Ryzom in</source>
<translation>Пожалуйста, выберите директорию для установки Ryzom</translation> <translation>Пожалуйста, выберите директорию для установки Ryzom</translation>
</message> </message>
@ -89,32 +93,32 @@
<translation type="vanished">Не определено</translation> <translation type="vanished">Не определено</translation>
</message> </message>
<message> <message>
<location filename="../src/installdialog.cpp" line="138"/> <location filename="../src/installdialog.cpp" line="148"/>
<source>Not enough free disk space</source> <source>Not enough free disk space</source>
<translation>Недостаточно свободного места</translation> <translation>Недостаточно свободного места</translation>
</message> </message>
<message> <message>
<location filename="../src/installdialog.cpp" line="138"/> <location filename="../src/installdialog.cpp" line="148"/>
<source>You don&apos;t have enough free space on this disk, please make more space or choose a directory on another disk.</source> <source>You don&apos;t have enough free space on this disk, please make more space or choose a directory on another disk.</source>
<translation>Недостаточно свободного места на выбранном диске, пожалуйста освободите место на диске или выберите директорию на другом диске.</translation> <translation>Недостаточно свободного места на выбранном диске, пожалуйста освободите место на диске или выберите директорию на другом диске.</translation>
</message> </message>
<message> <message>
<location filename="../src/installdialog.cpp" line="157"/> <location filename="../src/installdialog.cpp" line="167"/>
<source>Unable to write in directory</source> <source>Unable to write in directory</source>
<translation>Невозможно осуществить запись в директорию</translation> <translation>Невозможно осуществить запись в директорию</translation>
</message> </message>
<message> <message>
<location filename="../src/installdialog.cpp" line="157"/> <location filename="../src/installdialog.cpp" line="167"/>
<source>You don&apos;t have the permission to write in this directory with your current user account, please choose another directory.</source> <source>You don&apos;t have the permission to write in this directory with your current user account, please choose another directory.</source>
<translation>У вашего текущего пользоввателя нет права записи в эту директорию, пожалуйста, выберите другую директорию.</translation> <translation>У вашего текущего пользоввателя нет права записи в эту директорию, пожалуйста, выберите другую директорию.</translation>
</message> </message>
<message> <message>
<location filename="../src/installdialog.cpp" line="166"/> <location filename="../src/installdialog.cpp" line="176"/>
<source>Directory not empty</source> <source>Directory not empty</source>
<translation>Директория не является пустой</translation> <translation>Директория не является пустой</translation>
</message> </message>
<message> <message>
<location filename="../src/installdialog.cpp" line="166"/> <location filename="../src/installdialog.cpp" line="176"/>
<source>This directory is not empty, please choose another one.</source> <source>This directory is not empty, please choose another one.</source>
<translation>Эта директория не является пустой, пожалуйста, выберите другую.</translation> <translation>Эта директория не является пустой, пожалуйста, выберите другую.</translation>
</message> </message>
@ -122,27 +126,27 @@
<context> <context>
<name>CMainWindow</name> <name>CMainWindow</name>
<message> <message>
<location filename="../src/mainwindow.cpp" line="270"/> <location filename="../src/mainwindow.cpp" line="287"/>
<source>About %1</source> <source>About %1</source>
<translation>О %1</translation> <translation>О %1</translation>
</message> </message>
<message> <message>
<location filename="../src/mainwindow.cpp" line="272"/> <location filename="../src/mainwindow.cpp" line="289"/>
<source>Program to install, download and manage Ryzom profiles.</source> <source>Program to install, download and manage Ryzom profiles.</source>
<translation>Программа для установки, загрузки и управления профилями Ryzom.</translation> <translation>Программа для установки, загрузки и управления профилями Ryzom.</translation>
</message> </message>
<message> <message>
<location filename="../src/mainwindow.cpp" line="274"/> <location filename="../src/mainwindow.cpp" line="291"/>
<source>Author: %1</source> <source>Author: %1</source>
<translation>Автор: %1</translation> <translation>Автор: %1</translation>
</message> </message>
<message> <message>
<location filename="../src/mainwindow.cpp" line="275"/> <location filename="../src/mainwindow.cpp" line="292"/>
<source>Copyright: %1</source> <source>Copyright: %1</source>
<translation>Копирайт: %1</translation> <translation>Копирайт: %1</translation>
</message> </message>
<message> <message>
<location filename="../src/mainwindow.cpp" line="276"/> <location filename="../src/mainwindow.cpp" line="293"/>
<source>Support: %1</source> <source>Support: %1</source>
<translation>Поддержка: %1</translation> <translation>Поддержка: %1</translation>
</message> </message>
@ -150,42 +154,42 @@
<context> <context>
<name>CMigrateDialog</name> <name>CMigrateDialog</name>
<message> <message>
<location filename="../src/migratedialog.cpp" line="94"/> <location filename="../src/migratedialog.cpp" line="72"/>
<source>Files will be installed to (requires %1):</source> <source>Files will be installed to (requires %1):</source>
<translation>Файлы будут установлены в (требуется %1):</translation> <translation>Файлы будут установлены в (требуется %1):</translation>
</message> </message>
<message> <message>
<location filename="../src/migratedialog.cpp" line="131"/> <location filename="../src/migratedialog.cpp" line="109"/>
<source>Please choose directory to install Ryzom in</source> <source>Please choose directory to install Ryzom in</source>
<translation>Пожалуйста, выберете директорию для установки Ryzom</translation> <translation>Пожалуйста, выберете директорию для установки Ryzom</translation>
</message> </message>
<message> <message>
<location filename="../src/migratedialog.cpp" line="153"/> <location filename="../src/migratedialog.cpp" line="139"/>
<source>Not enough free disk space</source> <source>Not enough free disk space</source>
<translation>Недостаточно свободного места</translation> <translation>Недостаточно свободного места</translation>
</message> </message>
<message> <message>
<location filename="../src/migratedialog.cpp" line="153"/> <location filename="../src/migratedialog.cpp" line="139"/>
<source>You don&apos;t have enough free space on this disk, please make more space or choose a directory on another disk.</source> <source>You don&apos;t have enough free space on this disk, please make more space or choose a directory on another disk.</source>
<translation>Недостаточно свободного места на выбранном диске, пожалуйста освободите место на диске или выберите директорию на другом диске.</translation> <translation>Недостаточно свободного места на выбранном диске, пожалуйста освободите место на диске или выберите директорию на другом диске.</translation>
</message> </message>
<message> <message>
<location filename="../src/migratedialog.cpp" line="172"/> <location filename="../src/migratedialog.cpp" line="158"/>
<source>Unable to write in directory</source> <source>Unable to write in directory</source>
<translation>Невозможно осуществить запись в директорию</translation> <translation>Невозможно осуществить запись в директорию</translation>
</message> </message>
<message> <message>
<location filename="../src/migratedialog.cpp" line="172"/> <location filename="../src/migratedialog.cpp" line="158"/>
<source>You don&apos;t have the permission to write in this directory with your current user account, please choose another directory.</source> <source>You don&apos;t have the permission to write in this directory with your current user account, please choose another directory.</source>
<translation>У вашего текущего пользоввателя нет права записи в эту директорию, пожалуйста, выберите другую директорию.</translation> <translation>У вашего текущего пользоввателя нет права записи в эту директорию, пожалуйста, выберите другую директорию.</translation>
</message> </message>
<message> <message>
<location filename="../src/migratedialog.cpp" line="181"/> <location filename="../src/migratedialog.cpp" line="167"/>
<source>Directory not empty</source> <source>Directory not empty</source>
<translation>Директория не является пустой</translation> <translation>Директория не является пустой</translation>
</message> </message>
<message> <message>
<location filename="../src/migratedialog.cpp" line="181"/> <location filename="../src/migratedialog.cpp" line="167"/>
<source>This directory is not empty, please choose another one.</source> <source>This directory is not empty, please choose another one.</source>
<translation>Эта директория не является пустой, пожалуйста, выберите другую.</translation> <translation>Эта директория не является пустой, пожалуйста, выберите другую.</translation>
</message> </message>
@ -193,108 +197,108 @@
<context> <context>
<name>COperationDialog</name> <name>COperationDialog</name>
<message> <message>
<location filename="../src/operationdialog.cpp" line="275"/> <location filename="../src/operationdialog.cpp" line="276"/>
<source>Updating profiles...</source> <source>Updating profiles...</source>
<translation>Обновление профилей...</translation> <translation>Обновление профилей...</translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="428"/> <location filename="../src/operationdialog.cpp" line="429"/>
<source>Confirmation</source> <source>Confirmation</source>
<translation>Подтверждение</translation> <translation>Подтверждение</translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="428"/> <location filename="../src/operationdialog.cpp" line="429"/>
<source>Warning, this server doesn&apos;t support resume! If you stop download now, you won&apos;t be able to resume it later. <source>Warning, this server doesn&apos;t support resume! If you stop download now, you won&apos;t be able to resume it later.
Are you sure to abort download?</source> Are you sure to abort download?</source>
<translation>Внимание, данный сервер не поддерживает возобновление загрузки! Если вы сейчас прервете загрузку, вы не сможете возобновить ее позднее. Вы уверены, что хотите прервать загрузку?</translation> <translation>Внимание, данный сервер не поддерживает возобновление загрузки! Если вы сейчас прервете загрузку, вы не сможете возобновить ее позднее. Вы уверены, что хотите прервать загрузку?</translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="453"/> <location filename="../src/operationdialog.cpp" line="454"/>
<source>%p% (%v/%m KiB)</source> <source>%p% (%v/%m KiB)</source>
<translation>%p% (%v/%m Кб)</translation> <translation>%p% (%v/%m Кб)</translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="513"/> <location filename="../src/operationdialog.cpp" line="514"/>
<source>Error</source> <source>Error</source>
<translation>Ошибка</translation> <translation>Ошибка</translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="534"/> <location filename="../src/operationdialog.cpp" line="535"/>
<source>Downloading data required by server %1...</source> <source>Downloading data required by server %1...</source>
<translation>Загрузка данных, необходимых серверу %1...</translation> <translation>Загрузка данных, необходимых серверу %1...</translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="545"/> <location filename="../src/operationdialog.cpp" line="546"/>
<source>Extracting data required by server %1...</source> <source>Extracting data required by server %1...</source>
<translation>Извлечение данных, необходимых серверу %1...</translation> <translation>Извлечение данных, необходимых серверу %1...</translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="569"/> <location filename="../src/operationdialog.cpp" line="570"/>
<source>Downloading client required by server %1...</source> <source>Downloading client required by server %1...</source>
<translation>Загрузка клиента, необходимого серверу %1...</translation> <translation>Загрузка клиента, необходимого серверу %1...</translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="580"/> <location filename="../src/operationdialog.cpp" line="581"/>
<source>Extracting client required by server %1...</source> <source>Extracting client required by server %1...</source>
<translation>Извлечение файлов клиента, необходимых серверу %1...</translation> <translation>Извлечение файлов клиента, необходимых серверу %1...</translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="602"/> <location filename="../src/operationdialog.cpp" line="603"/>
<source>Copying data required by server %1...</source> <source>Copying data required by server %1...</source>
<translation>Копирование данных, необходимых серверу %1...</translation> <translation>Копирование данных, необходимых серверу %1...</translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="631"/> <location filename="../src/operationdialog.cpp" line="632"/>
<source>Copying old profile to new location...</source> <source>Copying old profile to new location...</source>
<translation>Копирование предыдущего профиля в новое местоположение...</translation> <translation>Копирование предыдущего профиля в новое местоположение...</translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="661"/> <location filename="../src/operationdialog.cpp" line="662"/>
<source>Extracting client to new location...</source> <source>Extracting client to new location...</source>
<translation>Извлечение файлов клиента в новое местоположение...</translation> <translation>Извлечение файлов клиента в новое местоположение...</translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="726"/> <location filename="../src/operationdialog.cpp" line="727"/>
<source>Copying installer to new location...</source> <source>Copying installer to new location...</source>
<translation>Копирование инсталлятора в новое местоположение...</translation> <translation>Копирование инсталлятора в новое местоположение...</translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="847"/> <location filename="../src/operationdialog.cpp" line="855"/>
<source>Cleaning obsolete files...</source> <source>Cleaning obsolete files...</source>
<translation>Удаление устаревших файлов...</translation> <translation>Удаление устаревших файлов...</translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="862"/> <location filename="../src/operationdialog.cpp" line="870"/>
<source>Creating default profile...</source> <source>Creating default profile...</source>
<translation>Создание профиля по умолчанию...</translation> <translation>Создание профиля по умолчанию...</translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="921"/> <location filename="../src/operationdialog.cpp" line="929"/>
<source>Creating shortcuts for profile %1...</source> <source>Creating shortcuts for profile %1...</source>
<translation>Создание ярлыков для профиля %1...</translation> <translation>Создание ярлыков для профиля %1...</translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="1007"/> <location filename="../src/operationdialog.cpp" line="1015"/>
<source>Deleting client...</source> <source>Deleting client...</source>
<translation>Удаление клиента...</translation> <translation>Удаление клиента...</translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="1067"/> <location filename="../src/operationdialog.cpp" line="1075"/>
<source>Adding profiles...</source> <source>Adding profiles...</source>
<translation>Добавление профилей...</translation> <translation>Добавление профилей...</translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="1087"/> <location filename="../src/operationdialog.cpp" line="1095"/>
<source>Deleting profiles...</source> <source>Deleting profiles...</source>
<translation>Удаление профилей...</translation> <translation>Удаление профилей...</translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="1140"/> <location filename="../src/operationdialog.cpp" line="1148"/>
<source>Deleting installer...</source> <source>Deleting installer...</source>
<translation>Удаление инсталлятора...</translation> <translation>Удаление инсталлятора...</translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="1192"/> <location filename="../src/operationdialog.cpp" line="1200"/>
<source>Deleting downloaded files...</source> <source>Deleting downloaded files...</source>
<translation>Удаление загруженных файлов...</translation> <translation>Удаление загруженных файлов...</translation>
</message> </message>
@ -331,12 +335,12 @@ Are you sure to abort download?</source>
<translation type="vanished">Копирование %1...</translation> <translation type="vanished">Копирование %1...</translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="812"/> <location filename="../src/operationdialog.cpp" line="820"/>
<source>Uninstall old client</source> <source>Uninstall old client</source>
<translation>Удалить предыдущую версию клиента</translation> <translation>Удалить предыдущую версию клиента</translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="812"/> <location filename="../src/operationdialog.cpp" line="820"/>
<source>An old version of Ryzom has been detected on this system, would you like to uninstall it to save space disk?</source> <source>An old version of Ryzom has been detected on this system, would you like to uninstall it to save space disk?</source>
<translation>В системе обнаружена предыдущая версия Ryzom, вы хотите удалить ее чтобы освободить место на диске?</translation> <translation>В системе обнаружена предыдущая версия Ryzom, вы хотите удалить ее чтобы освободить место на диске?</translation>
</message> </message>
@ -357,7 +361,7 @@ Are you sure to abort download?</source>
<translation type="vanished">Удалить файлы клиента</translation> <translation type="vanished">Удалить файлы клиента</translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="1037"/> <location filename="../src/operationdialog.cpp" line="1045"/>
<source>Unable to delete files for client %1</source> <source>Unable to delete files for client %1</source>
<translation>Невозможно удалить файлы клиента %1</translation> <translation>Невозможно удалить файлы клиента %1</translation>
</message> </message>
@ -378,7 +382,7 @@ Are you sure to abort download?</source>
<translation type="vanished">Удаление профиля %1...</translation> <translation type="vanished">Удаление профиля %1...</translation>
</message> </message>
<message> <message>
<location filename="../src/operationdialog.cpp" line="1116"/> <location filename="../src/operationdialog.cpp" line="1124"/>
<source>Unable to delete files for profile %1</source> <source>Unable to delete files for profile %1</source>
<translation>Невозможно удалить файлы профиля %1</translation> <translation>Невозможно удалить файлы профиля %1</translation>
</message> </message>
@ -410,17 +414,17 @@ Are you sure to delete this profile?</source>
<translation>Вы собираетесь удалить профиль, файлы профиля не будут удалены автоматически и их необходимо удалить вручную. Вы уверены, что хотите удалить этот профиль?</translation> <translation>Вы собираетесь удалить профиль, файлы профиля не будут удалены автоматически и их необходимо удалить вручную. Вы уверены, что хотите удалить этот профиль?</translation>
</message> </message>
<message> <message>
<location filename="../src/profilesdialog.cpp" line="277"/> <location filename="../src/profilesdialog.cpp" line="278"/>
<source>Executables (*)</source> <source>Executables (*)</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/profilesdialog.cpp" line="283"/> <location filename="../src/profilesdialog.cpp" line="284"/>
<source>Please choose Ryzom client executable to launch</source> <source>Please choose Ryzom client executable to launch</source>
<translation>Пожалуйста, выберете исполняемый файл для запуска клиента Ryzom</translation> <translation>Пожалуйста, выберете исполняемый файл для запуска клиента Ryzom</translation>
</message> </message>
<message> <message>
<location filename="../src/profilesdialog.cpp" line="275"/> <location filename="../src/profilesdialog.cpp" line="276"/>
<source>Executables (*.exe)</source> <source>Executables (*.exe)</source>
<translation>Исполняемые файлы (*.exe)</translation> <translation>Исполняемые файлы (*.exe)</translation>
</message> </message>
@ -730,7 +734,7 @@ Just press Continue button and follow the different steps until everything is do
<translation>Удалить</translation> <translation>Удалить</translation>
</message> </message>
<message> <message>
<location filename="../ui/profilesdialog.ui" line="72"/> <location filename="../ui/profilesdialog.ui" line="75"/>
<source>Profile:</source> <source>Profile:</source>
<translation>Профиль:</translation> <translation>Профиль:</translation>
</message> </message>
@ -739,27 +743,27 @@ Just press Continue button and follow the different steps until everything is do
<translation type="vanished">0</translation> <translation type="vanished">0</translation>
</message> </message>
<message> <message>
<location filename="../ui/profilesdialog.ui" line="86"/> <location filename="../ui/profilesdialog.ui" line="89"/>
<source>Name:</source> <source>Name:</source>
<translation>Имя:</translation> <translation>Имя:</translation>
</message> </message>
<message> <message>
<location filename="../ui/profilesdialog.ui" line="96"/> <location filename="../ui/profilesdialog.ui" line="99"/>
<source>Server:</source> <source>Server:</source>
<translation>Сервер:</translation> <translation>Сервер:</translation>
</message> </message>
<message> <message>
<location filename="../ui/profilesdialog.ui" line="107"/> <location filename="../ui/profilesdialog.ui" line="110"/>
<source>Atys</source> <source>Atys</source>
<translation>Atys</translation> <translation>Atys</translation>
</message> </message>
<message> <message>
<location filename="../ui/profilesdialog.ui" line="112"/> <location filename="../ui/profilesdialog.ui" line="115"/>
<source>Yubo</source> <source>Yubo</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../ui/profilesdialog.ui" line="120"/> <location filename="../ui/profilesdialog.ui" line="123"/>
<source>Executable:</source> <source>Executable:</source>
<translation>Исполняемый файл:</translation> <translation>Исполняемый файл:</translation>
</message> </message>
@ -768,27 +772,27 @@ Just press Continue button and follow the different steps until everything is do
<translation type="vanished">ryzom_client_r.exe</translation> <translation type="vanished">ryzom_client_r.exe</translation>
</message> </message>
<message> <message>
<location filename="../ui/profilesdialog.ui" line="136"/> <location filename="../ui/profilesdialog.ui" line="139"/>
<source>Default</source> <source>Default</source>
<translation>По умолчанию</translation> <translation>По умолчанию</translation>
</message> </message>
<message> <message>
<location filename="../ui/profilesdialog.ui" line="143"/> <location filename="../ui/profilesdialog.ui" line="146"/>
<source>Browse...</source> <source>Browse...</source>
<translation>Открыть...</translation> <translation>Открыть...</translation>
</message> </message>
<message> <message>
<location filename="../ui/profilesdialog.ui" line="152"/> <location filename="../ui/profilesdialog.ui" line="155"/>
<source>Arguments:</source> <source>Arguments:</source>
<translation>Аргументы:</translation> <translation>Аргументы:</translation>
</message> </message>
<message> <message>
<location filename="../ui/profilesdialog.ui" line="162"/> <location filename="../ui/profilesdialog.ui" line="165"/>
<source>Comments:</source> <source>Comments:</source>
<translation>Комментарии:</translation> <translation>Комментарии:</translation>
</message> </message>
<message> <message>
<location filename="../ui/profilesdialog.ui" line="179"/> <location filename="../ui/profilesdialog.ui" line="182"/>
<source>Directory:</source> <source>Directory:</source>
<translation>Директория:</translation> <translation>Директория:</translation>
</message> </message>
@ -797,22 +801,22 @@ Just press Continue button and follow the different steps until everything is do
<translation type="vanished">~/.ryzom/0</translation> <translation type="vanished">~/.ryzom/0</translation>
</message> </message>
<message> <message>
<location filename="../ui/profilesdialog.ui" line="195"/> <location filename="../ui/profilesdialog.ui" line="198"/>
<source>Open</source> <source>Open</source>
<translation>Открыть</translation> <translation>Открыть</translation>
</message> </message>
<message> <message>
<location filename="../ui/profilesdialog.ui" line="204"/> <location filename="../ui/profilesdialog.ui" line="207"/>
<source>Create shortcuts:</source> <source>Create shortcuts:</source>
<translation>Создать ярлыки:</translation> <translation>Создать ярлыки:</translation>
</message> </message>
<message> <message>
<location filename="../ui/profilesdialog.ui" line="213"/> <location filename="../ui/profilesdialog.ui" line="216"/>
<source>Desktop</source> <source>Desktop</source>
<translation>Рабочий стол</translation> <translation>Рабочий стол</translation>
</message> </message>
<message> <message>
<location filename="../ui/profilesdialog.ui" line="220"/> <location filename="../ui/profilesdialog.ui" line="223"/>
<source>Start Menu</source> <source>Start Menu</source>
<translation>меню Пуск</translation> <translation>меню Пуск</translation>
</message> </message>
@ -820,116 +824,123 @@ Just press Continue button and follow the different steps until everything is do
<context> <context>
<name>QApplication</name> <name>QApplication</name>
<message> <message>
<location filename="../src/main.cpp" line="151"/> <location filename="../src/main.cpp" line="163"/>
<source>Error</source> <source>Error</source>
<translation>Ошибка</translation> <translation>Ошибка</translation>
</message> </message>
<message> <message>
<location filename="../src/main.cpp" line="151"/> <location filename="../src/main.cpp" line="163"/>
<source>Unable to find ryzom_installer.ini</source> <source>Unable to find ryzom_installer.ini</source>
<translation>Невозможно найти ryzom_installer.ini</translation> <translation>Невозможно найти ryzom_installer.ini</translation>
</message> </message>
<message> <message>
<location filename="../src/main.cpp" line="119"/> <location filename="../src/main.cpp" line="123"/>
<source>Installation and launcher tool for Ryzom</source> <source>Installation and launcher tool for Ryzom</source>
<translation>Программа установки и запуска Ryzom</translation> <translation>Программа установки и запуска Ryzom</translation>
</message> </message>
<message> <message>
<location filename="../src/main.cpp" line="122"/> <location filename="../src/main.cpp" line="126"/>
<source>Uninstall</source> <source>Uninstall</source>
<translation>Удалить</translation> <translation>Удалить</translation>
</message> </message>
<message> <message>
<location filename="../src/main.cpp" line="125"/> <location filename="../src/main.cpp" line="129"/>
<source>Silent mode</source> <source>Silent mode</source>
<translation>Фоновый режим (silent mode)</translation> <translation>Фоновый режим (silent mode)</translation>
</message> </message>
<message> <message>
<location filename="../src/main.cpp" line="128"/> <location filename="../src/main.cpp" line="132"/>
<source>Version</source> <source>Version</source>
<translation>Версия</translation> <translation>Версия</translation>
</message> </message>
<message> <message>
<location filename="../src/main.cpp" line="131"/> <location filename="../src/main.cpp" line="135"/>
<source>Install itself</source> <source>Install itself</source>
<translation>Установится</translation> <translation>Установится</translation>
</message> </message>
<message> <message>
<location filename="../src/filesextractor.cpp" line="322"/> <location filename="../src/filesextractor.cpp" line="324"/>
<location filename="../src/filesextractor.cpp" line="580"/> <location filename="../src/filesextractor.cpp" line="629"/>
<source>Unable to open %1</source> <source>Unable to open %1</source>
<translation>Невозможно открыть %1</translation> <translation>Невозможно открыть %1</translation>
</message> </message>
<message> <message>
<location filename="../src/filesextractor.cpp" line="437"/>
<source>Unable to open output file</source> <source>Unable to open output file</source>
<translation>Невозможно открыть выходной файл</translation> <translation type="vanished">Невозможно открыть выходной файл</translation>
</message> </message>
<message> <message>
<location filename="../src/filesextractor.cpp" line="446"/>
<source>Unable to write output file</source> <source>Unable to write output file</source>
<translation>Невозможно записать выходной файл</translation> <translation type="vanished">Невозможно записать выходной файл</translation>
</message> </message>
<message> <message>
<location filename="../src/filesextractor.cpp" line="495"/> <location filename="../src/filesextractor.cpp" line="471"/>
<location filename="../src/filesextractor.cpp" line="503"/> <source>Unable to open output file %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/filesextractor.cpp" line="494"/>
<source>Unable to write output file %1 (%2 bytes written but expecting %3 bytes)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/filesextractor.cpp" line="538"/>
<location filename="../src/filesextractor.cpp" line="546"/>
<source>7zip decoder doesn&apos;t support this archive</source> <source>7zip decoder doesn&apos;t support this archive</source>
<translation>Архиватор 7zip не поддерживает данный тип архива</translation> <translation>Архиватор 7zip не поддерживает данный тип архива</translation>
</message> </message>
<message> <message>
<location filename="../src/filesextractor.cpp" line="499"/> <location filename="../src/filesextractor.cpp" line="542"/>
<source>Unable to allocate memory</source> <source>Unable to allocate memory</source>
<translation>Невозможно выделить память</translation> <translation>Невозможно выделить память</translation>
</message> </message>
<message> <message>
<location filename="../src/filesextractor.cpp" line="507"/> <location filename="../src/filesextractor.cpp" line="550"/>
<source>File %1 is corrupted, unable to uncompress it</source> <source>File %1 is corrupted, unable to uncompress it</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/filesextractor.cpp" line="515"/> <location filename="../src/filesextractor.cpp" line="558"/>
<source>Error %1</source> <source>Error %1</source>
<translation>Ошибка %1</translation> <translation>Ошибка %1</translation>
</message> </message>
<message> <message>
<location filename="../src/filesextractor.cpp" line="542"/> <location filename="../src/filesextractor.cpp" line="587"/>
<source>Unable to create directory %1</source> <source>Unable to create directory %1</source>
<translation>Невозможно создать директорию %1</translation> <translation>Невозможно создать директорию %1</translation>
</message> </message>
<message> <message>
<location filename="../src/filesextractor.cpp" line="548"/> <location filename="../src/filesextractor.cpp" line="595"/>
<source>Unable to set permissions of %1</source> <source>Unable to set permissions of %1</source>
<translation>Невозможно назначить права объекта %1</translation> <translation>Невозможно назначить права объекта %1</translation>
</message> </message>
<message> <message>
<location filename="../src/filesextractor.cpp" line="663"/> <location filename="../src/filesextractor.cpp" line="718"/>
<source>disk full</source> <source>disk full</source>
<translation>диск переполнен</translation> <translation>диск переполнен</translation>
</message> </message>
<message> <message>
<location filename="../src/filesextractor.cpp" line="667"/> <location filename="../src/filesextractor.cpp" line="724"/>
<source>unable to write %1</source> <source>unable to write %1</source>
<translation>невозможно записать %1</translation> <translation>невозможно записать %1</translation>
</message> </message>
<message> <message>
<location filename="../src/filesextractor.cpp" line="671"/> <location filename="../src/filesextractor.cpp" line="730"/>
<source>unable to read %1</source> <source>unable to read %1</source>
<translation>невозможно прочитать %1</translation> <translation>невозможно прочитать %1</translation>
</message> </message>
<message> <message>
<location filename="../src/filesextractor.cpp" line="675"/> <location filename="../src/filesextractor.cpp" line="736"/>
<source>failed (%1)</source> <source>failed (%1)</source>
<translation>неуспешно (%1)</translation> <translation>неуспешно (%1)</translation>
</message> </message>
<message> <message>
<location filename="../src/filesextractor.cpp" line="678"/> <location filename="../src/filesextractor.cpp" line="739"/>
<source>Unable to unpack %1 to %2: %3</source> <source>Unable to unpack %1 to %2: %3</source>
<translation>Невозможно разархивировать %1 в %2: %3</translation> <translation>Невозможно разархивировать %1 в %2: %3</translation>
</message> </message>
<message> <message>
<location filename="../src/filescopier.cpp" line="189"/>
<source>Unable to copy file %1</source> <source>Unable to copy file %1</source>
<translation>Невозможно скопировать файл %1</translation> <translation type="vanished">Невозможно скопировать файл %1</translation>
</message> </message>
<message> <message>
<location filename="../src/profile.cpp" line="58"/> <location filename="../src/profile.cpp" line="58"/>
@ -941,6 +952,11 @@ Just press Continue button and follow the different steps until everything is do
<source>Profile name %1 is using invalid character %2 at position %3</source> <source>Profile name %1 is using invalid character %2 at position %3</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location filename="../src/filescopier.cpp" line="179"/>
<source>Unable to copy file %1 to %2</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>QObject</name> <name>QObject</name>

View file

@ -90,7 +90,7 @@ BOOL CDfnDialog::OnInitDialog()
// Create the type combo // Create the type combo
setStaticSize (currentPos); setStaticSize (currentPos);
LabelParents.Create ("Parents:", WS_VISIBLE, currentPos, this); LabelParents.Create (_T("Parents:"), WS_VISIBLE, currentPos, this);
initWidget (LabelParents); initWidget (LabelParents);
getNextPosLabel (currentPos); getNextPosLabel (currentPos);
@ -105,7 +105,7 @@ BOOL CDfnDialog::OnInitDialog()
// Create the type combo // Create the type combo
setStaticSize (currentPos); setStaticSize (currentPos);
LabelStruct.Create ("Structure:", WS_VISIBLE, currentPos, this); LabelStruct.Create (_T("Structure:"), WS_VISIBLE, currentPos, this);
initWidget (LabelStruct); initWidget (LabelStruct);
getNextPosLabel (currentPos); getNextPosLabel (currentPos);
@ -193,7 +193,7 @@ void CDfnDialog::getFromDocument (const NLGEORGES::CFormDfn &dfn)
for (parent=0; parent<dfn.getNumParent (); parent++) for (parent=0; parent<dfn.getNumParent (); parent++)
{ {
// Add the label and value // 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 // Add the struct element
@ -202,22 +202,22 @@ void CDfnDialog::getFromDocument (const NLGEORGES::CFormDfn &dfn)
for (elm=0; elm<dfn.getNumEntry (); elm++) for (elm=0; elm<dfn.getNumEntry (); elm++)
{ {
// Add the label and value // 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 ()) switch (elm, dfn.getEntry (elm).getType ())
{ {
case UFormDfn::EntryType: case UFormDfn::EntryType:
Struct.ListCtrl.SetItemText (elm, 1, dfn.getEntry (elm).getArrayFlag () ? "Type array" : "Type"); Struct.ListCtrl.SetItemText (elm, 1, dfn.getEntry (elm).getArrayFlag () ? _T("Type array") : _T("Type"));
Struct.ListCtrl.SetItemText (elm, 4, dfn.getEntry (elm).getFilenameExt ().c_str()); Struct.ListCtrl.SetItemText (elm, 4, utf8ToTStr(dfn.getEntry (elm).getFilenameExt ()));
break; break;
case UFormDfn::EntryDfn: 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; break;
case UFormDfn::EntryVirtualDfn: case UFormDfn::EntryVirtualDfn:
Struct.ListCtrl.SetItemText (elm, 1, "Virtual Dfn"); Struct.ListCtrl.SetItemText (elm, 1, _T("Virtual Dfn"));
break; break;
} }
Struct.ListCtrl.SetItemText (elm, 2, dfn.getEntry (elm).getFilename ().c_str()); Struct.ListCtrl.SetItemText (elm, 2, utf8ToTStr(dfn.getEntry (elm).getFilename()));
Struct.ListCtrl.SetItemText (elm, 3, dfn.getEntry (elm).getDefault ().c_str()); Struct.ListCtrl.SetItemText (elm, 3, utf8ToTStr(dfn.getEntry (elm).getDefault()));
} }
} }
} }
@ -238,7 +238,7 @@ void CDfnDialog::setParentsToDocument ()
{ {
// Add the label and value // Add the label and value
CString str = Parents.ListCtrl.GetItemText ( parent, 0); CString str = Parents.ListCtrl.GetItemText ( parent, 0);
vectValue[parent] = str; vectValue[parent] = tStrToUtf8(str);
} }
// Modify the document // Modify the document
@ -267,7 +267,7 @@ void CDfnDialog::setStructToDocument ()
{ {
// Get the name // Get the name
CString name= Struct.ListCtrl.GetItemText (elm, subElm); 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)); 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; return CEditListCtrl::EditFixedCombo;
else if (subItem == 2) else if (subItem == 2)
{ {
string type = ListCtrl.GetItemText (item, 1); string type = tStrToUtf8(ListCtrl.GetItemText (item, 1));
if (type != "Virtual Dfn") if (type != "Virtual Dfn")
return CEditListCtrl::EditMemCombo; return CEditListCtrl::EditMemCombo;
} }
else if (subItem == 3) else if (subItem == 3)
{ {
string type = ListCtrl.GetItemText (item, 1); string type = tStrToUtf8(ListCtrl.GetItemText (item, 1));
if ((type == "Type") || (type == "Type array")) if ((type == "Type") || (type == "Type array"))
return CEditListCtrl::EditMemCombo; return CEditListCtrl::EditMemCombo;
} }
else if (subItem == 4) else if (subItem == 4)
{ {
string type = ListCtrl.GetItemText (item, 1); string type = tStrToUtf8(ListCtrl.GetItemText (item, 1));
if ((type == "Type") || (type == "Type array")) if ((type == "Type") || (type == "Type array"))
return CEditListCtrl::EditMemCombo; return CEditListCtrl::EditMemCombo;
} }
@ -349,7 +349,7 @@ void CDfnEditListCtrl::getMemComboBoxProp (uint item, uint subItem, std::string
browse = true; browse = true;
// Get type string // Get type string
string type = ListCtrl.GetItemText (item, 1); string type = tStrToUtf8(ListCtrl.GetItemText (item, 1));
if ((type == "Type") || (type == "Type array")) if ((type == "Type") || (type == "Type array"))
regAdr = GEORGES_EDIT_BASE_REG_KEY"\\Type MemCombo"; regAdr = GEORGES_EDIT_BASE_REG_KEY"\\Type MemCombo";
else if ((type == "Dfn") || (type == "Dfn array")) else if ((type == "Dfn") || (type == "Dfn array"))
@ -390,7 +390,7 @@ void CDfnEditListCtrl::getBrowseInfo (uint item, uint subItem, std::string &defE
if (subItem == 2) if (subItem == 2)
{ {
// Get type string // Get type string
string type = ListCtrl.GetItemText (item, 1); string type = tStrToUtf8(ListCtrl.GetItemText (item, 1));
if ((type == "Type") || (type == "Type array")) if ((type == "Type") || (type == "Type array"))
{ {
filter = TypeFilter; filter = TypeFilter;
@ -415,35 +415,33 @@ void CDfnEditListCtrl::onItemChanged (uint item, uint subItem)
if (subItem == 1) if (subItem == 1)
{ {
// Get type string // Get type string
string type = ListCtrl.GetItemText (item, 1); string type = tStrToUtf8(ListCtrl.GetItemText (item, 1));
if ((type == "Type") || (type == "Type array")) if ((type == "Type") || (type == "Type array"))
{ {
CString str; CString str;
str = Dialog->Struct.ListCtrl.GetItemText (item, 2); str = Dialog->Struct.ListCtrl.GetItemText (item, 2);
char ext[MAX_PATH]; std::string ext = NLMISC::CFile::getExtension(tStrToUtf8(str));
_splitpath (str, NULL, NULL, NULL, ext); if (ext == "typ")
if (stricmp (ext, ".typ") != 0) Dialog->Struct.ListCtrl.SetItemText (item, 2, utf8ToTStr(theApp.DefaultType));
Dialog->Struct.ListCtrl.SetItemText (item, 2, theApp.DefaultType.c_str ());
} }
else if ((type == "Dfn") || (type == "Dfn array")) else if ((type == "Dfn") || (type == "Dfn array"))
{ {
CString str; CString str;
str = Dialog->Struct.ListCtrl.GetItemText (item, 2); str = Dialog->Struct.ListCtrl.GetItemText (item, 2);
char ext[MAX_PATH]; std::string ext = NLMISC::CFile::getExtension(tStrToUtf8(str));
_splitpath (str, NULL, NULL, NULL, ext); if (ext == "dfn")
if (stricmp (ext, ".dfn") != 0) Dialog->Struct.ListCtrl.SetItemText (item, 2, utf8ToTStr(theApp.DefaultDfn));
Dialog->Struct.ListCtrl.SetItemText (item, 2, theApp.DefaultDfn.c_str ());
// Clear default value // Clear default value
Dialog->Struct.ListCtrl.SetItemText (item, 3, ""); Dialog->Struct.ListCtrl.SetItemText (item, 3, _T(""));
} }
else if (type == "Virtual Dfn") else if (type == "Virtual Dfn")
{ {
// Clear the value // Clear the value
Dialog->Struct.ListCtrl.SetItemText (item, 2, ""); Dialog->Struct.ListCtrl.SetItemText (item, 2, _T(""));
// Clear default value // 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); int nItem = Parents.ListCtrl.GetNextSelectedItem(pos);
// Get the string // Get the string
CString str = Parents.ListCtrl.GetItemText (nItem, 0); std::string str = tStrToUtf8(Parents.ListCtrl.GetItemText (nItem, 0));
if (str != "") if (!str.empty())
{ {
// Look for the file // Look for the file
string name = CPath::lookup ((const char*)str, false, false); string name = CPath::lookup (str, false, false);
if (name.empty ()) if (name.empty ())
name = str; name = str;
// Open the file // 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); int nItem = Struct.ListCtrl.GetNextSelectedItem(pos);
// Get the string // Get the string
CString str = Struct.ListCtrl.GetItemText (nItem, 2); std::string str = tStrToUtf8(Struct.ListCtrl.GetItemText (nItem, 2));
if (str != "") if (!str.empty())
{ {
// Look for the file // Look for the file
string name = CPath::lookup ((const char*)str, false, false); string name = CPath::lookup (str, false, false);
if (name.empty ()) if (name.empty ())
name = str; name = str;
// Open the file // 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 ); LPCTSTR className = AfxRegisterWndClass( 0 );
// Create this window // 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 #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()); return stricmp (pItemInfo1->displayName.c_str(), pItemInfo2->displayName.c_str());
if (pfileTreeCtrl->_ArrangeMode == CFileTreeCtrl::ByType) if (pfileTreeCtrl->_ArrangeMode == CFileTreeCtrl::ByType)
{ {
char ext1[_MAX_EXT]; std::string ext1 = NLMISC::CFile::getExtension(pItemInfo1->displayName);
_splitpath (pItemInfo1->displayName.c_str(), NULL, NULL, NULL, ext1); std::string ext2 = NLMISC::CFile::getExtension(pItemInfo2->displayName);
char ext2[_MAX_EXT]; int res = stricmp (ext1.c_str(), ext2.c_str());
_splitpath (pItemInfo2->displayName.c_str(), NULL, NULL, NULL, ext2);
int res = stricmp (ext1, ext2);
if ( res == 0) if ( res == 0)
return stricmp (pItemInfo1->displayName.c_str(), pItemInfo2->displayName.c_str()); return stricmp (pItemInfo1->displayName.c_str(), pItemInfo2->displayName.c_str());
else else

View file

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

View file

@ -477,20 +477,15 @@ void CGeorgesEditApp::OnAppAbout()
void CGeorgesEditApp::outputError (const char* message) void CGeorgesEditApp::outputError (const char* message)
{ {
if (m_pMainWnd) 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 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) void CGeorgesEditApp::getConfigFilePath (std::string &output)
{ {
// Get the config file path // Get the config file path
char sDrive[MAX_PATH]; output = NLMISC::CFile::getPath(theApp.ExePath) + "georges.cfg";
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;
} }
bool CGeorgesEditApp::loadCfg () bool CGeorgesEditApp::loadCfg ()
@ -962,12 +957,7 @@ void CGeorgesEditApp::gotoURL (LPCTSTR url)
void CGeorgesEditApp::WinHelp(DWORD dwData, UINT nCmd) void CGeorgesEditApp::WinHelp(DWORD dwData, UINT nCmd)
{ {
char drive[512]; gotoURL(utf8ToTStr(NLMISC::CFile::getPath(ExePath) + "georges_edit.html"));
char dir[512];
char path[512];
_splitpath (ExePath.c_str (), drive, dir, NULL, NULL);
_makepath (path, drive, dir, "georges_edit", ".html");
gotoURL (path);
} }
void CGeorgesEditApp::OnViewRefresh() void CGeorgesEditApp::OnViewRefresh()
@ -1478,9 +1468,8 @@ BOOL CGeorgesEditApp::OnDDECommand(LPTSTR lpszCommand)
name = name.substr (6, name.size ()-8); name = name.substr (6, name.size ()-8);
// Get the extension // Get the extension
char ext[MAX_PATH]; std::string ext = NLMISC::CFile::getExtension(name);
_splitpath (name.c_str (), NULL, NULL, NULL, ext); string dfnName = ext + ".dfn";
string dfnName = string (ext+1) + ".dfn";
// Get the doc template // Get the doc template
CMultiDocTemplate *docTemplate = getFormDocTemplate (dfnName.c_str ()); CMultiDocTemplate *docTemplate = getFormDocTemplate (dfnName.c_str ());
@ -1541,18 +1530,15 @@ BOOL CGeorgesEditApp::OnDDECommand(LPTSTR lpszCommand)
name = name.substr (8, name.size ()-10); name = name.substr (8, name.size ()-10);
// Get the extension // Get the extension
char ext[MAX_PATH]; std::string ext = NLMISC::CFile::getExtension(name);
_splitpath (name.c_str (), NULL, NULL, NULL, ext); string dfnName = ext + ".dfn";
string dfnName = string (ext+1) + ".dfn";
// Create a document // Create a document
CGeorgesEditDocForm *doc = (CGeorgesEditDocForm*)createDocument (dfnName.c_str (), ""); CGeorgesEditDocForm *doc = (CGeorgesEditDocForm*)createDocument (dfnName.c_str (), "");
if (doc) if (doc)
{ {
char nameFile[MAX_PATH]; std::string nameFile = NLMISC::CFile::getFilename(name);
char extFile[MAX_PATH]; doc->addParent (nameFile.c_str());
_splitpath (name.c_str (), NULL, NULL, nameFile, extFile);
doc->addParent ((string (nameFile) + extFile).c_str ());
doc->updateDocumentStructure (); doc->updateDocumentStructure ();
doc->UpdateAllViews (NULL); doc->UpdateAllViews (NULL);
} }
@ -1570,11 +1556,7 @@ BOOL CGeorgesEditApp::OnDDECommand(LPTSTR lpszCommand)
name = name.substr (10, name.size ()-12); name = name.substr (10, name.size ()-12);
// Get the extension // Get the extension
char name2[MAX_PATH]; std::string dfnName = NLMISC::CFile::getFilename(name);
char ext[MAX_PATH];
_splitpath (name.c_str (), NULL, NULL, name2, ext);
string dfnName = name2;
dfnName += ext;
// Create a document // Create a document
CGeorgesEditDocForm *doc = (CGeorgesEditDocForm*)createDocument (dfnName.c_str (), ""); 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 // Set file name and title
char name[512]; std::string name2 = toLower(NLMISC::CFile::getFilenameWithoutExtension(dfnName));
char ext[512]; SetPathName (utf8ToTStr("*." + name2), FALSE);
_splitpath (dfnName, NULL, NULL, name, ext); SetTitle (utf8ToTStr("New " + name2 + " form"));
string name2 = (const char*)(name);
name2 = strlwr (name2);
SetPathName ( ("*."+name2).c_str(), FALSE);
SetTitle ( ("New "+name2+" form").c_str() );
// TMp // TMp
if (newElement) if (newElement)
@ -547,9 +543,9 @@ BOOL CGeorgesEditDoc::OnOpenDocument(LPCTSTR lpszPathName)
try try
{ {
// Check form // Check form
char ext[MAX_PATH]; std::string ext = NLMISC::CFile::getExtension(tStrToUtf8(lpszPathName));
_splitpath (lpszPathName, NULL, NULL, NULL, ext); string extLower = toLower(ext);
string extLower = strlwr (string (ext));
if (!extLower.empty ()) if (!extLower.empty ())
{ {
string dfnName = extLower.substr (1, string::npos) + ".dfn"; string dfnName = extLower.substr (1, string::npos) + ".dfn";
@ -1090,10 +1086,7 @@ void CGeorgesEditDoc::getDfnFilename (std::string &dfnName)
// Get the DFN filename // Get the DFN filename
CString str = GetPathName (); CString str = GetPathName ();
char extension[512]; dfnName = NLMISC::CFile::getExtension(tStrToUtf8(str)) + ".dfn";
_splitpath (str, NULL, NULL, NULL, extension);
dfnName = extension+1;
dfnName += ".dfn";
} }
// *************************************************************************** // ***************************************************************************

View file

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

View file

@ -699,7 +699,7 @@ void CMissionCompilerFeDlg::OnSpecialRuncompilertest()
{ {
string msg = "In primitive "; string msg = "In primitive ";
msg += buildPrimPath(e.Primitive) + ": " + e.Why; msg += buildPrimPath(e.Primitive) + ": " + e.Why;
AfxMessageBox(msg.c_str()); AfxMessageBox(utf8ToTStr(msg));
} }
} }

View file

@ -875,17 +875,26 @@ bool CMissionCompiler::publishFiles(const std::string &serverPathPrim, const std
return true; 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+"); FILE *f = nlfopen(filename, "r+");
if (f == NULL) if (f == NULL)
{
nlwarning("Unable to open %s", filename.c_str());
return false; return false;
}
bool isIn = false; bool isIn = false;
char buffer[1024]; char buffer[1024];
// Check for UTF8 format // 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) if (buffer[0] != -17 || buffer[1] != -69 || buffer[2] != -65)
fseek(f, 0, SEEK_SET); 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); 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 /// 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. /// Parse the pre requisite node of a mission.
bool parsePreRequisite(CMissionData &md, NLLIGO::IPrimitive *preReq); bool parsePreRequisite(CMissionData &md, NLLIGO::IPrimitive *preReq);

View file

@ -1279,15 +1279,23 @@ void ItemNamesSave()
printf( "-- SAVING ITEM NAMES --\n"); printf( "-- SAVING ITEM NAMES --\n");
CSString data, output; CSString data, output;
FILE* file; FILE *file = nlfopen( ITEM_WORDS_WK, "rb" );
file = nlfopen( ITEM_WORDS_WK, "rb" );
char c; 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 ) ) while ( !feof( file ) )
{ {
data += toString( "%c", c ); 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 ); fclose( file );

View file

@ -199,7 +199,13 @@ int getNbItemFromFile(const char *filename)
while (fgets(buffer, 1024, f)) while (fgets(buffer, 1024, f))
{ {
int n; 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) if (n > max)
max = n; max = n;
} }
@ -247,7 +253,13 @@ int importCsv(const char *filename)
// read fields name // 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); CSString s(buffer);
s = s.strtok("\n"); s = s.strtok("\n");

View file

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

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