mirror of
https://port.numenaute.org/aleajactaest/khanat-opennel-code.git
synced 2024-12-24 01:48:44 +00:00
Merge with develop
This commit is contained in:
parent
b8c25f7df9
commit
4bf0e1b0d9
106 changed files with 1227 additions and 1277 deletions
|
@ -77,7 +77,7 @@ MACRO(PCH_SET_COMPILE_FLAGS _target)
|
||||||
GET_DIRECTORY_PROPERTY(DEFINITIONS COMPILE_DEFINITIONS)
|
GET_DIRECTORY_PROPERTY(DEFINITIONS COMPILE_DEFINITIONS)
|
||||||
IF(DEFINITIONS)
|
IF(DEFINITIONS)
|
||||||
FOREACH(item ${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()
|
ENDFOREACH()
|
||||||
ENDIF()
|
ENDIF()
|
||||||
|
|
||||||
|
@ -91,14 +91,14 @@ MACRO(PCH_SET_COMPILE_FLAGS _target)
|
||||||
GET_DIRECTORY_PROPERTY(DEFINITIONS DIRECTORY ${CMAKE_SOURCE_DIR} COMPILE_DEFINITIONS)
|
GET_DIRECTORY_PROPERTY(DEFINITIONS DIRECTORY ${CMAKE_SOURCE_DIR} COMPILE_DEFINITIONS)
|
||||||
IF(DEFINITIONS)
|
IF(DEFINITIONS)
|
||||||
FOREACH(item ${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()
|
ENDFOREACH()
|
||||||
ENDIF()
|
ENDIF()
|
||||||
|
|
||||||
GET_DIRECTORY_PROPERTY(DEFINITIONS DIRECTORY ${CMAKE_SOURCE_DIR} COMPILE_DEFINITIONS_${_UPPER_BUILD})
|
GET_DIRECTORY_PROPERTY(DEFINITIONS DIRECTORY ${CMAKE_SOURCE_DIR} COMPILE_DEFINITIONS_${_UPPER_BUILD})
|
||||||
IF(DEFINITIONS)
|
IF(DEFINITIONS)
|
||||||
FOREACH(item ${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()
|
ENDFOREACH()
|
||||||
ENDIF()
|
ENDIF()
|
||||||
|
|
||||||
|
@ -122,14 +122,14 @@ MACRO(PCH_SET_COMPILE_FLAGS _target)
|
||||||
GET_TARGET_PROPERTY(DEFINITIONS ${_target} COMPILE_DEFINITIONS)
|
GET_TARGET_PROPERTY(DEFINITIONS ${_target} COMPILE_DEFINITIONS)
|
||||||
IF(DEFINITIONS)
|
IF(DEFINITIONS)
|
||||||
FOREACH(item ${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()
|
ENDFOREACH()
|
||||||
ENDIF()
|
ENDIF()
|
||||||
|
|
||||||
GET_TARGET_PROPERTY(DEFINITIONS ${_target} COMPILE_DEFINITIONS_${_UPPER_BUILD})
|
GET_TARGET_PROPERTY(DEFINITIONS ${_target} COMPILE_DEFINITIONS_${_UPPER_BUILD})
|
||||||
IF(DEFINITIONS)
|
IF(DEFINITIONS)
|
||||||
FOREACH(item ${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()
|
ENDFOREACH()
|
||||||
ENDIF()
|
ENDIF()
|
||||||
|
|
||||||
|
@ -176,10 +176,21 @@ MACRO(PCH_SET_COMPILE_FLAGS _target)
|
||||||
ENDIF()
|
ENDIF()
|
||||||
|
|
||||||
IF(CMAKE_VERSION VERSION_LESS "3.3.0")
|
IF(CMAKE_VERSION VERSION_LESS "3.3.0")
|
||||||
GET_DIRECTORY_PROPERTY(_directory_flags DEFINITIONS)
|
GET_DIRECTORY_PROPERTY(_DIRECTORY_FLAGS DEFINITIONS)
|
||||||
GET_DIRECTORY_PROPERTY(_directory_definitions DIRECTORY ${CMAKE_SOURCE_DIR} DEFINITIONS)
|
|
||||||
LIST(APPEND _FLAGS ${_directory_flags})
|
IF(_DIRECTORY_FLAGS)
|
||||||
LIST(APPEND _FLAGS ${_directory_definitions})
|
FOREACH(item ${_DIRECTORY_FLAGS})
|
||||||
|
LIST(APPEND _FLAGS "$<$<BOOL:${item}>:-D$<JOIN:${item},-D>>")
|
||||||
|
ENDFOREACH()
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
GET_DIRECTORY_PROPERTY(_DIRECTORY_DEFINITIONS DIRECTORY ${CMAKE_SOURCE_DIR} DEFINITIONS)
|
||||||
|
|
||||||
|
IF(_DIRECTORY_DEFINITIONS)
|
||||||
|
FOREACH(item ${_DIRECTORY_DEFINITIONS})
|
||||||
|
LIST(APPEND _FLAGS "$<$<BOOL:${item}>:-D$<JOIN:${item},-D>>")
|
||||||
|
ENDFOREACH()
|
||||||
|
ENDIF()
|
||||||
ENDIF()
|
ENDIF()
|
||||||
|
|
||||||
# Format definitions
|
# Format definitions
|
||||||
|
|
|
@ -870,9 +870,6 @@ MACRO(NL_SETUP_BUILD)
|
||||||
ELSE()
|
ELSE()
|
||||||
# Check wrong formats in printf-like functions
|
# Check wrong formats in printf-like functions
|
||||||
ADD_PLATFORM_FLAGS("-Wformat -Werror=format-security")
|
ADD_PLATFORM_FLAGS("-Wformat -Werror=format-security")
|
||||||
|
|
||||||
# Don't display invalid or unused command lines arguments by default (often too verbose)
|
|
||||||
ADD_PLATFORM_FLAGS("-Wno-invalid-command-line-argument -Wno-unused-command-line-argument")
|
|
||||||
ENDIF()
|
ENDIF()
|
||||||
|
|
||||||
IF(ANDROID)
|
IF(ANDROID)
|
||||||
|
|
|
@ -72,8 +72,8 @@ namespace NLGUI
|
||||||
bool link( NLMISC::CCDBNodeBranch *dbNode, const std::string &leafId, NLMISC::CCDBNodeLeaf *defaultLeaf = NULL );
|
bool link( NLMISC::CCDBNodeBranch *dbNode, const std::string &leafId, NLMISC::CCDBNodeLeaf *defaultLeaf = NULL );
|
||||||
|
|
||||||
/// float operations
|
/// float operations
|
||||||
void setDouble (double value) {setSInt64((sint64&) value);}
|
void setDouble(double value);
|
||||||
double getDouble () const {sint64 i = getSInt64(); return (double &) i; }
|
double getDouble() const;
|
||||||
void readDouble (const char* value, const std::string& id);
|
void readDouble (const char* value, const std::string& id);
|
||||||
|
|
||||||
/// sint32 operations
|
/// sint32 operations
|
||||||
|
|
|
@ -40,20 +40,20 @@ public:
|
||||||
|
|
||||||
|
|
||||||
/// Return the value of the property.
|
/// Return the value of the property.
|
||||||
inline sint64 getValue64() { return _Property; }
|
inline sint64 getValue64() const { return _Property; }
|
||||||
|
|
||||||
/// Set the value of the property (set '_Changed' flag with 'true').
|
/// Set the value of the property (set '_Changed' flag with 'true').
|
||||||
void setValue64 (sint64 prop);
|
void setValue64 (sint64 prop);
|
||||||
|
|
||||||
inline sint32 getValue32() { return *((sint32*)&_Property); }
|
inline sint32 getValue32() const { return (sint32)(_Property & 0xffffffff); }
|
||||||
void setValue32 (sint32 prop);
|
void setValue32 (sint32 prop);
|
||||||
inline sint16 getValue16() { return *((sint16*)&_Property); }
|
inline sint16 getValue16() const { return (sint16)(_Property & 0xffff); }
|
||||||
void setValue16 (sint16 prop);
|
void setValue16 (sint16 prop);
|
||||||
inline sint8 getValue8() { return *((sint8*)&_Property); }
|
inline sint8 getValue8() const { return (sint8)(_Property & 0xff); }
|
||||||
void setValue8 (sint8 prop);
|
void setValue8 (sint8 prop);
|
||||||
inline bool getValueBool() { return (_Property!=(sint64)0 ); }
|
inline bool getValueBool() const { return (_Property!=(sint64)0 ); }
|
||||||
void setValueBool (bool prop);
|
void setValueBool (bool prop);
|
||||||
inline CRGBA getValueRGBA()
|
inline CRGBA getValueRGBA() const
|
||||||
{
|
{
|
||||||
CRGBA col;
|
CRGBA col;
|
||||||
col.R = (uint8)(_Property&0xff);
|
col.R = (uint8)(_Property&0xff);
|
||||||
|
@ -65,11 +65,11 @@ public:
|
||||||
void setValueRGBA (const CRGBA &color);
|
void setValueRGBA (const CRGBA &color);
|
||||||
|
|
||||||
/// Return the value of the property before the database change
|
/// Return the value of the property before the database change
|
||||||
inline sint64 getOldValue64() { return _oldProperty; }
|
inline sint64 getOldValue64() const { return _oldProperty; }
|
||||||
inline sint32 getOldValue32() { return *((sint32*)&_oldProperty); }
|
inline sint32 getOldValue32() const { return (sint32)(_oldProperty & 0xffffffff); }
|
||||||
inline sint16 getOldValue16() { return *((sint16*)&_oldProperty); }
|
inline sint16 getOldValue16() const { return (sint16)(_oldProperty & 0xffff); }
|
||||||
inline sint8 getOldValue8() { return *((sint8*)&_oldProperty); }
|
inline sint8 getOldValue8() const { return (sint8)(_oldProperty & 0xff); }
|
||||||
inline bool getOldValueBool() { return (_oldProperty!=(sint64)0 ); }
|
inline bool getOldValueBool() const { return (_oldProperty!=(sint64)0 ); }
|
||||||
|
|
||||||
|
|
||||||
/// Return the type of the property.
|
/// Return the type of the property.
|
||||||
|
|
|
@ -478,6 +478,22 @@ template <class T> void explode (const T &src, const T &sep, std::vector<T> &res
|
||||||
while(pos != std::string::npos);
|
while(pos != std::string::npos);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Join a string (or ucstring) from a vector of strings with *sep* as separator. If sep can be more than 1 char, in this case,
|
||||||
|
* we find the entire sep to separator (it s not a set of possible separator)
|
||||||
|
*/
|
||||||
|
template <class T, class U> void join(const std::vector<T>& strings, const U& separator, T &res)
|
||||||
|
{
|
||||||
|
res.clear();
|
||||||
|
|
||||||
|
for (uint i = 0, len = strings.size(); i<len; ++i)
|
||||||
|
{
|
||||||
|
// add in separators before all but the first string
|
||||||
|
if (!res.empty()) res += separator;
|
||||||
|
|
||||||
|
// append next string
|
||||||
|
res += strings[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* All the code above is used to add our types (uint8, ...) in the stringstream (used by the toString() function).
|
/* All the code above is used to add our types (uint8, ...) in the stringstream (used by the toString() function).
|
||||||
* So we can use stringstream operator << and >> with all NeL simple types (except for ucchar and ucstring)
|
* So we can use stringstream operator << and >> with all NeL simple types (except for ucchar and ucstring)
|
||||||
|
|
|
@ -61,7 +61,7 @@ struct TMessageRecord
|
||||||
{
|
{
|
||||||
nlassert( stream.stringMode() );
|
nlassert( stream.stringMode() );
|
||||||
|
|
||||||
uint32 len;
|
uint32 len = 0;
|
||||||
std::string s_event;
|
std::string s_event;
|
||||||
stream.serial( UpdateCounter );
|
stream.serial( UpdateCounter );
|
||||||
if ( stream.isReading() )
|
if ( stream.isReading() )
|
||||||
|
|
|
@ -26,6 +26,12 @@ using namespace std;
|
||||||
|
|
||||||
namespace NLGUI
|
namespace NLGUI
|
||||||
{
|
{
|
||||||
|
// helper to convert double <> sint64
|
||||||
|
union C64BitsParts
|
||||||
|
{
|
||||||
|
sint64 i64;
|
||||||
|
double d;
|
||||||
|
};
|
||||||
|
|
||||||
bool CInterfaceProperty::link( CCDBNodeLeaf *dbNode )
|
bool CInterfaceProperty::link( CCDBNodeLeaf *dbNode )
|
||||||
{
|
{
|
||||||
|
@ -66,6 +72,20 @@ namespace NLGUI
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void CInterfaceProperty::setDouble(double value)
|
||||||
|
{
|
||||||
|
C64BitsParts parts;
|
||||||
|
parts.d = value;
|
||||||
|
setSInt64(parts.i64);
|
||||||
|
}
|
||||||
|
|
||||||
|
double CInterfaceProperty::getDouble() const
|
||||||
|
{
|
||||||
|
C64BitsParts parts;
|
||||||
|
parts.i64 = getSInt64();
|
||||||
|
return parts.d;
|
||||||
|
}
|
||||||
|
|
||||||
// *****************
|
// *****************
|
||||||
// sint64 operations
|
// sint64 operations
|
||||||
// *****************
|
// *****************
|
||||||
|
@ -104,10 +124,9 @@ namespace NLGUI
|
||||||
if ( isdigit(*ptr) || *ptr=='-')
|
if ( isdigit(*ptr) || *ptr=='-')
|
||||||
{
|
{
|
||||||
_VolatileValue = NLGUI::CDBManager::getInstance()->getDbProp(id);
|
_VolatileValue = NLGUI::CDBManager::getInstance()->getDbProp(id);
|
||||||
double buf;
|
C64BitsParts buf;
|
||||||
fromString(ptr, buf);
|
fromString(ptr, buf.d);
|
||||||
sint64 i = *(sint64*)&buf;
|
_VolatileValue->setValue64(buf.i64);
|
||||||
_VolatileValue->setValue64( i );
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
@ -632,6 +632,9 @@ CEvalNumExpr::TReturnState CEvalNumExpr::evalExpression (double &finalResult, TT
|
||||||
TOperator resultUnaryOp[InternalOperator];
|
TOperator resultUnaryOp[InternalOperator];
|
||||||
vector<TOperator> resultUnaryOpSup;
|
vector<TOperator> resultUnaryOpSup;
|
||||||
|
|
||||||
|
// init table
|
||||||
|
for (uint i = 0; i < (uint)InternalOperator; ++i) resultUnaryOp[i] = NotOperator;
|
||||||
|
|
||||||
// Current value
|
// Current value
|
||||||
double value;
|
double value;
|
||||||
|
|
||||||
|
|
|
@ -1387,13 +1387,10 @@ uint64 CSystemInfo::availableHDSpace (const string &filename)
|
||||||
std::string path = CFile::getPath(filename);
|
std::string path = CFile::getPath(filename);
|
||||||
|
|
||||||
#ifdef NL_OS_UNIX
|
#ifdef NL_OS_UNIX
|
||||||
struct stat stst;
|
|
||||||
struct statfs stfs;
|
struct statfs stfs;
|
||||||
|
if (::statfs(path.c_str(), &stfs) != 0) return 0;
|
||||||
|
|
||||||
if (::stat(path.c_str(), &stst) == -1) return 0;
|
return (uint64)(stfs.f_bavail * stfs.f_bsize);
|
||||||
if (::statfs(path.c_str(), &stfs) == -1) return 0;
|
|
||||||
|
|
||||||
return (uint64)(stfs.f_bavail * stst.st_blksize);
|
|
||||||
#else
|
#else
|
||||||
ULARGE_INTEGER freeSpace = {0};
|
ULARGE_INTEGER freeSpace = {0};
|
||||||
BOOL bRes = ::GetDiskFreeSpaceExW(utf8ToWide(path), &freeSpace, NULL, NULL);
|
BOOL bRes = ::GetDiskFreeSpaceExW(utf8ToWide(path), &freeSpace, NULL, NULL);
|
||||||
|
|
|
@ -212,8 +212,8 @@ namespace NLNET
|
||||||
{
|
{
|
||||||
// name is more deep, need to resurse
|
// name is more deep, need to resurse
|
||||||
parts.erase(parts.begin());
|
parts.erase(parts.begin());
|
||||||
CSString subName;
|
std::string subName;
|
||||||
subName.join(reinterpret_cast<CVectorSString&>(parts), ".");
|
join(parts, ".", subName);
|
||||||
sub->setParam(subName, value);
|
sub->setParam(subName, value);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
|
@ -53,7 +53,7 @@ bool CDatabaseConfig::init(const std::string &asset)
|
||||||
TPathString configPath = rootPath + "/database.cfg";
|
TPathString configPath = rootPath + "/database.cfg";
|
||||||
while (!CFile::fileExists(configPath))
|
while (!CFile::fileExists(configPath))
|
||||||
{
|
{
|
||||||
int sep = CFile::getLastSeparator(rootPath);
|
std::string::size_type sep = CFile::getLastSeparator(rootPath);
|
||||||
if (sep == string::npos)
|
if (sep == string::npos)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
|
|
@ -65,7 +65,7 @@ bool CProjectConfig::init(const std::string &asset, Flags flags, bool partial)
|
||||||
TPathString configPath = rootPath + "/nel.cfg";
|
TPathString configPath = rootPath + "/nel.cfg";
|
||||||
while (!CFile::fileExists(configPath))
|
while (!CFile::fileExists(configPath))
|
||||||
{
|
{
|
||||||
int sep = CFile::getLastSeparator(rootPath);
|
std::string::size_type sep = CFile::getLastSeparator(rootPath);
|
||||||
if (sep == string::npos)
|
if (sep == string::npos)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
@ -82,7 +82,7 @@ bool CProjectConfig::init(const std::string &asset, Flags flags, bool partial)
|
||||||
|
|
||||||
std::vector<TPathString> configRootPaths;
|
std::vector<TPathString> configRootPaths;
|
||||||
TPathString projectConfigPath;
|
TPathString projectConfigPath;
|
||||||
uint32 projectConfigModification;
|
uint32 projectConfigModification = 0;
|
||||||
std::string projectName;
|
std::string projectName;
|
||||||
if (partial)
|
if (partial)
|
||||||
{
|
{
|
||||||
|
|
|
@ -139,7 +139,7 @@ bool CMaxToLigo::loadLigoConfigFile (CLigoConfig& config, Interface& it, bool di
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
// Load the config file
|
// Load the config file
|
||||||
config.readConfigFile (sModulePath, false);
|
config.readConfigFile (tStrToUtf8(sModulePath), false);
|
||||||
|
|
||||||
// ok
|
// ok
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -151,7 +151,7 @@ Value* export_material_cf (Value** arg_list, int count)
|
||||||
nlassert (node);
|
nlassert (node);
|
||||||
|
|
||||||
// The second arg
|
// The second arg
|
||||||
const char *fileName = arg_list[1]->to_string();
|
const std::string fileName = tStrToUtf8(arg_list[1]->to_string());
|
||||||
|
|
||||||
// The third arg
|
// The third arg
|
||||||
bool checkOnly = (arg_list[2]->to_bool() != FALSE);
|
bool checkOnly = (arg_list[2]->to_bool() != FALSE);
|
||||||
|
@ -204,12 +204,7 @@ Value* export_material_cf (Value** arg_list, int count)
|
||||||
{
|
{
|
||||||
|
|
||||||
// Make a name for the zone
|
// Make a name for the zone
|
||||||
char drive[512];
|
std::string path = CFile::getPath(fileName) + CFile::getFilenameWithoutExtension(fileName) + ".zone";
|
||||||
char dir[512];
|
|
||||||
char name[512];
|
|
||||||
char path[512];
|
|
||||||
_splitpath (fileName, drive, dir, name, NULL);
|
|
||||||
_makepath (path, drive, dir, name, ".zone");
|
|
||||||
|
|
||||||
// Ok ?
|
// Ok ?
|
||||||
bool ok = true;
|
bool ok = true;
|
||||||
|
@ -322,7 +317,7 @@ Value* export_transition_cf (Value** arg_list, int count)
|
||||||
nlassert (is_array(nodes));
|
nlassert (is_array(nodes));
|
||||||
|
|
||||||
// The second arg
|
// The second arg
|
||||||
const char *fileName = arg_list[1]->to_string();
|
std::string fileName = tStrToUtf8(arg_list[1]->to_string());
|
||||||
|
|
||||||
// The second arg
|
// The second arg
|
||||||
string matFilename[2];
|
string matFilename[2];
|
||||||
|
@ -505,10 +500,7 @@ Value* export_transition_cf (Value** arg_list, int count)
|
||||||
for (zone=0; zone<CTransition::TransitionZoneCount; zone++)
|
for (zone=0; zone<CTransition::TransitionZoneCount; zone++)
|
||||||
{
|
{
|
||||||
// Final path
|
// Final path
|
||||||
char path[512];
|
std::string path = CFile::getPath(fileName) + toString("%s-%u", CFile::getFilenameWithoutExtension(fileName).c_str(), zone) + ".zone";
|
||||||
_splitpath (fileName, drive, dir, path, NULL);
|
|
||||||
sprintf (name, "%s-%d", path, zone);
|
|
||||||
_makepath (path, drive, dir, name, ".zone");
|
|
||||||
|
|
||||||
// Another the stream
|
// Another the stream
|
||||||
COFile outputfile2;
|
COFile outputfile2;
|
||||||
|
@ -1072,30 +1064,17 @@ Value* export_zone_cf (Value** arg_list, int count)
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Build a filename
|
// Build a filename
|
||||||
char drive[512];
|
std::string path = NLMISC::CFile::getPath(fileName);
|
||||||
char path[512];
|
std::string name = NLMISC::CFile::getFilenameWithoutExtension(fileName);
|
||||||
char finalpath[512];
|
|
||||||
char name[512];
|
|
||||||
char ext[512];
|
|
||||||
_splitpath (fileName.c_str(), drive, path, name, ext);
|
|
||||||
|
|
||||||
// Build the zone filename
|
// Build the zone filename
|
||||||
char outputFilenameZone[512];
|
std::string outputFilenameZone = path + "zones/" + name + ".zone";
|
||||||
strcpy (finalpath, path);
|
|
||||||
strcat (finalpath, "zones\\");
|
|
||||||
_makepath (outputFilenameZone, drive, finalpath, name, ".zone");
|
|
||||||
|
|
||||||
// Build the snap shot filename
|
// Build the snap shot filename
|
||||||
char outputFilenameSnapShot[512];
|
std::string outputFilenameSnapShot = path + "zonesBitmaps/" + name + ".tga";
|
||||||
strcpy (finalpath, path);
|
|
||||||
strcat (finalpath, "zoneBitmaps\\");
|
|
||||||
_makepath (outputFilenameSnapShot, drive, finalpath, name, ".tga");
|
|
||||||
|
|
||||||
// Build the ligozone filename
|
// Build the ligozone filename
|
||||||
char outputFilenameLigozone[512];
|
std::string outputFilenameLigozone = path + "zoneLigos/" + name + ".ligozone";
|
||||||
strcpy (finalpath, path);
|
|
||||||
strcat (finalpath, "zoneLigos\\");
|
|
||||||
_makepath (outputFilenameLigozone, drive, finalpath, name, ".ligozone");
|
|
||||||
|
|
||||||
// Build the zone
|
// Build the zone
|
||||||
CZone zone;
|
CZone zone;
|
||||||
|
@ -1179,12 +1158,12 @@ Value* export_zone_cf (Value** arg_list, int count)
|
||||||
if (weWantToMakeASnapshot)
|
if (weWantToMakeASnapshot)
|
||||||
{
|
{
|
||||||
CIFile fileFarBank;
|
CIFile fileFarBank;
|
||||||
char drive[512];
|
|
||||||
char path[512];
|
std::string path = NLMISC::CFile::getPath(GetBankPathName());
|
||||||
char name[512];
|
std::string name = NLMISC::CFile::getFilenameWithoutExtension(GetBankPathName());
|
||||||
char farBankPathName[512];
|
|
||||||
_splitpath (GetBankPathName ().c_str (), drive, path, name, NULL);
|
std::string farBankPathName = path + name + ".farbank";
|
||||||
_makepath (farBankPathName, drive, path, name, "farbank");
|
|
||||||
if (fileFarBank.open (farBankPathName))
|
if (fileFarBank.open (farBankPathName))
|
||||||
{
|
{
|
||||||
// Create an xml stream
|
// Create an xml stream
|
||||||
|
@ -1908,11 +1887,9 @@ Value* make_snapshot_cf (Value** arg_list, int count)
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Build a filename
|
// Build a filename
|
||||||
char drivetga[512];
|
std::string nametga = CFile::getFilenameWithoutExtension(fileName);
|
||||||
char pathtga[512];
|
std::string pathtga = CFile::getPath(fileName);
|
||||||
char nametga[512];
|
|
||||||
char exttga[512];
|
|
||||||
_splitpath (fileName.c_str(), drivetga, pathtga, nametga, exttga);
|
|
||||||
|
|
||||||
// Build the zone
|
// Build the zone
|
||||||
CZone zone;
|
CZone zone;
|
||||||
|
@ -1956,12 +1933,9 @@ Value* make_snapshot_cf (Value** arg_list, int count)
|
||||||
if (tileBank != NULL)
|
if (tileBank != NULL)
|
||||||
{
|
{
|
||||||
CIFile fileFarBank;
|
CIFile fileFarBank;
|
||||||
char drive[512];
|
std::string name = CFile::getFilenameWithoutExtension(GetBankPathName());
|
||||||
char path[512];
|
std::string farBankPathName = CFile::getPath(GetBankPathName()) + name + ".farbank";
|
||||||
char name[512];
|
|
||||||
char farBankPathName[512];
|
|
||||||
_splitpath (GetBankPathName ().c_str (), drive, path, name, NULL);
|
|
||||||
_makepath (farBankPathName, drive, path, name, "farbank");
|
|
||||||
if (fileFarBank.open (farBankPathName))
|
if (fileFarBank.open (farBankPathName))
|
||||||
{
|
{
|
||||||
// Create an xml stream
|
// Create an xml stream
|
||||||
|
@ -1974,8 +1948,7 @@ Value* make_snapshot_cf (Value** arg_list, int count)
|
||||||
if (MakeSnapShot (snapshot, *tileBank, *tileFarBank, xMin, xMax, yMin, yMax, config, errorInDialog))
|
if (MakeSnapShot (snapshot, *tileBank, *tileFarBank, xMin, xMax, yMin, yMax, config, errorInDialog))
|
||||||
{
|
{
|
||||||
// Build the snap shot filename
|
// Build the snap shot filename
|
||||||
char outputFilenameSnapShot[512];
|
std::string outputFilenameSnapShot = pathtga + nametga + ".tga";
|
||||||
_makepath (outputFilenameSnapShot, drivetga, pathtga, nametga, ".tga");
|
|
||||||
|
|
||||||
// Output the snap shot
|
// Output the snap shot
|
||||||
COFile outputSnapShot;
|
COFile outputSnapShot;
|
||||||
|
@ -2014,12 +1987,14 @@ Value* make_snapshot_cf (Value** arg_list, int count)
|
||||||
bankElm.addCategory (strlwr (categories[j].first), strlwr (categories[j].second));
|
bankElm.addCategory (strlwr (categories[j].first), strlwr (categories[j].second));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Catch exception
|
||||||
|
#if 0
|
||||||
// Write the zone
|
// Write the zone
|
||||||
COFile outputLigoZone;
|
COFile outputLigoZone;
|
||||||
|
std::string outputFilenameSnapShot = pathtga + nametga + ".tga";
|
||||||
_makepath (outputFilenameSnapShot, drivetga, pathtga, nametga, ".ligozone");
|
_makepath (outputFilenameSnapShot, drivetga, pathtga, nametga, ".ligozone");
|
||||||
|
|
||||||
// Catch exception
|
try
|
||||||
/*try
|
|
||||||
{
|
{
|
||||||
// Open the selected zone file
|
// Open the selected zone file
|
||||||
if (outputLigoZone.open (outputFilenameSnapShot))
|
if (outputLigoZone.open (outputFilenameSnapShot))
|
||||||
|
@ -2048,7 +2023,8 @@ Value* make_snapshot_cf (Value** arg_list, int count)
|
||||||
char tmp[512];
|
char tmp[512];
|
||||||
smprintf (tmp, 512, "Error while loading the file %s : %s", fileName, e.what());
|
smprintf (tmp, 512, "Error while loading the file %s : %s", fileName, e.what());
|
||||||
CMaxToLigo::errorMessage (tmp, "NeL Ligo export zone", *MAXScript_interface, errorInDialog);
|
CMaxToLigo::errorMessage (tmp, "NeL Ligo export zone", *MAXScript_interface, errorInDialog);
|
||||||
}*/
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
@ -262,8 +262,7 @@ void CAnimationSetDlg::refresh (BOOL update)
|
||||||
for (i=0; i<object->Saved.AnimationFileName.size(); i++)
|
for (i=0; i<object->Saved.AnimationFileName.size(); i++)
|
||||||
{
|
{
|
||||||
// Get the animation name
|
// Get the animation name
|
||||||
char name[512];
|
std::string name = NLMISC::CFile::getFilenameWithoutExtension(object->Saved.AnimationFileName[i]);
|
||||||
_splitpath (object->Saved.AnimationFileName[i].c_str(), NULL, NULL, name, NULL);
|
|
||||||
|
|
||||||
// Get the animation pointer
|
// Get the animation pointer
|
||||||
CAnimation *anim = object->AnimationSet.getAnimation (object->AnimationSet.getAnimationIdByName (name));
|
CAnimation *anim = object->AnimationSet.getAnimation (object->AnimationSet.getAnimationIdByName (name));
|
||||||
|
@ -314,8 +313,7 @@ void CAnimationSetDlg::refresh (BOOL update)
|
||||||
for (i=0; i<object->Saved.SWTFileName.size(); i++)
|
for (i=0; i<object->Saved.SWTFileName.size(); i++)
|
||||||
{
|
{
|
||||||
// Get the animation name
|
// Get the animation name
|
||||||
char name[512];
|
std::string name = NLMISC::CFile::getFilenameWithoutExtension(object->Saved.SWTFileName[i]);
|
||||||
_splitpath (object->Saved.SWTFileName[i].c_str(), NULL, NULL, name, NULL);
|
|
||||||
|
|
||||||
// Get the animation pointer
|
// Get the animation pointer
|
||||||
CSkeletonWeight *swt = object->AnimationSet.getSkeletonWeight (object->AnimationSet.getSkeletonWeightIdByName (name));
|
CSkeletonWeight *swt = object->AnimationSet.getSkeletonWeight (object->AnimationSet.getSkeletonWeightIdByName (name));
|
||||||
|
|
|
@ -84,21 +84,9 @@ bool CEditMorphMeshDlg::getShapeNameFromDlg(std::string &name)
|
||||||
CFileDialog fd(TRUE, _T(".shape"), _T("*.shape"), 0, NULL, this);
|
CFileDialog fd(TRUE, _T(".shape"), _T("*.shape"), 0, NULL, this);
|
||||||
if (fd.DoModal() == IDOK)
|
if (fd.DoModal() == IDOK)
|
||||||
{
|
{
|
||||||
// Add to the path
|
|
||||||
/*
|
|
||||||
char drive[256];
|
|
||||||
char dir[256];
|
|
||||||
char path[256];
|
|
||||||
char fname[256];
|
|
||||||
char ext[256];
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
// Add search path for the texture
|
// Add search path for the texture
|
||||||
/*
|
/*
|
||||||
_splitpath (fd.GetPathName(), drive, dir, fname, ext);
|
NLMISC::CPath::addSearchPath (NLMISC::CFile::getPath(tStrToUtf8(fd.GetPathName()));
|
||||||
_makepath (path, drive, dir, NULL, NULL);
|
|
||||||
NLMISC::CPath::addSearchPath (path);
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
name = tStrToUtf8(fd.GetPathName());
|
name = tStrToUtf8(fd.GetPathName());
|
||||||
|
|
|
@ -317,7 +317,7 @@ inline void CEditableRangeT<float>::value2CString(float value, CString &dest)
|
||||||
|
|
||||||
inline const TCHAR *CEditableRangeT<float>::string2value(const CString &value, float &result)
|
inline const TCHAR *CEditableRangeT<float>::string2value(const CString &value, float &result)
|
||||||
{
|
{
|
||||||
if (sscanf((LPCTSTR) value, "%f", &result) == 1)
|
if (NLMISC::fromString(tStrToUtf8(value), result))
|
||||||
{
|
{
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
@ -343,8 +343,8 @@ inline void CEditableRangeT<uint32>::value2CString(uint32 value, CString &dest)
|
||||||
|
|
||||||
inline const TCHAR *CEditableRangeT<uint32>::string2value(const CString &value, uint32 &result)
|
inline const TCHAR *CEditableRangeT<uint32>::string2value(const CString &value, uint32 &result)
|
||||||
{
|
{
|
||||||
uint32 tmp;
|
sint32 tmp;
|
||||||
if (sscanf((LPCTSTR) value, "%d", &tmp) == 1)
|
if (NLMISC::fromString(tStrToUtf8(value), tmp))
|
||||||
{
|
{
|
||||||
if (strchr((LPCTSTR) value, '-'))
|
if (strchr((LPCTSTR) value, '-'))
|
||||||
{
|
{
|
||||||
|
@ -379,8 +379,8 @@ inline void CEditableRangeT<sint32>::value2CString(sint32 value, CString &dest)
|
||||||
|
|
||||||
inline const TCHAR *CEditableRangeT<sint32>::string2value(const CString &value, sint32 &result)
|
inline const TCHAR *CEditableRangeT<sint32>::string2value(const CString &value, sint32 &result)
|
||||||
{
|
{
|
||||||
uint32 tmp;
|
sint32 tmp;
|
||||||
if (sscanf((LPCTSTR) value, "%d", &tmp) == 1)
|
if (NLMISC::fromString(tStrToUtf8(value), tmp))
|
||||||
{
|
{
|
||||||
result = tmp;
|
result = tmp;
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
|
@ -137,7 +137,7 @@ void CLocatedTargetDlg::OnRemoveTarget()
|
||||||
m_Targets.DeleteString(indexs[k] - k);
|
m_Targets.DeleteString(indexs[k] - k);
|
||||||
int l = m_AvailableTargets.AddString(utf8ToTStr(loc->getName()));
|
int l = m_AvailableTargets.AddString(utf8ToTStr(loc->getName()));
|
||||||
|
|
||||||
m_AvailableTargets.SetItemData(l, (DWORD) loc);
|
m_AvailableTargets.SetItemData(l, (DWORD_PTR) loc);
|
||||||
}
|
}
|
||||||
UpdateData(FALSE);
|
UpdateData(FALSE);
|
||||||
updateModifiedFlag();
|
updateModifiedFlag();
|
||||||
|
@ -159,8 +159,8 @@ BOOL CLocatedTargetDlg::OnInitDialog()
|
||||||
// fill the box thta tells us what the target are
|
// fill the box thta tells us what the target are
|
||||||
for(k = 0; k < nbTarg; ++k)
|
for(k = 0; k < nbTarg; ++k)
|
||||||
{
|
{
|
||||||
m_Targets.AddString(_LBTarget->getTarget(k)->getName().c_str() );
|
m_Targets.AddString(utf8ToTStr(_LBTarget->getTarget(k)->getName()));
|
||||||
m_Targets.SetItemData(k, (DWORD) _LBTarget->getTarget(k) );
|
m_Targets.SetItemData(k, (DWORD_PTR) _LBTarget->getTarget(k));
|
||||||
targetSet.insert(_LBTarget->getTarget(k));
|
targetSet.insert(_LBTarget->getTarget(k));
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -179,8 +179,8 @@ BOOL CLocatedTargetDlg::OnInitDialog()
|
||||||
{
|
{
|
||||||
if (targetSet.find(loc) == targetSet.end())
|
if (targetSet.find(loc) == targetSet.end())
|
||||||
{
|
{
|
||||||
int l = m_AvailableTargets.AddString(loc->getName().c_str() );
|
int l = m_AvailableTargets.AddString(utf8ToTStr(loc->getName()));
|
||||||
m_AvailableTargets.SetItemData(l, (DWORD) loc );
|
m_AvailableTargets.SetItemData(l, (DWORD_PTR) loc);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -94,22 +94,17 @@ void CMeshDlg::OnBrowseShape()
|
||||||
if (fd.DoModal() == IDOK)
|
if (fd.DoModal() == IDOK)
|
||||||
{
|
{
|
||||||
// Add to the path
|
// Add to the path
|
||||||
char drive[256];
|
std::string fullPath = tStrToUtf8(fd.GetPathName());
|
||||||
char dir[256];
|
std::string fname = NLMISC::CFile::getFilenameWithoutExtension(fullPath);
|
||||||
char path[256];
|
std::string ext = NLMISC::CFile::getExtension(fullPath);
|
||||||
char fname[256];
|
|
||||||
char ext[256];
|
|
||||||
|
|
||||||
|
|
||||||
// Add search path for the texture
|
// Add search path for the texture
|
||||||
_splitpath (fd.GetPathName(), drive, dir, fname, ext);
|
NLMISC::CPath::addSearchPath (NLMISC::CFile::getPath(fullPath));
|
||||||
_makepath (path, drive, dir, NULL, NULL);
|
|
||||||
NLMISC::CPath::addSearchPath (path);
|
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
_ShapeParticle->setShape(std::string(fname) + ext);
|
_ShapeParticle->setShape(fname + "." + ext);
|
||||||
m_ShapeName = (std::string(fname) + ext).c_str();
|
m_ShapeName = utf8ToTStr(fname + "." + ext);
|
||||||
touchPSState();
|
touchPSState();
|
||||||
}
|
}
|
||||||
catch (const NLMISC::Exception &e)
|
catch (const NLMISC::Exception &e)
|
||||||
|
@ -162,7 +157,7 @@ void CMeshDlg::updateForMorph()
|
||||||
GetDlgItem(IDC_SHAPE_NAME)->EnableWindow(!enable);
|
GetDlgItem(IDC_SHAPE_NAME)->EnableWindow(!enable);
|
||||||
if (!enable)
|
if (!enable)
|
||||||
{
|
{
|
||||||
m_ShapeName = cm->getShape().c_str();
|
m_ShapeName = utf8ToTStr(cm->getShape());
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
@ -188,6 +188,7 @@ void CMultiTexDlg::readValues(bool alternate)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
GetDlgItem(IDC_BUMP_FACTOR)->SetWindowText(utf8ToTStr(NLMISC::toString("%.3f", _MTP->getBumpFactor())));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -206,7 +207,6 @@ void CMultiTexDlg::writeValues(bool alternate)
|
||||||
TCHAR u1[10], u2[10], v1[10], v2[10];
|
TCHAR u1[10], u2[10], v1[10], v2[10];
|
||||||
NLMISC::CVector2f vs1, vs2;
|
NLMISC::CVector2f vs1, vs2;
|
||||||
|
|
||||||
|
|
||||||
if (!alternate)
|
if (!alternate)
|
||||||
{
|
{
|
||||||
GetDlgItem(IDC_U_SPEED_1)->GetWindowText(u1, 10);
|
GetDlgItem(IDC_U_SPEED_1)->GetWindowText(u1, 10);
|
||||||
|
|
|
@ -852,8 +852,8 @@ BOOL CParticleTreeCtrl::OnCmdMsg(UINT nID, int nCode, void* pExtra, AFX_CMDHA
|
||||||
nt = new CNodeType(nt->Loc, objIndex);
|
nt = new CNodeType(nt->Loc, objIndex);
|
||||||
_NodeTypes.push_back(nt);
|
_NodeTypes.push_back(nt);
|
||||||
// insert the element in the tree
|
// insert the element in the tree
|
||||||
HTREEITEM root = InsertItem(TVIF_IMAGE | TVIF_SELECTEDIMAGE | TVIF_PARAM | TVIF_TEXT, "instance", PSIconLocatedInstance, PSIconLocatedInstance, 0, 0, (LPARAM) nt, GetSelectedItem(), TVI_LAST);
|
HTREEITEM root = InsertItem(TVIF_IMAGE | TVIF_SELECTEDIMAGE | TVIF_PARAM | TVIF_TEXT, _T("instance"), PSIconLocatedInstance, PSIconLocatedInstance, 0, 0, (LPARAM) nt, GetSelectedItem(), TVI_LAST);
|
||||||
SetItemData(root, (DWORD) nt);
|
SetItemData(root, (DWORD_PTR) nt);
|
||||||
Invalidate();
|
Invalidate();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -159,7 +159,7 @@ void CPickSound::OnDblclkList()
|
||||||
stopCurrSource();
|
stopCurrSource();
|
||||||
CString sName;
|
CString sName;
|
||||||
m_NameList.GetText(curSel, sName);
|
m_NameList.GetText(curSel, sName);
|
||||||
_CurrSource = CSoundSystem::create(std::string( (LPCTSTR) sName));
|
_CurrSource = CSoundSystem::create(tStrToUtf8(sName));
|
||||||
}
|
}
|
||||||
|
|
||||||
//========================================================================================
|
//========================================================================================
|
||||||
|
|
|
@ -178,8 +178,8 @@ BOOL CPSMoverDlg::OnInitDialog()
|
||||||
{
|
{
|
||||||
if (dynamic_cast<NL3D::IPSMover *>(_EditedLocated->getBoundObject(k)))
|
if (dynamic_cast<NL3D::IPSMover *>(_EditedLocated->getBoundObject(k)))
|
||||||
{
|
{
|
||||||
uint insertedLine = m_SubComponentCtrl.AddString(_EditedLocated->getBoundObject(k)->getName().c_str());
|
uint insertedLine = m_SubComponentCtrl.AddString(utf8ToTStr(_EditedLocated->getBoundObject(k)->getName()));
|
||||||
m_SubComponentCtrl.SetItemData(insertedLine, (DWORD) _EditedLocated->getBoundObject(k));
|
m_SubComponentCtrl.SetItemData(insertedLine, (DWORD_PTR) _EditedLocated->getBoundObject(k));
|
||||||
++nbCandidates;
|
++nbCandidates;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -843,13 +843,13 @@ void CSkeletonScaleDlg::OnSsdButtonSaveas()
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// choose the file
|
// choose the file
|
||||||
CFileDialog fd(FALSE, "skel", _SkeletonFileName.c_str(), OFN_OVERWRITEPROMPT, "SkelFiles (*.skel)|*.skel|All Files (*.*)|*.*||", this) ;
|
CFileDialog fd(FALSE, _T("skel"), utf8ToTStr(_SkeletonFileName), OFN_OVERWRITEPROMPT, _T("SkelFiles (*.skel)|*.skel|All Files (*.*)|*.*||"), this) ;
|
||||||
fd.m_ofn.lpstrTitle= "Save As Skeleton";
|
fd.m_ofn.lpstrTitle = _T("Save As Skeleton");
|
||||||
if (fd.DoModal() == IDOK)
|
if (fd.DoModal() == IDOK)
|
||||||
{
|
{
|
||||||
NLMISC::COFile f;
|
NLMISC::COFile f;
|
||||||
|
|
||||||
if( f.open((const char*)fd.GetPathName()) )
|
if( f.open(tStrToUtf8(fd.GetPathName())) )
|
||||||
{
|
{
|
||||||
if(saveCurrentInStream(f))
|
if(saveCurrentInStream(f))
|
||||||
{
|
{
|
||||||
|
@ -859,7 +859,7 @@ void CSkeletonScaleDlg::OnSsdButtonSaveas()
|
||||||
}
|
}
|
||||||
|
|
||||||
// bkup the valid fileName (new file edited)
|
// bkup the valid fileName (new file edited)
|
||||||
_SkeletonFileName= (const char*)fd.GetPathName();
|
_SkeletonFileName= tStrToUtf8(fd.GetPathName());
|
||||||
_StaticFileName= _SkeletonFileName.c_str();
|
_StaticFileName= _SkeletonFileName.c_str();
|
||||||
UpdateData(FALSE);
|
UpdateData(FALSE);
|
||||||
}
|
}
|
||||||
|
|
|
@ -196,7 +196,7 @@ void CVegetableDlg::updateCurSelVegetableName()
|
||||||
_Vegetables[id].updateVegetableName();
|
_Vegetables[id].updateVegetableName();
|
||||||
// replace name in the listBox: must delete, and re-insert
|
// replace name in the listBox: must delete, and re-insert
|
||||||
VegetableList.DeleteString(id);
|
VegetableList.DeleteString(id);
|
||||||
VegetableList.InsertString(id, _Vegetables[id].VegetableName.c_str());
|
VegetableList.InsertString(id, utf8ToTStr(_Vegetables[id].VegetableName));
|
||||||
VegetableList.SetCurSel(id);
|
VegetableList.SetCurSel(id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -349,14 +349,14 @@ bool CVegetableDlg::loadVegetableSet(NL3D::CTileVegetableDesc &vegetSet, const
|
||||||
|
|
||||||
ok= true;
|
ok= true;
|
||||||
|
|
||||||
if( f.open((const char*)fd.GetPathName()) )
|
if( f.open(tStrToUtf8(fd.GetPathName())))
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
// read the vegetable
|
// read the vegetable
|
||||||
f.serial(vegetSet);
|
f.serial(vegetSet);
|
||||||
// bkup fileName.
|
// bkup fileName.
|
||||||
_LastVegetSetName= (const char*)fd.GetFileName();
|
_LastVegetSetName = tStrToUtf8(fd.GetFileName());
|
||||||
}
|
}
|
||||||
catch(const NLMISC::EStream &)
|
catch(const NLMISC::EStream &)
|
||||||
{
|
{
|
||||||
|
@ -439,7 +439,7 @@ void CVegetableDlg::appendVegetableSet(NL3D::CTileVegetableDesc &vegetSet)
|
||||||
_Vegetables[id].initVegetable(veget);
|
_Vegetables[id].initVegetable(veget);
|
||||||
|
|
||||||
// update view
|
// update view
|
||||||
VegetableList.AddString(_Vegetables[id].VegetableName.c_str());
|
VegetableList.AddString(utf8ToTStr(_Vegetables[id].VegetableName));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -529,7 +529,7 @@ void CVegetableDlg::OnButtonVegetableAdd()
|
||||||
_Vegetables[id].initDefaultVegetable();
|
_Vegetables[id].initDefaultVegetable();
|
||||||
|
|
||||||
// update view
|
// update view
|
||||||
VegetableList.AddString(_Vegetables[id].VegetableName.c_str());
|
VegetableList.AddString(utf8ToTStr(_Vegetables[id].VegetableName));
|
||||||
|
|
||||||
// update 3D view
|
// update 3D view
|
||||||
refreshVegetableDisplay();
|
refreshVegetableDisplay();
|
||||||
|
@ -559,7 +559,7 @@ void CVegetableDlg::OnButtonVegetableInsert()
|
||||||
_Vegetables[id].initDefaultVegetable();
|
_Vegetables[id].initDefaultVegetable();
|
||||||
|
|
||||||
// update view
|
// update view
|
||||||
VegetableList.InsertString(id, _Vegetables[id].VegetableName.c_str());
|
VegetableList.InsertString(id, utf8ToTStr(_Vegetables[id].VegetableName));
|
||||||
|
|
||||||
// update 3D view
|
// update 3D view
|
||||||
refreshVegetableDisplay();
|
refreshVegetableDisplay();
|
||||||
|
@ -611,7 +611,7 @@ void CVegetableDlg::OnButtonVegetableLoadDesc()
|
||||||
{
|
{
|
||||||
NLMISC::CIFile f;
|
NLMISC::CIFile f;
|
||||||
|
|
||||||
if( f.open((const char*)fd.GetPathName()) )
|
if( f.open(tStrToUtf8(fd.GetPathName())) )
|
||||||
{
|
{
|
||||||
NL3D::CVegetable veget;
|
NL3D::CVegetable veget;
|
||||||
try
|
try
|
||||||
|
@ -624,7 +624,7 @@ void CVegetableDlg::OnButtonVegetableLoadDesc()
|
||||||
_Vegetables[id].initVegetable(veget);
|
_Vegetables[id].initVegetable(veget);
|
||||||
|
|
||||||
// update view
|
// update view
|
||||||
VegetableList.AddString(_Vegetables[id].VegetableName.c_str());
|
VegetableList.AddString(utf8ToTStr(_Vegetables[id].VegetableName));
|
||||||
|
|
||||||
// update 3D view
|
// update 3D view
|
||||||
refreshVegetableDisplay();
|
refreshVegetableDisplay();
|
||||||
|
@ -651,13 +651,13 @@ void CVegetableDlg::OnButtonVegetableSaveDesc()
|
||||||
|
|
||||||
std::string fileName= _Vegetables[id].VegetableName + ".vegetdesc";
|
std::string fileName= _Vegetables[id].VegetableName + ".vegetdesc";
|
||||||
|
|
||||||
CFileDialog fd(FALSE, "vegetdesc", fileName.c_str(), OFN_OVERWRITEPROMPT, "VegetDescFiles (*.vegetdesc)|*.vegetdesc|All Files (*.*)|*.*||", this) ;
|
CFileDialog fd(FALSE, _T("vegetdesc"), utf8ToTStr(fileName), OFN_OVERWRITEPROMPT, _T("VegetDescFiles (*.vegetdesc)|*.vegetdesc|All Files (*.*)|*.*||"), this) ;
|
||||||
fd.m_ofn.lpstrTitle= "Save Vegetable Descriptor";
|
fd.m_ofn.lpstrTitle = _T("Save Vegetable Descriptor");
|
||||||
if (fd.DoModal() == IDOK)
|
if (fd.DoModal() == IDOK)
|
||||||
{
|
{
|
||||||
NLMISC::COFile f;
|
NLMISC::COFile f;
|
||||||
|
|
||||||
if( f.open((const char*)fd.GetPathName()) )
|
if( f.open(tStrToUtf8(fd.GetPathName())) )
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
@ -722,13 +722,13 @@ void CVegetableDlg::OnButtonVegetableSaveSet()
|
||||||
buildVegetableSet(vegetSet);
|
buildVegetableSet(vegetSet);
|
||||||
|
|
||||||
// Then try to save it.
|
// Then try to save it.
|
||||||
CFileDialog fd(FALSE, "vegetset", _LastVegetSetName.c_str(), OFN_OVERWRITEPROMPT, "VegetSetFiles (*.vegetset)|*.vegetset|All Files (*.*)|*.*||", this) ;
|
CFileDialog fd(FALSE, _T("vegetset"), utf8ToTStr(_LastVegetSetName), OFN_OVERWRITEPROMPT, _T("VegetSetFiles (*.vegetset)|*.vegetset|All Files (*.*)|*.*||"), this) ;
|
||||||
fd.m_ofn.lpstrTitle= "Save Vegetable Set";
|
fd.m_ofn.lpstrTitle = _T("Save Vegetable Set");
|
||||||
if (fd.DoModal() == IDOK)
|
if (fd.DoModal() == IDOK)
|
||||||
{
|
{
|
||||||
NLMISC::COFile f;
|
NLMISC::COFile f;
|
||||||
|
|
||||||
if( f.open((const char*)fd.GetPathName()) )
|
if( f.open(tStrToUtf8(fd.GetPathName())) )
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
|
|
@ -33,7 +33,7 @@ void CDirectEditableRangeFloat::init(uint32 x, uint32 y, CWnd *pParent)
|
||||||
|
|
||||||
CRect rect;
|
CRect rect;
|
||||||
rect.SetRect(x, y+10, x+dx, y+25);
|
rect.SetRect(x, y+10, x+dx, y+25);
|
||||||
_StaticText.Create(_Title.c_str(), WS_CHILD | WS_VISIBLE, rect, pParent);
|
_StaticText.Create(utf8ToTStr(_Title), WS_CHILD | WS_VISIBLE, rect, pParent);
|
||||||
_StaticText.SetFont(pParent->GetFont());
|
_StaticText.SetFont(pParent->GetFont());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -154,7 +154,7 @@ BOOL CVegetableNoiseValueDlg::OnInitDialog()
|
||||||
|
|
||||||
|
|
||||||
// Set the name.
|
// Set the name.
|
||||||
NoiseValueName.SetWindowText(_TitleName.c_str());
|
NoiseValueName.SetWindowText(utf8ToTStr(_TitleName));
|
||||||
|
|
||||||
|
|
||||||
// if previously setuped, setup now the noiseValue.
|
// if previously setuped, setup now the noiseValue.
|
||||||
|
@ -264,7 +264,5 @@ void CVegetableNoiseValueDlg::applyScaleSlider(sint scrollValue)
|
||||||
_RandValue->updateValueFromReader();
|
_RandValue->updateValueFromReader();
|
||||||
|
|
||||||
// update marker text
|
// update marker text
|
||||||
char str[256];
|
StaticScaleMarker.SetWindowText(utf8ToTStr(NLMISC::toString("%d%%", (sint)(factor * 100))));
|
||||||
sprintf(str, "%d%%", (sint)(factor*100));
|
|
||||||
StaticScaleMarker.SetWindowText(str);
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -63,7 +63,7 @@ BOOL CVegetableSelectDlg::OnInitDialog()
|
||||||
uint num= _VegetableDlg->getNumVegetables();
|
uint num= _VegetableDlg->getNumVegetables();
|
||||||
for(uint i=0; i<num; i++)
|
for(uint i=0; i<num; i++)
|
||||||
{
|
{
|
||||||
VegetableList.AddString(_VegetableDlg->getVegetableName(i).c_str());
|
VegetableList.AddString(utf8ToTStr(_VegetableDlg->getVegetableName(i)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return TRUE; // return TRUE unless you set the focus to a control
|
return TRUE; // return TRUE unless you set the focus to a control
|
||||||
|
|
|
@ -70,26 +70,22 @@ END_MESSAGE_MAP()
|
||||||
void CVegetableWindDlg::updateView()
|
void CVegetableWindDlg::updateView()
|
||||||
{
|
{
|
||||||
float a;
|
float a;
|
||||||
char str[256];
|
|
||||||
|
|
||||||
// update Power.
|
// update Power.
|
||||||
a= _ObjViewer->getVegetableWindPower();
|
a= _ObjViewer->getVegetableWindPower();
|
||||||
sprintf(str, "%.2f", a);
|
StaticPower.SetWindowText(utf8ToTStr(NLMISC::toString("%.2f", a)));
|
||||||
StaticPower.SetWindowText(str);
|
|
||||||
NLMISC::clamp(a, 0, NL_VEGETABLE_EDIT_WIND_MAX_POWER);
|
NLMISC::clamp(a, 0, NL_VEGETABLE_EDIT_WIND_MAX_POWER);
|
||||||
SliderPower.SetPos((sint)(a*NL_VEGETABLE_EDIT_WIND_SLIDER_RANGE / NL_VEGETABLE_EDIT_WIND_MAX_POWER));
|
SliderPower.SetPos((sint)(a*NL_VEGETABLE_EDIT_WIND_SLIDER_RANGE / NL_VEGETABLE_EDIT_WIND_MAX_POWER));
|
||||||
|
|
||||||
// update BendStart.
|
// update BendStart.
|
||||||
a= _ObjViewer->getVegetableWindBendStart();
|
a= _ObjViewer->getVegetableWindBendStart();
|
||||||
sprintf(str, "%.2f", a);
|
StaticBendStart.SetWindowText(utf8ToTStr(NLMISC::toString("%.2f", a)));
|
||||||
StaticBendStart.SetWindowText(str);
|
|
||||||
NLMISC::clamp(a, 0, NL_VEGETABLE_EDIT_WIND_MAX_BENDSTART);
|
NLMISC::clamp(a, 0, NL_VEGETABLE_EDIT_WIND_MAX_BENDSTART);
|
||||||
SliderBendStart.SetPos((sint)(a*NL_VEGETABLE_EDIT_WIND_SLIDER_RANGE / NL_VEGETABLE_EDIT_WIND_MAX_BENDSTART));
|
SliderBendStart.SetPos((sint)(a*NL_VEGETABLE_EDIT_WIND_SLIDER_RANGE / NL_VEGETABLE_EDIT_WIND_MAX_BENDSTART));
|
||||||
|
|
||||||
// update Frequency.
|
// update Frequency.
|
||||||
a= _ObjViewer->getVegetableWindFrequency();
|
a= _ObjViewer->getVegetableWindFrequency();
|
||||||
sprintf(str, "%.2f", a);
|
StaticFrequency.SetWindowText(utf8ToTStr(NLMISC::toString("%.2f", a)));
|
||||||
StaticFrequency.SetWindowText(str);
|
|
||||||
NLMISC::clamp(a, 0, NL_VEGETABLE_EDIT_WIND_MAX_FREQUENCY);
|
NLMISC::clamp(a, 0, NL_VEGETABLE_EDIT_WIND_MAX_FREQUENCY);
|
||||||
SliderFrequency.SetPos((sint)(a*NL_VEGETABLE_EDIT_WIND_SLIDER_RANGE / NL_VEGETABLE_EDIT_WIND_MAX_FREQUENCY));
|
SliderFrequency.SetPos((sint)(a*NL_VEGETABLE_EDIT_WIND_SLIDER_RANGE / NL_VEGETABLE_EDIT_WIND_MAX_FREQUENCY));
|
||||||
|
|
||||||
|
@ -129,28 +125,24 @@ void CVegetableWindDlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBa
|
||||||
&& nSBCode==SB_THUMBPOSITION || nSBCode==SB_THUMBTRACK)
|
&& nSBCode==SB_THUMBPOSITION || nSBCode==SB_THUMBTRACK)
|
||||||
{
|
{
|
||||||
float a;
|
float a;
|
||||||
char str[256];
|
|
||||||
if(sliderCtrl == &SliderPower)
|
if(sliderCtrl == &SliderPower)
|
||||||
{
|
{
|
||||||
a= (float)nPos * NL_VEGETABLE_EDIT_WIND_MAX_POWER / NL_VEGETABLE_EDIT_WIND_SLIDER_RANGE;
|
a= (float)nPos * NL_VEGETABLE_EDIT_WIND_MAX_POWER / NL_VEGETABLE_EDIT_WIND_SLIDER_RANGE;
|
||||||
_ObjViewer->setVegetableWindPower(a);
|
_ObjViewer->setVegetableWindPower(a);
|
||||||
sprintf(str, "%.2f", a);
|
StaticPower.SetWindowText(utf8ToTStr(NLMISC::toString("%.2f", a)));
|
||||||
StaticPower.SetWindowText(str);
|
|
||||||
}
|
}
|
||||||
else if(sliderCtrl == &SliderBendStart)
|
else if(sliderCtrl == &SliderBendStart)
|
||||||
{
|
{
|
||||||
a= (float)nPos * NL_VEGETABLE_EDIT_WIND_MAX_BENDSTART / NL_VEGETABLE_EDIT_WIND_SLIDER_RANGE;
|
a= (float)nPos * NL_VEGETABLE_EDIT_WIND_MAX_BENDSTART / NL_VEGETABLE_EDIT_WIND_SLIDER_RANGE;
|
||||||
_ObjViewer->setVegetableWindBendStart(a);
|
_ObjViewer->setVegetableWindBendStart(a);
|
||||||
sprintf(str, "%.2f", a);
|
StaticBendStart.SetWindowText(utf8ToTStr(NLMISC::toString("%.2f", a)));
|
||||||
StaticBendStart.SetWindowText(str);
|
|
||||||
}
|
}
|
||||||
else if(sliderCtrl == &SliderFrequency)
|
else if(sliderCtrl == &SliderFrequency)
|
||||||
{
|
{
|
||||||
|
|
||||||
a= (float)nPos * NL_VEGETABLE_EDIT_WIND_MAX_FREQUENCY / NL_VEGETABLE_EDIT_WIND_SLIDER_RANGE;
|
a= (float)nPos * NL_VEGETABLE_EDIT_WIND_MAX_FREQUENCY / NL_VEGETABLE_EDIT_WIND_SLIDER_RANGE;
|
||||||
_ObjViewer->setVegetableWindFrequency(a);
|
_ObjViewer->setVegetableWindFrequency(a);
|
||||||
sprintf(str, "%.2f", a);
|
StaticFrequency.SetWindowText(utf8ToTStr(NLMISC::toString("%.2f", a)));
|
||||||
StaticFrequency.SetWindowText(str);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
|
@ -165,9 +165,8 @@ BOOL CWaterPoolEditor::OnInitDialog()
|
||||||
|
|
||||||
int CWaterPoolEditor::addPool(uint32 ID)
|
int CWaterPoolEditor::addPool(uint32 ID)
|
||||||
{
|
{
|
||||||
char poolId[128];
|
std::string poolId = NLMISC::toString("%d (%s)", ID, _Wpm->getPoolByID(ID).getName().c_str());
|
||||||
sprintf(poolId, "%d (%s)", ID, _Wpm->getPoolByID(ID).getName().c_str());
|
int index = m_PoolList.AddString(utf8ToTStr(poolId));
|
||||||
int index = m_PoolList.AddString(poolId);
|
|
||||||
nlassert(index != LB_ERR);
|
nlassert(index != LB_ERR);
|
||||||
m_PoolList.SetItemData(index, ID);
|
m_PoolList.SetItemData(index, ID);
|
||||||
return index;
|
return index;
|
||||||
|
@ -358,7 +357,7 @@ void CWaterPoolEditor::OnLoadPool()
|
||||||
{
|
{
|
||||||
NLMISC::CIXml iXml;
|
NLMISC::CIXml iXml;
|
||||||
NLMISC::CIFile iF;
|
NLMISC::CIFile iF;
|
||||||
if (iF.open((LPCTSTR) fileDlg.GetPathName()))
|
if (iF.open(tStrToUtf8(fileDlg.GetPathName())))
|
||||||
{
|
{
|
||||||
if (iXml.init (iF))
|
if (iXml.init (iF))
|
||||||
{
|
{
|
||||||
|
@ -370,17 +369,17 @@ void CWaterPoolEditor::OnLoadPool()
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
iF.close();
|
iF.close();
|
||||||
MessageBox (("Unable to init xml stream from file : " + std::string((LPCTSTR) fileDlg.GetPathName())).c_str(), "NeL object viewer", MB_OK|MB_ICONEXCLAMATION);
|
MessageBox (utf8ToTStr(NLMISC::toString("Unable to init xml stream from file: %s", tStrToUtf8(fileDlg.GetPathName()).c_str())), _T("NeL object viewer"), MB_OK|MB_ICONEXCLAMATION);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
MessageBox (("Unable to open file : " + std::string((LPCTSTR) fileDlg.GetPathName())).c_str(), "NeL object viewer", MB_OK|MB_ICONEXCLAMATION);
|
MessageBox (utf8ToTStr(NLMISC::toString("Unable to open file: %s", tStrToUtf8(fileDlg.GetPathName()).c_str())), _T("NeL object viewer"), MB_OK|MB_ICONEXCLAMATION);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (const NLMISC::Exception& e)
|
catch (const NLMISC::Exception& e)
|
||||||
{
|
{
|
||||||
MessageBox (e.what(), "NeL object viewer", MB_OK|MB_ICONEXCLAMATION);
|
MessageBox (utf8ToTStr(e.what()), _T("NeL object viewer"), MB_OK|MB_ICONEXCLAMATION);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -396,7 +395,7 @@ void CWaterPoolEditor::OnSavePool()
|
||||||
{
|
{
|
||||||
NLMISC::COXml oXml;
|
NLMISC::COXml oXml;
|
||||||
NLMISC::COFile oF;
|
NLMISC::COFile oF;
|
||||||
if (oF.open((LPCTSTR) fileDlg.GetPathName()))
|
if (oF.open(tStrToUtf8(fileDlg.GetPathName())))
|
||||||
{
|
{
|
||||||
if (oXml.init (&oF))
|
if (oXml.init (&oF))
|
||||||
{
|
{
|
||||||
|
@ -407,17 +406,17 @@ void CWaterPoolEditor::OnSavePool()
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
oF.close();
|
oF.close();
|
||||||
MessageBox (("Unable to init xml stream from file : " + std::string((LPCTSTR) fileDlg.GetPathName())).c_str(), "NeL object viewer", MB_OK|MB_ICONEXCLAMATION);
|
MessageBox (utf8ToTStr(NLMISC::toString("Unable to init xml stream from file: %s", tStrToUtf8(fileDlg.GetPathName()).c_str())), _T("NeL object viewer"), MB_OK|MB_ICONEXCLAMATION);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
MessageBox (("Unable to open file : " + std::string((LPCTSTR) fileDlg.GetPathName())).c_str(), "NeL object viewer", MB_OK|MB_ICONEXCLAMATION);
|
MessageBox (utf8ToTStr(NLMISC::toString("Unable to open file: %s", tStrToUtf8(fileDlg.GetPathName()).c_str())), _T("NeL object viewer"), MB_OK|MB_ICONEXCLAMATION);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (const NLMISC::Exception& e)
|
catch (const NLMISC::Exception& e)
|
||||||
{
|
{
|
||||||
MessageBox (e.what(), "NeL object viewer", MB_OK|MB_ICONEXCLAMATION);
|
MessageBox (utf8ToTStr(e.what()), _T("NeL object viewer"), MB_OK|MB_ICONEXCLAMATION);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -325,14 +325,14 @@ static INT_PTR CALLBACK CNelExportDlgProc(HWND hWnd, UINT msg, WPARAM wParam, LP
|
||||||
|
|
||||||
// Name of the node
|
// Name of the node
|
||||||
char sNodeMsg[256];
|
char sNodeMsg[256];
|
||||||
nlwarning (sNodeMsg, "Save %s model...", pNode->GetName());
|
nlwarning (sNodeMsg, "Save %s model...", tStrToUtf8(pNode->GetName()).c_str());
|
||||||
|
|
||||||
// It is a zone ?
|
// It is a zone ?
|
||||||
if (RPO::isZone (*pNode, time))
|
if (RPO::isZone (*pNode, time))
|
||||||
{
|
{
|
||||||
// Save path
|
// Save path
|
||||||
char sSavePath[256];
|
char sSavePath[256];
|
||||||
strcpy (sSavePath, pNode->GetName());
|
strcpy (sSavePath, tStrToUtf8(pNode->GetName()).c_str());
|
||||||
|
|
||||||
// Choose a file to export
|
// Choose a file to export
|
||||||
if (!CExportNel::getScriptAppData (pNode, NEL3D_APPDATA_DONTEXPORT, 0))
|
if (!CExportNel::getScriptAppData (pNode, NEL3D_APPDATA_DONTEXPORT, 0))
|
||||||
|
@ -342,24 +342,22 @@ static INT_PTR CALLBACK CNelExportDlgProc(HWND hWnd, UINT msg, WPARAM wParam, LP
|
||||||
if (!theCNelExport.exportZone (sSavePath, *pNode, time))
|
if (!theCNelExport.exportZone (sSavePath, *pNode, time))
|
||||||
{
|
{
|
||||||
// Error message
|
// Error message
|
||||||
char sErrorMsg[512];
|
std::string sErrorMsg = toString("Error exporting the zone %s in the file\n%s", tStrToUtf8(pNode->GetName()).c_str(), sSavePath);
|
||||||
sprintf (sErrorMsg, "Error exporting the zone %s in the file\n%s", pNode->GetName(), sSavePath);
|
MessageBox (hWnd, utf8ToTStr(sErrorMsg), L"NeL export", MB_OK|MB_ICONEXCLAMATION);
|
||||||
MessageBox (hWnd, sErrorMsg, "NeL export", MB_OK|MB_ICONEXCLAMATION);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (CExportNel::isVegetable (*pNode, time))
|
else if (CExportNel::isVegetable (*pNode, time))
|
||||||
{
|
{
|
||||||
// Save path
|
// Save path
|
||||||
char sSavePath[256];
|
std::string sSavePath = tStrToUtf8(pNode->GetName());
|
||||||
strcpy (sSavePath, pNode->GetName());
|
|
||||||
|
|
||||||
// Choose a file to export
|
// Choose a file to export
|
||||||
if (!CExportNel::getScriptAppData (pNode, NEL3D_APPDATA_DONTEXPORT, 0))
|
if (!CExportNel::getScriptAppData (pNode, NEL3D_APPDATA_DONTEXPORT, 0))
|
||||||
if (theCNelExport.SelectFileForSave(hWnd, sNodeMsg, vegetableFilter, sSavePath))
|
if (theCNelExport.SelectFileForSave(hWnd, sNodeMsg, vegetableFilter, sSavePath.c_str()))
|
||||||
{
|
{
|
||||||
// Export the mesh
|
// Export the mesh
|
||||||
if (!theCNelExport.exportVegetable (sSavePath, *pNode, time))
|
if (!theCNelExport.exportVegetable (sSavePath.c_str(), *pNode, time))
|
||||||
{
|
{
|
||||||
// Error message
|
// Error message
|
||||||
char sErrorMsg[512];
|
char sErrorMsg[512];
|
||||||
|
|
|
@ -99,7 +99,7 @@ bool CNelExport::exportMesh (const char *sPath, INode& node, TimeValue time)
|
||||||
{
|
{
|
||||||
// Open a file
|
// Open a file
|
||||||
COFile file;
|
COFile file;
|
||||||
if (file.open(tempFileName))
|
if (file.open(tStrToUtf8(tempFileName)))
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
|
|
@ -2338,24 +2338,24 @@ INT_PTR CALLBACK MiscDialogCallback (
|
||||||
currentParam->LigoSymmetry = SendMessage (GetDlgItem (hwndDlg, IDC_LIGO_SYMMETRY), BM_GETCHECK, 0, 0);
|
currentParam->LigoSymmetry = SendMessage (GetDlgItem (hwndDlg, IDC_LIGO_SYMMETRY), BM_GETCHECK, 0, 0);
|
||||||
TCHAR tmp[512];
|
TCHAR tmp[512];
|
||||||
GetWindowText (GetDlgItem (hwndDlg, IDC_LIGO_ROTATE), tmp, 512);
|
GetWindowText (GetDlgItem (hwndDlg, IDC_LIGO_ROTATE), tmp, 512);
|
||||||
currentParam->LigoRotate = tmp;
|
currentParam->LigoRotate = tStrToUtf8(tmp);
|
||||||
|
|
||||||
// SWT
|
// SWT
|
||||||
currentParam->SWT = SendMessage (GetDlgItem (hwndDlg, IDC_SWT), BM_GETCHECK, 0, 0);
|
currentParam->SWT = SendMessage (GetDlgItem (hwndDlg, IDC_SWT), BM_GETCHECK, 0, 0);
|
||||||
GetWindowText (GetDlgItem (hwndDlg, IDC_SWT_WEIGHT), tmp, 512);
|
GetWindowText (GetDlgItem (hwndDlg, IDC_SWT_WEIGHT), tmp, 512);
|
||||||
currentParam->SWTWeight = tmp;
|
currentParam->SWTWeight = tStrToUtf8(tmp);
|
||||||
|
|
||||||
// Radial normals
|
// Radial normals
|
||||||
for (uint smoothGroup=0; smoothGroup<NEL3D_RADIAL_NORMAL_COUNT; smoothGroup++)
|
for (uint smoothGroup=0; smoothGroup<NEL3D_RADIAL_NORMAL_COUNT; smoothGroup++)
|
||||||
{
|
{
|
||||||
HWND edit = GetDlgItem (hwndDlg, IDC_RADIAL_NORMAL_29+smoothGroup);
|
HWND edit = GetDlgItem (hwndDlg, IDC_RADIAL_NORMAL_29+smoothGroup);
|
||||||
GetWindowText (edit, tmp, 512);
|
GetWindowText (edit, tmp, 512);
|
||||||
currentParam->RadialNormals[smoothGroup]=tmp;
|
currentParam->RadialNormals[smoothGroup] = tStrToUtf8(tmp);
|
||||||
}
|
}
|
||||||
|
|
||||||
// mesh interfaces
|
// mesh interfaces
|
||||||
GetWindowText (GetDlgItem (hwndDlg, IDC_EDIT_INTERFACE_FILE), tmp, 512);
|
GetWindowText (GetDlgItem (hwndDlg, IDC_EDIT_INTERFACE_FILE), tmp, 512);
|
||||||
currentParam->InterfaceFileName=tmp;
|
currentParam->InterfaceFileName = tStrToUtf8(tmp);
|
||||||
GetWindowText (GetDlgItem (hwndDlg, IDC_EDIT_INTERFACE_THRESHOLD), tmp, 512);
|
GetWindowText (GetDlgItem (hwndDlg, IDC_EDIT_INTERFACE_THRESHOLD), tmp, 512);
|
||||||
if (strlen(tmp) != 0)
|
if (strlen(tmp) != 0)
|
||||||
currentParam->InterfaceThreshold = toFloatMax(tmp);
|
currentParam->InterfaceThreshold = toFloatMax(tmp);
|
||||||
|
@ -2365,7 +2365,7 @@ INT_PTR CALLBACK MiscDialogCallback (
|
||||||
// Skeleton Scale
|
// Skeleton Scale
|
||||||
currentParam->ExportBoneScale= SendMessage( GetDlgItem(hwndDlg, IDC_EXPORT_BONE_SCALE), BM_GETCHECK, 0, 0);
|
currentParam->ExportBoneScale= SendMessage( GetDlgItem(hwndDlg, IDC_EXPORT_BONE_SCALE), BM_GETCHECK, 0, 0);
|
||||||
GetWindowText (GetDlgItem (hwndDlg, IDC_EXPORT_BONE_SCALE_NAME_EXT), tmp, 512);
|
GetWindowText (GetDlgItem (hwndDlg, IDC_EXPORT_BONE_SCALE_NAME_EXT), tmp, 512);
|
||||||
currentParam->ExportBoneScaleNameExt = wideToUtf8(tmp);
|
currentParam->ExportBoneScaleNameExt = tStrToUtf8(tmp);
|
||||||
|
|
||||||
// remanence
|
// remanence
|
||||||
currentParam->UseRemanence = SendMessage (GetDlgItem (hwndDlg, IDC_USE_REMANENCE), BM_GETCHECK, 0, 0);
|
currentParam->UseRemanence = SendMessage (GetDlgItem (hwndDlg, IDC_USE_REMANENCE), BM_GETCHECK, 0, 0);
|
||||||
|
@ -2373,7 +2373,7 @@ INT_PTR CALLBACK MiscDialogCallback (
|
||||||
|
|
||||||
GetWindowText (GetDlgItem (hwndDlg, IDC_REMANENCE_SLICE_NUMBER), tmp, 512);
|
GetWindowText (GetDlgItem (hwndDlg, IDC_REMANENCE_SLICE_NUMBER), tmp, 512);
|
||||||
uint rsn;
|
uint rsn;
|
||||||
if (sscanf(tmp, "%d", &rsn) == 1)
|
if (NLMISC::fromString(tStrToUtf8(tmp), rsn))
|
||||||
{
|
{
|
||||||
currentParam->RemanenceSliceNumber = rsn;
|
currentParam->RemanenceSliceNumber = rsn;
|
||||||
}
|
}
|
||||||
|
|
|
@ -111,15 +111,13 @@ void regsiterOVPath ()
|
||||||
if (!hModule) { ::MessageBox(NULL, "'hModule' failed at '" __FUNCTION__ "' in file '" __FILE__ " on line " NL_MACRO_TO_STR(__LINE__), "NeL Export", MB_OK | MB_ICONERROR); return; }
|
if (!hModule) { ::MessageBox(NULL, "'hModule' failed at '" __FUNCTION__ "' in file '" __FILE__ " on line " NL_MACRO_TO_STR(__LINE__), "NeL Export", MB_OK | MB_ICONERROR); return; }
|
||||||
char sModulePath[256];
|
char sModulePath[256];
|
||||||
int res = GetModuleFileName(hModule, sModulePath, 256);
|
int res = GetModuleFileName(hModule, sModulePath, 256);
|
||||||
if (!res) { ::MessageBox(NULL, "'res' failed at '" __FUNCTION__ "' in file '" __FILE__ " on line " NL_MACRO_TO_STR(__LINE__), "NeL Export", MB_OK | MB_ICONERROR); return; }
|
if (!res) { ::MessageBox(NULL, _T("'res' failed at '") __FUNCTION__ _T("' in file '") __FILE__ _T(" on line ") NL_MACRO_TO_STR(__LINE__), _T("NeL Export"), MB_OK | MB_ICONERROR); return; }
|
||||||
char SDrive[512];
|
|
||||||
char SDir[512];
|
std::string modulePath = NLMISC::CFile::getPath(tStrToUtf8(sModulePath)) + "object_viewer.cfg";
|
||||||
_splitpath (sModulePath, SDrive, SDir, NULL, NULL);
|
|
||||||
_makepath (sModulePath, SDrive, SDir, "object_viewer", ".cfg");
|
|
||||||
|
|
||||||
// Load the config file
|
// Load the config file
|
||||||
CConfigFile cf;
|
CConfigFile cf;
|
||||||
cf.load (sModulePath);
|
cf.load (modulePath);
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
@ -367,7 +365,7 @@ void CNelExport::viewMesh (TimeValue time)
|
||||||
INode* pNode=_Ip->GetSelNode (nNode);
|
INode* pNode=_Ip->GetSelNode (nNode);
|
||||||
|
|
||||||
string sTmp = "Object Name: ";
|
string sTmp = "Object Name: ";
|
||||||
sTmp += pNode->GetName();
|
sTmp += tStrToUtf8(pNode->GetName());
|
||||||
ProgBar.setLine (0, sTmp);
|
ProgBar.setLine (0, sTmp);
|
||||||
sTmp.clear();
|
sTmp.clear();
|
||||||
for (uint32 i = 1; i < 10; ++i)
|
for (uint32 i = 1; i < 10; ++i)
|
||||||
|
@ -412,7 +410,7 @@ void CNelExport::viewMesh (TimeValue time)
|
||||||
if (pShape)
|
if (pShape)
|
||||||
{
|
{
|
||||||
// Add the shape in the view
|
// Add the shape in the view
|
||||||
uint instance = view->addMesh (pShape, pNode->GetName(), iteSkelShape->second.SkeletonInstance);
|
uint instance = view->addMesh (pShape, tStrToUtf8(pNode->GetName()).c_str(), iteSkelShape->second.SkeletonInstance);
|
||||||
|
|
||||||
// Add tracks
|
// Add tracks
|
||||||
CAnimation *anim=new CAnimation;
|
CAnimation *anim=new CAnimation;
|
||||||
|
|
|
@ -128,7 +128,7 @@ void SLightBuild::convertFromMaxLight (INode *node,TimeValue tvTime)
|
||||||
if (maxLight->EvalLightState(tvTime, valid, &ls)!=REF_SUCCEED)
|
if (maxLight->EvalLightState(tvTime, valid, &ls)!=REF_SUCCEED)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
this->Name = node->GetName();
|
this->Name = tStrToUtf8(node->GetName());
|
||||||
|
|
||||||
// Retrieve the correct light Group Name
|
// Retrieve the correct light Group Name
|
||||||
this->AnimatedLight = CExportNel::getAnimatedLight (node);
|
this->AnimatedLight = CExportNel::getAnimatedLight (node);
|
||||||
|
@ -295,7 +295,7 @@ void SLightBuild::convertFromMaxLight (INode *node,TimeValue tvTime)
|
||||||
INode *exclNode = exclusionList[i];
|
INode *exclNode = exclusionList[i];
|
||||||
if (exclNode) // Crashfix // FIXME: Why is this NULL?
|
if (exclNode) // Crashfix // FIXME: Why is this NULL?
|
||||||
{
|
{
|
||||||
string tmp = exclNode->GetName();
|
string tmp = tStrToUtf8(exclNode->GetName());
|
||||||
this->setExclusion.insert(tmp);
|
this->setExclusion.insert(tmp);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1930,7 +1930,7 @@ void supprLightNoInteractOne( vector<SLightBuild> &vLights, CMesh::CMeshBuild* p
|
||||||
{
|
{
|
||||||
bool bInteract = false;
|
bool bInteract = false;
|
||||||
|
|
||||||
if( vLights[i].setExclusion.find( node.GetName() ) != vLights[i].setExclusion.end() )
|
if( vLights[i].setExclusion.find(tStrToUtf8(node.GetName()) ) != vLights[i].setExclusion.end() )
|
||||||
{
|
{
|
||||||
bInteract = false;
|
bInteract = false;
|
||||||
}
|
}
|
||||||
|
@ -2005,7 +2005,7 @@ void CExportNel::deleteLM(INode& ZeNode)
|
||||||
string sSaveName;
|
string sSaveName;
|
||||||
sSaveName = _Options.sExportLighting;
|
sSaveName = _Options.sExportLighting;
|
||||||
if( sSaveName[sSaveName.size()-1] != '\\' ) sSaveName += "\\";
|
if( sSaveName[sSaveName.size()-1] != '\\' ) sSaveName += "\\";
|
||||||
sSaveName += ZeNode.GetName();
|
sSaveName += tStrToUtf8(ZeNode.GetName());
|
||||||
char tmp[32];
|
char tmp[32];
|
||||||
sprintf( tmp, "%d", i );
|
sprintf( tmp, "%d", i );
|
||||||
sSaveName += tmp;
|
sSaveName += tmp;
|
||||||
|
@ -2276,7 +2276,7 @@ bool CExportNel::calculateLM( CMesh::CMeshBuild *pZeMeshBuild, CMeshBase::CMeshB
|
||||||
{
|
{
|
||||||
string thetext;
|
string thetext;
|
||||||
thetext = "Warning ";
|
thetext = "Warning ";
|
||||||
thetext += ZeNode.GetName();
|
thetext += tStrToUtf8(ZeNode.GetName());
|
||||||
thetext = "have all faces NOT mapped (UV2)";
|
thetext = "have all faces NOT mapped (UV2)";
|
||||||
if (gOptions.FeedBack != NULL)
|
if (gOptions.FeedBack != NULL)
|
||||||
{
|
{
|
||||||
|
@ -2325,11 +2325,11 @@ bool CExportNel::calculateLM( CMesh::CMeshBuild *pZeMeshBuild, CMeshBase::CMeshB
|
||||||
{
|
{
|
||||||
// Make an error message
|
// Make an error message
|
||||||
string sTmp = "Warning : ";
|
string sTmp = "Warning : ";
|
||||||
sTmp += ZeNode.GetName();
|
sTmp += tStrToUtf8(ZeNode.GetName());
|
||||||
sTmp += " has mapping problem";
|
sTmp += " has mapping problem";
|
||||||
|
|
||||||
// Script trace
|
// Script trace
|
||||||
mprintf ((sTmp+"\n").c_str());
|
mprintf (utf8ToTStr((sTmp+"\n")));
|
||||||
|
|
||||||
// Feedback is here ?
|
// Feedback is here ?
|
||||||
if (gOptions.FeedBack != NULL)
|
if (gOptions.FeedBack != NULL)
|
||||||
|
@ -2525,12 +2525,12 @@ bool CExportNel::calculateLM( CMesh::CMeshBuild *pZeMeshBuild, CMeshBase::CMeshB
|
||||||
|
|
||||||
// Get the name of the max project
|
// Get the name of the max project
|
||||||
char projectName[512];
|
char projectName[512];
|
||||||
_splitpath (_Ip->GetCurFileName(), NULL, NULL, projectName, NULL);
|
_wsplitpath (_Ip->GetCurFileName(), NULL, NULL, utf8ToTStr(projectName), NULL);
|
||||||
|
|
||||||
// Add lightmap information in the lightmap log
|
// Add lightmap information in the lightmap log
|
||||||
COFile outputLog;
|
COFile outputLog;
|
||||||
if (outputLightmapLog)
|
if (outputLightmapLog)
|
||||||
createLightmapLog (outputLog, gOptions.sExportLighting.c_str(), projectName, ZeNode.GetName());
|
createLightmapLog (outputLog, gOptions.sExportLighting.c_str(), projectName, tStrToUtf8(ZeNode.GetName()).c_str());
|
||||||
|
|
||||||
// Update UV coords to Texture space
|
// Update UV coords to Texture space
|
||||||
PutFaceUV1InTextureCoord( LightMap.w, LightMap.h, AllFaces.begin(), AllFaces.size() );
|
PutFaceUV1InTextureCoord( LightMap.w, LightMap.h, AllFaces.begin(), AllFaces.size() );
|
||||||
|
@ -2559,7 +2559,7 @@ bool CExportNel::calculateLM( CMesh::CMeshBuild *pZeMeshBuild, CMeshBase::CMeshB
|
||||||
{
|
{
|
||||||
CTextureFile *pLightMap = new CTextureFile();
|
CTextureFile *pLightMap = new CTextureFile();
|
||||||
//string sSaveName = AllMeshBuilds[nNode].second->GetName();
|
//string sSaveName = AllMeshBuilds[nNode].second->GetName();
|
||||||
string sSaveName = ZeNode.GetName();
|
string sSaveName = tStrToUtf8(ZeNode.GetName());
|
||||||
char tmp[32];
|
char tmp[32];
|
||||||
sSaveName += "_";
|
sSaveName += "_";
|
||||||
sprintf( tmp, "%d", nLightMapNb );
|
sprintf( tmp, "%d", nLightMapNb );
|
||||||
|
@ -2632,9 +2632,8 @@ bool CExportNel::calculateLM( CMesh::CMeshBuild *pZeMeshBuild, CMeshBase::CMeshB
|
||||||
{
|
{
|
||||||
if (gOptions.FeedBack != NULL)
|
if (gOptions.FeedBack != NULL)
|
||||||
{
|
{
|
||||||
char message[512];
|
std::string message = toString("Can't write the file %s : %s", sSaveName.c_str(), e.what());
|
||||||
sprintf (message, "Can't write the file %s : %s", sSaveName, e.what());
|
mprintf (utf8ToTStr(message));
|
||||||
mprintf (message);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -113,7 +113,7 @@ void CRTWorld::build (vector<SLightBuild> &AllLights, CVector &trans, bool bExcl
|
||||||
pLAP->create( 64 ); // width of each grid in number of square
|
pLAP->create( 64 ); // width of each grid in number of square
|
||||||
for( j = 0; j < vMB.size(); ++j )
|
for( j = 0; j < vMB.size(); ++j )
|
||||||
{
|
{
|
||||||
if (rLight.setExclusion.find (vINode[j]->GetName()) != rLight.setExclusion.end())
|
if (rLight.setExclusion.find (tStrToUtf8(vINode[j]->GetName())) != rLight.setExclusion.end())
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
for (k = 0; k < vMB[j]->Faces.size(); ++k)
|
for (k = 0; k < vMB[j]->Faces.size(); ++k)
|
||||||
|
@ -142,7 +142,7 @@ void CRTWorld::build (vector<SLightBuild> &AllLights, CVector &trans, bool bExcl
|
||||||
pLAD->create (64, rLight.rDirRadius/64.0f, rLight.Direction);
|
pLAD->create (64, rLight.rDirRadius/64.0f, rLight.Direction);
|
||||||
for( j = 0; j < vMB.size(); ++j )
|
for( j = 0; j < vMB.size(); ++j )
|
||||||
{
|
{
|
||||||
if (rLight.setExclusion.find (vINode[j]->GetName()) != rLight.setExclusion.end())
|
if (rLight.setExclusion.find (tStrToUtf8(vINode[j]->GetName())) != rLight.setExclusion.end())
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
for (k = 0; k < vMB[j]->Faces.size(); ++k)
|
for (k = 0; k < vMB[j]->Faces.size(); ++k)
|
||||||
|
|
|
@ -605,7 +605,7 @@ void CExportNel::addMorphTracks (NL3D::CAnimation& animation, INode& node, const
|
||||||
if (pNode == NULL)
|
if (pNode == NULL)
|
||||||
continue;
|
continue;
|
||||||
std::string name = parentName;
|
std::string name = parentName;
|
||||||
name += pNode->GetName();
|
name += tStrToUtf8(pNode->GetName());
|
||||||
name += "MorphFactor";
|
name += "MorphFactor";
|
||||||
|
|
||||||
IParamBlock *pb = (IParamBlock*)(pMorphMod->SubAnim (i+1));
|
IParamBlock *pb = (IParamBlock*)(pMorphMod->SubAnim (i+1));
|
||||||
|
|
|
@ -73,7 +73,7 @@ CCollisionMeshBuild* CExportNel::createCollisionMeshBuild(std::vector<INode *> &
|
||||||
{
|
{
|
||||||
// get the mesh name
|
// get the mesh name
|
||||||
uint meshId = rootMeshNames.size();
|
uint meshId = rootMeshNames.size();
|
||||||
rootMeshNames.push_back(nodes[node]->GetName());
|
rootMeshNames.push_back(tStrToUtf8(nodes[node]->GetName()));
|
||||||
bool collision = getScriptAppData (nodes[node], NEL3D_APPDATA_COLLISION, 0) != 0;
|
bool collision = getScriptAppData (nodes[node], NEL3D_APPDATA_COLLISION, 0) != 0;
|
||||||
bool exterior = getScriptAppData (nodes[node], NEL3D_APPDATA_COLLISION_EXTERIOR, 0) != 0;
|
bool exterior = getScriptAppData (nodes[node], NEL3D_APPDATA_COLLISION_EXTERIOR, 0) != 0;
|
||||||
|
|
||||||
|
|
|
@ -1142,22 +1142,6 @@ int CExportNel::getVertMapChannel (Texmap& texmap, Matrix3& channelMatrix, TimeV
|
||||||
// get the absolute or relative path from a texture filename
|
// get the absolute or relative path from a texture filename
|
||||||
static std::string ConvertTexFileName(const std::string &path, bool _AbsolutePath)
|
static std::string ConvertTexFileName(const std::string &path, bool _AbsolutePath)
|
||||||
{
|
{
|
||||||
/*// File name, maxlen 256 under windows
|
|
||||||
char sFileName[512];
|
|
||||||
strcpy (sFileName, src);
|
|
||||||
|
|
||||||
// Let absolute path ?
|
|
||||||
if (!_AbsolutePath)
|
|
||||||
{
|
|
||||||
// Decompose bitmap file name
|
|
||||||
char sName[256];
|
|
||||||
char sExt[256];
|
|
||||||
_splitpath (sFileName, NULL, NULL, sName, sExt);
|
|
||||||
|
|
||||||
// Make the final path
|
|
||||||
_makepath (sFileName, NULL, NULL, sName, sExt);
|
|
||||||
}
|
|
||||||
return std::string(sFileName);*/
|
|
||||||
if (_AbsolutePath)
|
if (_AbsolutePath)
|
||||||
{
|
{
|
||||||
return path;
|
return path;
|
||||||
|
@ -1271,7 +1255,7 @@ ITexture* CExportNel::buildATexture (Texmap& texmap, CMaterialDesc &remap3dsTexC
|
||||||
else // standard texture
|
else // standard texture
|
||||||
{
|
{
|
||||||
srcTex = new CTextureFile;
|
srcTex = new CTextureFile;
|
||||||
std::string mapName = pBitmap->GetMapName();
|
std::string mapName = tStrToUtf8(pBitmap->GetMapName());
|
||||||
static_cast<CTextureFile *>(srcTex)->setFileName (ConvertTexFileName(mapName, _AbsolutePath));
|
static_cast<CTextureFile *>(srcTex)->setFileName (ConvertTexFileName(mapName, _AbsolutePath));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -266,7 +266,7 @@ NL3D::IShape *CExportNel::buildShape (INode& node, TimeValue time, const TInodeP
|
||||||
std::string nodeName=getScriptAppData (&node, NEL3D_APPDATA_LOD_NAME+lod, "");
|
std::string nodeName=getScriptAppData (&node, NEL3D_APPDATA_LOD_NAME+lod, "");
|
||||||
|
|
||||||
// Get the node
|
// Get the node
|
||||||
INode *lodNode=_Ip->GetINodeByName(nodeName.c_str());
|
INode *lodNode=_Ip->GetINodeByName(utf8ToTStr(nodeName));
|
||||||
if (lodNode)
|
if (lodNode)
|
||||||
{
|
{
|
||||||
// Index of the lod in the build structure
|
// Index of the lod in the build structure
|
||||||
|
@ -611,7 +611,7 @@ void CExportNel::buildBaseMeshInterface (NL3D::CMeshBase::CMeshBaseBuild& buildM
|
||||||
continue;
|
continue;
|
||||||
// get factor here !
|
// get factor here !
|
||||||
buildMesh.DefaultBSFactors.push_back(0.0f);
|
buildMesh.DefaultBSFactors.push_back(0.0f);
|
||||||
std::string sTemp = pNode->GetName();
|
std::string sTemp = tStrToUtf8(pNode->GetName());
|
||||||
buildMesh.BSNames.push_back (sTemp);
|
buildMesh.BSNames.push_back (sTemp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1063,9 +1063,8 @@ void CExportNel::buildMeshInterface (TriObject &tri, CMesh::CMeshBuild& buildMes
|
||||||
// Error code ?
|
// Error code ?
|
||||||
if (error!=NoError)
|
if (error!=NoError)
|
||||||
{
|
{
|
||||||
char msg[512];
|
std::string msg = toString("%s skin: %s", getName (node).c_str(), ErrorMessage[error]);
|
||||||
sprintf (msg, "%s skin: %s", getName (node).c_str(), ErrorMessage[error]);
|
MessageBoxW (NULL, utf8ToTStr(msg), L"NeL export", MB_OK|MB_ICONEXCLAMATION);
|
||||||
MessageBox (NULL, msg, "NeL export", MB_OK|MB_ICONEXCLAMATION);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -1493,7 +1492,7 @@ void CExportNel::buildMeshMorph (CMesh::CMeshBuild& buildMesh, INode &node, Time
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
bs.Name = pNode->GetName();
|
bs.Name = tStrToUtf8(pNode->GetName());
|
||||||
|
|
||||||
bool bIsDeltaPos = false;
|
bool bIsDeltaPos = false;
|
||||||
bs.deltaPos.resize (nNbVertVB, CVector::Null);
|
bs.deltaPos.resize (nNbVertVB, CVector::Null);
|
||||||
|
|
|
@ -316,7 +316,7 @@ static void AddNodeToQuadGrid(const NLMISC::CAABBox &delimiter, TNodeFaceQG &des
|
||||||
{
|
{
|
||||||
if (delimiter.intersect(nodeBBox))
|
if (delimiter.intersect(nodeBBox))
|
||||||
{
|
{
|
||||||
nldebug((std::string("Adding ") + node.GetName() + std::string(" to mesh interface quad grid")).c_str());
|
nldebug("Adding %s to mesh interface quad grid", tStrToUtf8(node.GetName()).c_str());
|
||||||
// add this node tris
|
// add this node tris
|
||||||
ObjectState os = node.EvalWorldState(time);
|
ObjectState os = node.EvalWorldState(time);
|
||||||
Object *obj = os.obj;
|
Object *obj = os.obj;
|
||||||
|
@ -581,7 +581,7 @@ static bool BuildMeshInterfaces(const char *cMaxFileName, std::vector<CMeshInter
|
||||||
string newName = "NelAutoMergeRenamedTmp" + toString (i);
|
string newName = "NelAutoMergeRenamedTmp" + toString (i);
|
||||||
string originalName = (*lib)[i]->GetName ();
|
string originalName = (*lib)[i]->GetName ();
|
||||||
renameMap.insert (map<string, string>::value_type (newName, originalName));
|
renameMap.insert (map<string, string>::value_type (newName, originalName));
|
||||||
(*lib)[i]->SetName (newName.c_str ());
|
(*lib)[i]->SetName (utf8ToTStr(newName));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Merge the interface project
|
// Merge the interface project
|
||||||
|
@ -614,7 +614,7 @@ static bool BuildMeshInterfaces(const char *cMaxFileName, std::vector<CMeshInter
|
||||||
string newName = "NelAutoMergeRenamed" + toString (i);
|
string newName = "NelAutoMergeRenamed" + toString (i);
|
||||||
string originalName = (*lib)[i]->GetName ();
|
string originalName = (*lib)[i]->GetName ();
|
||||||
renameMap.insert (map<string, string>::value_type (newName, originalName));
|
renameMap.insert (map<string, string>::value_type (newName, originalName));
|
||||||
(*lib)[i]->SetName (newName.c_str ());
|
(*lib)[i]->SetName (utf8ToTStr(newName));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -627,7 +627,7 @@ static bool BuildMeshInterfaces(const char *cMaxFileName, std::vector<CMeshInter
|
||||||
if (ite != renameMap.end ())
|
if (ite != renameMap.end ())
|
||||||
{
|
{
|
||||||
// Rename the material with its original name
|
// Rename the material with its original name
|
||||||
(*lib)[i]->SetName (ite->second.c_str ());
|
(*lib)[i]->SetName (utf8ToTStr(ite->second));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -265,7 +265,7 @@ Control* CExportNel::getControlerByName (Animatable& node, const char* sName)
|
||||||
ParamDef& paramDef=param->GetParamDef(id);
|
ParamDef& paramDef=param->GetParamDef(id);
|
||||||
|
|
||||||
// Good name?
|
// Good name?
|
||||||
if (strcmp (paramDef.int_name, sName)==0)
|
if (strcmp (tStrToUtf8(paramDef.int_name).c_str(), sName)==0)
|
||||||
{
|
{
|
||||||
// ok, return this subanim
|
// ok, return this subanim
|
||||||
#if MAX_VERSION_MAJOR >= 14
|
#if MAX_VERSION_MAJOR >= 14
|
||||||
|
@ -332,7 +332,7 @@ bool getValueByNameUsingParamBlock2Internal (Animatable& node, const char* sName
|
||||||
ParamDef& paramDef=param->GetParamDef(id);
|
ParamDef& paramDef=param->GetParamDef(id);
|
||||||
|
|
||||||
// Good name?
|
// Good name?
|
||||||
if (strcmp (paramDef.int_name, sName)==0)
|
if (strcmp (tStrToUtf8(paramDef.int_name).c_str(), sName)==0)
|
||||||
{
|
{
|
||||||
// Check this value is good type
|
// Check this value is good type
|
||||||
ParamType2 paramType = param->GetParameterType(id);
|
ParamType2 paramType = param->GetParameterType(id);
|
||||||
|
@ -372,7 +372,7 @@ bool getValueByNameUsingParamBlock2Internal (Animatable& node, const char* sName
|
||||||
break;
|
break;
|
||||||
case TYPE_FILENAME:
|
case TYPE_FILENAME:
|
||||||
case TYPE_STRING:
|
case TYPE_STRING:
|
||||||
*(std::string*)pValue = param->GetStr (id, tvTime);
|
*(std::string*)pValue = tStrToUtf8(param->GetStr (id, tvTime));
|
||||||
bRes = TRUE;
|
bRes = TRUE;
|
||||||
break;
|
break;
|
||||||
case TYPE_FILENAME_TAB:
|
case TYPE_FILENAME_TAB:
|
||||||
|
@ -382,7 +382,7 @@ bool getValueByNameUsingParamBlock2Internal (Animatable& node, const char* sName
|
||||||
uint total = param->Count (id);
|
uint total = param->Count (id);
|
||||||
rTab.resize(total);
|
rTab.resize(total);
|
||||||
for( uint i = 0; i < total; ++i )
|
for( uint i = 0; i < total; ++i )
|
||||||
rTab[i] = param->GetStr (id, tvTime, i);
|
rTab[i] = tStrToUtf8(param->GetStr (id, tvTime, i));
|
||||||
bRes = TRUE;
|
bRes = TRUE;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -511,8 +511,8 @@ std::string CExportNel::getName (MtlBase& mtl)
|
||||||
std::string CExportNel::getName(INode& node)
|
std::string CExportNel::getName(INode& node)
|
||||||
{
|
{
|
||||||
// Return its name
|
// Return its name
|
||||||
MCHAR* name = node.GetName();
|
const MCHAR* name = node.GetName();
|
||||||
return std::string(name);
|
return tStrToUtf8(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
// --------------------------------------------------
|
// --------------------------------------------------
|
||||||
|
@ -549,7 +549,7 @@ std::string CExportNel::getNelObjectName (INode& node)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return node.GetName();
|
return tStrToUtf8(node.GetName());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -561,29 +561,26 @@ std::string CExportNel::getNelObjectName (INode& node)
|
||||||
ad = obj->GetAppDataChunk (MAXSCRIPT_UTILITY_CLASS_ID, UTILITY_CLASS_ID, NEL3D_APPDATA_INSTANCE_SHAPE);
|
ad = obj->GetAppDataChunk (MAXSCRIPT_UTILITY_CLASS_ID, UTILITY_CLASS_ID, NEL3D_APPDATA_INSTANCE_SHAPE);
|
||||||
if (ad&&ad->data)
|
if (ad&&ad->data)
|
||||||
{
|
{
|
||||||
if (::strlen((const char *) ad->data) != 0)
|
if (_tcslen((const TCHAR *) ad->data) != 0)
|
||||||
{
|
{
|
||||||
// get file name only
|
// get file name only
|
||||||
char fName[_MAX_FNAME];
|
return NLMISC::CFile::getFilename(tStrToUtf8((const TCHAR*)ad->data));
|
||||||
char ext[_MAX_FNAME];
|
|
||||||
::_splitpath((const char*)ad->data, NULL, NULL, fName, ext) ;
|
|
||||||
return std::string(fName + std::string(ext));
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return node.GetName();
|
return tStrToUtf8(node.GetName());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Extract the node name
|
// Extract the node name
|
||||||
return node.GetName();
|
return tStrToUtf8(node.GetName());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Extract the node name
|
// Extract the node name
|
||||||
return node.GetName();
|
return tStrToUtf8(node.GetName());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -763,17 +760,17 @@ bool CExportNel::hasLightMap (INode& node, TimeValue time)
|
||||||
|
|
||||||
// --------------------------------------------------
|
// --------------------------------------------------
|
||||||
|
|
||||||
void CExportNel::outputErrorMessage (const char *message)
|
void CExportNel::outputErrorMessage(const std::string &message)
|
||||||
{
|
{
|
||||||
if (_ErrorInDialog)
|
if (_ErrorInDialog)
|
||||||
{
|
{
|
||||||
MessageBox (_Ip->GetMAXHWnd(), message, _ErrorTitle.c_str(), MB_OK|MB_ICONEXCLAMATION);
|
MessageBoxW (_Ip->GetMAXHWnd(), utf8ToTStr(message), utf8ToTStr(_ErrorTitle), MB_OK|MB_ICONEXCLAMATION);
|
||||||
}
|
}
|
||||||
mprintf (message);
|
mprintf (utf8ToTStr(message));
|
||||||
mprintf ("\n");
|
mprintf (_T("\n"));
|
||||||
|
|
||||||
nlwarning ("Error in max file %s : ", _Ip->GetCurFilePath());
|
nlwarning ("Error in max file %s : ", _Ip->GetCurFilePath());
|
||||||
nlwarning (message);
|
nlwarning (message.c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
// --------------------------------------------------
|
// --------------------------------------------------
|
||||||
|
|
|
@ -667,8 +667,8 @@ public:
|
||||||
static void setScriptAppData (Animatable *node, uint32 id, NLMISC::CRGBA val);
|
static void setScriptAppData (Animatable *node, uint32 id, NLMISC::CRGBA val);
|
||||||
|
|
||||||
// Output error message
|
// Output error message
|
||||||
void outputErrorMessage (const char *message);
|
void outputErrorMessage (const std::string &message);
|
||||||
void outputWarningMessage (const char *message);
|
void outputWarningMessage(const std::string &message);
|
||||||
|
|
||||||
|
|
||||||
// Get an appData VertexProgram WindTree (ensure same default values for all retrieve).
|
// Get an appData VertexProgram WindTree (ensure same default values for all retrieve).
|
||||||
|
|
|
@ -51,7 +51,7 @@ IShape* CExportNel::buildParticleSystem(INode& node, TimeValue time)
|
||||||
iF.serial(ss);
|
iF.serial(ss);
|
||||||
if (!dynamic_cast<CParticleSystemShape *>(ss.getShapePointer()))
|
if (!dynamic_cast<CParticleSystemShape *>(ss.getShapePointer()))
|
||||||
{
|
{
|
||||||
mprintf("Error : Object shape %s isn't a particle system", shapeName.c_str());
|
mprintf(_T("Error : Object shape %s isn't a particle system"), utf8ToTStr(shapeName));
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -78,7 +78,7 @@ IShape* CExportNel::buildParticleSystem(INode& node, TimeValue time)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
mprintf("Error : Can't find %s while exporting a particle system \n", shapeName.c_str());
|
mprintf(_T("Error : Can't find %s while exporting a particle system \n"), utf8ToTStr(shapeName));
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -62,7 +62,7 @@ void CRadialVertices::init (INode *node, Mesh *mesh, TimeValue time, Interface &
|
||||||
_SmoothingGroupMask |= (1<<app);
|
_SmoothingGroupMask |= (1<<app);
|
||||||
|
|
||||||
// Get the node by name
|
// Get the node by name
|
||||||
INode *pivotNode = ip.GetINodeByName(pivotName.c_str());
|
INode *pivotNode = ip.GetINodeByName(utf8ToTStr(pivotName));
|
||||||
if (pivotNode)
|
if (pivotNode)
|
||||||
{
|
{
|
||||||
// Get the world Pivot point
|
// Get the world Pivot point
|
||||||
|
|
|
@ -93,7 +93,7 @@ CInstanceGroup* CExportNel::buildInstanceGroup(const vector<INode*>& vectNode, v
|
||||||
resultInstanceNode[nNumIG] = pNode;
|
resultInstanceNode[nNumIG] = pNode;
|
||||||
if (aIGArray[nNumIG].InstanceName == "") // no instance name was set, takes the node name instead
|
if (aIGArray[nNumIG].InstanceName == "") // no instance name was set, takes the node name instead
|
||||||
{
|
{
|
||||||
aIGArray[nNumIG].InstanceName = pNode->GetName();
|
aIGArray[nNumIG].InstanceName = tStrToUtf8(pNode->GetName());
|
||||||
}
|
}
|
||||||
|
|
||||||
// Visible? always true, but if special flag for camera collision
|
// Visible? always true, but if special flag for camera collision
|
||||||
|
@ -236,10 +236,7 @@ CInstanceGroup* CExportNel::buildInstanceGroup(const vector<INode*>& vectNode, v
|
||||||
pMB->Vertices[pMB->Faces[j].Corner[2].Vertex]) )
|
pMB->Vertices[pMB->Faces[j].Corner[2].Vertex]) )
|
||||||
{
|
{
|
||||||
// ERROR : The volume is not convex !!!
|
// ERROR : The volume is not convex !!!
|
||||||
char tam[256];
|
nlwarning("ERROR: The cluster %s is not convex.", tStrToUtf8(vectNode[i]->GetName()).c_str());
|
||||||
sprintf(tam,"ERROR: The cluster %s is not convex.",vectNode[i]->GetName());
|
|
||||||
//MessageBox(NULL,tam,"Error",MB_OK|MB_ICONERROR);
|
|
||||||
nlwarning(tam);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -247,7 +244,7 @@ CInstanceGroup* CExportNel::buildInstanceGroup(const vector<INode*>& vectNode, v
|
||||||
clusterTemp.VisibleFromFather = bVisibleFromFather;
|
clusterTemp.VisibleFromFather = bVisibleFromFather;
|
||||||
clusterTemp.FatherAudible = bFatherAudible;
|
clusterTemp.FatherAudible = bFatherAudible;
|
||||||
clusterTemp.AudibleFromFather = bAudibleFromFather;
|
clusterTemp.AudibleFromFather = bAudibleFromFather;
|
||||||
clusterTemp.Name = pNode->GetName();
|
clusterTemp.Name = tStrToUtf8(pNode->GetName());
|
||||||
|
|
||||||
vClusters.push_back (clusterTemp);
|
vClusters.push_back (clusterTemp);
|
||||||
delete pMB; pMB = NULL;
|
delete pMB; pMB = NULL;
|
||||||
|
@ -336,10 +333,7 @@ CInstanceGroup* CExportNel::buildInstanceGroup(const vector<INode*>& vectNode, v
|
||||||
if (!portalTemp.setPoly (polyv))
|
if (!portalTemp.setPoly (polyv))
|
||||||
{
|
{
|
||||||
// ERROR : Poly not convex, or set of vertices not plane
|
// ERROR : Poly not convex, or set of vertices not plane
|
||||||
char tam[256];
|
nlwarning("ERROR: The portal %s is not convex.", tStrToUtf8(vectNode[i]->GetName()).c_str());
|
||||||
sprintf(tam,"ERROR: The portal %s is not convex.",vectNode[i]->GetName());
|
|
||||||
//MessageBox(NULL,tam,"Error",MB_OK|MB_ICONERROR);
|
|
||||||
nlwarning(tam);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (nAccelType&16) // is dynamic portal ?
|
if (nAccelType&16) // is dynamic portal ?
|
||||||
|
@ -348,7 +342,7 @@ CInstanceGroup* CExportNel::buildInstanceGroup(const vector<INode*>& vectNode, v
|
||||||
if (!InstanceName.empty())
|
if (!InstanceName.empty())
|
||||||
portalTemp.setName (InstanceName);
|
portalTemp.setName (InstanceName);
|
||||||
else
|
else
|
||||||
portalTemp.setName (string(pNode->GetName()));
|
portalTemp.setName (tStrToUtf8(pNode->GetName()));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check if portal has 2 cluster
|
// Check if portal has 2 cluster
|
||||||
|
@ -368,10 +362,7 @@ CInstanceGroup* CExportNel::buildInstanceGroup(const vector<INode*>& vectNode, v
|
||||||
if (nNbCluster != 2)
|
if (nNbCluster != 2)
|
||||||
{
|
{
|
||||||
// ERROR
|
// ERROR
|
||||||
char tam[256];
|
nlwarning("ERROR: The portal %s has not 2 clusters but %d", tStrToUtf8(vectNode[i]->GetName()).c_str(), nNbCluster);
|
||||||
sprintf(tam,"ERROR: The portal %s has not 2 clusters but %d",vectNode[i]->GetName(), nNbCluster);
|
|
||||||
//MessageBox(NULL,tam,"Error",MB_OK|MB_ICONERROR);
|
|
||||||
nlwarning(tam);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -513,10 +504,7 @@ CInstanceGroup* CExportNel::buildInstanceGroup(const vector<INode*>& vectNode, v
|
||||||
if (vClusters.size() > 0)
|
if (vClusters.size() > 0)
|
||||||
if (aIGArray[nNumIG].Clusters.size() == 0)
|
if (aIGArray[nNumIG].Clusters.size() == 0)
|
||||||
{
|
{
|
||||||
char tam[256];
|
nlwarning("ERROR: Object %s is not attached to any cluster\nbut his flag clusterize is set", tStrToUtf8(pNode->GetName()).c_str());
|
||||||
sprintf(tam,"ERROR: Object %s is not attached to any cluster\nbut his flag clusterize is set", pNode->GetName());
|
|
||||||
//MessageBox(NULL, tam, "Warning", MB_OK);
|
|
||||||
nlwarning(tam);
|
|
||||||
}
|
}
|
||||||
// debug purpose : to remove
|
// debug purpose : to remove
|
||||||
|
|
||||||
|
@ -712,7 +700,7 @@ void CExportNel::buildScene (NL3D::CScene &scene, NL3D::CShapeBank &shapeBank, I
|
||||||
if ( (!pNode->IsHidden () || buildHidden) && (pNode->Selected () || !onlySelected) )
|
if ( (!pNode->IsHidden () || buildHidden) && (pNode->Selected () || !onlySelected) )
|
||||||
{
|
{
|
||||||
string sTmp = "Object Name: ";
|
string sTmp = "Object Name: ";
|
||||||
sTmp += pNode->GetName();
|
sTmp += tStrToUtf8(pNode->GetName());
|
||||||
if (progress)
|
if (progress)
|
||||||
progress->setLine (0, sTmp);
|
progress->setLine (0, sTmp);
|
||||||
sTmp.clear();
|
sTmp.clear();
|
||||||
|
|
|
@ -36,7 +36,7 @@ bool CExportNel::scriptEvaluate (const char *script, void *out, TNelScriptValueT
|
||||||
four_typed_value_locals(Parser* parser,Value* code,Value* result,StringStream* source);
|
four_typed_value_locals(Parser* parser,Value* code,Value* result,StringStream* source);
|
||||||
|
|
||||||
vl.parser = new Parser;
|
vl.parser = new Parser;
|
||||||
vl.source = new StringStream (const_cast<char *>(script));
|
vl.source = new StringStream (utf8ToTStr(script));
|
||||||
vl.source->log_to(NULL);
|
vl.source->log_to(NULL);
|
||||||
save_current_frames();
|
save_current_frames();
|
||||||
try
|
try
|
||||||
|
@ -125,7 +125,7 @@ float CExportNel::getScriptAppData (Animatable *node, uint32 id, float def)
|
||||||
|
|
||||||
// String to int
|
// String to int
|
||||||
float value = 0.f;
|
float value = 0.f;
|
||||||
if (toFloatMax((const char*)ap->data, value))
|
if (toFloatMax((const TCHAR*)ap->data, value))
|
||||||
return value;
|
return value;
|
||||||
else
|
else
|
||||||
return def;
|
return def;
|
||||||
|
|
|
@ -114,7 +114,7 @@ INode *CExportNel::getNELScaleReferenceNode(INode &node)
|
||||||
{
|
{
|
||||||
std::string boneScaleName= getName(node) + boneScaleNameExt;
|
std::string boneScaleName= getName(node) + boneScaleNameExt;
|
||||||
// Get the reference node
|
// Get the reference node
|
||||||
referenceNode= _Ip->GetINodeByName(boneScaleName.c_str());
|
referenceNode= _Ip->GetINodeByName(utf8ToTStr(boneScaleName));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -455,7 +455,7 @@ uint CExportNel::buildSkinning (CMesh::CMeshBuild& buildMesh, const TInodePtrInt
|
||||||
nlassert ((uint)ite->second<buildMesh.BonesNames.size());
|
nlassert ((uint)ite->second<buildMesh.BonesNames.size());
|
||||||
|
|
||||||
// Names
|
// Names
|
||||||
buildMesh.BonesNames[ite->second] = ite->first->GetName();
|
buildMesh.BonesNames[ite->second] = tStrToUtf8(ite->first->GetName());
|
||||||
|
|
||||||
// Next
|
// Next
|
||||||
ite++;
|
ite++;
|
||||||
|
@ -1306,7 +1306,7 @@ static sint getBoneSide(INode *bone, std::string &mirrorName)
|
||||||
{
|
{
|
||||||
sint side= 0;
|
sint side= 0;
|
||||||
sint pos;
|
sint pos;
|
||||||
mirrorName= bone->GetName();
|
mirrorName = tStrToUtf8(bone->GetName());
|
||||||
|
|
||||||
if((pos= mirrorName.find(" R "))!=std::string::npos)
|
if((pos= mirrorName.find(" R "))!=std::string::npos)
|
||||||
{
|
{
|
||||||
|
@ -1335,7 +1335,7 @@ static INode *getMirrorBone(const std::vector<INode*> &skeletonNodes, INode *bon
|
||||||
// find
|
// find
|
||||||
for(uint i=0;i<skeletonNodes.size();i++)
|
for(uint i=0;i<skeletonNodes.size();i++)
|
||||||
{
|
{
|
||||||
if(mirrorName == skeletonNodes[i]->GetName())
|
if(mirrorName == tStrToUtf8(skeletonNodes[i]->GetName()))
|
||||||
return skeletonNodes[i];
|
return skeletonNodes[i];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -450,7 +450,7 @@ public:
|
||||||
}
|
}
|
||||||
catch (const NLMISC::EStream& excp)
|
catch (const NLMISC::EStream& excp)
|
||||||
{
|
{
|
||||||
MessageBox (NULL, excp.what(), "Load error", MB_OK|MB_ICONEXCLAMATION);
|
MessageBox (NULL, utf8ToTStr(excp.what()), _T("Load error"), MB_OK|MB_ICONEXCLAMATION);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return _bank;
|
return _bank;
|
||||||
|
|
|
@ -193,7 +193,7 @@ bool RPatchMesh::exportZone(INode* pNode, PatchMesh* pPM, NL3D::CZone& zone, CZo
|
||||||
}
|
}
|
||||||
catch (const EStream& e)
|
catch (const EStream& e)
|
||||||
{
|
{
|
||||||
MessageBox (NULL, stream.what(), _T("Error"), MB_OK|MB_ICONEXCLAMATION);
|
MessageBox (NULL, utf8ToTStr(e.what()), _T("Error"), MB_OK|MB_ICONEXCLAMATION);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -253,25 +253,22 @@ bool RPatchMesh::exportZone(INode* pNode, PatchMesh* pPM, NL3D::CZone& zone, CZo
|
||||||
if (!patchError.empty())
|
if (!patchError.empty())
|
||||||
{
|
{
|
||||||
// Make an error message
|
// Make an error message
|
||||||
char error[2098];
|
std::string error = "Error: triple edge detected in ";
|
||||||
smprintf (error, 2098, "Error: triple edge detected in ");
|
|
||||||
|
|
||||||
// For each error
|
// For each error
|
||||||
set<uint>::iterator ite=patchError.begin();
|
set<uint>::iterator ite=patchError.begin();
|
||||||
while (ite!=patchError.end())
|
while (ite!=patchError.end())
|
||||||
{
|
{
|
||||||
// Sub error message
|
// Sub error message
|
||||||
char subError[512];
|
error += toString("patch %d ", (*ite)+1);
|
||||||
smprintf (subError, 512, "patch %d ", (*ite)+1);
|
|
||||||
strcat (error, subError);
|
|
||||||
|
|
||||||
// Next error
|
// Next error
|
||||||
ite++;
|
ite++;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Show the message
|
// Show the message
|
||||||
mprintf (error);
|
mprintf (utf8ToTStr(error));
|
||||||
nlwarning (error);
|
nlwarning (error.c_str());
|
||||||
|
|
||||||
// Error
|
// Error
|
||||||
return false;
|
return false;
|
||||||
|
@ -612,7 +609,7 @@ bool RPatchMesh::exportZone(INode* pNode, PatchMesh* pPM, NL3D::CZone& zone, CZo
|
||||||
uint i;
|
uint i;
|
||||||
for (i=0; i<error.Errors.size (); i++)
|
for (i=0; i<error.Errors.size (); i++)
|
||||||
{
|
{
|
||||||
mprintf (error.Errors[i].c_str ());
|
mprintf (utf8ToTStr(error.Errors[i]));
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -3992,7 +3992,7 @@ void EPM_PaintCMode::DoPaint ()
|
||||||
}
|
}
|
||||||
catch (const EStream& stream)
|
catch (const EStream& stream)
|
||||||
{
|
{
|
||||||
MessageBox (NULL, stream.what(), "Error", MB_OK|MB_ICONEXCLAMATION);
|
MessageBox (NULL, utf8ToTStr(stream.what()), _T("Error"), MB_OK|MB_ICONEXCLAMATION);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4058,20 +4058,18 @@ bool loadLigoConfigFile (CLigoConfig& config, Interface& it)
|
||||||
if (hModule)
|
if (hModule)
|
||||||
{
|
{
|
||||||
// Get the path
|
// Get the path
|
||||||
char sModulePath[256];
|
TCHAR sModulePath[256];
|
||||||
int res=GetModuleFileName(hModule, sModulePath, 256);
|
int res=GetModuleFileName(hModule, sModulePath, 256);
|
||||||
// Success ?
|
// Success ?
|
||||||
if (res)
|
if (res)
|
||||||
{
|
{
|
||||||
// Path
|
// Path
|
||||||
char sDrive[256];
|
std::string modulePath = NLMISC::CFile::getPath(tStrToUtf8(sModulePath));
|
||||||
char sDir[256];
|
|
||||||
_splitpath (sModulePath, sDrive, sDir, NULL, NULL);
|
|
||||||
_makepath (sModulePath, sDrive, sDir, "ligoscape", ".cfg");
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
// Load the config file
|
// Load the config file
|
||||||
config.readConfigFile (sModulePath, false);
|
config.readConfigFile (modulePath, false);
|
||||||
// ok
|
// ok
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -242,7 +242,7 @@ void CTileSetCont::build (CTileBank& bank, uint tileSet)
|
||||||
if (!dmwarn)
|
if (!dmwarn)
|
||||||
{
|
{
|
||||||
dmwarn = true;
|
dmwarn = true;
|
||||||
MessageBox(NULL, "Tile bank not loaded, or bad tile bank. Missing a displacement tile. Use the tile bank utility to load the correct tilebank.", "NeL Patch Paint", MB_OK | MB_ICONWARNING);
|
MessageBox(NULL, _T("Tile bank not loaded, or bad tile bank. Missing a displacement tile. Use the tile bank utility to load the correct tilebank."), _T("NeL Patch Paint"), MB_OK | MB_ICONWARNING);
|
||||||
}
|
}
|
||||||
continue; // with next displace
|
continue; // with next displace
|
||||||
}
|
}
|
||||||
|
@ -409,24 +409,17 @@ void LoadKeyCfg ()
|
||||||
HMODULE hModule = hInstance;
|
HMODULE hModule = hInstance;
|
||||||
if (hModule)
|
if (hModule)
|
||||||
{
|
{
|
||||||
char sModulePath[256];
|
TCHAR sModulePath[256];
|
||||||
int res=GetModuleFileName(hModule, sModulePath, 256);
|
int res=GetModuleFileName(hModule, sModulePath, 256);
|
||||||
if (res)
|
if (res)
|
||||||
{
|
{
|
||||||
// split path
|
|
||||||
char drive[256];
|
|
||||||
char dir[256];
|
|
||||||
_splitpath (sModulePath, drive, dir, NULL, NULL);
|
|
||||||
|
|
||||||
// Make a new path
|
// Make a new path
|
||||||
char cgfPath[256];
|
std::string cfgPath = NLMISC::CFile::getPath(tStrToUtf8(sModulePath)) + "keys.cfg";
|
||||||
_makepath (cgfPath, drive, dir, "keys", ".cfg");
|
|
||||||
|
|
||||||
|
|
||||||
CConfigFile cf;
|
CConfigFile cf;
|
||||||
|
|
||||||
// Load and parse "test.txt" file
|
// Load and parse "test.txt" file
|
||||||
cf.load (cgfPath);
|
cf.load (cfgPath);
|
||||||
|
|
||||||
// For each keys
|
// For each keys
|
||||||
for (uint key=0; key<KeyCounter; key++)
|
for (uint key=0; key<KeyCounter; key++)
|
||||||
|
@ -458,23 +451,18 @@ void LoadVarCfg ()
|
||||||
HMODULE hModule = hInstance;
|
HMODULE hModule = hInstance;
|
||||||
if (hModule)
|
if (hModule)
|
||||||
{
|
{
|
||||||
char sModulePath[256];
|
TCHAR sModulePath[256];
|
||||||
int res=GetModuleFileName(hModule, sModulePath, 256);
|
int res=GetModuleFileName(hModule, sModulePath, 256);
|
||||||
if (res)
|
if (res)
|
||||||
{
|
{
|
||||||
// split path
|
|
||||||
char drive[256];
|
|
||||||
char dir[256];
|
|
||||||
_splitpath (sModulePath, drive, dir, NULL, NULL);
|
|
||||||
|
|
||||||
// Make a new path
|
// Make a new path
|
||||||
char cgfPath[256];
|
char cgfPath[256];
|
||||||
_makepath (cgfPath, drive, dir, "keys", ".cfg");
|
std::string cfgPath = NLMISC::CFile::getPath(tStrToUtf8(sModulePath)) + "keys.cfg";
|
||||||
|
|
||||||
CConfigFile cf;
|
CConfigFile cf;
|
||||||
|
|
||||||
// Load and parse "test.txt" file
|
// Load and parse "test.txt" file
|
||||||
cf.load (cgfPath);
|
cf.load (cfgPath);
|
||||||
|
|
||||||
// go
|
// go
|
||||||
try
|
try
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -72,7 +72,7 @@ class Tile_utilityClassDesc:public ClassDesc2
|
||||||
{
|
{
|
||||||
return &theTile_utility;
|
return &theTile_utility;
|
||||||
}
|
}
|
||||||
const TCHAR * ClassName() {return "NeL Tile Bank";}
|
const TCHAR * ClassName() {return _T("NeL Tile Bank");}
|
||||||
SClass_ID SuperClassID() {return UTILITY_CLASS_ID;}
|
SClass_ID SuperClassID() {return UTILITY_CLASS_ID;}
|
||||||
Class_ID ClassID() {return TILE_UTILITY_CLASS_ID;}
|
Class_ID ClassID() {return TILE_UTILITY_CLASS_ID;}
|
||||||
const TCHAR* Category() {return _T("NeL Tools");}
|
const TCHAR* Category() {return _T("NeL Tools");}
|
||||||
|
@ -96,7 +96,7 @@ static INT_PTR CALLBACK Tile_utilityDlgProc(HWND hWnd, UINT msg, WPARAM wParam,
|
||||||
if (hModule)
|
if (hModule)
|
||||||
{
|
{
|
||||||
// Get module file name
|
// Get module file name
|
||||||
char moduldeFileName[512];
|
TCHAR moduldeFileName[512];
|
||||||
if (GetModuleFileName (hModule, moduldeFileName, 512))
|
if (GetModuleFileName (hModule, moduldeFileName, 512))
|
||||||
{
|
{
|
||||||
// Get version info size
|
// Get version info size
|
||||||
|
@ -112,15 +112,15 @@ static INT_PTR CALLBACK Tile_utilityDlgProc(HWND hWnd, UINT msg, WPARAM wParam,
|
||||||
{
|
{
|
||||||
uint *versionTab;
|
uint *versionTab;
|
||||||
uint versionSize;
|
uint versionSize;
|
||||||
if (VerQueryValue (buffer, "\\", (void**)&versionTab, &versionSize))
|
if (VerQueryValue (buffer, _T("\\"), (void**)&versionTab, &versionSize))
|
||||||
{
|
{
|
||||||
// Get the pointer on the structure
|
// Get the pointer on the structure
|
||||||
VS_FIXEDFILEINFO *info=(VS_FIXEDFILEINFO*)versionTab;
|
VS_FIXEDFILEINFO *info=(VS_FIXEDFILEINFO*)versionTab;
|
||||||
if (info)
|
if (info)
|
||||||
{
|
{
|
||||||
// Setup version number
|
// Setup version number
|
||||||
char version[512];
|
TCHAR version[512];
|
||||||
sprintf (version, "Version %d.%d.%d.%d",
|
_tcprintf (version, "Version %d.%d.%d.%d",
|
||||||
info->dwFileVersionMS>>16,
|
info->dwFileVersionMS>>16,
|
||||||
info->dwFileVersionMS&0xffff,
|
info->dwFileVersionMS&0xffff,
|
||||||
info->dwFileVersionLS>>16,
|
info->dwFileVersionLS>>16,
|
||||||
|
@ -128,25 +128,25 @@ static INT_PTR CALLBACK Tile_utilityDlgProc(HWND hWnd, UINT msg, WPARAM wParam,
|
||||||
SetWindowText (GetDlgItem (hWnd, IDC_VERSION), version);
|
SetWindowText (GetDlgItem (hWnd, IDC_VERSION), version);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
SetWindowText (GetDlgItem (hWnd, IDC_VERSION), "VS_FIXEDFILEINFO * is NULL");
|
SetWindowText (GetDlgItem (hWnd, IDC_VERSION), _T("VS_FIXEDFILEINFO * is NULL"));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
SetWindowText (GetDlgItem (hWnd, IDC_VERSION), "VerQueryValue failed");
|
SetWindowText (GetDlgItem (hWnd, IDC_VERSION), _T("VerQueryValue failed"));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
SetWindowText (GetDlgItem (hWnd, IDC_VERSION), "GetFileVersionInfo failed");
|
SetWindowText (GetDlgItem (hWnd, IDC_VERSION), _T("GetFileVersionInfo failed"));
|
||||||
|
|
||||||
// Free the buffer
|
// Free the buffer
|
||||||
delete [] buffer;
|
delete [] buffer;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
SetWindowText (GetDlgItem (hWnd, IDC_VERSION), "GetFileVersionInfoSize failed");
|
SetWindowText (GetDlgItem (hWnd, IDC_VERSION), _T("GetFileVersionInfoSize failed"));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
SetWindowText (GetDlgItem (hWnd, IDC_VERSION), "GetModuleFileName failed");
|
SetWindowText (GetDlgItem (hWnd, IDC_VERSION), _T("GetModuleFileName failed"));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
SetWindowText (GetDlgItem (hWnd, IDC_VERSION), "hInstance NULL");
|
SetWindowText (GetDlgItem (hWnd, IDC_VERSION), _T("hInstance NULL"));
|
||||||
|
|
||||||
|
|
||||||
theTile_utility.Init(hWnd);
|
theTile_utility.Init(hWnd);
|
||||||
|
@ -168,7 +168,7 @@ static INT_PTR CALLBACK Tile_utilityDlgProc(HWND hWnd, UINT msg, WPARAM wParam,
|
||||||
{
|
{
|
||||||
case IDC_BANK_PATH:
|
case IDC_BANK_PATH:
|
||||||
{
|
{
|
||||||
static char sPath[256];
|
static TCHAR sPath[256];
|
||||||
static bool bFirst=false;
|
static bool bFirst=false;
|
||||||
if (!bFirst)
|
if (!bFirst)
|
||||||
{
|
{
|
||||||
|
@ -178,7 +178,7 @@ static INT_PTR CALLBACK Tile_utilityDlgProc(HWND hWnd, UINT msg, WPARAM wParam,
|
||||||
OPENFILENAME ofn;
|
OPENFILENAME ofn;
|
||||||
ofn.lStructSize=sizeof (ofn);
|
ofn.lStructSize=sizeof (ofn);
|
||||||
ofn.hwndOwner=NULL;
|
ofn.hwndOwner=NULL;
|
||||||
ofn.lpstrFilter="Rykol bank files (*.bank)\0*.bank\0All Files (*.*)\0*.*\0";
|
ofn.lpstrFilter = _T("Rykol bank files (*.bank)\0*.bank\0All Files (*.*)\0*.*\0");
|
||||||
ofn.lpstrCustomFilter=NULL;
|
ofn.lpstrCustomFilter=NULL;
|
||||||
ofn.nMaxCustFilter=0;
|
ofn.nMaxCustFilter=0;
|
||||||
ofn.nFilterIndex=0;
|
ofn.nFilterIndex=0;
|
||||||
|
@ -187,7 +187,7 @@ static INT_PTR CALLBACK Tile_utilityDlgProc(HWND hWnd, UINT msg, WPARAM wParam,
|
||||||
ofn.lpstrFileTitle=NULL;
|
ofn.lpstrFileTitle=NULL;
|
||||||
ofn.nMaxFileTitle=NULL;
|
ofn.nMaxFileTitle=NULL;
|
||||||
ofn.lpstrInitialDir=NULL;
|
ofn.lpstrInitialDir=NULL;
|
||||||
ofn.lpstrTitle="Choose a bank file";
|
ofn.lpstrTitle = _T("Choose a bank file");
|
||||||
ofn.Flags=OFN_ENABLESIZING|OFN_FILEMUSTEXIST;
|
ofn.Flags=OFN_ENABLESIZING|OFN_FILEMUSTEXIST;
|
||||||
ofn.nFileOffset=0;
|
ofn.nFileOffset=0;
|
||||||
ofn.nFileExtension=0;
|
ofn.nFileExtension=0;
|
||||||
|
@ -197,7 +197,7 @@ static INT_PTR CALLBACK Tile_utilityDlgProc(HWND hWnd, UINT msg, WPARAM wParam,
|
||||||
ofn.lpTemplateName=0;
|
ofn.lpTemplateName=0;
|
||||||
if (GetOpenFileName(&ofn))
|
if (GetOpenFileName(&ofn))
|
||||||
{
|
{
|
||||||
theTile_utility.Load (sPath);
|
theTile_utility.Load (tStrToUtf8(sPath));
|
||||||
theTile_utility.SetLand (theTile_utility.Land);
|
theTile_utility.SetLand (theTile_utility.Land);
|
||||||
theTile_utility.SetupUI ();
|
theTile_utility.SetupUI ();
|
||||||
}
|
}
|
||||||
|
@ -223,7 +223,7 @@ static INT_PTR CALLBACK Tile_utilityDlgProc(HWND hWnd, UINT msg, WPARAM wParam,
|
||||||
case IDC_SETUP:
|
case IDC_SETUP:
|
||||||
{
|
{
|
||||||
if (!theTile_utility.SetupMaterial ())
|
if (!theTile_utility.SetupMaterial ())
|
||||||
MessageBox (NULL, "Select some nel patch object..", "Rykol tile", MB_OK|MB_ICONEXCLAMATION);
|
MessageBox (NULL, _T("Select some nel patch object.."), _T("Rykol tile"), MB_OK|MB_ICONEXCLAMATION);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -291,9 +291,8 @@ void Tile_utility::Load (const std::string& path)
|
||||||
CIFile file;
|
CIFile file;
|
||||||
if (!file.open (path))
|
if (!file.open (path))
|
||||||
{
|
{
|
||||||
char tmp[1024];
|
std::string tmp = toString("File not found: %s", path.c_str());
|
||||||
sprintf (tmp, "File not found: %s", path);
|
MessageBox (NULL, utf8ToTStr(tmp), _T("Error.."), MB_OK|MB_ICONEXCLAMATION);
|
||||||
MessageBox (NULL, tmp, "Error..", MB_OK|MB_ICONEXCLAMATION);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -304,9 +303,8 @@ void Tile_utility::Load (const std::string& path)
|
||||||
}
|
}
|
||||||
catch (const EStream &stream)
|
catch (const EStream &stream)
|
||||||
{
|
{
|
||||||
char tmp[1024];
|
std::string tmp = toString("Error while loading %s:\n\n%s", path.c_str(), stream.what());
|
||||||
sprintf (tmp, "Error while loading %s:\n\n%s", path, stream.what());
|
MessageBox (NULL, utf8ToTStr(tmp), _T("Error.."), MB_OK|MB_ICONEXCLAMATION);
|
||||||
MessageBox (NULL, tmp, "Error..", MB_OK|MB_ICONEXCLAMATION);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -368,32 +366,29 @@ void Tile_utility::SetupUI ()
|
||||||
if (Bank.getLandCount())
|
if (Bank.getLandCount())
|
||||||
{
|
{
|
||||||
// Button text
|
// Button text
|
||||||
char sName[256];
|
std::string name = toLower(NLMISC::CFile::getFilenameWithoutExtension(Path));
|
||||||
_splitpath (Path.c_str(), NULL, NULL, sName, NULL);
|
|
||||||
char *sName2=sName;
|
if (!name.empty())
|
||||||
if (*sName2)
|
|
||||||
*sName2=toupper (*sName2);
|
|
||||||
sName2++;
|
|
||||||
while (*sName2)
|
|
||||||
{
|
{
|
||||||
*sName2=tolower (*sName2);
|
std::string upName = toUpper(name);
|
||||||
sName2++;
|
name[0] = upName[0];
|
||||||
}
|
}
|
||||||
SetWindowText (hwnd, sName);
|
|
||||||
|
SetWindowText (hwnd, utf8ToTStr(name));
|
||||||
|
|
||||||
// Static text
|
// Static text
|
||||||
char sTmp[256];
|
TCHAR sTmp[256];
|
||||||
sprintf (sTmp, "%d diffuse tiles.", Bank.getNumBitmap (CTile::diffuse));
|
_tcprintf (sTmp, "%d diffuse tiles.", Bank.getNumBitmap (CTile::diffuse));
|
||||||
SetWindowText (hwndStatic1, sTmp);
|
SetWindowText (hwndStatic1, sTmp);
|
||||||
sprintf (sTmp, "%d additive tiles.", Bank.getNumBitmap (CTile::additive));
|
_tcprintf (sTmp, "%d additive tiles.", Bank.getNumBitmap (CTile::additive));
|
||||||
SetWindowText (hwndStatic2, sTmp);
|
SetWindowText (hwndStatic2, sTmp);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
SetWindowText (hwnd, "Click to choose a bank..");
|
SetWindowText (hwnd, _T("Click to choose a bank.."));
|
||||||
SetWindowText (hwndStatic1, "");
|
SetWindowText (hwndStatic1, _T(""));
|
||||||
SetWindowText (hwndStatic2, "");
|
SetWindowText (hwndStatic2, _T(""));
|
||||||
SetWindowText (hwndStatic3, "");
|
SetWindowText (hwndStatic3, _T(""));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -412,7 +407,7 @@ bool Tile_utility::SetupMaterial () const
|
||||||
// Multi
|
// Multi
|
||||||
MultiMtl* multi=NewDefaultMultiMtl();
|
MultiMtl* multi=NewDefaultMultiMtl();
|
||||||
multi->SetNumSubMtls (Bank.getTileCount()+1);
|
multi->SetNumSubMtls (Bank.getTileCount()+1);
|
||||||
multi->SetName ("Rykol Bank");
|
multi->SetName (_T("Rykol Bank"));
|
||||||
|
|
||||||
// Default mtl
|
// Default mtl
|
||||||
Mtl* firstMtl=multi->GetSubMtl (0);
|
Mtl* firstMtl=multi->GetSubMtl (0);
|
||||||
|
@ -420,7 +415,7 @@ bool Tile_utility::SetupMaterial () const
|
||||||
// Mtl param
|
// Mtl param
|
||||||
firstMtl->SetDiffuse (Color (0.5f,0.5f,0.5f), t);
|
firstMtl->SetDiffuse (Color (0.5f,0.5f,0.5f), t);
|
||||||
firstMtl->SetAmbient (Color (0,0,0), t);
|
firstMtl->SetAmbient (Color (0,0,0), t);
|
||||||
firstMtl->SetName ("Rykol Tile Default");
|
firstMtl->SetName (_T("Rykol Tile Default"));
|
||||||
firstMtl->SetShininess (0.0, t);
|
firstMtl->SetShininess (0.0, t);
|
||||||
firstMtl->SetSpecular (Color (0,0,0), t);
|
firstMtl->SetSpecular (Color (0,0,0), t);
|
||||||
|
|
||||||
|
@ -439,7 +434,7 @@ bool Tile_utility::SetupMaterial () const
|
||||||
// Mtl param
|
// Mtl param
|
||||||
mtl->SetDiffuse (Color (1.f,1.f,1.f), t);
|
mtl->SetDiffuse (Color (1.f,1.f,1.f), t);
|
||||||
mtl->SetAmbient (Color (0,0,0), t);
|
mtl->SetAmbient (Color (0,0,0), t);
|
||||||
mtl->SetName ("Rykol Tile");
|
mtl->SetName (_T("Rykol Tile"));
|
||||||
mtl->SetShininess (0.0, t);
|
mtl->SetShininess (0.0, t);
|
||||||
mtl->SetSpecular (Color (0,0,0), t);
|
mtl->SetSpecular (Color (0,0,0), t);
|
||||||
|
|
||||||
|
@ -461,7 +456,7 @@ bool Tile_utility::SetupMaterial () const
|
||||||
tex->SetAlphaSource (ALPHA_NONE);
|
tex->SetAlphaSource (ALPHA_NONE);
|
||||||
tex->SetAlphaAsMono (FALSE);
|
tex->SetAlphaAsMono (FALSE);
|
||||||
tex->SetAlphaAsRGB (FALSE);
|
tex->SetAlphaAsRGB (FALSE);
|
||||||
tex->SetMapName (const_cast<char*>((Bank.getAbsPath()+tile->getRelativeFileName(CTile::diffuse)).c_str()));
|
tex->SetMapName (utf8ToTStr(Bank.getAbsPath() + tile->getRelativeFileName(CTile::diffuse)));
|
||||||
|
|
||||||
// Assign BitmapTex
|
// Assign BitmapTex
|
||||||
rgb->SetSubTexmap (0, tex);
|
rgb->SetSubTexmap (0, tex);
|
||||||
|
@ -481,7 +476,7 @@ bool Tile_utility::SetupMaterial () const
|
||||||
tex->SetAlphaSource (ALPHA_NONE);
|
tex->SetAlphaSource (ALPHA_NONE);
|
||||||
tex->SetAlphaAsMono (FALSE);
|
tex->SetAlphaAsMono (FALSE);
|
||||||
tex->SetAlphaAsRGB (FALSE);
|
tex->SetAlphaAsRGB (FALSE);
|
||||||
tex->SetMapName (const_cast<char*>((Bank.getAbsPath()+tile->getRelativeFileName(CTile::additive)).c_str()));
|
tex->SetMapName (utf8ToTStr(Bank.getAbsPath() + tile->getRelativeFileName(CTile::additive)));
|
||||||
|
|
||||||
// Assign BitmapTex
|
// Assign BitmapTex
|
||||||
rgb->SetSubTexmap (1, tex);
|
rgb->SetSubTexmap (1, tex);
|
||||||
|
|
|
@ -889,11 +889,11 @@ void Browse::OnBatchLoad ()
|
||||||
|
|
||||||
if (sFile.DoModal()==IDOK)
|
if (sFile.DoModal()==IDOK)
|
||||||
{
|
{
|
||||||
char sDrive[256];
|
std::string fullPath = tStrToUtf8(sFile.GetPathName());
|
||||||
char sPath[256];
|
|
||||||
char sName[256];
|
std::string path = NLMISC::CFile::getPath(fullPath);
|
||||||
char sExt[256];
|
std::string filename = NLMISC::CFile::getFilenameWithoutExtension(fullPath);
|
||||||
_splitpath (sFile.GetPathName(), sDrive, sPath, sName, sExt);
|
std::string ext = NLMISC::CFile::getExtension(fullPath);
|
||||||
|
|
||||||
// look for some numbers..
|
// look for some numbers..
|
||||||
char *sNumber=sName+strlen(sName)-1;
|
char *sNumber=sName+strlen(sName)-1;
|
||||||
|
@ -925,11 +925,9 @@ void Browse::OnBatchLoad ()
|
||||||
for (int rot=0; rot<4; rot++)
|
for (int rot=0; rot<4; rot++)
|
||||||
{
|
{
|
||||||
// Try to load a tile with a file name like /tiletransition0.tga
|
// Try to load a tile with a file name like /tiletransition0.tga
|
||||||
char sName2[256];
|
std::string sFinal = path + toString("%s%02d.%s", filename.c_str(), (int)transition, ext.c_str());
|
||||||
char sFinal[256];
|
|
||||||
sprintf (sName2, "%s%02d", sName, (int)transition);
|
FILE *pFile = nlfopen (sFinal, "rb");
|
||||||
_makepath (sFinal, sDrive, sPath, sName2, sExt);
|
|
||||||
FILE *pFile=fopen (sFinal, "rb");
|
|
||||||
|
|
||||||
// Close the file and add the tile if opened
|
// Close the file and add the tile if opened
|
||||||
if (pFile)
|
if (pFile)
|
||||||
|
@ -961,11 +959,9 @@ void Browse::OnBatchLoad ()
|
||||||
if (tileBank2.getTile (trans->getTile())->getRelativeFileName (m_ctrl.Texture==1?CTile::diffuse:CTile::additive).empty())
|
if (tileBank2.getTile (trans->getTile())->getRelativeFileName (m_ctrl.Texture==1?CTile::diffuse:CTile::additive).empty())
|
||||||
{
|
{
|
||||||
// Try to load a tile with a file name like /tiletransition0.tga
|
// Try to load a tile with a file name like /tiletransition0.tga
|
||||||
char sName2[256];
|
std::string sFinal = path + toString("%s%02d.%s", filename.c_str(), (int)transition, ext.c_str());
|
||||||
char sFinal[256];
|
|
||||||
sprintf (sName2, "%s%02d", sName, (int)transition);
|
FILE *pFile = nlfopen (sFinal, "rb");
|
||||||
_makepath (sFinal, sDrive, sPath, sName2, sExt);
|
|
||||||
FILE *pFile=fopen (sFinal, "rb");
|
|
||||||
|
|
||||||
// Close the file and add the tile if opened
|
// Close the file and add the tile if opened
|
||||||
if (pFile)
|
if (pFile)
|
||||||
|
|
|
@ -25,15 +25,15 @@
|
||||||
#include "SelectionTerritoire.h"
|
#include "SelectionTerritoire.h"
|
||||||
#include "View.h"
|
#include "View.h"
|
||||||
|
|
||||||
#define REGKEY_TILEDIT "Software\\Nevrax\\Nel\\Tile_Edit"
|
#define REGKEY_TILEDIT _T("Software\\Nevrax\\Nel\\Tile_Edit")
|
||||||
#define REGKEY_BUTTONZOOM "Zoom button"
|
#define REGKEY_BUTTONZOOM _T("Zoom button")
|
||||||
#define REGKEY_BUTTONVARIETY "Zoom variety"
|
#define REGKEY_BUTTONVARIETY _T("Zoom variety")
|
||||||
#define REGKEY_BUTTONTEXTURE "Texture button"
|
#define REGKEY_BUTTONTEXTURE _T("Texture button")
|
||||||
#define REGKEY_BUTTONSORT "Sort button"
|
#define REGKEY_BUTTONSORT _T("Sort button")
|
||||||
#define REGKEY_BUTTONTEXTINFO "Info button"
|
#define REGKEY_BUTTONTEXTINFO _T("Info button")
|
||||||
#define REGKEY_LISTCOMBOBOX "List type combo box"
|
#define REGKEY_LISTCOMBOBOX _T("List type combo box")
|
||||||
#define REGKEY_WNDPL "Window placement"
|
#define REGKEY_WNDPL _T("Window placement")
|
||||||
#define REGKEY_LASTPATH "Last path"
|
#define REGKEY_LASTPATH _T("Last path")
|
||||||
|
|
||||||
#define SCROLL_MAX 50000
|
#define SCROLL_MAX 50000
|
||||||
|
|
||||||
|
|
|
@ -386,12 +386,8 @@ void SelectionTerritoire::OnSelect()
|
||||||
list2->AddString(tileBank.getTileSet(i)->getName().c_str());
|
list2->AddString(tileBank.getTileSet(i)->getName().c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
char drive[256],name[256],path[256],ext[256];
|
MainFileName = CString(utf8ToTStr(NLMISC::CFile::getFilename(temp)));
|
||||||
_splitpath(temp,drive,path,name,ext);
|
DefautPath = CString(utf8ToTStr(NLMISC::CFile::getPath(temp)));
|
||||||
MainFileName = name;
|
|
||||||
MainFileName += ext;
|
|
||||||
DefautPath = drive;
|
|
||||||
DefautPath += path;
|
|
||||||
|
|
||||||
MainFileOk = 1;
|
MainFileOk = 1;
|
||||||
CButton *button = (CButton*)GetDlgItem(IDC_ADD_TERRITOIRE);
|
CButton *button = (CButton*)GetDlgItem(IDC_ADD_TERRITOIRE);
|
||||||
|
@ -468,12 +464,10 @@ void SelectionTerritoire::OnSaveAs()
|
||||||
button->EnableWindow(true);
|
button->EnableWindow(true);
|
||||||
|
|
||||||
// Create a file name
|
// Create a file name
|
||||||
char drive[256],name[256],path[256],ext[256];
|
std::string temp = tStrToUtf8(sFile.GetPathName());
|
||||||
_splitpath(sFile.GetPathName(), drive, path, name, ext);
|
|
||||||
MainFileName = name;
|
MainFileName = CString(utf8ToTStr(NLMISC::CFile::getFilename(temp)));
|
||||||
MainFileName += ext;
|
DefautPath = CString(utf8ToTStr(NLMISC::CFile::getPath(temp)));
|
||||||
DefautPath = drive;
|
|
||||||
DefautPath += path;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -417,9 +417,8 @@ int TileList::setTileTransition (int tile, const std::string& name, NL3D::CTile:
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Error: bitmap not in the absolute path..
|
// Error: bitmap not in the absolute path..
|
||||||
char msg[512];
|
std::string msg = NLMISC::toString("The bitmap %s is not in the absolute path %s.", name.c_str(), tileBank2.getAbsPath ().c_str());
|
||||||
sprintf (msg, "The bitmap %s is not in the absolute path %s.", name.c_str(), tileBank2.getAbsPath ().c_str());
|
MessageBox (NULL, utf8ToTStr(msg), _T("Load error"), MB_OK|MB_ICONEXCLAMATION);
|
||||||
MessageBox (NULL, msg, "Load error", MB_OK|MB_ICONEXCLAMATION);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
|
@ -438,14 +437,14 @@ int TileList::setDisplacement (int tile, const std::string& name)
|
||||||
theListDisplacement[tile].loaded=0;
|
theListDisplacement[tile].loaded=0;
|
||||||
|
|
||||||
if (!_LoadBitmap(tileBank2.getAbsPath() + troncated, &theListDisplacement[tile].BmpInfo, theListDisplacement[tile].Bits, NULL, 0))
|
if (!_LoadBitmap(tileBank2.getAbsPath() + troncated, &theListDisplacement[tile].BmpInfo, theListDisplacement[tile].Bits, NULL, 0))
|
||||||
MessageBox (NULL, (tileBank2.getAbsPath() + troncated).c_str(), "Can't load file", MB_OK|MB_ICONEXCLAMATION);
|
MessageBox (NULL, (tileBank2.getAbsPath() + troncated).c_str(), _T("Can't load file"), MB_OK|MB_ICONEXCLAMATION);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Check the size
|
// Check the size
|
||||||
if ((theListDisplacement[tile].BmpInfo.bmiHeader.biWidth!=32)||(-theListDisplacement[tile].BmpInfo.bmiHeader.biHeight!=32))
|
if ((theListDisplacement[tile].BmpInfo.bmiHeader.biWidth!=32)||(-theListDisplacement[tile].BmpInfo.bmiHeader.biHeight!=32))
|
||||||
{
|
{
|
||||||
// Error message
|
// Error message
|
||||||
MessageBox (NULL, "Invalid size: displacement map must be 32x32 8 bits.", troncated.c_str(),
|
MessageBox (NULL, _T("Invalid size: displacement map must be 32x32 8 bits."), troncated.c_str(),
|
||||||
MB_OK|MB_ICONEXCLAMATION);
|
MB_OK|MB_ICONEXCLAMATION);
|
||||||
|
|
||||||
// Free the bitmap
|
// Free the bitmap
|
||||||
|
@ -1284,11 +1283,10 @@ void CTView::DrawTile(tilelist::iterator i,CDC *pDC,int clear, int n)
|
||||||
&*bits->begin(),bmpinf,DIB_RGB_COLORS,SRCCOPY);
|
&*bits->begin(),bmpinf,DIB_RGB_COLORS,SRCCOPY);
|
||||||
}
|
}
|
||||||
|
|
||||||
char temp[100];
|
std::string Name;
|
||||||
char Name[256]; Name[0] = 0;
|
|
||||||
if (InfoTexte==2)
|
if (InfoTexte==2)
|
||||||
{
|
{
|
||||||
_splitpath(pth.c_str(),temp,temp,Name,temp);
|
Name = NLMISC::CFile::getFilenameWithoutExtension(pth);
|
||||||
}
|
}
|
||||||
else if (InfoTexte==3)
|
else if (InfoTexte==3)
|
||||||
{
|
{
|
||||||
|
@ -1296,12 +1294,20 @@ void CTView::DrawTile(tilelist::iterator i,CDC *pDC,int clear, int n)
|
||||||
}
|
}
|
||||||
else if (InfoTexte==1)
|
else if (InfoTexte==1)
|
||||||
{
|
{
|
||||||
sprintf(Name,"%d",i->id);
|
Name = NLMISC::toString("%d", i->id);
|
||||||
}
|
}
|
||||||
rect_txt.top = pt.y + sizetile_y + spacing_tile_text;
|
rect_txt.top = pt.y + sizetile_y + spacing_tile_text;
|
||||||
rect_txt.bottom += rect_txt.top + sizetext_y;
|
rect_txt.bottom += rect_txt.top + sizetext_y;
|
||||||
rect_txt.left -= spacing_x;
|
rect_txt.left -= spacing_x;
|
||||||
pDC->DrawText(Name,(int)strlen(Name),&rect_txt,DT_CENTER | DT_SINGLELINE);
|
|
||||||
|
#ifdef _UNICODE
|
||||||
|
ucstring tmp;
|
||||||
|
tmp.fromUtf8(Name);
|
||||||
|
#else
|
||||||
|
std::string tmp = Name;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
pDC->DrawText((LPCTSTR)tmp.c_str(), (int)tmp.length(), &rect_txt,DT_CENTER | DT_SINGLELINE);
|
||||||
|
|
||||||
// Restore the device context
|
// Restore the device context
|
||||||
pDC->SetBkColor( clrBk );
|
pDC->SetBkColor( clrBk );
|
||||||
|
@ -1538,15 +1544,12 @@ LRESULT CTView::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
|
||||||
{
|
{
|
||||||
CString str = load.GetNextPathName(p);
|
CString str = load.GetNextPathName(p);
|
||||||
|
|
||||||
char sDrive[256];
|
LastPath = NLMISC::CFile::getPath(tStrToUtf8(str));
|
||||||
char sPath[256];
|
|
||||||
_splitpath (str, sDrive, sPath, NULL, NULL);
|
|
||||||
LastPath=string (sDrive)+string (sPath);
|
|
||||||
|
|
||||||
if (str!=CString(""))
|
if (!str.IsEmpty())
|
||||||
{
|
{
|
||||||
int index=0;
|
int index=0;
|
||||||
const char *pathname = (LPCTSTR)str;
|
std::string pathname = tStrToUtf8(str);
|
||||||
|
|
||||||
// Add mode, to the end of the list
|
// Add mode, to the end of the list
|
||||||
if (id==ID_MENU_ADD)
|
if (id==ID_MENU_ADD)
|
||||||
|
|
|
@ -61,15 +61,15 @@ END_MESSAGE_MAP()
|
||||||
void CChooseVegetSet::OnBrowse()
|
void CChooseVegetSet::OnBrowse()
|
||||||
{
|
{
|
||||||
// Select a veget set
|
// Select a veget set
|
||||||
static char BASED_CODE szFilter[] = "NeL VegetSet Files (*.vegetset)|*.vegetset|All Files (*.*)|*.*||";
|
static TCHAR BASED_CODE szFilter[] = _T("NeL VegetSet Files (*.vegetset)|*.vegetset|All Files (*.*)|*.*||");
|
||||||
|
|
||||||
// Create a file dialog
|
// Create a file dialog
|
||||||
CFileDialog dialog ( TRUE, "*.vegetset", "*.vegetset", OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, szFilter, (CWnd*)Parent);
|
CFileDialog dialog ( TRUE, _T("*.vegetset"), _T("*.vegetset"), OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, szFilter, (CWnd*)Parent);
|
||||||
if (dialog.DoModal() == IDOK)
|
if (dialog.DoModal() == IDOK)
|
||||||
{
|
{
|
||||||
// Get the file name
|
// Get the file name
|
||||||
FileName = dialog.GetFileName ();
|
FileName = tStrToUtf8(dialog.GetFileName ());
|
||||||
Name.SetWindowText (FileName.c_str());
|
Name.SetWindowText (utf8ToTStr(FileName));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -80,7 +80,7 @@ BOOL CChooseVegetSet::OnInitDialog()
|
||||||
if (!FileName.empty())
|
if (!FileName.empty())
|
||||||
Name.SetWindowText (utf8ToTStr(FileName));
|
Name.SetWindowText (utf8ToTStr(FileName));
|
||||||
else
|
else
|
||||||
Name.SetWindowText ("Browse...");
|
Name.SetWindowText (_T("Browse..."));
|
||||||
|
|
||||||
return TRUE; // return TRUE unless you set the focus to a control
|
return TRUE; // return TRUE unless you set the focus to a control
|
||||||
// EXCEPTION: OCX Property Pages should return FALSE
|
// EXCEPTION: OCX Property Pages should return FALSE
|
||||||
|
|
|
@ -669,7 +669,7 @@ void CBranch_patcherDlg::OnButtonExtractTokens()
|
||||||
m_SrcDirLabel = "Enter Token 1";
|
m_SrcDirLabel = "Enter Token 1";
|
||||||
m_TargetDirLabel = "Enter Token 2";
|
m_TargetDirLabel = "Enter Token 2";
|
||||||
m_Filename = "The tokens above were extracted from the directories.";
|
m_Filename = "The tokens above were extracted from the directories.";
|
||||||
((CButton*)GetDlgItem( IDC_ButtonExtractTokens ))->SetWindowText( "Store Tokens" );
|
((CButton*)GetDlgItem( IDC_ButtonExtractTokens ))->SetWindowText( _T("Store Tokens") );
|
||||||
GetDlgItem( IDC_TopText )->ShowWindow( SW_HIDE );
|
GetDlgItem( IDC_TopText )->ShowWindow( SW_HIDE );
|
||||||
GetDlgItem( IDC_ButtonClearTokens )->EnableWindow( FALSE );
|
GetDlgItem( IDC_ButtonClearTokens )->EnableWindow( FALSE );
|
||||||
GetDlgItem( IDC_ButtonPatch )->ShowWindow( SW_HIDE );
|
GetDlgItem( IDC_ButtonPatch )->ShowWindow( SW_HIDE );
|
||||||
|
|
|
@ -87,7 +87,7 @@ BOOL CPlugInSelector::OnInitDialog()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int getLastSeparator (const string &filename)
|
std::string::size_type getLastSeparator (const string &filename)
|
||||||
{
|
{
|
||||||
string::size_type pos = filename.find_last_of ('/');
|
string::size_type pos = filename.find_last_of ('/');
|
||||||
if (pos == string::npos)
|
if (pos == string::npos)
|
||||||
|
|
|
@ -529,9 +529,9 @@ int main( int argc, char ** argv )
|
||||||
readFormId( outputFileName );
|
readFormId( outputFileName );
|
||||||
|
|
||||||
// output path
|
// output path
|
||||||
sint lastSeparator = CFile::getLastSeparator(outputFileName);
|
std::string::size_type lastSeparator = CFile::getLastSeparator(outputFileName);
|
||||||
string outputPath;
|
string outputPath;
|
||||||
if( lastSeparator != -1 )
|
if( lastSeparator != std::string::npos )
|
||||||
{
|
{
|
||||||
outputPath = outputFileName.substr(0,lastSeparator+1);
|
outputPath = outputFileName.substr(0,lastSeparator+1);
|
||||||
}
|
}
|
||||||
|
|
|
@ -323,7 +323,7 @@ static void ConvertFileTimeToString(const CNtfsFileTime *nt, char *s)
|
||||||
UIntToStr_2(s, sec); s[2] = 0;
|
UIntToStr_2(s, sec); s[2] = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void PrintError(char *sz)
|
void PrintError(const char *sz)
|
||||||
{
|
{
|
||||||
printf("\nERROR: %s\n", sz);
|
printf("\nERROR: %s\n", sz);
|
||||||
}
|
}
|
||||||
|
|
|
@ -77,6 +77,7 @@ typedef CFastBitField<uint16, 16> T1BitField;
|
||||||
class I16x16Layer
|
class I16x16Layer
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
virtual ~I16x16Layer() {}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get uncompressed value at i, j where i is y-like and j is x-like
|
* Get uncompressed value at i, j where i is y-like and j is x-like
|
||||||
|
|
|
@ -578,8 +578,8 @@ public:
|
||||||
sint16 asSint16() const { return (sint16)_Value1[0]; }
|
sint16 asSint16() const { return (sint16)_Value1[0]; }
|
||||||
sint32 asSint32() const { return (sint32)_Value2[0]; }
|
sint32 asSint32() const { return (sint32)_Value2[0]; }
|
||||||
sint64 asSint64() const { return (sint64)_Value3[0]; }
|
sint64 asSint64() const { return (sint64)_Value3[0]; }
|
||||||
float asFloat() const { return *(float*)(&_Value2[0]); }
|
float asFloat() const { return (float)_ValueFloat[0]; }
|
||||||
double asDouble() const { return *(double*)(&_Value3[0]); }
|
double asDouble() const { return (double)_ValueDouble[0]; }
|
||||||
const NLMISC::CSheetId& asSheetId() const { return *(NLMISC::CSheetId*)(&_Value2[0]); }
|
const NLMISC::CSheetId& asSheetId() const { return *(NLMISC::CSheetId*)(&_Value2[0]); }
|
||||||
const NLMISC::CEntityId& asEntityId() const { return *(NLMISC::CEntityId*)(&_Value3[0]); }
|
const NLMISC::CEntityId& asEntityId() const { return *(NLMISC::CEntityId*)(&_Value3[0]); }
|
||||||
|
|
||||||
|
@ -668,6 +668,8 @@ private:
|
||||||
uint16 _Value1[4];
|
uint16 _Value1[4];
|
||||||
uint32 _Value2[2];
|
uint32 _Value2[2];
|
||||||
uint64 _Value3[1];
|
uint64 _Value3[1];
|
||||||
|
float _ValueFloat[2];
|
||||||
|
double _ValueDouble[1];
|
||||||
};
|
};
|
||||||
|
|
||||||
bool _ObjectIdPresent;
|
bool _ObjectIdPresent;
|
||||||
|
|
|
@ -74,7 +74,7 @@ public:
|
||||||
/**
|
/**
|
||||||
* Destructor
|
* Destructor
|
||||||
*/
|
*/
|
||||||
~CDatabase();
|
virtual ~CDatabase();
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -25,7 +25,8 @@
|
||||||
CConfigFile *CConfigFile::s_instance = NULL;
|
CConfigFile *CConfigFile::s_instance = NULL;
|
||||||
|
|
||||||
CConfigFile::CConfigFile(QObject *parent):QObject(parent), m_version(-1),
|
CConfigFile::CConfigFile(QObject *parent):QObject(parent), m_version(-1),
|
||||||
m_defaultServerIndex(0), m_defaultProfileIndex(0), m_installerCopied(false), m_use64BitsClient(false), m_shouldUninstallOldClient(true)
|
m_defaultServerIndex(0), m_defaultProfileIndex(0), m_installerCopied(false), m_use64BitsClient(false),
|
||||||
|
m_shouldUninstallOldClient(true), m_ignoreFreeDiskSpaceChecks(false)
|
||||||
{
|
{
|
||||||
s_instance = this;
|
s_instance = this;
|
||||||
|
|
||||||
|
@ -82,6 +83,7 @@ bool CConfigFile::load(const QString &filename)
|
||||||
m_installationDirectory = settings.value("installation_directory").toString();
|
m_installationDirectory = settings.value("installation_directory").toString();
|
||||||
m_use64BitsClient = settings.value("use_64bits_client", true).toBool();
|
m_use64BitsClient = settings.value("use_64bits_client", true).toBool();
|
||||||
m_shouldUninstallOldClient = settings.value("should_uninstall_old_client", true).toBool();
|
m_shouldUninstallOldClient = settings.value("should_uninstall_old_client", true).toBool();
|
||||||
|
m_ignoreFreeDiskSpaceChecks = settings.value("ignore_free_disk_space_checks", false).toBool();
|
||||||
|
|
||||||
// fix problems when src directory doesn't exist anymore
|
// fix problems when src directory doesn't exist anymore
|
||||||
if (!m_srcDirectory.isEmpty() && QFile::exists(m_srcDirectory)) m_srcDirectory.clear();
|
if (!m_srcDirectory.isEmpty() && QFile::exists(m_srcDirectory)) m_srcDirectory.clear();
|
||||||
|
@ -175,6 +177,7 @@ bool CConfigFile::save() const
|
||||||
settings.setValue("installation_directory", m_installationDirectory);
|
settings.setValue("installation_directory", m_installationDirectory);
|
||||||
settings.setValue("use_64bits_client", m_use64BitsClient);
|
settings.setValue("use_64bits_client", m_use64BitsClient);
|
||||||
settings.setValue("should_uninstall_old_client", m_shouldUninstallOldClient);
|
settings.setValue("should_uninstall_old_client", m_shouldUninstallOldClient);
|
||||||
|
settings.setValue("ignore_free_disk_space_checks", m_ignoreFreeDiskSpaceChecks);
|
||||||
|
|
||||||
#if defined(Q_OS_WIN)
|
#if defined(Q_OS_WIN)
|
||||||
settings.setValue("installer_filename_windows", m_installerFilename);
|
settings.setValue("installer_filename_windows", m_installerFilename);
|
||||||
|
@ -441,6 +444,16 @@ void CConfigFile::setShouldUninstallOldClient(bool on)
|
||||||
m_shouldUninstallOldClient = on;
|
m_shouldUninstallOldClient = on;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool CConfigFile::ignoreFreeDiskSpaceChecks() const
|
||||||
|
{
|
||||||
|
return m_ignoreFreeDiskSpaceChecks;
|
||||||
|
}
|
||||||
|
|
||||||
|
void CConfigFile::setIgnoreFreeDiskSpaceChecks(bool on)
|
||||||
|
{
|
||||||
|
m_ignoreFreeDiskSpaceChecks = on;
|
||||||
|
}
|
||||||
|
|
||||||
bool CConfigFile::uninstallingOldClient() const
|
bool CConfigFile::uninstallingOldClient() const
|
||||||
{
|
{
|
||||||
return QFile::exists(getInstallationDirectory() + "/ryzom_installer_uninstalling_old_client");
|
return QFile::exists(getInstallationDirectory() + "/ryzom_installer_uninstalling_old_client");
|
||||||
|
@ -693,7 +706,7 @@ int CConfigFile::compareInstallersVersion() const
|
||||||
// if installer not found in installation directory
|
// if installer not found in installation directory
|
||||||
if (!QFile::exists(installerDst)) return 1;
|
if (!QFile::exists(installerDst)) return 1;
|
||||||
|
|
||||||
QString installedVersion = getVersionFromExecutable(installerDst);
|
QString installedVersion = getVersionFromExecutable(installerDst, getInstallationDirectory());
|
||||||
|
|
||||||
// if unable to get version, copy it
|
// if unable to get version, copy it
|
||||||
if (installedVersion.isEmpty()) return 1;
|
if (installedVersion.isEmpty()) return 1;
|
||||||
|
|
|
@ -113,6 +113,9 @@ public:
|
||||||
bool shouldUninstallOldClient() const;
|
bool shouldUninstallOldClient() const;
|
||||||
void setShouldUninstallOldClient(bool on);
|
void setShouldUninstallOldClient(bool on);
|
||||||
|
|
||||||
|
bool ignoreFreeDiskSpaceChecks() const;
|
||||||
|
void setIgnoreFreeDiskSpaceChecks(bool on);
|
||||||
|
|
||||||
bool uninstallingOldClient() const;
|
bool uninstallingOldClient() const;
|
||||||
void setUninstallingOldClient(bool on) const;
|
void setUninstallingOldClient(bool on) const;
|
||||||
|
|
||||||
|
@ -158,6 +161,7 @@ private:
|
||||||
QString m_srcDirectory;
|
QString m_srcDirectory;
|
||||||
bool m_use64BitsClient;
|
bool m_use64BitsClient;
|
||||||
bool m_shouldUninstallOldClient;
|
bool m_shouldUninstallOldClient;
|
||||||
|
bool m_ignoreFreeDiskSpaceChecks;
|
||||||
QString m_installerFilename;
|
QString m_installerFilename;
|
||||||
QString m_language;
|
QString m_language;
|
||||||
|
|
||||||
|
|
|
@ -18,6 +18,7 @@
|
||||||
#include "operation.h"
|
#include "operation.h"
|
||||||
#include "downloader.h"
|
#include "downloader.h"
|
||||||
#include "utils.h"
|
#include "utils.h"
|
||||||
|
#include "configfile.h"
|
||||||
|
|
||||||
#include "nel/misc/system_info.h"
|
#include "nel/misc/system_info.h"
|
||||||
#include "nel/misc/path.h"
|
#include "nel/misc/path.h"
|
||||||
|
@ -179,7 +180,7 @@ void CDownloader::getFileHead()
|
||||||
|
|
||||||
void CDownloader::downloadFile()
|
void CDownloader::downloadFile()
|
||||||
{
|
{
|
||||||
qint64 freeSpace = NLMISC::CSystemInfo::availableHDSpace(m_fullPath.toUtf8().constData());
|
qint64 freeSpace = CConfigFile::getInstance()->ignoreFreeDiskSpaceChecks() ? 0:NLMISC::CSystemInfo::availableHDSpace(m_fullPath.toUtf8().constData());
|
||||||
|
|
||||||
if (freeSpace == 0)
|
if (freeSpace == 0)
|
||||||
{
|
{
|
||||||
|
|
|
@ -130,7 +130,7 @@ void CInstallDialog::updateDestinationText()
|
||||||
void CInstallDialog::accept()
|
void CInstallDialog::accept()
|
||||||
{
|
{
|
||||||
// check free disk space
|
// check free disk space
|
||||||
qint64 freeSpace = NLMISC::CSystemInfo::availableHDSpace(m_dstDirectory.toUtf8().constData());
|
qint64 freeSpace = CConfigFile::getInstance()->ignoreFreeDiskSpaceChecks() ? 0:NLMISC::CSystemInfo::availableHDSpace(m_dstDirectory.toUtf8().constData());
|
||||||
|
|
||||||
// shouldn't happen
|
// shouldn't happen
|
||||||
if (freeSpace == 0)
|
if (freeSpace == 0)
|
||||||
|
|
|
@ -152,13 +152,13 @@ int main(int argc, char *argv[])
|
||||||
bool res = config.load();
|
bool res = config.load();
|
||||||
|
|
||||||
// init log
|
// init log
|
||||||
CLogHelper logHelper(config.getInstallationDirectory());
|
CLogHelper logHelper(config.getInstallationDirectory().isEmpty() ? config.getNewInstallationDirectory():config.getInstallationDirectory());
|
||||||
|
|
||||||
nlinfo("Launched %s", Q2C(config.getInstallerCurrentFilePath()));
|
nlinfo("Launched %s", Q2C(config.getInstallerCurrentFilePath()));
|
||||||
|
|
||||||
OperationStep step = res ? config.getInstallNextStep():DisplayNoServerError;
|
OperationStep step = res ? config.getInstallNextStep():DisplayNoServerError;
|
||||||
|
|
||||||
if (res == DisplayNoServerError)
|
if (step == DisplayNoServerError)
|
||||||
{
|
{
|
||||||
QMessageBox::critical(NULL, QApplication::tr("Error"), QApplication::tr("Unable to find ryzom_installer.ini"));
|
QMessageBox::critical(NULL, QApplication::tr("Error"), QApplication::tr("Unable to find ryzom_installer.ini"));
|
||||||
return 1;
|
return 1;
|
||||||
|
|
|
@ -123,7 +123,7 @@ void CMigrateDialog::updateDestinationText()
|
||||||
void CMigrateDialog::accept()
|
void CMigrateDialog::accept()
|
||||||
{
|
{
|
||||||
// check free disk space
|
// check free disk space
|
||||||
qint64 freeSpace = NLMISC::CSystemInfo::availableHDSpace(m_dstDirectory.toUtf8().constData());
|
qint64 freeSpace = CConfigFile::getInstance()->ignoreFreeDiskSpaceChecks() ? 0:NLMISC::CSystemInfo::availableHDSpace(m_dstDirectory.toUtf8().constData());
|
||||||
|
|
||||||
// shouldn't happen
|
// shouldn't happen
|
||||||
if (freeSpace == 0)
|
if (freeSpace == 0)
|
||||||
|
|
|
@ -226,20 +226,21 @@ void CProfilesDialog::updateExecutableVersion(int index)
|
||||||
if (index < 0) return;
|
if (index < 0) return;
|
||||||
|
|
||||||
const CProfile &profile = m_model->getProfiles()[index];
|
const CProfile &profile = m_model->getProfiles()[index];
|
||||||
|
const CServer &server = CConfigFile::getInstance()->getServer(profile.server);
|
||||||
|
|
||||||
QString executable = profile.executable;
|
QString executable = profile.executable;
|
||||||
|
|
||||||
// file empty, use default one
|
// file empty, use default one
|
||||||
if (executable.isEmpty())
|
if (executable.isEmpty())
|
||||||
{
|
{
|
||||||
executable += CConfigFile::getInstance()->getServer(profile.server).getClientFullPath();
|
executable = server.getClientFullPath();
|
||||||
}
|
}
|
||||||
|
|
||||||
// file doesn't exist
|
// file doesn't exist
|
||||||
if (executable.isEmpty() || !QFile::exists(executable)) return;
|
if (executable.isEmpty() || !QFile::exists(executable)) return;
|
||||||
|
|
||||||
// convert output to string
|
// convert output to string
|
||||||
QString versionString = getVersionFromExecutable(executable);
|
QString versionString = getVersionFromExecutable(executable, server.getDirectory());
|
||||||
|
|
||||||
if (!versionString.isEmpty())
|
if (!versionString.isEmpty())
|
||||||
{
|
{
|
||||||
|
|
|
@ -406,7 +406,7 @@ QString appendShortcutExtension(const QString &shortcut)
|
||||||
return shortcut + extension;
|
return shortcut + extension;
|
||||||
}
|
}
|
||||||
|
|
||||||
QString getVersionFromExecutable(const QString &path)
|
QString getVersionFromExecutable(const QString &path, const QString &workingDirectory)
|
||||||
{
|
{
|
||||||
// check if file exists
|
// check if file exists
|
||||||
if (!QFile::exists(path))
|
if (!QFile::exists(path))
|
||||||
|
@ -426,6 +426,7 @@ QString getVersionFromExecutable(const QString &path)
|
||||||
// launch executable with --version argument
|
// launch executable with --version argument
|
||||||
QProcess process;
|
QProcess process;
|
||||||
process.setProcessChannelMode(QProcess::MergedChannels);
|
process.setProcessChannelMode(QProcess::MergedChannels);
|
||||||
|
process.setWorkingDirectory(workingDirectory);
|
||||||
process.start(path, QStringList() << "--version", QIODevice::ReadOnly);
|
process.start(path, QStringList() << "--version", QIODevice::ReadOnly);
|
||||||
|
|
||||||
if (!process.waitForStarted())
|
if (!process.waitForStarted())
|
||||||
|
|
|
@ -76,7 +76,7 @@ bool resolveShortcut(const QWidget &window, const QString &shortcut, QString &pa
|
||||||
QString appendShortcutExtension(const QString &shortcut);
|
QString appendShortcutExtension(const QString &shortcut);
|
||||||
|
|
||||||
// launch an executable with --version parameter and parse version string
|
// launch an executable with --version parameter and parse version string
|
||||||
QString getVersionFromExecutable(const QString &path);
|
QString getVersionFromExecutable(const QString &path, const QString &workingDirectory);
|
||||||
|
|
||||||
// write a resource in QRC to disk
|
// write a resource in QRC to disk
|
||||||
bool writeResource(const QString &resource, const QString &path);
|
bool writeResource(const QString &resource, const QString &path);
|
||||||
|
|
|
@ -90,7 +90,7 @@ BOOL CDfnDialog::OnInitDialog()
|
||||||
|
|
||||||
// Create the type combo
|
// Create the type combo
|
||||||
setStaticSize (currentPos);
|
setStaticSize (currentPos);
|
||||||
LabelParents.Create ("Parents:", WS_VISIBLE, currentPos, this);
|
LabelParents.Create (_T("Parents:"), WS_VISIBLE, currentPos, this);
|
||||||
initWidget (LabelParents);
|
initWidget (LabelParents);
|
||||||
getNextPosLabel (currentPos);
|
getNextPosLabel (currentPos);
|
||||||
|
|
||||||
|
@ -105,7 +105,7 @@ BOOL CDfnDialog::OnInitDialog()
|
||||||
|
|
||||||
// Create the type combo
|
// Create the type combo
|
||||||
setStaticSize (currentPos);
|
setStaticSize (currentPos);
|
||||||
LabelStruct.Create ("Structure:", WS_VISIBLE, currentPos, this);
|
LabelStruct.Create (_T("Structure:"), WS_VISIBLE, currentPos, this);
|
||||||
initWidget (LabelStruct);
|
initWidget (LabelStruct);
|
||||||
getNextPosLabel (currentPos);
|
getNextPosLabel (currentPos);
|
||||||
|
|
||||||
|
@ -193,7 +193,7 @@ void CDfnDialog::getFromDocument (const NLGEORGES::CFormDfn &dfn)
|
||||||
for (parent=0; parent<dfn.getNumParent (); parent++)
|
for (parent=0; parent<dfn.getNumParent (); parent++)
|
||||||
{
|
{
|
||||||
// Add the label and value
|
// Add the label and value
|
||||||
Parents.ListCtrl.InsertItem (parent, dfn.getParentFilename (parent).c_str ());
|
Parents.ListCtrl.InsertItem (parent, utf8ToTStr(dfn.getParentFilename (parent)));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Add the struct element
|
// Add the struct element
|
||||||
|
@ -202,22 +202,22 @@ void CDfnDialog::getFromDocument (const NLGEORGES::CFormDfn &dfn)
|
||||||
for (elm=0; elm<dfn.getNumEntry (); elm++)
|
for (elm=0; elm<dfn.getNumEntry (); elm++)
|
||||||
{
|
{
|
||||||
// Add the label and value
|
// Add the label and value
|
||||||
Struct.ListCtrl.InsertItem (elm, dfn.getEntry (elm).getName ().c_str());
|
Struct.ListCtrl.InsertItem (elm, utf8ToTStr(dfn.getEntry (elm).getName()));
|
||||||
switch (elm, dfn.getEntry (elm).getType ())
|
switch (elm, dfn.getEntry (elm).getType ())
|
||||||
{
|
{
|
||||||
case UFormDfn::EntryType:
|
case UFormDfn::EntryType:
|
||||||
Struct.ListCtrl.SetItemText (elm, 1, dfn.getEntry (elm).getArrayFlag () ? "Type array" : "Type");
|
Struct.ListCtrl.SetItemText (elm, 1, dfn.getEntry (elm).getArrayFlag () ? _T("Type array") : _T("Type"));
|
||||||
Struct.ListCtrl.SetItemText (elm, 4, dfn.getEntry (elm).getFilenameExt ().c_str());
|
Struct.ListCtrl.SetItemText (elm, 4, utf8ToTStr(dfn.getEntry (elm).getFilenameExt ()));
|
||||||
break;
|
break;
|
||||||
case UFormDfn::EntryDfn:
|
case UFormDfn::EntryDfn:
|
||||||
Struct.ListCtrl.SetItemText (elm, 1, dfn.getEntry (elm).getArrayFlag () ? "Dfn array" : "Dfn");
|
Struct.ListCtrl.SetItemText (elm, 1, dfn.getEntry (elm).getArrayFlag () ? _T("Dfn array") : _T("Dfn"));
|
||||||
break;
|
break;
|
||||||
case UFormDfn::EntryVirtualDfn:
|
case UFormDfn::EntryVirtualDfn:
|
||||||
Struct.ListCtrl.SetItemText (elm, 1, "Virtual Dfn");
|
Struct.ListCtrl.SetItemText (elm, 1, _T("Virtual Dfn"));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
Struct.ListCtrl.SetItemText (elm, 2, dfn.getEntry (elm).getFilename ().c_str());
|
Struct.ListCtrl.SetItemText (elm, 2, utf8ToTStr(dfn.getEntry (elm).getFilename()));
|
||||||
Struct.ListCtrl.SetItemText (elm, 3, dfn.getEntry (elm).getDefault ().c_str());
|
Struct.ListCtrl.SetItemText (elm, 3, utf8ToTStr(dfn.getEntry (elm).getDefault()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -238,7 +238,7 @@ void CDfnDialog::setParentsToDocument ()
|
||||||
{
|
{
|
||||||
// Add the label and value
|
// Add the label and value
|
||||||
CString str = Parents.ListCtrl.GetItemText ( parent, 0);
|
CString str = Parents.ListCtrl.GetItemText ( parent, 0);
|
||||||
vectValue[parent] = str;
|
vectValue[parent] = tStrToUtf8(str);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Modify the document
|
// Modify the document
|
||||||
|
@ -267,7 +267,7 @@ void CDfnDialog::setStructToDocument ()
|
||||||
{
|
{
|
||||||
// Get the name
|
// Get the name
|
||||||
CString name= Struct.ListCtrl.GetItemText (elm, subElm);
|
CString name= Struct.ListCtrl.GetItemText (elm, subElm);
|
||||||
stringVector[elm][subElm] = (const char*)name;
|
stringVector[elm][subElm] = tStrToUtf8(name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
doc->modify (new CActionStringVectorVector (IAction::DfnStructure, stringVector, *doc, doc->getLeftView ()->getCurrentSelectionId (), 0));
|
doc->modify (new CActionStringVectorVector (IAction::DfnStructure, stringVector, *doc, doc->getLeftView ()->getCurrentSelectionId (), 0));
|
||||||
|
@ -301,19 +301,19 @@ CEditListCtrl::TItemEdit CDfnEditListCtrl::getItemEditMode (uint item, uint subI
|
||||||
return CEditListCtrl::EditFixedCombo;
|
return CEditListCtrl::EditFixedCombo;
|
||||||
else if (subItem == 2)
|
else if (subItem == 2)
|
||||||
{
|
{
|
||||||
string type = ListCtrl.GetItemText (item, 1);
|
string type = tStrToUtf8(ListCtrl.GetItemText (item, 1));
|
||||||
if (type != "Virtual Dfn")
|
if (type != "Virtual Dfn")
|
||||||
return CEditListCtrl::EditMemCombo;
|
return CEditListCtrl::EditMemCombo;
|
||||||
}
|
}
|
||||||
else if (subItem == 3)
|
else if (subItem == 3)
|
||||||
{
|
{
|
||||||
string type = ListCtrl.GetItemText (item, 1);
|
string type = tStrToUtf8(ListCtrl.GetItemText (item, 1));
|
||||||
if ((type == "Type") || (type == "Type array"))
|
if ((type == "Type") || (type == "Type array"))
|
||||||
return CEditListCtrl::EditMemCombo;
|
return CEditListCtrl::EditMemCombo;
|
||||||
}
|
}
|
||||||
else if (subItem == 4)
|
else if (subItem == 4)
|
||||||
{
|
{
|
||||||
string type = ListCtrl.GetItemText (item, 1);
|
string type = tStrToUtf8(ListCtrl.GetItemText (item, 1));
|
||||||
if ((type == "Type") || (type == "Type array"))
|
if ((type == "Type") || (type == "Type array"))
|
||||||
return CEditListCtrl::EditMemCombo;
|
return CEditListCtrl::EditMemCombo;
|
||||||
}
|
}
|
||||||
|
@ -349,7 +349,7 @@ void CDfnEditListCtrl::getMemComboBoxProp (uint item, uint subItem, std::string
|
||||||
browse = true;
|
browse = true;
|
||||||
|
|
||||||
// Get type string
|
// Get type string
|
||||||
string type = ListCtrl.GetItemText (item, 1);
|
string type = tStrToUtf8(ListCtrl.GetItemText (item, 1));
|
||||||
if ((type == "Type") || (type == "Type array"))
|
if ((type == "Type") || (type == "Type array"))
|
||||||
regAdr = GEORGES_EDIT_BASE_REG_KEY"\\Type MemCombo";
|
regAdr = GEORGES_EDIT_BASE_REG_KEY"\\Type MemCombo";
|
||||||
else if ((type == "Dfn") || (type == "Dfn array"))
|
else if ((type == "Dfn") || (type == "Dfn array"))
|
||||||
|
@ -390,7 +390,7 @@ void CDfnEditListCtrl::getBrowseInfo (uint item, uint subItem, std::string &defE
|
||||||
if (subItem == 2)
|
if (subItem == 2)
|
||||||
{
|
{
|
||||||
// Get type string
|
// Get type string
|
||||||
string type = ListCtrl.GetItemText (item, 1);
|
string type = tStrToUtf8(ListCtrl.GetItemText (item, 1));
|
||||||
if ((type == "Type") || (type == "Type array"))
|
if ((type == "Type") || (type == "Type array"))
|
||||||
{
|
{
|
||||||
filter = TypeFilter;
|
filter = TypeFilter;
|
||||||
|
@ -415,35 +415,33 @@ void CDfnEditListCtrl::onItemChanged (uint item, uint subItem)
|
||||||
if (subItem == 1)
|
if (subItem == 1)
|
||||||
{
|
{
|
||||||
// Get type string
|
// Get type string
|
||||||
string type = ListCtrl.GetItemText (item, 1);
|
string type = tStrToUtf8(ListCtrl.GetItemText (item, 1));
|
||||||
if ((type == "Type") || (type == "Type array"))
|
if ((type == "Type") || (type == "Type array"))
|
||||||
{
|
{
|
||||||
CString str;
|
CString str;
|
||||||
str = Dialog->Struct.ListCtrl.GetItemText (item, 2);
|
str = Dialog->Struct.ListCtrl.GetItemText (item, 2);
|
||||||
char ext[MAX_PATH];
|
std::string ext = NLMISC::CFile::getExtension(tStrToUtf8(str));
|
||||||
_splitpath (str, NULL, NULL, NULL, ext);
|
if (ext == "typ")
|
||||||
if (stricmp (ext, ".typ") != 0)
|
Dialog->Struct.ListCtrl.SetItemText (item, 2, utf8ToTStr(theApp.DefaultType));
|
||||||
Dialog->Struct.ListCtrl.SetItemText (item, 2, theApp.DefaultType.c_str ());
|
|
||||||
}
|
}
|
||||||
else if ((type == "Dfn") || (type == "Dfn array"))
|
else if ((type == "Dfn") || (type == "Dfn array"))
|
||||||
{
|
{
|
||||||
CString str;
|
CString str;
|
||||||
str = Dialog->Struct.ListCtrl.GetItemText (item, 2);
|
str = Dialog->Struct.ListCtrl.GetItemText (item, 2);
|
||||||
char ext[MAX_PATH];
|
std::string ext = NLMISC::CFile::getExtension(tStrToUtf8(str));
|
||||||
_splitpath (str, NULL, NULL, NULL, ext);
|
if (ext == "dfn")
|
||||||
if (stricmp (ext, ".dfn") != 0)
|
Dialog->Struct.ListCtrl.SetItemText (item, 2, utf8ToTStr(theApp.DefaultDfn));
|
||||||
Dialog->Struct.ListCtrl.SetItemText (item, 2, theApp.DefaultDfn.c_str ());
|
|
||||||
|
|
||||||
// Clear default value
|
// Clear default value
|
||||||
Dialog->Struct.ListCtrl.SetItemText (item, 3, "");
|
Dialog->Struct.ListCtrl.SetItemText (item, 3, _T(""));
|
||||||
}
|
}
|
||||||
else if (type == "Virtual Dfn")
|
else if (type == "Virtual Dfn")
|
||||||
{
|
{
|
||||||
// Clear the value
|
// Clear the value
|
||||||
Dialog->Struct.ListCtrl.SetItemText (item, 2, "");
|
Dialog->Struct.ListCtrl.SetItemText (item, 2, _T(""));
|
||||||
|
|
||||||
// Clear default value
|
// Clear default value
|
||||||
Dialog->Struct.ListCtrl.SetItemText (item, 3, "");
|
Dialog->Struct.ListCtrl.SetItemText (item, 3, _T(""));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -470,16 +468,16 @@ void CDfnDialog::onOpenSelected ()
|
||||||
int nItem = Parents.ListCtrl.GetNextSelectedItem(pos);
|
int nItem = Parents.ListCtrl.GetNextSelectedItem(pos);
|
||||||
|
|
||||||
// Get the string
|
// Get the string
|
||||||
CString str = Parents.ListCtrl.GetItemText (nItem, 0);
|
std::string str = tStrToUtf8(Parents.ListCtrl.GetItemText (nItem, 0));
|
||||||
if (str != "")
|
if (!str.empty())
|
||||||
{
|
{
|
||||||
// Look for the file
|
// Look for the file
|
||||||
string name = CPath::lookup ((const char*)str, false, false);
|
string name = CPath::lookup (str, false, false);
|
||||||
if (name.empty ())
|
if (name.empty ())
|
||||||
name = str;
|
name = str;
|
||||||
|
|
||||||
// Open the file
|
// Open the file
|
||||||
theApp.OpenDocumentFile (name.c_str ());
|
theApp.OpenDocumentFile (utf8ToTStr(name));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -492,16 +490,16 @@ void CDfnDialog::onOpenSelected ()
|
||||||
int nItem = Struct.ListCtrl.GetNextSelectedItem(pos);
|
int nItem = Struct.ListCtrl.GetNextSelectedItem(pos);
|
||||||
|
|
||||||
// Get the string
|
// Get the string
|
||||||
CString str = Struct.ListCtrl.GetItemText (nItem, 2);
|
std::string str = tStrToUtf8(Struct.ListCtrl.GetItemText (nItem, 2));
|
||||||
if (str != "")
|
if (!str.empty())
|
||||||
{
|
{
|
||||||
// Look for the file
|
// Look for the file
|
||||||
string name = CPath::lookup ((const char*)str, false, false);
|
string name = CPath::lookup (str, false, false);
|
||||||
if (name.empty ())
|
if (name.empty ())
|
||||||
name = str;
|
name = str;
|
||||||
|
|
||||||
// Open the file
|
// Open the file
|
||||||
theApp.OpenDocumentFile (name.c_str ());
|
theApp.OpenDocumentFile (utf8ToTStr(name));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -51,7 +51,7 @@ bool CFileTreeCtrl::create( const RECT& rect, CWnd* pParentWnd, UINT nID )
|
||||||
LPCTSTR className = AfxRegisterWndClass( 0 );
|
LPCTSTR className = AfxRegisterWndClass( 0 );
|
||||||
// Create this window
|
// Create this window
|
||||||
|
|
||||||
if (CWnd::Create (className, "empty", WS_CHILD, rect, pParentWnd, nID ))
|
if (CWnd::Create (className, _T("empty"), WS_CHILD, rect, pParentWnd, nID ))
|
||||||
|
|
||||||
|
|
||||||
#if defined(NL_COMP_VC) && NL_COMP_VC_VERSION >= 80
|
#if defined(NL_COMP_VC) && NL_COMP_VC_VERSION >= 80
|
||||||
|
@ -403,11 +403,9 @@ int CALLBACK CompareFunc(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort)
|
||||||
return stricmp (pItemInfo1->displayName.c_str(), pItemInfo2->displayName.c_str());
|
return stricmp (pItemInfo1->displayName.c_str(), pItemInfo2->displayName.c_str());
|
||||||
if (pfileTreeCtrl->_ArrangeMode == CFileTreeCtrl::ByType)
|
if (pfileTreeCtrl->_ArrangeMode == CFileTreeCtrl::ByType)
|
||||||
{
|
{
|
||||||
char ext1[_MAX_EXT];
|
std::string ext1 = NLMISC::CFile::getExtension(pItemInfo1->displayName);
|
||||||
_splitpath (pItemInfo1->displayName.c_str(), NULL, NULL, NULL, ext1);
|
std::string ext2 = NLMISC::CFile::getExtension(pItemInfo2->displayName);
|
||||||
char ext2[_MAX_EXT];
|
int res = stricmp (ext1.c_str(), ext2.c_str());
|
||||||
_splitpath (pItemInfo2->displayName.c_str(), NULL, NULL, NULL, ext2);
|
|
||||||
int res = stricmp (ext1, ext2);
|
|
||||||
if ( res == 0)
|
if ( res == 0)
|
||||||
return stricmp (pItemInfo1->displayName.c_str(), pItemInfo2->displayName.c_str());
|
return stricmp (pItemInfo1->displayName.c_str(), pItemInfo2->displayName.c_str());
|
||||||
else
|
else
|
||||||
|
|
|
@ -1173,9 +1173,7 @@ void CFormDialog::getDfnName (string &result) const
|
||||||
{
|
{
|
||||||
// Get the DFN filename
|
// Get the DFN filename
|
||||||
CString str = doc->GetPathName ();
|
CString str = doc->GetPathName ();
|
||||||
char extension[512];
|
result NLMISC::CFile::getExtension(tStrToUtf8(str));
|
||||||
_splitpath (str, NULL, NULL, NULL, extension);
|
|
||||||
result = (*extension == '.') ? extension+1 : extension;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
result.clear();
|
result.clear();
|
||||||
|
|
|
@ -477,20 +477,15 @@ void CGeorgesEditApp::OnAppAbout()
|
||||||
void CGeorgesEditApp::outputError (const char* message)
|
void CGeorgesEditApp::outputError (const char* message)
|
||||||
{
|
{
|
||||||
if (m_pMainWnd)
|
if (m_pMainWnd)
|
||||||
m_pMainWnd->MessageBox (message, "Georges Edit", MB_OK|MB_ICONEXCLAMATION);
|
m_pMainWnd->MessageBox (utf8ToTStr(message), _T("Georges Edit"), MB_OK|MB_ICONEXCLAMATION);
|
||||||
else
|
else
|
||||||
MessageBox (NULL, message, "Georges Edit", MB_OK|MB_ICONEXCLAMATION);
|
MessageBox (NULL, utf8ToTStr(message), _T("Georges Edit"), MB_OK|MB_ICONEXCLAMATION);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CGeorgesEditApp::getConfigFilePath (std::string &output)
|
void CGeorgesEditApp::getConfigFilePath (std::string &output)
|
||||||
{
|
{
|
||||||
// Get the config file path
|
// Get the config file path
|
||||||
char sDrive[MAX_PATH];
|
output = NLMISC::CFile::getPath(theApp.ExePath) + "georges.cfg";
|
||||||
char sDir[MAX_PATH];
|
|
||||||
char sPath[MAX_PATH];
|
|
||||||
_splitpath (theApp.ExePath.c_str (), sDrive, sDir, NULL, NULL);
|
|
||||||
_makepath (sPath, sDrive, sDir, "georges", ".cfg");
|
|
||||||
output = sPath;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool CGeorgesEditApp::loadCfg ()
|
bool CGeorgesEditApp::loadCfg ()
|
||||||
|
@ -962,12 +957,7 @@ void CGeorgesEditApp::gotoURL (LPCTSTR url)
|
||||||
|
|
||||||
void CGeorgesEditApp::WinHelp(DWORD dwData, UINT nCmd)
|
void CGeorgesEditApp::WinHelp(DWORD dwData, UINT nCmd)
|
||||||
{
|
{
|
||||||
char drive[512];
|
gotoURL(utf8ToTStr(NLMISC::CFile::getPath(ExePath) + "georges_edit.html"));
|
||||||
char dir[512];
|
|
||||||
char path[512];
|
|
||||||
_splitpath (ExePath.c_str (), drive, dir, NULL, NULL);
|
|
||||||
_makepath (path, drive, dir, "georges_edit", ".html");
|
|
||||||
gotoURL (path);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void CGeorgesEditApp::OnViewRefresh()
|
void CGeorgesEditApp::OnViewRefresh()
|
||||||
|
@ -1478,9 +1468,8 @@ BOOL CGeorgesEditApp::OnDDECommand(LPTSTR lpszCommand)
|
||||||
name = name.substr (6, name.size ()-8);
|
name = name.substr (6, name.size ()-8);
|
||||||
|
|
||||||
// Get the extension
|
// Get the extension
|
||||||
char ext[MAX_PATH];
|
std::string ext = NLMISC::CFile::getExtension(name);
|
||||||
_splitpath (name.c_str (), NULL, NULL, NULL, ext);
|
string dfnName = ext + ".dfn";
|
||||||
string dfnName = string (ext+1) + ".dfn";
|
|
||||||
|
|
||||||
// Get the doc template
|
// Get the doc template
|
||||||
CMultiDocTemplate *docTemplate = getFormDocTemplate (dfnName.c_str ());
|
CMultiDocTemplate *docTemplate = getFormDocTemplate (dfnName.c_str ());
|
||||||
|
@ -1541,18 +1530,15 @@ BOOL CGeorgesEditApp::OnDDECommand(LPTSTR lpszCommand)
|
||||||
name = name.substr (8, name.size ()-10);
|
name = name.substr (8, name.size ()-10);
|
||||||
|
|
||||||
// Get the extension
|
// Get the extension
|
||||||
char ext[MAX_PATH];
|
std::string ext = NLMISC::CFile::getExtension(name);
|
||||||
_splitpath (name.c_str (), NULL, NULL, NULL, ext);
|
string dfnName = ext + ".dfn";
|
||||||
string dfnName = string (ext+1) + ".dfn";
|
|
||||||
|
|
||||||
// Create a document
|
// Create a document
|
||||||
CGeorgesEditDocForm *doc = (CGeorgesEditDocForm*)createDocument (dfnName.c_str (), "");
|
CGeorgesEditDocForm *doc = (CGeorgesEditDocForm*)createDocument (dfnName.c_str (), "");
|
||||||
if (doc)
|
if (doc)
|
||||||
{
|
{
|
||||||
char nameFile[MAX_PATH];
|
std::string nameFile = NLMISC::CFile::getFilename(name);
|
||||||
char extFile[MAX_PATH];
|
doc->addParent (nameFile.c_str());
|
||||||
_splitpath (name.c_str (), NULL, NULL, nameFile, extFile);
|
|
||||||
doc->addParent ((string (nameFile) + extFile).c_str ());
|
|
||||||
doc->updateDocumentStructure ();
|
doc->updateDocumentStructure ();
|
||||||
doc->UpdateAllViews (NULL);
|
doc->UpdateAllViews (NULL);
|
||||||
}
|
}
|
||||||
|
@ -1570,11 +1556,7 @@ BOOL CGeorgesEditApp::OnDDECommand(LPTSTR lpszCommand)
|
||||||
name = name.substr (10, name.size ()-12);
|
name = name.substr (10, name.size ()-12);
|
||||||
|
|
||||||
// Get the extension
|
// Get the extension
|
||||||
char name2[MAX_PATH];
|
std::string dfnName = NLMISC::CFile::getFilename(name);
|
||||||
char ext[MAX_PATH];
|
|
||||||
_splitpath (name.c_str (), NULL, NULL, name2, ext);
|
|
||||||
string dfnName = name2;
|
|
||||||
dfnName += ext;
|
|
||||||
|
|
||||||
// Create a document
|
// Create a document
|
||||||
CGeorgesEditDocForm *doc = (CGeorgesEditDocForm*)createDocument (dfnName.c_str (), "");
|
CGeorgesEditDocForm *doc = (CGeorgesEditDocForm*)createDocument (dfnName.c_str (), "");
|
||||||
|
|
|
@ -181,13 +181,9 @@ bool CGeorgesEditDocForm::initDocument (const char *dfnName, bool newElement)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set file name and title
|
// Set file name and title
|
||||||
char name[512];
|
std::string name2 = toLower(NLMISC::CFile::getFilenameWithoutExtension(dfnName));
|
||||||
char ext[512];
|
SetPathName (utf8ToTStr("*." + name2), FALSE);
|
||||||
_splitpath (dfnName, NULL, NULL, name, ext);
|
SetTitle (utf8ToTStr("New " + name2 + " form"));
|
||||||
string name2 = (const char*)(name);
|
|
||||||
name2 = strlwr (name2);
|
|
||||||
SetPathName ( ("*."+name2).c_str(), FALSE);
|
|
||||||
SetTitle ( ("New "+name2+" form").c_str() );
|
|
||||||
|
|
||||||
// TMp
|
// TMp
|
||||||
if (newElement)
|
if (newElement)
|
||||||
|
@ -547,9 +543,9 @@ BOOL CGeorgesEditDoc::OnOpenDocument(LPCTSTR lpszPathName)
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
// Check form
|
// Check form
|
||||||
char ext[MAX_PATH];
|
std::string ext = NLMISC::CFile::getExtension(tStrToUtf8(lpszPathName));
|
||||||
_splitpath (lpszPathName, NULL, NULL, NULL, ext);
|
string extLower = toLower(ext);
|
||||||
string extLower = strlwr (string (ext));
|
|
||||||
if (!extLower.empty ())
|
if (!extLower.empty ())
|
||||||
{
|
{
|
||||||
string dfnName = extLower.substr (1, string::npos) + ".dfn";
|
string dfnName = extLower.substr (1, string::npos) + ".dfn";
|
||||||
|
@ -1090,10 +1086,7 @@ void CGeorgesEditDoc::getDfnFilename (std::string &dfnName)
|
||||||
|
|
||||||
// Get the DFN filename
|
// Get the DFN filename
|
||||||
CString str = GetPathName ();
|
CString str = GetPathName ();
|
||||||
char extension[512];
|
dfnName = NLMISC::CFile::getExtension(tStrToUtf8(str)) + ".dfn";
|
||||||
_splitpath (str, NULL, NULL, NULL, extension);
|
|
||||||
dfnName = extension+1;
|
|
||||||
dfnName += ".dfn";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// ***************************************************************************
|
// ***************************************************************************
|
||||||
|
|
|
@ -103,10 +103,8 @@ void CImageListEx::addResourceIcon (const char *filename)
|
||||||
index = ImageList.Replace( index, handle);
|
index = ImageList.Replace( index, handle);
|
||||||
|
|
||||||
// Add in the map
|
// Add in the map
|
||||||
char name[MAX_PATH];
|
std::string name = NLMISC::CFile::getFilenameWithoutExtension(filename);
|
||||||
_splitpath (filename, NULL, NULL, name, NULL);
|
_IconMapString.insert (std::map<string, int>::value_type (toLower(name), index));
|
||||||
string llwr = strlwr (string (name));
|
|
||||||
_IconMapString.insert (std::map<string, int>::value_type (llwr, index));
|
|
||||||
|
|
||||||
// Release the icon
|
// Release the icon
|
||||||
DestroyIcon (handle);
|
DestroyIcon (handle);
|
||||||
|
@ -131,10 +129,8 @@ int CImageListEx::getImage (int resource) const
|
||||||
|
|
||||||
int CImageListEx::getImage (const char *filename) const
|
int CImageListEx::getImage (const char *filename) const
|
||||||
{
|
{
|
||||||
char name[MAX_PATH];
|
std::string name = toLower(NLMISC::CFile::getFilenameWithoutExtension(filename));
|
||||||
_splitpath (filename, NULL, NULL, name, NULL);
|
std::map<string, int>::const_iterator ite = _IconMapString.find (name);
|
||||||
string llwr = strlwr (string (name));
|
|
||||||
std::map<string, int>::const_iterator ite = _IconMapString.find (llwr);
|
|
||||||
if (ite == _IconMapString.end())
|
if (ite == _IconMapString.end())
|
||||||
return -1;
|
return -1;
|
||||||
else
|
else
|
||||||
|
|
|
@ -698,8 +698,8 @@ void CMissionCompilerFeDlg::OnSpecialRuncompilertest()
|
||||||
catch(const EParseException &e)
|
catch(const EParseException &e)
|
||||||
{
|
{
|
||||||
string msg = "In primitive ";
|
string msg = "In primitive ";
|
||||||
msg += buildPrimPath(e.Primitive) +" : "+e.Why;
|
msg += buildPrimPath(e.Primitive) + ": " + e.Why;
|
||||||
AfxMessageBox(msg.c_str());
|
AfxMessageBox(utf8ToTStr(msg));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -875,17 +875,26 @@ bool CMissionCompiler::publishFiles(const std::string &serverPathPrim, const std
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool CMissionCompiler::includeText(const std::string filename, const std::string text)
|
bool CMissionCompiler::includeText(const std::string &filename, const std::string &text)
|
||||||
{
|
{
|
||||||
FILE *f = nlfopen(filename, "r+");
|
FILE *f = nlfopen(filename, "r+");
|
||||||
if (f == NULL)
|
if (f == NULL)
|
||||||
|
{
|
||||||
|
nlwarning("Unable to open %s", filename.c_str());
|
||||||
return false;
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
bool isIn = false;
|
bool isIn = false;
|
||||||
char buffer[1024];
|
char buffer[1024];
|
||||||
|
|
||||||
// Check for UTF8 format
|
// Check for UTF8 format
|
||||||
fread(buffer, 1, 3, f);
|
if (fread(buffer, 1, 3, f) != 3)
|
||||||
|
{
|
||||||
|
fclose(f);
|
||||||
|
nlwarning("Unable to read 3 bytes from %s", filename.c_str());
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
if (buffer[0] != -17 || buffer[1] != -69 || buffer[2] != -65)
|
if (buffer[0] != -17 || buffer[1] != -69 || buffer[2] != -65)
|
||||||
fseek(f, 0, SEEK_SET);
|
fseek(f, 0, SEEK_SET);
|
||||||
|
|
||||||
|
|
|
@ -447,7 +447,7 @@ public:
|
||||||
bool publishFiles(const std::string &serverPathPrim, const std::string &serverPathText, const std::string &localPathText);
|
bool publishFiles(const std::string &serverPathPrim, const std::string &serverPathText, const std::string &localPathText);
|
||||||
|
|
||||||
/// Search for text in the file : add it if it's not in
|
/// Search for text in the file : add it if it's not in
|
||||||
bool includeText(const std::string filename, const std::string text);
|
bool includeText(const std::string &filename, const std::string &text);
|
||||||
|
|
||||||
/// Parse the pre requisite node of a mission.
|
/// Parse the pre requisite node of a mission.
|
||||||
bool parsePreRequisite(CMissionData &md, NLLIGO::IPrimitive *preReq);
|
bool parsePreRequisite(CMissionData &md, NLLIGO::IPrimitive *preReq);
|
||||||
|
|
|
@ -1279,15 +1279,23 @@ void ItemNamesSave()
|
||||||
printf( "-- SAVING ITEM NAMES --\n");
|
printf( "-- SAVING ITEM NAMES --\n");
|
||||||
CSString data, output;
|
CSString data, output;
|
||||||
|
|
||||||
FILE* file;
|
FILE *file = nlfopen( ITEM_WORDS_WK, "rb" );
|
||||||
file = nlfopen( ITEM_WORDS_WK, "rb" );
|
|
||||||
|
|
||||||
char c;
|
char c;
|
||||||
fread( &c, 1, 1, file );
|
if (fread(&c, 1, 1, file) != 1)
|
||||||
|
{
|
||||||
|
nlwarning("Unable to read 1 byte from %s", ITEM_WORDS_WK.c_str());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
while ( !feof( file ) )
|
while ( !feof( file ) )
|
||||||
{
|
{
|
||||||
data += toString( "%c", c );
|
data += toString( "%c", c );
|
||||||
fread( &c, 1, 1, file );
|
if (fread(&c, 1, 1, file) != 1)
|
||||||
|
{
|
||||||
|
nlwarning("Unable to read 1 byte from %s", ITEM_WORDS_WK.c_str());
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fclose( file );
|
fclose( file );
|
||||||
|
|
|
@ -199,7 +199,13 @@ int getNbItemFromFile(const char *filename)
|
||||||
while (fgets(buffer, 1024, f))
|
while (fgets(buffer, 1024, f))
|
||||||
{
|
{
|
||||||
int n;
|
int n;
|
||||||
fscanf(f, "_Items#%d", &n);
|
if (fscanf(f, "_Items#%d", &n) != 1)
|
||||||
|
{
|
||||||
|
fclose(f);
|
||||||
|
nlerror("Unable to parse 1 item from %s", filename);
|
||||||
|
return max;
|
||||||
|
}
|
||||||
|
|
||||||
if (n > max)
|
if (n > max)
|
||||||
max = n;
|
max = n;
|
||||||
}
|
}
|
||||||
|
@ -247,7 +253,13 @@ int importCsv(const char *filename)
|
||||||
|
|
||||||
// read fields name
|
// read fields name
|
||||||
{
|
{
|
||||||
fgets(buffer, 1024, f);
|
if (fgets(buffer, 1024, f) != buffer)
|
||||||
|
{
|
||||||
|
fclose(f);
|
||||||
|
nlerror("Unable to read line from %s", filename);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
CSString s(buffer);
|
CSString s(buffer);
|
||||||
s = s.strtok("\n");
|
s = s.strtok("\n");
|
||||||
|
|
||||||
|
|
|
@ -130,7 +130,7 @@ bool CDataBase::init (const string &Path, CZoneBank &zb)
|
||||||
string sDirBackup = NLMISC::CPath::getCurrentPath();
|
string sDirBackup = NLMISC::CPath::getCurrentPath();
|
||||||
|
|
||||||
// "Path" can be relative to the doc path so we have to be first in the doc path
|
// "Path" can be relative to the doc path so we have to be first in the doc path
|
||||||
string s2 = NLMISC::CFile::getPath ((LPCTSTR)getMainFrame()->getDocument()->GetPathName());
|
string s2 = NLMISC::CFile::getPath (tStrToUtf8(getMainFrame()->getDocument()->GetPathName()));
|
||||||
NLMISC::CPath::setCurrentPath(s2.c_str());
|
NLMISC::CPath::setCurrentPath(s2.c_str());
|
||||||
string ss = NLMISC::CPath::getFullPath(Path);
|
string ss = NLMISC::CPath::getFullPath(Path);
|
||||||
NLMISC::CPath::setCurrentPath (ss.c_str());
|
NLMISC::CPath::setCurrentPath (ss.c_str());
|
||||||
|
@ -609,8 +609,7 @@ bool CBuilderZone::refresh ()
|
||||||
if ((sZone != STRING_UNUSED)&&(sZone != STRING_OUT_OF_BOUND))
|
if ((sZone != STRING_UNUSED)&&(sZone != STRING_OUT_OF_BOUND))
|
||||||
{
|
{
|
||||||
unload (_ZoneRegionSelected);
|
unload (_ZoneRegionSelected);
|
||||||
MessageBox (NULL, "Cannot add this zone because it overlaps existing ones",
|
MessageBox (NULL, _T("Cannot add this zone because it overlaps existing ones"), _T("Error"), MB_ICONERROR|MB_OK);
|
||||||
"Error", MB_ICONERROR|MB_OK);
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -623,8 +622,8 @@ bool CBuilderZone::refresh ()
|
||||||
if (!_ZoneRegions[_ZoneRegionSelected]->init (&_ZoneBank, this, error))
|
if (!_ZoneRegions[_ZoneRegionSelected]->init (&_ZoneBank, this, error))
|
||||||
{
|
{
|
||||||
unload (_ZoneRegionSelected);
|
unload (_ZoneRegionSelected);
|
||||||
MessageBox (NULL, ("Cannot add this zone :\n"+error).c_str(),
|
std::string msg = NLMISC::toString("Cannot add this zone :\n%s", error.c_str());
|
||||||
"Error", MB_ICONERROR|MB_OK);
|
MessageBox (NULL, utf8ToTStr(msg), _T("Error"), MB_ICONERROR|MB_OK);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1599,20 +1598,21 @@ void CBuilderZone::del (const CVector &worldPos)
|
||||||
// ---------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------
|
||||||
bool CBuilderZone::initZoneBank (const string &sPathName)
|
bool CBuilderZone::initZoneBank (const string &sPathName)
|
||||||
{
|
{
|
||||||
char sDirBackup[512];
|
// TODO: replace by NeL methods
|
||||||
|
TCHAR sDirBackup[512];
|
||||||
GetCurrentDirectory (512, sDirBackup);
|
GetCurrentDirectory (512, sDirBackup);
|
||||||
SetCurrentDirectory (sPathName.c_str());
|
SetCurrentDirectory (utf8ToTStr(sPathName));
|
||||||
WIN32_FIND_DATA findData;
|
WIN32_FIND_DATA findData;
|
||||||
HANDLE hFind;
|
HANDLE hFind;
|
||||||
hFind = FindFirstFile ("*.ligozone", &findData);
|
hFind = FindFirstFile (_T("*.ligozone"), &findData);
|
||||||
|
|
||||||
while (hFind != INVALID_HANDLE_VALUE)
|
while (hFind != INVALID_HANDLE_VALUE)
|
||||||
{
|
{
|
||||||
// If the name of the file is not . or .. then its a valid entry in the DataBase
|
// If the name of the file is not . or .. then its a valid entry in the DataBase
|
||||||
if (!((strcmp (findData.cFileName, ".") == 0) || (strcmp (findData.cFileName, "..") == 0)))
|
if (!((_tcscmp (findData.cFileName, _T(".")) == 0) || (_tcscmp (findData.cFileName, _T("..")) == 0)))
|
||||||
{
|
{
|
||||||
string error;
|
string error;
|
||||||
if (!_ZoneBank.addElement (findData.cFileName, error))
|
if (!_ZoneBank.addElement (tStrToUtf8(findData.cFileName), error))
|
||||||
theApp.errorMessage (error.c_str());
|
theApp.errorMessage (error.c_str());
|
||||||
}
|
}
|
||||||
if (FindNextFile (hFind, &findData) == 0)
|
if (FindNextFile (hFind, &findData) == 0)
|
||||||
|
|
|
@ -49,8 +49,8 @@ using namespace NLMISC;
|
||||||
|
|
||||||
#define STRING_SELECT_COMBOBOX_ID 9
|
#define STRING_SELECT_COMBOBOX_ID 9
|
||||||
|
|
||||||
#define DIFFERENT_VALUE_STRING "<different values>"
|
#define DIFFERENT_VALUE_STRING _T("<different values>")
|
||||||
#define DIFFERENT_VALUE_MULTI_STRING "<diff>"
|
#define DIFFERENT_VALUE_MULTI_STRING _T("<diff>")
|
||||||
|
|
||||||
//CDialogProperties PropertyDialog;
|
//CDialogProperties PropertyDialog;
|
||||||
std::list<CDialogProperties*> PropertiesDialogs;
|
std::list<CDialogProperties*> PropertiesDialogs;
|
||||||
|
@ -327,12 +327,12 @@ void CDialogProperties::addWidget (const CPrimitiveClass::CParameter ¶meter,
|
||||||
buttonRect.right = buttonRect.left + FILE_BUTTON_WIDTH;
|
buttonRect.right = buttonRect.left + FILE_BUTTON_WIDTH;
|
||||||
|
|
||||||
// Create an edit box
|
// Create an edit box
|
||||||
nlverify (widget.CheckBox.Create ("Select", BS_PUSHBUTTON|WS_VISIBLE|WS_TABSTOP|(enabled?0:WS_DISABLED), buttonRect, &m_PropertyCont, id));
|
nlverify (widget.CheckBox.Create (_T("Select"), BS_PUSHBUTTON|WS_VISIBLE|WS_TABSTOP|(enabled?0:WS_DISABLED), buttonRect, &m_PropertyCont, id));
|
||||||
widget.CheckBox.SetFont (GetFont ());
|
widget.CheckBox.SetFont (GetFont ());
|
||||||
}
|
}
|
||||||
|
|
||||||
// Create the label
|
// Create the label
|
||||||
widget.Static.Create ("", WS_VISIBLE, widgetPos, &m_PropertyCont);
|
widget.Static.Create (_T(""), WS_VISIBLE, widgetPos, &m_PropertyCont);
|
||||||
widget.Static.SetFont (GetFont ());
|
widget.Static.SetFont (GetFont ());
|
||||||
|
|
||||||
// Next position
|
// Next position
|
||||||
|
@ -372,11 +372,11 @@ void CDialogProperties::addWidget (const CPrimitiveClass::CParameter ¶meter,
|
||||||
// we insert an empty string in case of a default value
|
// we insert an empty string in case of a default value
|
||||||
if (!widget.Parameter.SortEntries)
|
if (!widget.Parameter.SortEntries)
|
||||||
{
|
{
|
||||||
widget.ComboBox.InsertString( -1, "");
|
widget.ComboBox.InsertString( -1, _T(""));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
widget.ComboBox.AddString("");
|
widget.ComboBox.AddString(_T(""));
|
||||||
}
|
}
|
||||||
if (ite != widget.Parameter.ComboValues.end ())
|
if (ite != widget.Parameter.ComboValues.end ())
|
||||||
{
|
{
|
||||||
|
@ -431,7 +431,7 @@ void CDialogProperties::addWidget (const CPrimitiveClass::CParameter ¶meter,
|
||||||
widgetPos.bottom = widgetPos.top + EDIT_HEIGHT;
|
widgetPos.bottom = widgetPos.top + EDIT_HEIGHT;
|
||||||
|
|
||||||
// Create an edit box
|
// Create an edit box
|
||||||
nlverify (widget.EditBox.CreateEx (WS_EX_CLIENTEDGE, _T("EDIT"), "", WS_CHILD|WS_VISIBLE|WS_TABSTOP|ES_AUTOHSCROLL|(enabled?0:ES_READONLY), widgetPos, &m_PropertyCont, id));
|
nlverify (widget.EditBox.CreateEx (WS_EX_CLIENTEDGE, _T("EDIT"), _T(""), WS_CHILD|WS_VISIBLE|WS_TABSTOP|ES_AUTOHSCROLL|(enabled?0:ES_READONLY), widgetPos, &m_PropertyCont, id));
|
||||||
widget.EditBox.SetFont (GetFont ());
|
widget.EditBox.SetFont (GetFont ());
|
||||||
if (widget.Parameter.FileExtension != "")
|
if (widget.Parameter.FileExtension != "")
|
||||||
{
|
{
|
||||||
|
@ -440,7 +440,7 @@ void CDialogProperties::addWidget (const CPrimitiveClass::CParameter ¶meter,
|
||||||
buttonRect.right = buttonRect.left + FILE_BUTTON_WIDTH;
|
buttonRect.right = buttonRect.left + FILE_BUTTON_WIDTH;
|
||||||
|
|
||||||
// Create an edit box
|
// Create an edit box
|
||||||
nlverify (widget.CheckBox.Create ("Open...", BS_PUSHBUTTON|WS_VISIBLE|WS_TABSTOP|(enabled?0:WS_DISABLED), buttonRect, &m_PropertyCont, id));
|
nlverify (widget.CheckBox.Create (_T("Open..."), BS_PUSHBUTTON|WS_VISIBLE|WS_TABSTOP|(enabled?0:WS_DISABLED), buttonRect, &m_PropertyCont, id));
|
||||||
widget.CheckBox.SetFont (GetFont ());
|
widget.CheckBox.SetFont (GetFont ());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -452,12 +452,12 @@ void CDialogProperties::addWidget (const CPrimitiveClass::CParameter ¶meter,
|
||||||
// Create an edit box
|
// Create an edit box
|
||||||
if (widget.Parameter.DisplayHS)
|
if (widget.Parameter.DisplayHS)
|
||||||
{
|
{
|
||||||
nlverify (widget.MultiLineEditBox.CreateEx (WS_EX_CLIENTEDGE, _T("EDIT"), "",
|
nlverify (widget.MultiLineEditBox.CreateEx (WS_EX_CLIENTEDGE, _T("EDIT"), _T(""),
|
||||||
WS_VSCROLL|WS_HSCROLL|ES_MULTILINE|ES_WANTRETURN|WS_CHILD|WS_VISIBLE|WS_TABSTOP|ES_AUTOHSCROLL|ES_AUTOVSCROLL|(enabled?0:ES_READONLY), widgetPos, &m_PropertyCont, id));
|
WS_VSCROLL|WS_HSCROLL|ES_MULTILINE|ES_WANTRETURN|WS_CHILD|WS_VISIBLE|WS_TABSTOP|ES_AUTOHSCROLL|ES_AUTOVSCROLL|(enabled?0:ES_READONLY), widgetPos, &m_PropertyCont, id));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
nlverify (widget.MultiLineEditBox.CreateEx (WS_EX_CLIENTEDGE, _T("EDIT"), "",
|
nlverify (widget.MultiLineEditBox.CreateEx (WS_EX_CLIENTEDGE, _T("EDIT"), _T(""),
|
||||||
WS_VSCROLL|ES_MULTILINE|ES_WANTRETURN|WS_CHILD|WS_VISIBLE|WS_TABSTOP|ES_AUTOHSCROLL|ES_AUTOVSCROLL|(enabled?0:ES_READONLY), widgetPos, &m_PropertyCont, id));
|
WS_VSCROLL|ES_MULTILINE|ES_WANTRETURN|WS_CHILD|WS_VISIBLE|WS_TABSTOP|ES_AUTOHSCROLL|ES_AUTOVSCROLL|(enabled?0:ES_READONLY), widgetPos, &m_PropertyCont, id));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -478,7 +478,7 @@ void CDialogProperties::addWidget (const CPrimitiveClass::CParameter ¶meter,
|
||||||
RECT buttonRect = widgetPos;
|
RECT buttonRect = widgetPos;
|
||||||
|
|
||||||
// Create an edit box
|
// Create an edit box
|
||||||
nlverify (widget.CheckBox.Create ("Edit...", BS_PUSHBUTTON|WS_VISIBLE|WS_TABSTOP|(enabled?0:WS_DISABLED), buttonRect, &m_PropertyCont, id));
|
nlverify (widget.CheckBox.Create (_T("Edit..."), BS_PUSHBUTTON|WS_VISIBLE|WS_TABSTOP|(enabled?0:WS_DISABLED), buttonRect, &m_PropertyCont, id));
|
||||||
widget.CheckBox.SetFont (GetFont ());
|
widget.CheckBox.SetFont (GetFont ());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -488,7 +488,7 @@ void CDialogProperties::addWidget (const CPrimitiveClass::CParameter ¶meter,
|
||||||
widgetPos.bottom = widgetPos.top + widget.Parameter.WidgetHeight;
|
widgetPos.bottom = widgetPos.top + widget.Parameter.WidgetHeight;
|
||||||
|
|
||||||
// Create an edit box
|
// Create an edit box
|
||||||
nlverify (widget.ListEditBox.CreateEx (WS_EX_CLIENTEDGE, _T("LISTBOX"), "", WS_VSCROLL|WS_CHILD|WS_VISIBLE|WS_TABSTOP|LBS_NOTIFY|(enabled?0:WS_DISABLED), widgetPos, &m_PropertyCont, id));
|
nlverify (widget.ListEditBox.CreateEx (WS_EX_CLIENTEDGE, _T("LISTBOX"), _T(""), WS_VSCROLL|WS_CHILD|WS_VISIBLE|WS_TABSTOP|LBS_NOTIFY|(enabled?0:WS_DISABLED), widgetPos, &m_PropertyCont, id));
|
||||||
|
|
||||||
// Resize the column
|
// Resize the column
|
||||||
RECT listRect;
|
RECT listRect;
|
||||||
|
@ -498,7 +498,7 @@ void CDialogProperties::addWidget (const CPrimitiveClass::CParameter ¶meter,
|
||||||
widget.ListEditBox.StringSelectComboBox.ResetContent ();
|
widget.ListEditBox.StringSelectComboBox.ResetContent ();
|
||||||
std::map<std::string, CPrimitiveClass::CParameter::CConstStringValue>::iterator ite = widget.Parameter.ComboValues.find (doc->getContext ().c_str());
|
std::map<std::string, CPrimitiveClass::CParameter::CConstStringValue>::iterator ite = widget.Parameter.ComboValues.find (doc->getContext ().c_str());
|
||||||
// we insert an empty string in case of a default value
|
// we insert an empty string in case of a default value
|
||||||
widget.ListEditBox.StringSelectComboBox.InsertString( -1, "");
|
widget.ListEditBox.StringSelectComboBox.InsertString( -1, _T(""));
|
||||||
if (ite != widget.Parameter.ComboValues.end ())
|
if (ite != widget.Parameter.ComboValues.end ())
|
||||||
{
|
{
|
||||||
vector<string> PathList;
|
vector<string> PathList;
|
||||||
|
@ -565,7 +565,7 @@ void CDialogProperties::addWidget (const CPrimitiveClass::CParameter ¶meter,
|
||||||
|
|
||||||
// Create an edit box
|
// Create an edit box
|
||||||
//nlverify (widget.CheckBox.Create ("Open...", BS_PUSHBUTTON|WS_VISIBLE|WS_TABSTOP, buttonRect, this, id));
|
//nlverify (widget.CheckBox.Create ("Open...", BS_PUSHBUTTON|WS_VISIBLE|WS_TABSTOP, buttonRect, this, id));
|
||||||
nlverify (widget.CheckBox.Create ("View...", BS_PUSHBUTTON|WS_VISIBLE|WS_TABSTOP|(enabled?0:WS_DISABLED), buttonRect, &m_PropertyCont, id));
|
nlverify (widget.CheckBox.Create (_T("View..."), BS_PUSHBUTTON|WS_VISIBLE|WS_TABSTOP|(enabled?0:WS_DISABLED), buttonRect, &m_PropertyCont, id));
|
||||||
widget.CheckBox.SetFont (GetFont ());
|
widget.CheckBox.SetFont (GetFont ());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -661,7 +661,7 @@ BOOL CDialogProperties::OnInitDialog()
|
||||||
// m_PropertyFrame.ClientToScreen(&contRect);
|
// m_PropertyFrame.ClientToScreen(&contRect);
|
||||||
// leave 16 px for the scroll bar
|
// leave 16 px for the scroll bar
|
||||||
contRect.right-=16;
|
contRect.right-=16;
|
||||||
m_PropertyCont.Create("", 0, contRect, &m_PropertyFrame);
|
m_PropertyCont.Create(_T(""), 0, contRect, &m_PropertyFrame);
|
||||||
// m_PropertyCont.SetCursor()
|
// m_PropertyCont.SetCursor()
|
||||||
|
|
||||||
m_PropertyCont.ShowWindow(SW_SHOW);
|
m_PropertyCont.ShowWindow(SW_SHOW);
|
||||||
|
|
|
@ -3400,7 +3400,7 @@ void CDisplay::updateCursor ()
|
||||||
|
|
||||||
// Moved with middle click ?
|
// Moved with middle click ?
|
||||||
case DragView:
|
case DragView:
|
||||||
cursor = theApp.LoadCursor (MAKEINTRESOURCE(IDC_HAND));
|
cursor = theApp.LoadCursor (MAKEINTRESOURCE(IDC_HAND1));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
// Moved with left click ?
|
// Moved with left click ?
|
||||||
|
|
|
@ -163,20 +163,20 @@ int CALLBACK expBrowseCallbackProc (HWND hwnd,UINT uMsg,LPARAM lp, LPARAM pData)
|
||||||
bool CExportDlg::callChoosePathDlg(CString &dest) const
|
bool CExportDlg::callChoosePathDlg(CString &dest) const
|
||||||
{
|
{
|
||||||
BROWSEINFO bi;
|
BROWSEINFO bi;
|
||||||
char str[MAX_PATH];
|
TCHAR str[MAX_PATH];
|
||||||
ITEMIDLIST* pidl;
|
ITEMIDLIST* pidl;
|
||||||
char sTemp[1024];
|
TCHAR sTemp[1024];
|
||||||
|
|
||||||
bi.hwndOwner = this->m_hWnd;
|
bi.hwndOwner = this->m_hWnd;
|
||||||
bi.pidlRoot = NULL;
|
bi.pidlRoot = NULL;
|
||||||
bi.pidlRoot = NULL;
|
bi.pidlRoot = NULL;
|
||||||
bi.pszDisplayName = sTemp;;
|
bi.pszDisplayName = sTemp;;
|
||||||
bi.lpszTitle = "Choose the path";
|
bi.lpszTitle = _T("Choose the path");
|
||||||
bi.ulFlags = 0;
|
bi.ulFlags = 0;
|
||||||
bi.lpfn = expBrowseCallbackProc;
|
bi.lpfn = expBrowseCallbackProc;
|
||||||
|
|
||||||
char sDir[512];
|
TCHAR sDir[512];
|
||||||
strcpy(sDir, (LPCSTR)RefZoneDir);
|
_tcscpy(sDir, (LPCTSTR)RefZoneDir);
|
||||||
bi.lParam = (LPARAM)sDir;
|
bi.lParam = (LPARAM)sDir;
|
||||||
|
|
||||||
bi.iImage = 0;
|
bi.iImage = 0;
|
||||||
|
@ -218,7 +218,7 @@ void CExportDlg::OnButtonOutIGdir()
|
||||||
// ---------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------
|
||||||
void CExportDlg::OnButtonTilebankfile()
|
void CExportDlg::OnButtonTilebankfile()
|
||||||
{
|
{
|
||||||
CFileDialogEx dialog (BASE_REGISTRY_KEY, "bank", true, "smallbank", NULL, OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT, "SmallBank (*.smallbank)|*.smallbank||", this);
|
CFileDialogEx dialog (BASE_REGISTRY_KEY, _T("bank"), true, _T("smallbank"), NULL, OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT, _T("SmallBank (*.smallbank)|*.smallbank||"), this);
|
||||||
if (dialog.DoModal() == IDOK)
|
if (dialog.DoModal() == IDOK)
|
||||||
{
|
{
|
||||||
TileBankFile = dialog.GetPathName ();
|
TileBankFile = dialog.GetPathName ();
|
||||||
|
@ -229,7 +229,7 @@ void CExportDlg::OnButtonTilebankfile()
|
||||||
// ---------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------
|
||||||
void CExportDlg::OnButtonColormapfile()
|
void CExportDlg::OnButtonColormapfile()
|
||||||
{
|
{
|
||||||
CFileDialogEx dialog (BASE_REGISTRY_KEY, "image", true, "tga", NULL, OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT, "Tga Files (*.tga)|*.tga|All Files (*.*)|*.*||", this);
|
CFileDialogEx dialog (BASE_REGISTRY_KEY, _T("image"), true, _T("tga"), NULL, OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT, _T("Tga Files (*.tga)|*.tga|All Files (*.*)|*.*||"), this);
|
||||||
if (dialog.DoModal() == IDOK)
|
if (dialog.DoModal() == IDOK)
|
||||||
{
|
{
|
||||||
ColorMapFile = dialog.GetPathName ();
|
ColorMapFile = dialog.GetPathName ();
|
||||||
|
@ -240,7 +240,7 @@ void CExportDlg::OnButtonColormapfile()
|
||||||
// ---------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------
|
||||||
void CExportDlg::OnButtonHeightmapfile()
|
void CExportDlg::OnButtonHeightmapfile()
|
||||||
{
|
{
|
||||||
CFileDialogEx dialog (BASE_REGISTRY_KEY, "image", true, "tga", NULL, OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT, "Grayscale Tga (*.tga)|*.tga||", this);
|
CFileDialogEx dialog (BASE_REGISTRY_KEY, _T("image"), true, _T("tga"), NULL, OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT, _T("Grayscale Tga (*.tga)|*.tga||"), this);
|
||||||
if (dialog.DoModal() == IDOK)
|
if (dialog.DoModal() == IDOK)
|
||||||
{
|
{
|
||||||
HeightMapFile = dialog.GetPathName ();
|
HeightMapFile = dialog.GetPathName ();
|
||||||
|
@ -251,7 +251,7 @@ void CExportDlg::OnButtonHeightmapfile()
|
||||||
// ---------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------
|
||||||
void CExportDlg::OnButtonHeightmapfile2()
|
void CExportDlg::OnButtonHeightmapfile2()
|
||||||
{
|
{
|
||||||
CFileDialogEx dialog (BASE_REGISTRY_KEY, "image", true, "tga", NULL, OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT, "Grayscale Tga (*.tga)|*.tga||", this);
|
CFileDialogEx dialog (BASE_REGISTRY_KEY, _T("image"), true, _T("tga"), NULL, OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT, _T("Grayscale Tga (*.tga)|*.tga||"), this);
|
||||||
if (dialog.DoModal() == IDOK)
|
if (dialog.DoModal() == IDOK)
|
||||||
{
|
{
|
||||||
HeightMapFile2 = dialog.GetPathName ();
|
HeightMapFile2 = dialog.GetPathName ();
|
||||||
|
@ -299,7 +299,7 @@ void CExportDlg::OnButtonContinentsDir()
|
||||||
// ---------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------
|
||||||
void CExportDlg::OnButtonContinentFile()
|
void CExportDlg::OnButtonContinentFile()
|
||||||
{
|
{
|
||||||
CFileDialogEx dialog (BASE_REGISTRY_KEY, "continent", true, "continent", NULL, OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT, "Continent file (*.continent)|*.continent||", this);
|
CFileDialogEx dialog (BASE_REGISTRY_KEY, _T("continent"), true, _T("continent"), NULL, OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT, _T("Continent file (*.continent)|*.continent||"), this);
|
||||||
if (dialog.DoModal() == IDOK)
|
if (dialog.DoModal() == IDOK)
|
||||||
{
|
{
|
||||||
ContinentFile = dialog.GetPathName ();
|
ContinentFile = dialog.GetPathName ();
|
||||||
|
|
|
@ -37,9 +37,9 @@ CFileDialogEx::CFileDialogEx(LPCTSTR lpszRegistryPath, LPCTSTR lpszFileType,BOOL
|
||||||
LPCTSTR lpszDefExt, LPCTSTR lpszFileName, DWORD dwFlags, LPCTSTR lpszFilter, CWnd* pParentWnd) :
|
LPCTSTR lpszDefExt, LPCTSTR lpszFileName, DWORD dwFlags, LPCTSTR lpszFilter, CWnd* pParentWnd) :
|
||||||
CFileDialog(bOpenFileDialog, lpszDefExt, lpszFileName, dwFlags, lpszFilter, pParentWnd)
|
CFileDialog(bOpenFileDialog, lpszDefExt, lpszFileName, dwFlags, lpszFilter, pParentWnd)
|
||||||
{
|
{
|
||||||
_RegistryPath = lpszRegistryPath;
|
_RegistryPath = tStrToUtf8(lpszRegistryPath);
|
||||||
_RegistryPath += "\\CFileDialogEx";
|
_RegistryPath += "\\CFileDialogEx";
|
||||||
_FileType = lpszFileType;
|
_FileType = tStrToUtf8(lpszFileType);
|
||||||
}
|
}
|
||||||
|
|
||||||
// ***************************************************************************
|
// ***************************************************************************
|
||||||
|
@ -54,14 +54,14 @@ END_MESSAGE_MAP()
|
||||||
INT_PTR CFileDialogEx::DoModal ()
|
INT_PTR CFileDialogEx::DoModal ()
|
||||||
{
|
{
|
||||||
// Get the path
|
// Get the path
|
||||||
char path[512];
|
TCHAR path[512];
|
||||||
path[0] = 0;
|
path[0] = 0;
|
||||||
HKEY hKey;
|
HKEY hKey;
|
||||||
DWORD type = REG_SZ;
|
DWORD type = REG_SZ;
|
||||||
DWORD size = 512;
|
DWORD size = 512 * sizeof(TCHAR);
|
||||||
if (RegCreateKey (HKEY_CURRENT_USER, _RegistryPath.c_str (), &hKey) == ERROR_SUCCESS)
|
if (RegCreateKey (HKEY_CURRENT_USER, utf8ToTStr(_RegistryPath), &hKey) == ERROR_SUCCESS)
|
||||||
{
|
{
|
||||||
if (RegQueryValueEx (hKey, _FileType.c_str (), 0, &type, (LPBYTE)path, &size) == ERROR_SUCCESS)
|
if (RegQueryValueEx (hKey, utf8ToTStr(_FileType), 0, &type, (LPBYTE)path, &size) == ERROR_SUCCESS)
|
||||||
m_ofn.lpstrInitialDir = path;
|
m_ofn.lpstrInitialDir = path;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -73,9 +73,9 @@ INT_PTR CFileDialogEx::DoModal ()
|
||||||
if ((result = CFileDialog::DoModal ()) == IDOK)
|
if ((result = CFileDialog::DoModal ()) == IDOK)
|
||||||
{
|
{
|
||||||
// Update the path
|
// Update the path
|
||||||
std::string newPath = (const char *)GetPathName ();
|
std::string newPath = tStrToUtf8(GetPathName ());
|
||||||
newPath = NLMISC::CFile::getPath (newPath);
|
newPath = NLMISC::CFile::getPath (newPath);
|
||||||
RegSetValueEx (hKey, _FileType.c_str (), 0, REG_SZ, (LPBYTE)newPath.c_str (), newPath.size ()+1);
|
RegSetValueEx (hKey, utf8ToTStr(_FileType), 0, REG_SZ, (LPBYTE)newPath.c_str (), newPath.size ()+1);
|
||||||
|
|
||||||
// Update the path list
|
// Update the path list
|
||||||
set<string> oldPath;
|
set<string> oldPath;
|
||||||
|
@ -83,15 +83,15 @@ INT_PTR CFileDialogEx::DoModal ()
|
||||||
for (i=0; i<PATH_REMEBERED_SIZE; i++)
|
for (i=0; i<PATH_REMEBERED_SIZE; i++)
|
||||||
{
|
{
|
||||||
size = 512;
|
size = 512;
|
||||||
if (RegQueryValueEx (hKey, toString (i).c_str (), 0, &type, (LPBYTE)path, &size) == ERROR_SUCCESS)
|
if (RegQueryValueEx (hKey, utf8ToTStr(toString(i)), 0, &type, (LPBYTE)path, &size) == ERROR_SUCCESS)
|
||||||
oldPath.insert (path);
|
oldPath.insert (tStrToUtf8(path));
|
||||||
}
|
}
|
||||||
oldPath.insert (newPath);
|
oldPath.insert (newPath);
|
||||||
set<string>::const_iterator ite = oldPath.begin ();
|
set<string>::const_iterator ite = oldPath.begin ();
|
||||||
uint index = 0;
|
uint index = 0;
|
||||||
while (ite != oldPath.end ())
|
while (ite != oldPath.end ())
|
||||||
{
|
{
|
||||||
RegSetValueEx (hKey, toString (index).c_str (), 0, REG_SZ, (LPBYTE)ite->c_str (), ite->size ()+1);
|
RegSetValueEx (hKey, utf8ToTStr(toString(index)), 0, REG_SZ, (LPBYTE)ite->c_str (), ite->size ()+1);
|
||||||
ite++;
|
ite++;
|
||||||
index++;
|
index++;
|
||||||
}
|
}
|
||||||
|
@ -122,7 +122,7 @@ BOOL CFileDialogEx::OnCommand( WPARAM wParam, LPARAM lParam )
|
||||||
::GetDlgItemText (parent, edt1, s, MAX_PATH);
|
::GetDlgItemText (parent, edt1, s, MAX_PATH);
|
||||||
|
|
||||||
// Replace with the directory name
|
// Replace with the directory name
|
||||||
::SendMessage (parent, CDM_SETCONTROLTEXT, edt1, (LPARAM)(const char*)text);
|
::SendMessage (parent, CDM_SETCONTROLTEXT, edt1, (LPARAM)(LPCTSTR)text);
|
||||||
|
|
||||||
// Click on the OK button
|
// Click on the OK button
|
||||||
::SendMessage (parent, WM_COMMAND, IDOK, 0);
|
::SendMessage (parent, WM_COMMAND, IDOK, 0);
|
||||||
|
@ -148,18 +148,18 @@ BOOL CFileDialogEx::OnInitDialog()
|
||||||
combo.Attach (::GetDlgItem (*this, IDC_DIRLIST));
|
combo.Attach (::GetDlgItem (*this, IDC_DIRLIST));
|
||||||
|
|
||||||
// Insert the strings
|
// Insert the strings
|
||||||
char text[512];
|
TCHAR text[512];
|
||||||
text[0] = 0;
|
text[0] = 0;
|
||||||
HKEY hKey;
|
HKEY hKey;
|
||||||
DWORD type = REG_SZ;
|
DWORD type = REG_SZ;
|
||||||
DWORD size;
|
DWORD size;
|
||||||
if (RegCreateKey (HKEY_CURRENT_USER, _RegistryPath.c_str (), &hKey) == ERROR_SUCCESS)
|
if (RegCreateKey (HKEY_CURRENT_USER, utf8ToTStr(_RegistryPath), &hKey) == ERROR_SUCCESS)
|
||||||
{
|
{
|
||||||
uint i;
|
uint i;
|
||||||
for (i=0; i<PATH_REMEBERED_SIZE; i++)
|
for (i=0; i<PATH_REMEBERED_SIZE; i++)
|
||||||
{
|
{
|
||||||
size = 512;
|
size = 512 * sizeof(TCHAR);
|
||||||
if (RegQueryValueEx (hKey, toString (i).c_str (), 0, &type, (LPBYTE)text, &size) == ERROR_SUCCESS)
|
if (RegQueryValueEx (hKey, utf8ToTStr(toString(i)), 0, &type, (LPBYTE)text, &size) == ERROR_SUCCESS)
|
||||||
combo.InsertString (-1, text);
|
combo.InsertString (-1, text);
|
||||||
}
|
}
|
||||||
if (m_ofn.lpstrInitialDir)
|
if (m_ofn.lpstrInitialDir)
|
||||||
|
|
|
@ -175,7 +175,7 @@ void CFindPrimitiveDlg::OnFindNext()
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
MessageBox ("End of the document", "Find a primitive...", MB_OK|MB_ICONEXCLAMATION);
|
MessageBox (_T("End of the document"), _T("Find a primitive..."), MB_OK|MB_ICONEXCLAMATION);
|
||||||
|
|
||||||
// Init locator
|
// Init locator
|
||||||
_Locator.getRoot (0);
|
_Locator.getRoot (0);
|
||||||
|
|
|
@ -103,10 +103,8 @@ void CImageListEx::addResourceIcon (const char *filename)
|
||||||
index = ImageList.Replace( index, handle);
|
index = ImageList.Replace( index, handle);
|
||||||
|
|
||||||
// Add in the map
|
// Add in the map
|
||||||
char name[MAX_PATH];
|
std::string name = toLower(NLMISC::CFile::getFilenameWithoutExtension(filename));
|
||||||
_splitpath (filename, NULL, NULL, name, NULL);
|
_IconMapString.insert (std::map<string, int>::value_type (name, index));
|
||||||
string llwr = strlwr (string (name));
|
|
||||||
_IconMapString.insert (std::map<string, int>::value_type (llwr, index));
|
|
||||||
|
|
||||||
// Release the icon
|
// Release the icon
|
||||||
DestroyIcon (handle);
|
DestroyIcon (handle);
|
||||||
|
@ -131,10 +129,8 @@ int CImageListEx::getImage (int resource) const
|
||||||
|
|
||||||
int CImageListEx::getImage (const char *filename) const
|
int CImageListEx::getImage (const char *filename) const
|
||||||
{
|
{
|
||||||
char name[MAX_PATH];
|
std::string name = toLower(NLMISC::CFile::getFilenameWithoutExtension(filename));
|
||||||
_splitpath (filename, NULL, NULL, name, NULL);
|
std::map<string, int>::const_iterator ite = _IconMapString.find (name);
|
||||||
string llwr = strlwr (string (name));
|
|
||||||
std::map<string, int>::const_iterator ite = _IconMapString.find (llwr);
|
|
||||||
if (ite == _IconMapString.end())
|
if (ite == _IconMapString.end())
|
||||||
return -1;
|
return -1;
|
||||||
else
|
else
|
||||||
|
|
|
@ -248,8 +248,8 @@ void CNameDlg::OnBtnAssign()
|
||||||
|
|
||||||
// get strings
|
// get strings
|
||||||
ucstring id;
|
ucstring id;
|
||||||
std::string gn = m_assignGn;
|
std::string gn = tStrToUtf8(m_assignGn);
|
||||||
std::string ig = m_assignIg;
|
std::string ig = tStrToUtf8(m_assignIg);
|
||||||
|
|
||||||
for (uint i=0 ; i<sel.size() ; i++)
|
for (uint i=0 ; i<sel.size() ; i++)
|
||||||
{
|
{
|
||||||
|
@ -265,7 +265,7 @@ void CNameDlg::OnBtnAssign()
|
||||||
uint n = m_idList.GetTextLen(i);
|
uint n = m_idList.GetTextLen(i);
|
||||||
m_idList.GetText(i, str.GetBuffer(n));
|
m_idList.GetText(i, str.GetBuffer(n));
|
||||||
str.ReleaseBuffer();
|
str.ReleaseBuffer();
|
||||||
id = str;
|
id.fromUtf8(tStrToUtf8(str));
|
||||||
}
|
}
|
||||||
|
|
||||||
// assign name to selected id
|
// assign name to selected id
|
||||||
|
|
|
@ -65,7 +65,7 @@
|
||||||
#define IDI_LINE_HIDE 149
|
#define IDI_LINE_HIDE 149
|
||||||
#define IDC_INSERT_POINT 149
|
#define IDC_INSERT_POINT 149
|
||||||
#define IDI_ZONE_HIDE 150
|
#define IDI_ZONE_HIDE 150
|
||||||
#define IDC_HAND 150
|
#define IDC_HAND1 150
|
||||||
#define IDI_ZONE 151
|
#define IDI_ZONE 151
|
||||||
#define IDI_ZONE_OPENED 151
|
#define IDI_ZONE_OPENED 151
|
||||||
#define IDD_LOADING 152
|
#define IDD_LOADING 152
|
||||||
|
|
|
@ -36,7 +36,7 @@
|
||||||
#include "nel/ligo/ligo_config.h"
|
#include "nel/ligo/ligo_config.h"
|
||||||
|
|
||||||
// Base registry key
|
// Base registry key
|
||||||
#define BASE_REGISTRY_KEY "Software\\Nevrax\\NeL World Editor"
|
#define BASE_REGISTRY_KEY _T("Software\\Nevrax\\NeL World Editor")
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
// CWorldEditorApp:
|
// CWorldEditorApp:
|
||||||
|
|
|
@ -934,7 +934,7 @@ IDC_COPY CURSOR DISCARDABLE "res\\copy.cur"
|
||||||
IDC_SELECT CURSOR DISCARDABLE "res\\select.cur"
|
IDC_SELECT CURSOR DISCARDABLE "res\\select.cur"
|
||||||
IDC_SELECT_COPY CURSOR DISCARDABLE "res\\select_copy.cur"
|
IDC_SELECT_COPY CURSOR DISCARDABLE "res\\select_copy.cur"
|
||||||
IDC_INSERT_POINT CURSOR DISCARDABLE "res\\insert_point.cur"
|
IDC_INSERT_POINT CURSOR DISCARDABLE "res\\insert_point.cur"
|
||||||
IDC_HAND CURSOR DISCARDABLE "res\\hand.cur"
|
IDC_HAND1 CURSOR DISCARDABLE "res\\hand.cur"
|
||||||
IDC_ZOOM CURSOR DISCARDABLE "res\\zoom.cur"
|
IDC_ZOOM CURSOR DISCARDABLE "res\\zoom.cur"
|
||||||
IDC_RADIUS CURSOR DISCARDABLE "res\\radius.cur"
|
IDC_RADIUS CURSOR DISCARDABLE "res\\radius.cur"
|
||||||
|
|
||||||
|
|
|
@ -353,7 +353,7 @@ void CPlugin::postRender(CDisplay &display)
|
||||||
// TODO nico This code is duplicated with world_editor_shard_monitor
|
// TODO nico This code is duplicated with world_editor_shard_monitor
|
||||||
static bool createFailed = false;
|
static bool createFailed = false;
|
||||||
if (createFailed) return;
|
if (createFailed) return;
|
||||||
HRSRC rsc = FindResource(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDR_FLAG_ICONS_TGA), "TGA");
|
HRSRC rsc = FindResource(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDR_FLAG_ICONS_TGA), _T("TGA"));
|
||||||
if (rsc == NULL)
|
if (rsc == NULL)
|
||||||
{
|
{
|
||||||
DWORD lastError = GetLastError();
|
DWORD lastError = GetLastError();
|
||||||
|
|
|
@ -172,7 +172,7 @@ void CGraphPlugin::refreshPrimitives()
|
||||||
{
|
{
|
||||||
string msg("Can't write script file '");
|
string msg("Can't write script file '");
|
||||||
msg += tmpPath+"/lang.dot'";
|
msg += tmpPath+"/lang.dot'";
|
||||||
AfxMessageBox(msg.c_str());
|
AfxMessageBox(utf8ToTStr(msg));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -186,7 +186,7 @@ void CGraphPlugin::refreshPrimitives()
|
||||||
|
|
||||||
//currently using output.png as the input file...
|
//currently using output.png as the input file...
|
||||||
if(!createBitmap(tmpPath))
|
if(!createBitmap(tmpPath))
|
||||||
AfxMessageBox("BEWARE: the image couldn't be loaded.");
|
AfxMessageBox(_T("BEWARE: the image couldn't be loaded."));
|
||||||
}
|
}
|
||||||
|
|
||||||
while (missionTreeRoot->getParent()!=NULL)
|
while (missionTreeRoot->getParent()!=NULL)
|
||||||
|
@ -207,11 +207,11 @@ void CGraphPlugin::refreshPrimitives()
|
||||||
|
|
||||||
err = toString("%s : %s", primName.c_str(), e.Why.c_str());
|
err = toString("%s : %s", primName.c_str(), e.Why.c_str());
|
||||||
}
|
}
|
||||||
AfxMessageBox(err.c_str());
|
AfxMessageBox(utf8ToTStr(err));
|
||||||
}
|
}
|
||||||
catch (const exception &e) //catch a possible exception from getRootFileName
|
catch (const exception &e) //catch a possible exception from getRootFileName
|
||||||
{
|
{
|
||||||
AfxMessageBox(e.what());
|
AfxMessageBox(utf8ToTStr(e.what()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -254,7 +254,7 @@ void CGraphPlugin::refreshMachine()
|
||||||
{
|
{
|
||||||
string msg("Can't write script file '");
|
string msg("Can't write script file '");
|
||||||
msg += tmpPath+"/lang.dot'";
|
msg += tmpPath+"/lang.dot'";
|
||||||
AfxMessageBox(msg.c_str());
|
AfxMessageBox(utf8ToTStr(msg));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -268,7 +268,7 @@ void CGraphPlugin::refreshMachine()
|
||||||
|
|
||||||
//currently using output.png as the input file...
|
//currently using output.png as the input file...
|
||||||
if(!createBitmap(tmpPath))
|
if(!createBitmap(tmpPath))
|
||||||
AfxMessageBox("BEWARE: the image couldn't be loaded.");
|
AfxMessageBox(_T("BEWARE: the image couldn't be loaded."));
|
||||||
}
|
}
|
||||||
|
|
||||||
while (missionTreeRoot->getParent()!=NULL)
|
while (missionTreeRoot->getParent()!=NULL)
|
||||||
|
@ -298,7 +298,7 @@ void CGraphPlugin::refreshMachine()
|
||||||
{
|
{
|
||||||
string msg("Can't write script file '");
|
string msg("Can't write script file '");
|
||||||
msg += tmpPath+"/lang.dot'";
|
msg += tmpPath+"/lang.dot'";
|
||||||
AfxMessageBox(msg.c_str());
|
AfxMessageBox(utf8ToTStr(msg));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -312,7 +312,7 @@ void CGraphPlugin::refreshMachine()
|
||||||
|
|
||||||
//currently using output.png as the input file...
|
//currently using output.png as the input file...
|
||||||
if(!createBitmap(tmpPath))
|
if(!createBitmap(tmpPath))
|
||||||
AfxMessageBox("BEWARE: the image couldn't be loaded.");
|
AfxMessageBox(_T("BEWARE: the image couldn't be loaded."));
|
||||||
}
|
}
|
||||||
|
|
||||||
while (missionTreeRoot->getParent()!=NULL)
|
while (missionTreeRoot->getParent()!=NULL)
|
||||||
|
@ -323,7 +323,7 @@ void CGraphPlugin::refreshMachine()
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
AfxMessageBox("The selected node could not be processed.");
|
AfxMessageBox(_T("The selected node could not be processed."));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -938,9 +938,10 @@ void CGraphPlugin::doSelection(const string& primPath)
|
||||||
selectPrimByPath(rootNode,primPath,resSet);
|
selectPrimByPath(rootNode,primPath,resSet);
|
||||||
|
|
||||||
_PluginAccess->setCurrentSelection(resSet);
|
_PluginAccess->setCurrentSelection(resSet);
|
||||||
|
}
|
||||||
}catch(const exception &e){
|
catch(const exception &e)
|
||||||
GraphDlg->MessageBox(e.what());
|
{
|
||||||
|
GraphDlg->MessageBox(utf8ToTStr(e.what()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -73,18 +73,18 @@ CDialogFlags::CDialogFlags(CWnd* pParent /*=NULL*/)
|
||||||
{
|
{
|
||||||
CEntityDisplayInfo di[] =
|
CEntityDisplayInfo di[] =
|
||||||
{
|
{
|
||||||
CEntityDisplayInfo(RYZOMID::building, "Building", NLMISC::CRGBA(192, 0, 0)),
|
CEntityDisplayInfo(RYZOMID::building, _T("Building"), NLMISC::CRGBA(192, 0, 0)),
|
||||||
CEntityDisplayInfo(RYZOMID::creature, "Creature", NLMISC::CRGBA(255, 127, 0), 2, 0),
|
CEntityDisplayInfo(RYZOMID::creature, _T("Creature"), NLMISC::CRGBA(255, 127, 0), 2, 0),
|
||||||
CEntityDisplayInfo(RYZOMID::deposit, "Deposit", NLMISC::CRGBA(0, 255, 0)),
|
CEntityDisplayInfo(RYZOMID::deposit, _T("Deposit"), NLMISC::CRGBA(0, 255, 0)),
|
||||||
CEntityDisplayInfo(RYZOMID::flora, "Flora", NLMISC::CRGBA(255, 127, 0)),
|
CEntityDisplayInfo(RYZOMID::flora, _T("Flora"), NLMISC::CRGBA(255, 127, 0)),
|
||||||
CEntityDisplayInfo(RYZOMID::forageSource, "Forage Source", NLMISC::CRGBA(0, 255, 0)),
|
CEntityDisplayInfo(RYZOMID::forageSource, _T("Forage Source"), NLMISC::CRGBA(0, 255, 0)),
|
||||||
CEntityDisplayInfo(RYZOMID::mount, "Mount", NLMISC::CRGBA(127, 63, 0), 3, 0),
|
CEntityDisplayInfo(RYZOMID::mount, _T("Mount"), NLMISC::CRGBA(127, 63, 0), 3, 0),
|
||||||
CEntityDisplayInfo(RYZOMID::npc, "NPC", NLMISC::CRGBA(255, 0, 0), 1, 0),
|
CEntityDisplayInfo(RYZOMID::npc, _T("NPC"), NLMISC::CRGBA(255, 0, 0), 1, 0),
|
||||||
CEntityDisplayInfo(RYZOMID::object, "Object", NLMISC::CRGBA(192, 255, 255)),
|
CEntityDisplayInfo(RYZOMID::object, _T("Object"), NLMISC::CRGBA(192, 255, 255)),
|
||||||
CEntityDisplayInfo(RYZOMID::pack_animal, "Pack Animal", NLMISC::CRGBA(127, 63, 0), 3, 0),
|
CEntityDisplayInfo(RYZOMID::pack_animal, _T("Pack Animal"), NLMISC::CRGBA(127, 63, 0), 3, 0),
|
||||||
CEntityDisplayInfo(RYZOMID::player, "Player", NLMISC::CRGBA(127, 127, 255), 0, 0),
|
CEntityDisplayInfo(RYZOMID::player, _T("Player"), NLMISC::CRGBA(127, 127, 255), 0, 0),
|
||||||
CEntityDisplayInfo(RYZOMID::fx_entity, "FX Entity", NLMISC::CRGBA(0, 255, 0)),
|
CEntityDisplayInfo(RYZOMID::fx_entity, _T("FX Entity"), NLMISC::CRGBA(0, 255, 0)),
|
||||||
CEntityDisplayInfo(RYZOMID::unknown, "Unknown", NLMISC::CRGBA(127, 127, 127)),
|
CEntityDisplayInfo(RYZOMID::unknown, _T("Unknown"), NLMISC::CRGBA(127, 127, 127)),
|
||||||
};
|
};
|
||||||
initDisplayInfo(di, sizeofarray(di), _EntityDisplayInfo[EntityType]);
|
initDisplayInfo(di, sizeofarray(di), _EntityDisplayInfo[EntityType]);
|
||||||
}
|
}
|
||||||
|
@ -92,10 +92,10 @@ CDialogFlags::CDialogFlags(CWnd* pParent /*=NULL*/)
|
||||||
{
|
{
|
||||||
CEntityDisplayInfo di[] =
|
CEntityDisplayInfo di[] =
|
||||||
{
|
{
|
||||||
CEntityDisplayInfo(0, "Dead", NLMISC::CRGBA(255, 0, 0)),
|
CEntityDisplayInfo(0, _T("Dead"), NLMISC::CRGBA(255, 0, 0)),
|
||||||
CEntityDisplayInfo(1, "Weak", NLMISC::CRGBA(255, 255, 0)),
|
CEntityDisplayInfo(1, _T("Weak"), NLMISC::CRGBA(255, 255, 0)),
|
||||||
CEntityDisplayInfo(2, "Full shape", NLMISC::CRGBA(0, 255, 0)),
|
CEntityDisplayInfo(2, _T("Full shape"), NLMISC::CRGBA(0, 255, 0)),
|
||||||
CEntityDisplayInfo(3, "No Hit Points", NLMISC::CRGBA(127, 127, 127)),
|
CEntityDisplayInfo(3, _T("No Hit Points"), NLMISC::CRGBA(127, 127, 127)),
|
||||||
};
|
};
|
||||||
initDisplayInfo(di, sizeofarray(di), _EntityDisplayInfo[EntityHitPoints]);
|
initDisplayInfo(di, sizeofarray(di), _EntityDisplayInfo[EntityHitPoints]);
|
||||||
}
|
}
|
||||||
|
@ -103,9 +103,9 @@ CDialogFlags::CDialogFlags(CWnd* pParent /*=NULL*/)
|
||||||
{
|
{
|
||||||
CEntityDisplayInfo di[] =
|
CEntityDisplayInfo di[] =
|
||||||
{
|
{
|
||||||
CEntityDisplayInfo(0, "Dead", NLMISC::CRGBA(255, 0, 0)),
|
CEntityDisplayInfo(0, _T("Dead"), NLMISC::CRGBA(255, 0, 0)),
|
||||||
CEntityDisplayInfo(1, "Alive", NLMISC::CRGBA(0, 0, 255)),
|
CEntityDisplayInfo(1, _T("Alive"), NLMISC::CRGBA(0, 0, 255)),
|
||||||
CEntityDisplayInfo(2, "No Hit Points", NLMISC::CRGBA(127, 127, 127)),
|
CEntityDisplayInfo(2, _T("No Hit Points"), NLMISC::CRGBA(127, 127, 127)),
|
||||||
};
|
};
|
||||||
initDisplayInfo(di, sizeofarray(di), _EntityDisplayInfo[EntityAlive]);
|
initDisplayInfo(di, sizeofarray(di), _EntityDisplayInfo[EntityAlive]);
|
||||||
}
|
}
|
||||||
|
@ -113,19 +113,19 @@ CDialogFlags::CDialogFlags(CWnd* pParent /*=NULL*/)
|
||||||
{
|
{
|
||||||
CEntityDisplayInfo di[] =
|
CEntityDisplayInfo di[] =
|
||||||
{
|
{
|
||||||
CEntityDisplayInfo(MBEHAV::UNKNOWN_MODE, "Unknown", NLMISC::CRGBA(127, 127, 127)),
|
CEntityDisplayInfo(MBEHAV::UNKNOWN_MODE, _T("Unknown"), NLMISC::CRGBA(127, 127, 127)),
|
||||||
CEntityDisplayInfo(MBEHAV::NORMAL, "Normal", NLMISC::CRGBA(255, 255, 255)),
|
CEntityDisplayInfo(MBEHAV::NORMAL, _T("Normal"), NLMISC::CRGBA(255, 255, 255)),
|
||||||
CEntityDisplayInfo(MBEHAV::COMBAT_FLOAT, "Combat float", NLMISC::CRGBA(255, 0, 0), 0, 1),
|
CEntityDisplayInfo(MBEHAV::COMBAT_FLOAT, _T("Combat float"), NLMISC::CRGBA(255, 0, 0), 0, 1),
|
||||||
CEntityDisplayInfo(MBEHAV::COMBAT, "Combat", NLMISC::CRGBA(255, 0, 0), 0, 1),
|
CEntityDisplayInfo(MBEHAV::COMBAT, _T("Combat"), NLMISC::CRGBA(255, 0, 0), 0, 1),
|
||||||
CEntityDisplayInfo(MBEHAV::SWIM, "Swim", NLMISC::CRGBA(0, 0, 255)),
|
CEntityDisplayInfo(MBEHAV::SWIM, _T("Swim"), NLMISC::CRGBA(0, 0, 255)),
|
||||||
CEntityDisplayInfo(MBEHAV::SIT, "Sit", NLMISC::CRGBA(0, 255, 255)),
|
CEntityDisplayInfo(MBEHAV::SIT, _T("Sit"), NLMISC::CRGBA(0, 255, 255)),
|
||||||
CEntityDisplayInfo(MBEHAV::MOUNT_NORMAL, "Mount Normal", NLMISC::CRGBA(192, 128, 0)),
|
CEntityDisplayInfo(MBEHAV::MOUNT_NORMAL, _T("Mount Normal"), NLMISC::CRGBA(192, 128, 0)),
|
||||||
CEntityDisplayInfo(MBEHAV::MOUNT_SWIM, "Mount Swim", NLMISC::CRGBA(0, 0, 255)),
|
CEntityDisplayInfo(MBEHAV::MOUNT_SWIM, _T("Mount Swim"), NLMISC::CRGBA(0, 0, 255)),
|
||||||
CEntityDisplayInfo(MBEHAV::EAT, "Eat", NLMISC::CRGBA(0, 255, 0)),
|
CEntityDisplayInfo(MBEHAV::EAT, _T("Eat"), NLMISC::CRGBA(0, 255, 0)),
|
||||||
CEntityDisplayInfo(MBEHAV::ALERT, "Alert", NLMISC::CRGBA(255, 127, 0)),
|
CEntityDisplayInfo(MBEHAV::ALERT, _T("Alert"), NLMISC::CRGBA(255, 127, 0)),
|
||||||
CEntityDisplayInfo(MBEHAV::HUNGRY, "Hungry", NLMISC::CRGBA(255, 255, 0)),
|
CEntityDisplayInfo(MBEHAV::HUNGRY, _T("Hungry"), NLMISC::CRGBA(255, 255, 0)),
|
||||||
CEntityDisplayInfo(MBEHAV::DEATH, "Death", NLMISC::CRGBA(0, 0, 0)),
|
CEntityDisplayInfo(MBEHAV::DEATH, _T("Death"), NLMISC::CRGBA(0, 0, 0)),
|
||||||
CEntityDisplayInfo(MBEHAV::SWIM_DEATH, "SwimDeath", NLMISC::CRGBA(0, 0, 0))
|
CEntityDisplayInfo(MBEHAV::SWIM_DEATH, _T("SwimDeath"), NLMISC::CRGBA(0, 0, 0))
|
||||||
};
|
};
|
||||||
initDisplayInfo(di, sizeofarray(di), _EntityDisplayInfo[EntityMode]);
|
initDisplayInfo(di, sizeofarray(di), _EntityDisplayInfo[EntityMode]);
|
||||||
}
|
}
|
||||||
|
@ -213,7 +213,7 @@ BOOL CDialogFlags::OnInitDialog()
|
||||||
{
|
{
|
||||||
CDialog::OnInitDialog();
|
CDialog::OnInitDialog();
|
||||||
|
|
||||||
HRSRC rsc = FindResource(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDR_ENTITY_ICONS_TGA), "TGA");
|
HRSRC rsc = FindResource(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDR_ENTITY_ICONS_TGA), _T("TGA"));
|
||||||
if (rsc != NULL)
|
if (rsc != NULL)
|
||||||
{
|
{
|
||||||
NLMISC::CBitmap bm;
|
NLMISC::CBitmap bm;
|
||||||
|
@ -247,7 +247,7 @@ BOOL CDialogFlags::OnInitDialog()
|
||||||
::CRect shardListRect;
|
::CRect shardListRect;
|
||||||
GetDlgItem(IDC_SHARD_LIST_PLACEMENT)->GetWindowRect(shardListRect);
|
GetDlgItem(IDC_SHARD_LIST_PLACEMENT)->GetWindowRect(shardListRect);
|
||||||
ScreenToClient(&shardListRect);
|
ScreenToClient(&shardListRect);
|
||||||
ShardCtrl.create(WS_CHILD|WS_TABSTOP, shardListRect, this, 0, REGKEY_BASE_PATH "\\shard_list", 10);
|
ShardCtrl.create(WS_CHILD|WS_TABSTOP, shardListRect, this, 0, REGKEY_BASE_PATH _T("\\shard_list"), 10);
|
||||||
ShardCtrl.ShowWindow (SW_SHOW);
|
ShardCtrl.ShowWindow (SW_SHOW);
|
||||||
CFont* font = GetFont ();
|
CFont* font = GetFont ();
|
||||||
ShardCtrl.SetFont(font);
|
ShardCtrl.SetFont(font);
|
||||||
|
@ -295,24 +295,24 @@ void CDialogFlags::setCurrentEntityDisplayMode(TEntityDisplayMode edm)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#define REGKEY_ENTITY_DISPLAY_INFO REGKEY_BASE_PATH "\\entity_display_info\\"
|
#define REGKEY_ENTITY_DISPLAY_INFO REGKEY_BASE_PATH _T("\\entity_display_info\\")
|
||||||
|
|
||||||
//******************************************************************************************************
|
//******************************************************************************************************
|
||||||
void CDialogFlags::loadEntityDisplayInfoToRegistry(TEntityDisplayInfoVect &infos, const std::string ®Id)
|
void CDialogFlags::loadEntityDisplayInfoToRegistry(TEntityDisplayInfoVect &infos, const std::string ®Id)
|
||||||
{
|
{
|
||||||
HKEY hKey;
|
HKEY hKey;
|
||||||
if (RegOpenKeyEx(HKEY_CURRENT_USER, (REGKEY_ENTITY_DISPLAY_INFO + regId).c_str(), 0, KEY_QUERY_VALUE, &hKey) == ERROR_SUCCESS)
|
if (RegOpenKeyEx(HKEY_CURRENT_USER, utf8ToTStr(tStrToUtf8(REGKEY_ENTITY_DISPLAY_INFO) + regId), 0, KEY_QUERY_VALUE, &hKey) == ERROR_SUCCESS)
|
||||||
{
|
{
|
||||||
DWORD index = 0;
|
DWORD index = 0;
|
||||||
for(;;)
|
for(;;)
|
||||||
{
|
{
|
||||||
char valueStr[256] = { 0 };
|
TCHAR valueStr[256] = { 0 };
|
||||||
BYTE dataStr[256] = { 0 };
|
BYTE dataStr[256] = { 0 };
|
||||||
DWORD valueSize = sizeofarray(valueStr);
|
DWORD valueSize = sizeofarray(valueStr);
|
||||||
DWORD dataSize = sizeofarray(dataStr);
|
DWORD dataSize = sizeofarray(dataStr);
|
||||||
LONG result = RegEnumValue(hKey, index, valueStr, &valueSize, NULL, NULL, dataStr, &dataSize);
|
LONG result = RegEnumValue(hKey, index, valueStr, &valueSize, NULL, NULL, dataStr, &dataSize);
|
||||||
if (result != ERROR_SUCCESS) break;
|
if (result != ERROR_SUCCESS) break;
|
||||||
uint value = (uint) atoi(valueStr);
|
uint value = (uint) _ttoi(valueStr);
|
||||||
for(uint k = 0; k < infos.size(); ++k)
|
for(uint k = 0; k < infos.size(); ++k)
|
||||||
{
|
{
|
||||||
if (infos[k].Value == value)
|
if (infos[k].Value == value)
|
||||||
|
@ -338,14 +338,14 @@ void CDialogFlags::loadEntityDisplayInfoToRegistry(TEntityDisplayInfoVect &infos
|
||||||
void CDialogFlags::saveEntityDisplayInfoToRegistry(const TEntityDisplayInfoVect &infos, const std::string ®Id)
|
void CDialogFlags::saveEntityDisplayInfoToRegistry(const TEntityDisplayInfoVect &infos, const std::string ®Id)
|
||||||
{
|
{
|
||||||
HKEY hKey;
|
HKEY hKey;
|
||||||
if (RegCreateKeyEx(HKEY_CURRENT_USER, (REGKEY_ENTITY_DISPLAY_INFO + regId).c_str(), 0, NULL, REG_OPTION_NON_VOLATILE, KEY_WRITE, NULL, &hKey, NULL) == ERROR_SUCCESS)
|
if (RegCreateKeyEx(HKEY_CURRENT_USER, utf8ToTStr(tStrToUtf8(REGKEY_ENTITY_DISPLAY_INFO) + regId), 0, NULL, REG_OPTION_NON_VOLATILE, KEY_WRITE, NULL, &hKey, NULL) == ERROR_SUCCESS)
|
||||||
{
|
{
|
||||||
for(uint k = 0; k < infos.size(); ++k)
|
for(uint k = 0; k < infos.size(); ++k)
|
||||||
{
|
{
|
||||||
char colorStr[128];
|
char colorStr[128];
|
||||||
CRGBA color = infos[k].Color;
|
CRGBA color = infos[k].Color;
|
||||||
sprintf(colorStr, "%d, %d, %d, visible = %d", (int) color.R, (int) color.G, (int) color.B, (int) (infos[k].Visible ? 1 : 0));
|
sprintf(colorStr, "%d, %d, %d, visible = %d", (int) color.R, (int) color.G, (int) color.B, (int) (infos[k].Visible ? 1 : 0));
|
||||||
LONG result = RegSetValueEx(hKey, toString((int) infos[k].Value).c_str(), 0, REG_SZ, (const BYTE *) colorStr, strlen(colorStr));
|
LONG result = RegSetValueEx(hKey, utf8ToTStr(toString(infos[k].Value)), 0, REG_SZ, (const BYTE *) colorStr, strlen(colorStr));
|
||||||
if (result != ERROR_SUCCESS)
|
if (result != ERROR_SUCCESS)
|
||||||
{
|
{
|
||||||
nlwarning("Couldn't write registry key for entity % color", infos[k].Name);
|
nlwarning("Couldn't write registry key for entity % color", infos[k].Name);
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue