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

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

View file

@ -870,9 +870,6 @@ MACRO(NL_SETUP_BUILD)
ELSE()
# Check wrong formats in printf-like functions
ADD_PLATFORM_FLAGS("-Wformat -Werror=format-security")
# Don't display invalid or unused command lines arguments by default (often too verbose)
ADD_PLATFORM_FLAGS("-Wno-invalid-command-line-argument -Wno-unused-command-line-argument")
ENDIF()
IF(ANDROID)
@ -929,8 +926,10 @@ MACRO(NL_SETUP_BUILD)
SET(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -Wl,--no-undefined -Wl,--as-needed")
ENDIF()
# hardening
SET(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now")
IF(NOT APPLE)
# hardening
SET(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now")
ENDIF()
IF(WITH_SYMBOLS)
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 );
/// float operations
void setDouble (double value) {setSInt64((sint64&) value);}
double getDouble () const {sint64 i = getSInt64(); return (double &) i; }
void setDouble(double value);
double getDouble() const;
void readDouble (const char* value, const std::string& id);
/// sint32 operations

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -262,8 +262,7 @@ void CAnimationSetDlg::refresh (BOOL update)
for (i=0; i<object->Saved.AnimationFileName.size(); i++)
{
// Get the animation name
char name[512];
_splitpath (object->Saved.AnimationFileName[i].c_str(), NULL, NULL, name, NULL);
std::string name = NLMISC::CFile::getFilenameWithoutExtension(object->Saved.AnimationFileName[i]);
// Get the animation pointer
CAnimation *anim = object->AnimationSet.getAnimation (object->AnimationSet.getAnimationIdByName (name));
@ -288,6 +287,7 @@ void CAnimationSetDlg::refresh (BOOL update)
// Keyframer ?
UTrackKeyframer *keyTrack=dynamic_cast<UTrackKeyframer *>(track);
if (keyTrack)
{
// Get number of keys
@ -314,11 +314,10 @@ void CAnimationSetDlg::refresh (BOOL update)
for (i=0; i<object->Saved.SWTFileName.size(); i++)
{
// Get the animation name
char name[512];
_splitpath (object->Saved.SWTFileName[i].c_str(), NULL, NULL, name, NULL);
std::string name = NLMISC::CFile::getFilenameWithoutExtension(object->Saved.SWTFileName[i]);
// Get the animation pointer
CSkeletonWeight *swt = object->AnimationSet.getSkeletonWeight (object->AnimationSet.getSkeletonWeightIdByName (name));
CSkeletonWeight *swt = object->AnimationSet.getSkeletonWeight(object->AnimationSet.getSkeletonWeightIdByName(name));
// Insert an intem
HTREEITEM item=SkelTree.InsertItem(utf8ToTStr(name));

View file

@ -104,8 +104,8 @@ public:
// SchemeWrapper[k].S reference the atriobute maker being edited
if (_EditedScheme->supportOp( (NL3D::CPSBinOp::BinOp) k))
{
sint index = m_BinOp.AddString(ops[k]) ;
m_BinOp.SetItemData(index, k) ;
sint index = m_BinOp.AddString(ops[k]);
m_BinOp.SetItemData(index, k);
if ((uint) _EditedScheme->getOp() == k)
{
m_BinOp.SetCurSel(k) ;

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -220,6 +220,7 @@ void CParticleSystemEdit::updateDieOnEventParams()
{
ew = FALSE;
}
GetDlgItem(IDC_APPLY_AFTER_DELAY)->EnableWindow(ew);
CString out;
@ -232,6 +233,7 @@ void CParticleSystemEdit::updateDieOnEventParams()
{
out = _T("???");
}
GetDlgItem(IDC_APPLY_AFTER_DELAY)->SetWindowText(out);
((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);
_NodeTypes.push_back(nt);
// insert the element in the tree
HTREEITEM root = InsertItem(TVIF_IMAGE | TVIF_SELECTEDIMAGE | TVIF_PARAM | TVIF_TEXT, "instance", PSIconLocatedInstance, PSIconLocatedInstance, 0, 0, (LPARAM) nt, GetSelectedItem(), TVI_LAST);
SetItemData(root, (DWORD) nt);
HTREEITEM root = InsertItem(TVIF_IMAGE | TVIF_SELECTEDIMAGE | TVIF_PARAM | TVIF_TEXT, _T("instance"), PSIconLocatedInstance, PSIconLocatedInstance, 0, 0, (LPARAM) nt, GetSelectedItem(), TVI_LAST);
SetItemData(root, (DWORD_PTR) nt);
Invalidate();
}
break;

View file

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

View file

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

View file

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

View file

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

View file

@ -114,6 +114,7 @@ void CSnapshotToolDlg::stringFromRegistry(HKEY hKey, const TCHAR *name, CString
DWORD type;
DWORD size;
LONG result = RegQueryValueEx(hKey, name, NULL, &type, NULL, &size);
if (type != REG_SZ || result != ERROR_SUCCESS || size == 0)
{
dest = defaultStr;
@ -144,18 +145,22 @@ template <class T, class U> void integralTypeFromRegistry(HKEY hKey, const TCHAR
DWORD type;
DWORD size;
LONG result = RegQueryValueEx(hKey, name, NULL, &type, NULL, &size);
if (type != REG_DWORD || result != ERROR_SUCCESS || size == 0)
{
dest = (T) defaultValue;
return;
}
DWORD value;
result = RegQueryValueEx(hKey, name, NULL, &type, LPBYTE(&value), &size);
if (result != ERROR_SUCCESS)
{
dest = defaultValue;
return;
}
dest = (T) value;
}
@ -175,6 +180,7 @@ void CSnapshotToolDlg::fromRegistry()
NLMISC::splitString(tStrToUtf8(filters), ",", filterList);
m_Filters.ResetContent();
for (uint k = 0; k < filterList.size(); ++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
RECT desktopSize;
::GetClientRect(::GetDesktopWindow(), &desktopSize);

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -2338,24 +2338,24 @@ INT_PTR CALLBACK MiscDialogCallback (
currentParam->LigoSymmetry = SendMessage (GetDlgItem (hwndDlg, IDC_LIGO_SYMMETRY), BM_GETCHECK, 0, 0);
TCHAR tmp[512];
GetWindowText (GetDlgItem (hwndDlg, IDC_LIGO_ROTATE), tmp, 512);
currentParam->LigoRotate = tmp;
currentParam->LigoRotate = tStrToUtf8(tmp);
// SWT
currentParam->SWT = SendMessage (GetDlgItem (hwndDlg, IDC_SWT), BM_GETCHECK, 0, 0);
GetWindowText (GetDlgItem (hwndDlg, IDC_SWT_WEIGHT), tmp, 512);
currentParam->SWTWeight = tmp;
currentParam->SWTWeight = tStrToUtf8(tmp);
// Radial normals
for (uint smoothGroup=0; smoothGroup<NEL3D_RADIAL_NORMAL_COUNT; smoothGroup++)
{
HWND edit = GetDlgItem (hwndDlg, IDC_RADIAL_NORMAL_29+smoothGroup);
GetWindowText (edit, tmp, 512);
currentParam->RadialNormals[smoothGroup]=tmp;
currentParam->RadialNormals[smoothGroup] = tStrToUtf8(tmp);
}
// mesh interfaces
GetWindowText (GetDlgItem (hwndDlg, IDC_EDIT_INTERFACE_FILE), tmp, 512);
currentParam->InterfaceFileName=tmp;
currentParam->InterfaceFileName = tStrToUtf8(tmp);
GetWindowText (GetDlgItem (hwndDlg, IDC_EDIT_INTERFACE_THRESHOLD), tmp, 512);
if (strlen(tmp) != 0)
currentParam->InterfaceThreshold = toFloatMax(tmp);
@ -2365,18 +2365,20 @@ INT_PTR CALLBACK MiscDialogCallback (
// Skeleton Scale
currentParam->ExportBoneScale= SendMessage( GetDlgItem(hwndDlg, IDC_EXPORT_BONE_SCALE), BM_GETCHECK, 0, 0);
GetWindowText (GetDlgItem (hwndDlg, IDC_EXPORT_BONE_SCALE_NAME_EXT), tmp, 512);
currentParam->ExportBoneScaleNameExt = wideToUtf8(tmp);
currentParam->ExportBoneScaleNameExt = tStrToUtf8(tmp);
// remanence
currentParam->UseRemanence = SendMessage (GetDlgItem (hwndDlg, IDC_USE_REMANENCE), BM_GETCHECK, 0, 0);
currentParam->RemanenceShiftingTexture = SendMessage (GetDlgItem (hwndDlg, IDC_REMANENCE_SHIFTING_TEXTURE), BM_GETCHECK, 0, 0);
GetWindowText (GetDlgItem (hwndDlg, IDC_REMANENCE_SLICE_NUMBER), tmp, 512);
uint rsn;
if (sscanf(tmp, "%d", &rsn) == 1)
if (NLMISC::fromString(tStrToUtf8(tmp), rsn))
{
currentParam->RemanenceSliceNumber = rsn;
}
GetWindowText (GetDlgItem (hwndDlg, IDC_REMANENCE_SAMPLING_PERIOD), tmp, 512);
toFloatMax(tmp, currentParam->RemanenceSamplingPeriod);
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; }
char sModulePath[256];
int res = GetModuleFileName(hModule, sModulePath, 256);
if (!res) { ::MessageBox(NULL, "'res' failed at '" __FUNCTION__ "' in file '" __FILE__ " on line " NL_MACRO_TO_STR(__LINE__), "NeL Export", MB_OK | MB_ICONERROR); return; }
char SDrive[512];
char SDir[512];
_splitpath (sModulePath, SDrive, SDir, NULL, NULL);
_makepath (sModulePath, SDrive, SDir, "object_viewer", ".cfg");
if (!res) { ::MessageBox(NULL, _T("'res' failed at '") __FUNCTION__ _T("' in file '") __FILE__ _T(" on line ") NL_MACRO_TO_STR(__LINE__), _T("NeL Export"), MB_OK | MB_ICONERROR); return; }
std::string modulePath = NLMISC::CFile::getPath(tStrToUtf8(sModulePath)) + "object_viewer.cfg";
// Load the config file
CConfigFile cf;
cf.load (sModulePath);
cf.load (modulePath);
try
{
@ -367,7 +365,7 @@ void CNelExport::viewMesh (TimeValue time)
INode* pNode=_Ip->GetSelNode (nNode);
string sTmp = "Object Name: ";
sTmp += pNode->GetName();
sTmp += tStrToUtf8(pNode->GetName());
ProgBar.setLine (0, sTmp);
sTmp.clear();
for (uint32 i = 1; i < 10; ++i)
@ -412,7 +410,7 @@ void CNelExport::viewMesh (TimeValue time)
if (pShape)
{
// Add the shape in the view
uint instance = view->addMesh (pShape, pNode->GetName(), iteSkelShape->second.SkeletonInstance);
uint instance = view->addMesh (pShape, tStrToUtf8(pNode->GetName()).c_str(), iteSkelShape->second.SkeletonInstance);
// Add tracks
CAnimation *anim=new CAnimation;

View file

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

View file

@ -113,7 +113,7 @@ void CRTWorld::build (vector<SLightBuild> &AllLights, CVector &trans, bool bExcl
pLAP->create( 64 ); // width of each grid in number of square
for( j = 0; j < vMB.size(); ++j )
{
if (rLight.setExclusion.find (vINode[j]->GetName()) != rLight.setExclusion.end())
if (rLight.setExclusion.find (tStrToUtf8(vINode[j]->GetName())) != rLight.setExclusion.end())
continue;
for (k = 0; k < vMB[j]->Faces.size(); ++k)
@ -142,7 +142,7 @@ void CRTWorld::build (vector<SLightBuild> &AllLights, CVector &trans, bool bExcl
pLAD->create (64, rLight.rDirRadius/64.0f, rLight.Direction);
for( j = 0; j < vMB.size(); ++j )
{
if (rLight.setExclusion.find (vINode[j]->GetName()) != rLight.setExclusion.end())
if (rLight.setExclusion.find (tStrToUtf8(vINode[j]->GetName())) != rLight.setExclusion.end())
continue;
for (k = 0; k < vMB[j]->Faces.size(); ++k)

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -36,7 +36,7 @@ bool CExportNel::scriptEvaluate (const char *script, void *out, TNelScriptValueT
four_typed_value_locals(Parser* parser,Value* code,Value* result,StringStream* source);
vl.parser = new Parser;
vl.source = new StringStream (const_cast<char *>(script));
vl.source = new StringStream (utf8ToTStr(script));
vl.source->log_to(NULL);
save_current_frames();
try
@ -125,7 +125,7 @@ float CExportNel::getScriptAppData (Animatable *node, uint32 id, float def)
// String to int
float value = 0.f;
if (toFloatMax((const char*)ap->data, value))
if (toFloatMax((const TCHAR*)ap->data, value))
return value;
else
return def;

View file

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

View file

@ -435,6 +435,7 @@ public:
CBankManager ()
{
}
const NL3D::CTileBank& getBank (std::string& path=GetBankPathName ())
{
if (path!=_lastPath)
@ -450,7 +451,7 @@ public:
}
catch (const NLMISC::EStream& excp)
{
MessageBox (NULL, excp.what(), "Load error", MB_OK|MB_ICONEXCLAMATION);
MessageBox (NULL, utf8ToTStr(excp.what()), _T("Load error"), MB_OK|MB_ICONEXCLAMATION);
}
}
return _bank;

View file

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

View file

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

View file

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

View file

@ -371,19 +371,19 @@ RefResult RGBAdd::NotifyRefChanged(Interval changeInt, RefTargetHandle hTarget,
case REFMSG_CHANGE:
ivalid.SetEmpty();
if (hTarget == pblock)
{
// see if this message came from a changing parameter in the pblock,
// if so, limit rollout update to the changing item and update any active viewport texture
{
// see if this message came from a changing parameter in the pblock,
// if so, limit rollout update to the changing item and update any active viewport texture
ParamID changing_param = pblock->LastNotifyParamID();
RGBAdd_param_blk.InvalidateUI(changing_param);
// notify our dependents that we've changed
// notify our dependents that we've changed
// NotifyChanged(); //DS this is redundant
}
}
break;
}
return(REF_SUCCEED);
}
return(REF_SUCCEED);
}
#define MTL_HDR_CHUNK 0x4000

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -350,6 +350,7 @@ CClientConfig::CClientConfig()
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
FreeLookInverted = false;
FreeLookTablet = false; // Mouse reports absolute coordinates, so avoid mouse recentering
AutomaticCamera = true;
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
@ -855,6 +856,7 @@ void CClientConfig::setValues()
READ_INT_FV(FreeLookAcceleration)
READ_FLOAT_FV(FreeLookSmoothingPeriod)
READ_BOOL_FV(FreeLookInverted)
READ_BOOL_FV(FreeLookTablet)
READ_BOOL_FV(AutomaticCamera)
READ_BOOL_FV(DblClickMode)
READ_BOOL_FV(AutoEquipTool)

View file

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

View file

@ -204,7 +204,7 @@ void CEventsListener::operator()(const CEvent& event)
// updateFreeLookPos is called in updateMouseSmoothing per frame
// Center cursor
if (outsideBounds && !s_MouseFreeLookWaitCenter)
if (outsideBounds && !s_MouseFreeLookWaitCenter && !ClientCfg.FreeLookTablet)
{
s_MouseFreeLookWaitCenter = true;
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;
}
void PrintError(char *sz)
void PrintError(const char *sz)
{
printf("\nERROR: %s\n", sz);
}

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -4,42 +4,46 @@
<context>
<name>CDownloader</name>
<message>
<location filename="../src/downloader.cpp" line="156"/>
<location filename="../src/downloader.cpp" line="158"/>
<source>File is larger (%1B) than expected (%2B)</source>
<translation>Die Datei ist (%1B) größer als erwartet (%2B)</translation>
</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>
<translation>Auf dem Gerät sind nur noch %1 Byte Speicherplatz verfügbar, es werden aber %2 Byte benötigt.</translation>
</message>
<message>
<location filename="../src/downloader.cpp" line="192"/>
<location filename="../src/downloader.cpp" line="204"/>
<source>Unable to write file</source>
<translation>Datei kann nicht geschrieben werden</translation>
</message>
<message>
<location filename="../src/downloader.cpp" line="227"/>
<location filename="../src/downloader.cpp" line="239"/>
<source>Timeout</source>
<translation>Zeitüberschreitung</translation>
</message>
<message>
<location filename="../src/downloader.cpp" line="264"/>
<location filename="../src/downloader.cpp" line="287"/>
<source>Redirection URL is not defined</source>
<translation>Weiterleitungs-URL ist nicht definiert</translation>
</message>
<message>
<location filename="../src/downloader.cpp" line="329"/>
<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>
<location filename="../src/downloader.cpp" line="336"/>
<location filename="../src/downloader.cpp" line="357"/>
<source>Incorrect status code: %1</source>
<translation>Falscher Status-Code: %1</translation>
</message>
<message>
<location filename="../src/downloader.cpp" line="382"/>
<location filename="../src/downloader.cpp" line="411"/>
<source>HTTP error: %1</source>
<translation type="unfinished"></translation>
</message>
@ -59,7 +63,7 @@
<translation type="vanished">Internet (%1 herunterzuladen)</translation>
</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>
<translation>Dateien werden installiert nach (benötigt %1):</translation>
</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>
</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>
<translation>Bitte wähle ein Verzeichnis, in dem Ryzom installiert werden soll.</translation>
</message>
@ -89,32 +93,32 @@
<translation type="vanished">Undefiniert</translation>
</message>
<message>
<location filename="../src/installdialog.cpp" line="138"/>
<location filename="../src/installdialog.cpp" line="148"/>
<source>Not enough free disk space</source>
<translation>Nicht genügend freier Festplattenspeicher</translation>
</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>
<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>
<location filename="../src/installdialog.cpp" line="157"/>
<location filename="../src/installdialog.cpp" line="167"/>
<source>Unable to write in directory</source>
<translation>In das Verzeichnis konnte nicht geschrieben werden</translation>
</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>
<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>
<location filename="../src/installdialog.cpp" line="166"/>
<location filename="../src/installdialog.cpp" line="176"/>
<source>Directory not empty</source>
<translation>Verzeichnist ist nicht leer</translation>
</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>
<translation>Dieses Verzeichnis ist nicht leer, bitte wähle ein anderes.</translation>
</message>
@ -122,27 +126,27 @@
<context>
<name>CMainWindow</name>
<message>
<location filename="../src/mainwindow.cpp" line="270"/>
<location filename="../src/mainwindow.cpp" line="287"/>
<source>About %1</source>
<translation>Über %1</translation>
</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>
<translation>Programm, um Ryzom-Profile zu installieren, herunterzuladen und zu verwalten.</translation>
</message>
<message>
<location filename="../src/mainwindow.cpp" line="274"/>
<location filename="../src/mainwindow.cpp" line="291"/>
<source>Author: %1</source>
<translation>Autor: %1</translation>
</message>
<message>
<location filename="../src/mainwindow.cpp" line="275"/>
<location filename="../src/mainwindow.cpp" line="292"/>
<source>Copyright: %1</source>
<translation>Copyright: %1</translation>
</message>
<message>
<location filename="../src/mainwindow.cpp" line="276"/>
<location filename="../src/mainwindow.cpp" line="293"/>
<source>Support: %1</source>
<translation>Support: %1</translation>
</message>
@ -150,42 +154,42 @@
<context>
<name>CMigrateDialog</name>
<message>
<location filename="../src/migratedialog.cpp" line="94"/>
<location filename="../src/migratedialog.cpp" line="72"/>
<source>Files will be installed to (requires %1):</source>
<translation>Dateien werden installiert nach (benötigt %1):</translation>
</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>
<translation>Bitte wähle ein Verzeichnis, in dem Ryzom installiert werden soll.</translation>
</message>
<message>
<location filename="../src/migratedialog.cpp" line="153"/>
<location filename="../src/migratedialog.cpp" line="139"/>
<source>Not enough free disk space</source>
<translation>Nicht genügend freier Festplattenspeicher</translation>
</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>
<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>
<location filename="../src/migratedialog.cpp" line="172"/>
<location filename="../src/migratedialog.cpp" line="158"/>
<source>Unable to write in directory</source>
<translation>Kann nicht in dieses Verzeichnis schreiben</translation>
</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>
<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>
<location filename="../src/migratedialog.cpp" line="181"/>
<location filename="../src/migratedialog.cpp" line="167"/>
<source>Directory not empty</source>
<translation>Verzeichnis ist nicht leer</translation>
</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>
<translation>Dieses Verzeichnis ist nicht leer, bitte wähle ein anderes.</translation>
</message>
@ -197,109 +201,109 @@
<translation type="vanished">Profile aktualisieren</translation>
</message>
<message>
<location filename="../src/operationdialog.cpp" line="275"/>
<location filename="../src/operationdialog.cpp" line="276"/>
<source>Updating profiles...</source>
<translation>Aktualisiere Profile...</translation>
</message>
<message>
<location filename="../src/operationdialog.cpp" line="428"/>
<location filename="../src/operationdialog.cpp" line="429"/>
<source>Confirmation</source>
<translation>Bestätigung</translation>
</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.
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.
Willst du den Download wirklich abbrechen?</translation>
</message>
<message>
<location filename="../src/operationdialog.cpp" line="453"/>
<location filename="../src/operationdialog.cpp" line="454"/>
<source>%p% (%v/%m KiB)</source>
<translation>%p% (%v/%m KiB)</translation>
</message>
<message>
<location filename="../src/operationdialog.cpp" line="513"/>
<location filename="../src/operationdialog.cpp" line="514"/>
<source>Error</source>
<translation>Fehler</translation>
</message>
<message>
<location filename="../src/operationdialog.cpp" line="534"/>
<location filename="../src/operationdialog.cpp" line="535"/>
<source>Downloading data required by server %1...</source>
<translation>Herunterzuladende Daten benötigt von Server %1...</translation>
</message>
<message>
<location filename="../src/operationdialog.cpp" line="545"/>
<location filename="../src/operationdialog.cpp" line="546"/>
<source>Extracting data required by server %1...</source>
<translation>Zu extrahierende Daten benötigt von Server %1...</translation>
</message>
<message>
<location filename="../src/operationdialog.cpp" line="569"/>
<location filename="../src/operationdialog.cpp" line="570"/>
<source>Downloading client required by server %1...</source>
<translation>Herunterzuladender Client benötigt von Server %1...</translation>
</message>
<message>
<location filename="../src/operationdialog.cpp" line="580"/>
<location filename="../src/operationdialog.cpp" line="581"/>
<source>Extracting client required by server %1...</source>
<translation>Zu extrahierender Client benötigt von Server %1...</translation>
</message>
<message>
<location filename="../src/operationdialog.cpp" line="602"/>
<location filename="../src/operationdialog.cpp" line="603"/>
<source>Copying data required by server %1...</source>
<translation>Zu kopierende Daten benötigt von Server %1...</translation>
</message>
<message>
<location filename="../src/operationdialog.cpp" line="631"/>
<location filename="../src/operationdialog.cpp" line="632"/>
<source>Copying old profile to new location...</source>
<translation>Kopiere alte Profile zum neuen Zielort...</translation>
</message>
<message>
<location filename="../src/operationdialog.cpp" line="661"/>
<location filename="../src/operationdialog.cpp" line="662"/>
<source>Extracting client to new location...</source>
<translation>Extrahiere Client an neuem Zielort...</translation>
</message>
<message>
<location filename="../src/operationdialog.cpp" line="726"/>
<location filename="../src/operationdialog.cpp" line="727"/>
<source>Copying installer to new location...</source>
<translation>Kopiere Installer zum neuen Zielort...</translation>
</message>
<message>
<location filename="../src/operationdialog.cpp" line="847"/>
<location filename="../src/operationdialog.cpp" line="855"/>
<source>Cleaning obsolete files...</source>
<translation>Bereinige überholte Dateien...</translation>
</message>
<message>
<location filename="../src/operationdialog.cpp" line="862"/>
<location filename="../src/operationdialog.cpp" line="870"/>
<source>Creating default profile...</source>
<translation>Erstelle Standard-Profile...</translation>
</message>
<message>
<location filename="../src/operationdialog.cpp" line="921"/>
<location filename="../src/operationdialog.cpp" line="929"/>
<source>Creating shortcuts for profile %1...</source>
<translation>Erstelle Verknüpfungen für Profile %1...</translation>
</message>
<message>
<location filename="../src/operationdialog.cpp" line="1007"/>
<location filename="../src/operationdialog.cpp" line="1015"/>
<source>Deleting client...</source>
<translation>Lösche Client...</translation>
</message>
<message>
<location filename="../src/operationdialog.cpp" line="1067"/>
<location filename="../src/operationdialog.cpp" line="1075"/>
<source>Adding profiles...</source>
<translation>Füge Profile hinzu...</translation>
</message>
<message>
<location filename="../src/operationdialog.cpp" line="1087"/>
<location filename="../src/operationdialog.cpp" line="1095"/>
<source>Deleting profiles...</source>
<translation>Lösche Profile...</translation>
</message>
<message>
<location filename="../src/operationdialog.cpp" line="1140"/>
<location filename="../src/operationdialog.cpp" line="1148"/>
<source>Deleting installer...</source>
<translation>Lösche Installer...</translation>
</message>
<message>
<location filename="../src/operationdialog.cpp" line="1192"/>
<location filename="../src/operationdialog.cpp" line="1200"/>
<source>Deleting downloaded files...</source>
<translation>Lösche heruntergeladene Dateien...</translation>
</message>
@ -349,12 +353,12 @@ Willst du den Download wirklich abbrechen?</translation>
<translation type="vanished">Kopiere Installer an neuen Ort</translation>
</message>
<message>
<location filename="../src/operationdialog.cpp" line="812"/>
<location filename="../src/operationdialog.cpp" line="820"/>
<source>Uninstall old client</source>
<translation>Deinstalliere alten Client</translation>
</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>
<translation>Eine ältere Version von Ryzom wurde auf diesem System gefunden, möchtest du sie deinstallieren, um Festplattenspeicher zu sparen?</translation>
</message>
@ -379,7 +383,7 @@ Willst du den Download wirklich abbrechen?</translation>
<translation type="vanished">Lösche Client-Dateien</translation>
</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>
<translation>Dateien für Client %1 konnten nicht gelöscht werden</translation>
</message>
@ -400,7 +404,7 @@ Willst du den Download wirklich abbrechen?</translation>
<translation type="vanished">Lösche Profil %1...</translation>
</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>
<translation>Dateien für Profil %1 konnten nicht gelöscht werden</translation>
</message>
@ -433,17 +437,17 @@ Are you sure to delete this profile?</source>
Bist du sicher, dass du dieses Profil löschen willst?</translation>
</message>
<message>
<location filename="../src/profilesdialog.cpp" line="277"/>
<location filename="../src/profilesdialog.cpp" line="278"/>
<source>Executables (*)</source>
<translation type="unfinished"></translation>
</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>
<translation>Bitte wähle die ausführbare Datei, um den Ryzom-Client zu starten</translation>
</message>
<message>
<location filename="../src/profilesdialog.cpp" line="275"/>
<location filename="../src/profilesdialog.cpp" line="276"/>
<source>Executables (*.exe)</source>
<translation>Ausführbare Dateien (*.exe)</translation>
</message>
@ -753,7 +757,7 @@ Drücke Weiter und folge den verschiedenen Schritten bis zum Ende.</translation>
<translation>Löschen</translation>
</message>
<message>
<location filename="../ui/profilesdialog.ui" line="72"/>
<location filename="../ui/profilesdialog.ui" line="75"/>
<source>Profile:</source>
<translation>Profil:</translation>
</message>
@ -762,27 +766,27 @@ Drücke Weiter und folge den verschiedenen Schritten bis zum Ende.</translation>
<translation type="vanished">0</translation>
</message>
<message>
<location filename="../ui/profilesdialog.ui" line="86"/>
<location filename="../ui/profilesdialog.ui" line="89"/>
<source>Name:</source>
<translation>Name:</translation>
</message>
<message>
<location filename="../ui/profilesdialog.ui" line="96"/>
<location filename="../ui/profilesdialog.ui" line="99"/>
<source>Server:</source>
<translation>Server:</translation>
</message>
<message>
<location filename="../ui/profilesdialog.ui" line="107"/>
<location filename="../ui/profilesdialog.ui" line="110"/>
<source>Atys</source>
<translation>Atys</translation>
</message>
<message>
<location filename="../ui/profilesdialog.ui" line="112"/>
<location filename="../ui/profilesdialog.ui" line="115"/>
<source>Yubo</source>
<translation>Yubo</translation>
</message>
<message>
<location filename="../ui/profilesdialog.ui" line="120"/>
<location filename="../ui/profilesdialog.ui" line="123"/>
<source>Executable:</source>
<translation>Ausführbare Datei:</translation>
</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>
</message>
<message>
<location filename="../ui/profilesdialog.ui" line="136"/>
<location filename="../ui/profilesdialog.ui" line="139"/>
<source>Default</source>
<translation>Standard</translation>
</message>
<message>
<location filename="../ui/profilesdialog.ui" line="143"/>
<location filename="../ui/profilesdialog.ui" line="146"/>
<source>Browse...</source>
<translation>Durchsuchen...</translation>
</message>
<message>
<location filename="../ui/profilesdialog.ui" line="152"/>
<location filename="../ui/profilesdialog.ui" line="155"/>
<source>Arguments:</source>
<translation>Argumente:</translation>
</message>
<message>
<location filename="../ui/profilesdialog.ui" line="162"/>
<location filename="../ui/profilesdialog.ui" line="165"/>
<source>Comments:</source>
<translation>Kommentare:</translation>
</message>
<message>
<location filename="../ui/profilesdialog.ui" line="179"/>
<location filename="../ui/profilesdialog.ui" line="182"/>
<source>Directory:</source>
<translation>Verzeichnis:</translation>
</message>
@ -820,22 +824,22 @@ Drücke Weiter und folge den verschiedenen Schritten bis zum Ende.</translation>
<translation type="vanished">~/.ryzom/0</translation>
</message>
<message>
<location filename="../ui/profilesdialog.ui" line="195"/>
<location filename="../ui/profilesdialog.ui" line="198"/>
<source>Open</source>
<translation>Öffnen</translation>
</message>
<message>
<location filename="../ui/profilesdialog.ui" line="204"/>
<location filename="../ui/profilesdialog.ui" line="207"/>
<source>Create shortcuts:</source>
<translation>Erstelle Verknüpfungen:</translation>
</message>
<message>
<location filename="../ui/profilesdialog.ui" line="213"/>
<location filename="../ui/profilesdialog.ui" line="216"/>
<source>Desktop</source>
<translation>Desktop</translation>
</message>
<message>
<location filename="../ui/profilesdialog.ui" line="220"/>
<location filename="../ui/profilesdialog.ui" line="223"/>
<source>Start Menu</source>
<translation>Start-Menü</translation>
</message>
@ -843,116 +847,123 @@ Drücke Weiter und folge den verschiedenen Schritten bis zum Ende.</translation>
<context>
<name>QApplication</name>
<message>
<location filename="../src/main.cpp" line="151"/>
<location filename="../src/main.cpp" line="163"/>
<source>Error</source>
<translation>Fehler</translation>
</message>
<message>
<location filename="../src/main.cpp" line="151"/>
<location filename="../src/main.cpp" line="163"/>
<source>Unable to find ryzom_installer.ini</source>
<translation>ryzom_installer.ini konnte nicht gefunden werden</translation>
</message>
<message>
<location filename="../src/main.cpp" line="119"/>
<location filename="../src/main.cpp" line="123"/>
<source>Installation and launcher tool for Ryzom</source>
<translation>Installations- und Startprogramm für Ryzom</translation>
</message>
<message>
<location filename="../src/main.cpp" line="122"/>
<location filename="../src/main.cpp" line="126"/>
<source>Uninstall</source>
<translation>Deinstallieren</translation>
</message>
<message>
<location filename="../src/main.cpp" line="125"/>
<location filename="../src/main.cpp" line="129"/>
<source>Silent mode</source>
<translation>Stiller Modus</translation>
</message>
<message>
<location filename="../src/main.cpp" line="128"/>
<location filename="../src/main.cpp" line="132"/>
<source>Version</source>
<translation>Version</translation>
</message>
<message>
<location filename="../src/main.cpp" line="131"/>
<location filename="../src/main.cpp" line="135"/>
<source>Install itself</source>
<translation>Selbstinstallation</translation>
</message>
<message>
<location filename="../src/filesextractor.cpp" line="322"/>
<location filename="../src/filesextractor.cpp" line="580"/>
<location filename="../src/filesextractor.cpp" line="324"/>
<location filename="../src/filesextractor.cpp" line="629"/>
<source>Unable to open %1</source>
<translation>%1 konnte nicht geöffnet werden</translation>
</message>
<message>
<location filename="../src/filesextractor.cpp" line="437"/>
<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>
<location filename="../src/filesextractor.cpp" line="446"/>
<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>
<location filename="../src/filesextractor.cpp" line="495"/>
<location filename="../src/filesextractor.cpp" line="503"/>
<location filename="../src/filesextractor.cpp" line="471"/>
<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>
<translation>7zip-Decoder unterstützt dieses Archiv nicht</translation>
</message>
<message>
<location filename="../src/filesextractor.cpp" line="499"/>
<location filename="../src/filesextractor.cpp" line="542"/>
<source>Unable to allocate memory</source>
<translation>Speicher konnte nicht zugewiesen werden</translation>
</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>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/filesextractor.cpp" line="515"/>
<location filename="../src/filesextractor.cpp" line="558"/>
<source>Error %1</source>
<translation>Fehler %1</translation>
</message>
<message>
<location filename="../src/filesextractor.cpp" line="542"/>
<location filename="../src/filesextractor.cpp" line="587"/>
<source>Unable to create directory %1</source>
<translation>Verzeichnis %1 konnte nicht erstellt werden</translation>
</message>
<message>
<location filename="../src/filesextractor.cpp" line="548"/>
<location filename="../src/filesextractor.cpp" line="595"/>
<source>Unable to set permissions of %1</source>
<translation>Berechtigungen für %1 konnten nicht gesetzt werden</translation>
</message>
<message>
<location filename="../src/filesextractor.cpp" line="663"/>
<location filename="../src/filesextractor.cpp" line="718"/>
<source>disk full</source>
<translation>Festplatte voll</translation>
</message>
<message>
<location filename="../src/filesextractor.cpp" line="667"/>
<location filename="../src/filesextractor.cpp" line="724"/>
<source>unable to write %1</source>
<translation>Konnte %1 nicht schreiben</translation>
</message>
<message>
<location filename="../src/filesextractor.cpp" line="671"/>
<location filename="../src/filesextractor.cpp" line="730"/>
<source>unable to read %1</source>
<translation>Konnte %1 nicht lesen</translation>
</message>
<message>
<location filename="../src/filesextractor.cpp" line="675"/>
<location filename="../src/filesextractor.cpp" line="736"/>
<source>failed (%1)</source>
<translation>Fehlgeschlagen (%1)</translation>
</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>
<translation>Konnte %1 nicht nach %2 entpacken: %3</translation>
</message>
<message>
<location filename="../src/filescopier.cpp" line="189"/>
<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>
<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>
<translation type="unfinished"></translation>
</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>
<name>QObject</name>

View file

@ -4,42 +4,42 @@
<context>
<name>CDownloader</name>
<message>
<location filename="../src/downloader.cpp" line="156"/>
<location filename="../src/downloader.cpp" line="158"/>
<source>File is larger (%1B) than expected (%2B)</source>
<translation type="unfinished"></translation>
</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>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/downloader.cpp" line="192"/>
<location filename="../src/downloader.cpp" line="204"/>
<source>Unable to write file</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/downloader.cpp" line="227"/>
<location filename="../src/downloader.cpp" line="239"/>
<source>Timeout</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/downloader.cpp" line="264"/>
<location filename="../src/downloader.cpp" line="287"/>
<source>Redirection URL is not defined</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/downloader.cpp" line="329"/>
<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"/>
<location filename="../src/downloader.cpp" line="357"/>
<source>Incorrect status code: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/downloader.cpp" line="382"/>
<location filename="../src/downloader.cpp" line="411"/>
<source>HTTP error: %1</source>
<translation type="unfinished"></translation>
</message>
@ -47,42 +47,42 @@
<context>
<name>CInstallDialog</name>
<message>
<location filename="../src/installdialog.cpp" line="80"/>
<location filename="../src/installdialog.cpp" line="81"/>
<source>Files will be installed to (requires %1):</source>
<translation type="unfinished"></translation>
</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>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/installdialog.cpp" line="138"/>
<location filename="../src/installdialog.cpp" line="148"/>
<source>Not enough free disk space</source>
<translation type="unfinished"></translation>
</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>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/installdialog.cpp" line="157"/>
<location filename="../src/installdialog.cpp" line="167"/>
<source>Unable to write in directory</source>
<translation type="unfinished"></translation>
</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>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/installdialog.cpp" line="166"/>
<location filename="../src/installdialog.cpp" line="176"/>
<source>Directory not empty</source>
<translation type="unfinished"></translation>
</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>
<translation type="unfinished"></translation>
</message>
@ -90,27 +90,27 @@
<context>
<name>CMainWindow</name>
<message>
<location filename="../src/mainwindow.cpp" line="270"/>
<location filename="../src/mainwindow.cpp" line="287"/>
<source>About %1</source>
<translation type="unfinished"></translation>
</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>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.cpp" line="274"/>
<location filename="../src/mainwindow.cpp" line="291"/>
<source>Author: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.cpp" line="275"/>
<location filename="../src/mainwindow.cpp" line="292"/>
<source>Copyright: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.cpp" line="276"/>
<location filename="../src/mainwindow.cpp" line="293"/>
<source>Support: %1</source>
<translation type="unfinished"></translation>
</message>
@ -118,42 +118,42 @@
<context>
<name>CMigrateDialog</name>
<message>
<location filename="../src/migratedialog.cpp" line="94"/>
<location filename="../src/migratedialog.cpp" line="72"/>
<source>Files will be installed to (requires %1):</source>
<translation type="unfinished"></translation>
</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>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/migratedialog.cpp" line="153"/>
<location filename="../src/migratedialog.cpp" line="139"/>
<source>Not enough free disk space</source>
<translation type="unfinished"></translation>
</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>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/migratedialog.cpp" line="172"/>
<location filename="../src/migratedialog.cpp" line="158"/>
<source>Unable to write in directory</source>
<translation type="unfinished"></translation>
</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>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/migratedialog.cpp" line="181"/>
<location filename="../src/migratedialog.cpp" line="167"/>
<source>Directory not empty</source>
<translation type="unfinished"></translation>
</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>
<translation type="unfinished"></translation>
</message>
@ -161,128 +161,128 @@
<context>
<name>COperationDialog</name>
<message>
<location filename="../src/operationdialog.cpp" line="275"/>
<location filename="../src/operationdialog.cpp" line="276"/>
<source>Updating profiles...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/operationdialog.cpp" line="428"/>
<location filename="../src/operationdialog.cpp" line="429"/>
<source>Confirmation</source>
<translation type="unfinished"></translation>
</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.
Are you sure to abort download?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/operationdialog.cpp" line="453"/>
<location filename="../src/operationdialog.cpp" line="454"/>
<source>%p% (%v/%m KiB)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/operationdialog.cpp" line="513"/>
<location filename="../src/operationdialog.cpp" line="514"/>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/operationdialog.cpp" line="534"/>
<location filename="../src/operationdialog.cpp" line="535"/>
<source>Downloading data required by server %1...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/operationdialog.cpp" line="545"/>
<location filename="../src/operationdialog.cpp" line="546"/>
<source>Extracting data required by server %1...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/operationdialog.cpp" line="569"/>
<location filename="../src/operationdialog.cpp" line="570"/>
<source>Downloading client required by server %1...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/operationdialog.cpp" line="580"/>
<location filename="../src/operationdialog.cpp" line="581"/>
<source>Extracting client required by server %1...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/operationdialog.cpp" line="602"/>
<location filename="../src/operationdialog.cpp" line="603"/>
<source>Copying data required by server %1...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/operationdialog.cpp" line="631"/>
<location filename="../src/operationdialog.cpp" line="632"/>
<source>Copying old profile to new location...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/operationdialog.cpp" line="661"/>
<location filename="../src/operationdialog.cpp" line="662"/>
<source>Extracting client to new location...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/operationdialog.cpp" line="726"/>
<location filename="../src/operationdialog.cpp" line="727"/>
<source>Copying installer to new location...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/operationdialog.cpp" line="847"/>
<location filename="../src/operationdialog.cpp" line="855"/>
<source>Cleaning obsolete files...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/operationdialog.cpp" line="862"/>
<location filename="../src/operationdialog.cpp" line="870"/>
<source>Creating default profile...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/operationdialog.cpp" line="921"/>
<location filename="../src/operationdialog.cpp" line="929"/>
<source>Creating shortcuts for profile %1...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/operationdialog.cpp" line="1007"/>
<location filename="../src/operationdialog.cpp" line="1015"/>
<source>Deleting client...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/operationdialog.cpp" line="1067"/>
<location filename="../src/operationdialog.cpp" line="1075"/>
<source>Adding profiles...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/operationdialog.cpp" line="1087"/>
<location filename="../src/operationdialog.cpp" line="1095"/>
<source>Deleting profiles...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/operationdialog.cpp" line="1140"/>
<location filename="../src/operationdialog.cpp" line="1148"/>
<source>Deleting installer...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/operationdialog.cpp" line="1192"/>
<location filename="../src/operationdialog.cpp" line="1200"/>
<source>Deleting downloaded files...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/operationdialog.cpp" line="812"/>
<location filename="../src/operationdialog.cpp" line="820"/>
<source>Uninstall old client</source>
<translation type="unfinished"></translation>
</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>
<translation type="unfinished"></translation>
</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>
<translation type="unfinished"></translation>
</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>
<translation type="unfinished"></translation>
</message>
@ -306,17 +306,17 @@ Are you sure to delete this profile?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/profilesdialog.cpp" line="277"/>
<location filename="../src/profilesdialog.cpp" line="278"/>
<source>Executables (*)</source>
<translation type="unfinished"></translation>
</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>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/profilesdialog.cpp" line="275"/>
<location filename="../src/profilesdialog.cpp" line="276"/>
<source>Executables (*.exe)</source>
<translation type="unfinished"></translation>
</message>
@ -574,77 +574,77 @@ Just press Continue button and follow the different steps until everything is do
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/profilesdialog.ui" line="72"/>
<location filename="../ui/profilesdialog.ui" line="75"/>
<source>Profile:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/profilesdialog.ui" line="86"/>
<location filename="../ui/profilesdialog.ui" line="89"/>
<source>Name:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/profilesdialog.ui" line="96"/>
<location filename="../ui/profilesdialog.ui" line="99"/>
<source>Server:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/profilesdialog.ui" line="107"/>
<location filename="../ui/profilesdialog.ui" line="110"/>
<source>Atys</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/profilesdialog.ui" line="112"/>
<location filename="../ui/profilesdialog.ui" line="115"/>
<source>Yubo</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/profilesdialog.ui" line="120"/>
<location filename="../ui/profilesdialog.ui" line="123"/>
<source>Executable:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/profilesdialog.ui" line="136"/>
<location filename="../ui/profilesdialog.ui" line="139"/>
<source>Default</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/profilesdialog.ui" line="143"/>
<location filename="../ui/profilesdialog.ui" line="146"/>
<source>Browse...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/profilesdialog.ui" line="152"/>
<location filename="../ui/profilesdialog.ui" line="155"/>
<source>Arguments:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/profilesdialog.ui" line="162"/>
<location filename="../ui/profilesdialog.ui" line="165"/>
<source>Comments:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/profilesdialog.ui" line="179"/>
<location filename="../ui/profilesdialog.ui" line="182"/>
<source>Directory:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/profilesdialog.ui" line="195"/>
<location filename="../ui/profilesdialog.ui" line="198"/>
<source>Open</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/profilesdialog.ui" line="204"/>
<location filename="../ui/profilesdialog.ui" line="207"/>
<source>Create shortcuts:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/profilesdialog.ui" line="213"/>
<location filename="../ui/profilesdialog.ui" line="216"/>
<source>Desktop</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/profilesdialog.ui" line="220"/>
<location filename="../ui/profilesdialog.ui" line="223"/>
<source>Start Menu</source>
<translation type="unfinished"></translation>
</message>
@ -652,117 +652,112 @@ Just press Continue button and follow the different steps until everything is do
<context>
<name>QApplication</name>
<message>
<location filename="../src/main.cpp" line="151"/>
<location filename="../src/main.cpp" line="163"/>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/main.cpp" line="151"/>
<location filename="../src/main.cpp" line="163"/>
<source>Unable to find ryzom_installer.ini</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/main.cpp" line="119"/>
<location filename="../src/main.cpp" line="123"/>
<source>Installation and launcher tool for Ryzom</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/main.cpp" line="122"/>
<location filename="../src/main.cpp" line="126"/>
<source>Uninstall</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/main.cpp" line="125"/>
<location filename="../src/main.cpp" line="129"/>
<source>Silent mode</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/main.cpp" line="128"/>
<location filename="../src/main.cpp" line="132"/>
<source>Version</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/main.cpp" line="131"/>
<location filename="../src/main.cpp" line="135"/>
<source>Install itself</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/filesextractor.cpp" line="322"/>
<location filename="../src/filesextractor.cpp" line="580"/>
<location filename="../src/filesextractor.cpp" line="324"/>
<location filename="../src/filesextractor.cpp" line="629"/>
<source>Unable to open %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/filesextractor.cpp" line="437"/>
<source>Unable to open output file</source>
<location filename="../src/filesextractor.cpp" line="471"/>
<source>Unable to open output file %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/filesextractor.cpp" line="446"/>
<source>Unable to write output file</source>
<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="495"/>
<location filename="../src/filesextractor.cpp" line="503"/>
<location filename="../src/filesextractor.cpp" line="538"/>
<location filename="../src/filesextractor.cpp" line="546"/>
<source>7zip decoder doesn&apos;t support this archive</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/filesextractor.cpp" line="499"/>
<location filename="../src/filesextractor.cpp" line="542"/>
<source>Unable to allocate memory</source>
<translation type="unfinished"></translation>
</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>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/filesextractor.cpp" line="515"/>
<location filename="../src/filesextractor.cpp" line="558"/>
<source>Error %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/filesextractor.cpp" line="542"/>
<location filename="../src/filesextractor.cpp" line="587"/>
<source>Unable to create directory %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/filesextractor.cpp" line="548"/>
<location filename="../src/filesextractor.cpp" line="595"/>
<source>Unable to set permissions of %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/filesextractor.cpp" line="663"/>
<location filename="../src/filesextractor.cpp" line="718"/>
<source>disk full</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/filesextractor.cpp" line="667"/>
<location filename="../src/filesextractor.cpp" line="724"/>
<source>unable to write %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/filesextractor.cpp" line="671"/>
<location filename="../src/filesextractor.cpp" line="730"/>
<source>unable to read %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/filesextractor.cpp" line="675"/>
<location filename="../src/filesextractor.cpp" line="736"/>
<source>failed (%1)</source>
<translation type="unfinished"></translation>
</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>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/filescopier.cpp" line="189"/>
<source>Unable to copy file %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/profile.cpp" line="58"/>
<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>
<translation type="unfinished"></translation>
</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>
<name>QObject</name>

View file

@ -4,42 +4,46 @@
<context>
<name>CDownloader</name>
<message>
<location filename="../src/downloader.cpp" line="156"/>
<location filename="../src/downloader.cpp" line="158"/>
<source>File is larger (%1B) than expected (%2B)</source>
<translation>Le fichier est plus volumineux (%1o) que prévu (%2o)</translation>
</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>
<translation>Il vous reste %1 octets de libre sur le disque, mais %2 octets sont nécessaires.</translation>
</message>
<message>
<location filename="../src/downloader.cpp" line="192"/>
<location filename="../src/downloader.cpp" line="204"/>
<source>Unable to write file</source>
<translation>Impossible de créer le fichier</translation>
</message>
<message>
<location filename="../src/downloader.cpp" line="227"/>
<location filename="../src/downloader.cpp" line="239"/>
<source>Timeout</source>
<translation>Délai expiré</translation>
</message>
<message>
<location filename="../src/downloader.cpp" line="264"/>
<location filename="../src/downloader.cpp" line="287"/>
<source>Redirection URL is not defined</source>
<translation>L&apos;URL de redirection n&apos;est pas définie</translation>
</message>
<message>
<location filename="../src/downloader.cpp" line="329"/>
<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>
<location filename="../src/downloader.cpp" line="336"/>
<location filename="../src/downloader.cpp" line="357"/>
<source>Incorrect status code: %1</source>
<translation>Code de statut incorrect : %1</translation>
</message>
<message>
<location filename="../src/downloader.cpp" line="382"/>
<location filename="../src/downloader.cpp" line="411"/>
<source>HTTP error: %1</source>
<translation>Errreur HTTP : %1</translation>
</message>
@ -59,7 +63,7 @@
<translation type="vanished">Internet (%1 à télécharger)</translation>
</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>
<translation>Les fichiers seront installés dans (%1 nécessaires) :</translation>
</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>
</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>
<translation>Veuillez choisir le répertoire Ryzom sera installé</translation>
</message>
@ -89,32 +93,32 @@
<translation type="vanished">Non défini</translation>
</message>
<message>
<location filename="../src/installdialog.cpp" line="138"/>
<location filename="../src/installdialog.cpp" line="148"/>
<source>Not enough free disk space</source>
<translation>Espace disque insuffisant</translation>
</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>
<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>
<location filename="../src/installdialog.cpp" line="157"/>
<location filename="../src/installdialog.cpp" line="167"/>
<source>Unable to write in directory</source>
<translation>Impossible d&apos;écrire dans le répertoire</translation>
</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>
<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>
<location filename="../src/installdialog.cpp" line="166"/>
<location filename="../src/installdialog.cpp" line="176"/>
<source>Directory not empty</source>
<translation>Répertoire non vide</translation>
</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>
<translation>Ce répertoire n&apos;est pas vide, veuillez en choisir un autre.</translation>
</message>
@ -126,27 +130,27 @@
<context>
<name>CMainWindow</name>
<message>
<location filename="../src/mainwindow.cpp" line="270"/>
<location filename="../src/mainwindow.cpp" line="287"/>
<source>About %1</source>
<translation>À propos de %1</translation>
</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>
<translation>Programme pour installer, télécharger et gérer les profils de Ryzom.</translation>
</message>
<message>
<location filename="../src/mainwindow.cpp" line="274"/>
<location filename="../src/mainwindow.cpp" line="291"/>
<source>Author: %1</source>
<translation>Auteur : %1</translation>
</message>
<message>
<location filename="../src/mainwindow.cpp" line="275"/>
<location filename="../src/mainwindow.cpp" line="292"/>
<source>Copyright: %1</source>
<translation>Copyright : %1</translation>
</message>
<message>
<location filename="../src/mainwindow.cpp" line="276"/>
<location filename="../src/mainwindow.cpp" line="293"/>
<source>Support: %1</source>
<translation>Assistance : %1</translation>
</message>
@ -154,42 +158,42 @@
<context>
<name>CMigrateDialog</name>
<message>
<location filename="../src/migratedialog.cpp" line="94"/>
<location filename="../src/migratedialog.cpp" line="72"/>
<source>Files will be installed to (requires %1):</source>
<translation>Les fichiers seront installés dans (%1 nécessaires) :</translation>
</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>
<translation>Veuillez choisir le répertoire installer Ryzom</translation>
</message>
<message>
<location filename="../src/migratedialog.cpp" line="153"/>
<location filename="../src/migratedialog.cpp" line="139"/>
<source>Not enough free disk space</source>
<translation>Espace disque insuffisant</translation>
</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>
<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>
<location filename="../src/migratedialog.cpp" line="172"/>
<location filename="../src/migratedialog.cpp" line="158"/>
<source>Unable to write in directory</source>
<translation>Impossible d&apos;écrire dans le répertoire</translation>
</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>
<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>
<location filename="../src/migratedialog.cpp" line="181"/>
<location filename="../src/migratedialog.cpp" line="167"/>
<source>Directory not empty</source>
<translation>Répertoire non vide</translation>
</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>
<translation>Ce répertoire n&apos;est pas vide, veuillez en choisir un autre.</translation>
</message>
@ -205,109 +209,109 @@
<translation type="vanished">Mettre à jour les profils</translation>
</message>
<message>
<location filename="../src/operationdialog.cpp" line="275"/>
<location filename="../src/operationdialog.cpp" line="276"/>
<source>Updating profiles...</source>
<translation>Mise à jour des profils...</translation>
</message>
<message>
<location filename="../src/operationdialog.cpp" line="428"/>
<location filename="../src/operationdialog.cpp" line="429"/>
<source>Confirmation</source>
<translation>Confirmation</translation>
</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.
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.
Êtes-vous sûr d&apos;interrompre le téléchargement ?</translation>
</message>
<message>
<location filename="../src/operationdialog.cpp" line="453"/>
<location filename="../src/operationdialog.cpp" line="454"/>
<source>%p% (%v/%m KiB)</source>
<translation>%p% (%v/%m Kio)</translation>
</message>
<message>
<location filename="../src/operationdialog.cpp" line="513"/>
<location filename="../src/operationdialog.cpp" line="514"/>
<source>Error</source>
<translation>Erreur</translation>
</message>
<message>
<location filename="../src/operationdialog.cpp" line="534"/>
<location filename="../src/operationdialog.cpp" line="535"/>
<source>Downloading data required by server %1...</source>
<translation>Téléchargement des données nécessaires pour le serveur %1...</translation>
</message>
<message>
<location filename="../src/operationdialog.cpp" line="545"/>
<location filename="../src/operationdialog.cpp" line="546"/>
<source>Extracting data required by server %1...</source>
<translation>Extraction des données nécessaires pour le serveur %1...</translation>
</message>
<message>
<location filename="../src/operationdialog.cpp" line="569"/>
<location filename="../src/operationdialog.cpp" line="570"/>
<source>Downloading client required by server %1...</source>
<translation>Téléchargement du client nécessaire pour le serveur %1...</translation>
</message>
<message>
<location filename="../src/operationdialog.cpp" line="580"/>
<location filename="../src/operationdialog.cpp" line="581"/>
<source>Extracting client required by server %1...</source>
<translation>Extraction du client nécessaire pour le serveur %1...</translation>
</message>
<message>
<location filename="../src/operationdialog.cpp" line="602"/>
<location filename="../src/operationdialog.cpp" line="603"/>
<source>Copying data required by server %1...</source>
<translation>Copie des données nécessaires pour le serveur %1...</translation>
</message>
<message>
<location filename="../src/operationdialog.cpp" line="631"/>
<location filename="../src/operationdialog.cpp" line="632"/>
<source>Copying old profile to new location...</source>
<translation>Copie de l&apos;ancien profil vers un nouvel emplacement...</translation>
</message>
<message>
<location filename="../src/operationdialog.cpp" line="661"/>
<location filename="../src/operationdialog.cpp" line="662"/>
<source>Extracting client to new location...</source>
<translation>Extraction du client vers un nouvel emplacement...</translation>
</message>
<message>
<location filename="../src/operationdialog.cpp" line="726"/>
<location filename="../src/operationdialog.cpp" line="727"/>
<source>Copying installer to new location...</source>
<translation>Copie de l&apos;installateur vers un nouvel emplacement...</translation>
</message>
<message>
<location filename="../src/operationdialog.cpp" line="847"/>
<location filename="../src/operationdialog.cpp" line="855"/>
<source>Cleaning obsolete files...</source>
<translation>Nettoyage des fichiers obsolètes...</translation>
</message>
<message>
<location filename="../src/operationdialog.cpp" line="862"/>
<location filename="../src/operationdialog.cpp" line="870"/>
<source>Creating default profile...</source>
<translation>Création du profil par défaut...</translation>
</message>
<message>
<location filename="../src/operationdialog.cpp" line="921"/>
<location filename="../src/operationdialog.cpp" line="929"/>
<source>Creating shortcuts for profile %1...</source>
<translation>Création des raccourcis pour le profil %1...</translation>
</message>
<message>
<location filename="../src/operationdialog.cpp" line="1007"/>
<location filename="../src/operationdialog.cpp" line="1015"/>
<source>Deleting client...</source>
<translation>Suppression du client...</translation>
</message>
<message>
<location filename="../src/operationdialog.cpp" line="1067"/>
<location filename="../src/operationdialog.cpp" line="1075"/>
<source>Adding profiles...</source>
<translation>Ajout des profils...</translation>
</message>
<message>
<location filename="../src/operationdialog.cpp" line="1087"/>
<location filename="../src/operationdialog.cpp" line="1095"/>
<source>Deleting profiles...</source>
<translation>Suppression des profils...</translation>
</message>
<message>
<location filename="../src/operationdialog.cpp" line="1140"/>
<location filename="../src/operationdialog.cpp" line="1148"/>
<source>Deleting installer...</source>
<translation>Suppression de l&apos;installateur...</translation>
</message>
<message>
<location filename="../src/operationdialog.cpp" line="1192"/>
<location filename="../src/operationdialog.cpp" line="1200"/>
<source>Deleting downloaded files...</source>
<translation>Suppression des fichiers téléchargés...</translation>
</message>
@ -356,12 +360,12 @@ Are you sure to abort download?</source>
<translation type="vanished">Copier l&apos;installateur vers un nouvel emplacement</translation>
</message>
<message>
<location filename="../src/operationdialog.cpp" line="812"/>
<location filename="../src/operationdialog.cpp" line="820"/>
<source>Uninstall old client</source>
<translation>Désinstaller l&apos;ancien client</translation>
</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>
<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>
@ -386,7 +390,7 @@ Are you sure to abort download?</source>
<translation type="vanished">Supprimer les fichiers du client</translation>
</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>
<translation>Impossible de supprimer les fichiers du client %1</translation>
</message>
@ -407,7 +411,7 @@ Are you sure to abort download?</source>
<translation type="vanished">Suppression du profil %1 en cours...</translation>
</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>
<translation>Impossible de supprimer les fichiers du profil %1</translation>
</message>
@ -440,17 +444,17 @@ Are you sure to delete this profile?</source>
Êtes-vous sûr de supprimer ce profil ?</translation>
</message>
<message>
<location filename="../src/profilesdialog.cpp" line="277"/>
<location filename="../src/profilesdialog.cpp" line="278"/>
<source>Executables (*)</source>
<translation>Exécutables (*)</translation>
</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>
<translation>Veuillez choisir l&apos;exécutable du client de Ryzom à lancer</translation>
</message>
<message>
<location filename="../src/profilesdialog.cpp" line="275"/>
<location filename="../src/profilesdialog.cpp" line="276"/>
<source>Executables (*.exe)</source>
<translation>Exécutables (*.exe)</translation>
</message>
@ -764,7 +768,7 @@ Vous n&apos;avez qu&apos;à cliquer sur Suivant et suivre les différentes étap
<translation>Supprimer</translation>
</message>
<message>
<location filename="../ui/profilesdialog.ui" line="72"/>
<location filename="../ui/profilesdialog.ui" line="75"/>
<source>Profile:</source>
<translation>Profil :</translation>
</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>
</message>
<message>
<location filename="../ui/profilesdialog.ui" line="86"/>
<location filename="../ui/profilesdialog.ui" line="89"/>
<source>Name:</source>
<translation>Nom :</translation>
</message>
<message>
<location filename="../ui/profilesdialog.ui" line="96"/>
<location filename="../ui/profilesdialog.ui" line="99"/>
<source>Server:</source>
<translation>Serveur :</translation>
</message>
<message>
<location filename="../ui/profilesdialog.ui" line="107"/>
<location filename="../ui/profilesdialog.ui" line="110"/>
<source>Atys</source>
<translation>Atys</translation>
</message>
<message>
<location filename="../ui/profilesdialog.ui" line="112"/>
<location filename="../ui/profilesdialog.ui" line="115"/>
<source>Yubo</source>
<translation>Yubo</translation>
</message>
<message>
<location filename="../ui/profilesdialog.ui" line="120"/>
<location filename="../ui/profilesdialog.ui" line="123"/>
<source>Executable:</source>
<translation>Exécutable :</translation>
</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>
</message>
<message>
<location filename="../ui/profilesdialog.ui" line="136"/>
<location filename="../ui/profilesdialog.ui" line="139"/>
<source>Default</source>
<translation>Défaut</translation>
</message>
<message>
<location filename="../ui/profilesdialog.ui" line="143"/>
<location filename="../ui/profilesdialog.ui" line="146"/>
<source>Browse...</source>
<translation>Parcourir...</translation>
</message>
<message>
<location filename="../ui/profilesdialog.ui" line="152"/>
<location filename="../ui/profilesdialog.ui" line="155"/>
<source>Arguments:</source>
<translation>Arguments :</translation>
</message>
<message>
<location filename="../ui/profilesdialog.ui" line="162"/>
<location filename="../ui/profilesdialog.ui" line="165"/>
<source>Comments:</source>
<translation>Commentaires :</translation>
</message>
<message>
<location filename="../ui/profilesdialog.ui" line="179"/>
<location filename="../ui/profilesdialog.ui" line="182"/>
<source>Directory:</source>
<translation>Répertoire :</translation>
</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>
</message>
<message>
<location filename="../ui/profilesdialog.ui" line="195"/>
<location filename="../ui/profilesdialog.ui" line="198"/>
<source>Open</source>
<translation>Ouvrir</translation>
</message>
<message>
<location filename="../ui/profilesdialog.ui" line="204"/>
<location filename="../ui/profilesdialog.ui" line="207"/>
<source>Create shortcuts:</source>
<translation>Créer les raccourcis :</translation>
</message>
<message>
<location filename="../ui/profilesdialog.ui" line="213"/>
<location filename="../ui/profilesdialog.ui" line="216"/>
<source>Desktop</source>
<translation>Bureau</translation>
</message>
<message>
<location filename="../ui/profilesdialog.ui" line="220"/>
<location filename="../ui/profilesdialog.ui" line="223"/>
<source>Start Menu</source>
<translation>Menu Démarrer</translation>
</message>
@ -854,116 +858,123 @@ Vous n&apos;avez qu&apos;à cliquer sur Suivant et suivre les différentes étap
<context>
<name>QApplication</name>
<message>
<location filename="../src/main.cpp" line="151"/>
<location filename="../src/main.cpp" line="163"/>
<source>Error</source>
<translation>Erreur</translation>
</message>
<message>
<location filename="../src/main.cpp" line="151"/>
<location filename="../src/main.cpp" line="163"/>
<source>Unable to find ryzom_installer.ini</source>
<translation>Impossible de trouver ryzom_installer.ini</translation>
</message>
<message>
<location filename="../src/main.cpp" line="119"/>
<location filename="../src/main.cpp" line="123"/>
<source>Installation and launcher tool for Ryzom</source>
<translation>Outil d&apos;installation et lanceur pour Ryzom</translation>
</message>
<message>
<location filename="../src/main.cpp" line="122"/>
<location filename="../src/main.cpp" line="126"/>
<source>Uninstall</source>
<translation>Désinstaller</translation>
</message>
<message>
<location filename="../src/main.cpp" line="125"/>
<location filename="../src/main.cpp" line="129"/>
<source>Silent mode</source>
<translation>Mode silencieux</translation>
</message>
<message>
<location filename="../src/main.cpp" line="128"/>
<location filename="../src/main.cpp" line="132"/>
<source>Version</source>
<translation>Version</translation>
</message>
<message>
<location filename="../src/main.cpp" line="131"/>
<location filename="../src/main.cpp" line="135"/>
<source>Install itself</source>
<translation>S&apos;auto-installer</translation>
</message>
<message>
<location filename="../src/filesextractor.cpp" line="322"/>
<location filename="../src/filesextractor.cpp" line="580"/>
<location filename="../src/filesextractor.cpp" line="324"/>
<location filename="../src/filesextractor.cpp" line="629"/>
<source>Unable to open %1</source>
<translation>Impossible d&apos;ouvrir %1</translation>
</message>
<message>
<location filename="../src/filesextractor.cpp" line="437"/>
<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>
<location filename="../src/filesextractor.cpp" line="446"/>
<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>
<location filename="../src/filesextractor.cpp" line="495"/>
<location filename="../src/filesextractor.cpp" line="503"/>
<location filename="../src/filesextractor.cpp" line="471"/>
<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>
<translation>Le décodeur 7zip n&apos;est pas compatible avec cette archive</translation>
</message>
<message>
<location filename="../src/filesextractor.cpp" line="499"/>
<location filename="../src/filesextractor.cpp" line="542"/>
<source>Unable to allocate memory</source>
<translation>Impossible d&apos;allouer la mémoire</translation>
</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>
<translation>Le fichier %1 est corrompu, impossible de le décompresser</translation>
</message>
<message>
<location filename="../src/filesextractor.cpp" line="515"/>
<location filename="../src/filesextractor.cpp" line="558"/>
<source>Error %1</source>
<translation>Erreur %1</translation>
</message>
<message>
<location filename="../src/filesextractor.cpp" line="542"/>
<location filename="../src/filesextractor.cpp" line="587"/>
<source>Unable to create directory %1</source>
<translation>Impossible de créer le répertoire %1</translation>
</message>
<message>
<location filename="../src/filesextractor.cpp" line="548"/>
<location filename="../src/filesextractor.cpp" line="595"/>
<source>Unable to set permissions of %1</source>
<translation>Impossible de définir les permissions de %1</translation>
</message>
<message>
<location filename="../src/filesextractor.cpp" line="663"/>
<location filename="../src/filesextractor.cpp" line="718"/>
<source>disk full</source>
<translation>disque plein</translation>
</message>
<message>
<location filename="../src/filesextractor.cpp" line="667"/>
<location filename="../src/filesextractor.cpp" line="724"/>
<source>unable to write %1</source>
<translation>impossible d&apos;écrire %1</translation>
</message>
<message>
<location filename="../src/filesextractor.cpp" line="671"/>
<location filename="../src/filesextractor.cpp" line="730"/>
<source>unable to read %1</source>
<translation>impossible de lire %1</translation>
</message>
<message>
<location filename="../src/filesextractor.cpp" line="675"/>
<location filename="../src/filesextractor.cpp" line="736"/>
<source>failed (%1)</source>
<translation>échec (%1)</translation>
</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>
<translation>Impossible d&apos;extraire %1 vers %2 : %3 </translation>
</message>
<message>
<location filename="../src/filescopier.cpp" line="189"/>
<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>
<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>
<translation>Le nom du profil %1 utilise un caractère invalide %2 à la position %3</translation>
</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>
<name>QObject</name>

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

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