mirror of
https://port.numenaute.org/aleajactaest/khanat-opennel-code.git
synced 2024-11-27 01:26:30 +00:00
Merge with develop
--HG-- branch : compatibility-develop
This commit is contained in:
commit
ddff1b4e5e
8 changed files with 86 additions and 39 deletions
|
@ -230,7 +230,7 @@ public:
|
||||||
/** Get application directory.
|
/** Get application directory.
|
||||||
* \return directory where applications should write files.
|
* \return directory where applications should write files.
|
||||||
*/
|
*/
|
||||||
std::string getApplicationDirectory(const std::string &appName = "");
|
std::string getApplicationDirectory(const std::string &appName = "", bool local = false);
|
||||||
|
|
||||||
/** Get a temporary directory.
|
/** Get a temporary directory.
|
||||||
* \return temporary directory where applications should write files.
|
* \return temporary directory where applications should write files.
|
||||||
|
@ -540,7 +540,7 @@ public:
|
||||||
/** Get application directory.
|
/** Get application directory.
|
||||||
* \return directory where applications should write files.
|
* \return directory where applications should write files.
|
||||||
*/
|
*/
|
||||||
static std::string getApplicationDirectory(const std::string &appName = "");
|
static std::string getApplicationDirectory(const std::string &appName = "", bool local = false);
|
||||||
|
|
||||||
/** Get a temporary directory.
|
/** Get a temporary directory.
|
||||||
* \return temporary directory where applications should write files.
|
* \return temporary directory where applications should write files.
|
||||||
|
|
|
@ -715,7 +715,7 @@ SOURCE_GROUP(Stereo FILES
|
||||||
|
|
||||||
NL_TARGET_LIB(nel3d ${HEADERS} ${SRC})
|
NL_TARGET_LIB(nel3d ${HEADERS} ${SRC})
|
||||||
|
|
||||||
INCLUDE_DIRECTORIES(BEFORE ${FREETYPE_INCLUDE_DIRS})
|
INCLUDE_DIRECTORIES(${FREETYPE_INCLUDE_DIRS})
|
||||||
INCLUDE_DIRECTORIES(${LIBVR_INCLUDE_DIR})
|
INCLUDE_DIRECTORIES(${LIBVR_INCLUDE_DIR})
|
||||||
|
|
||||||
TARGET_LINK_LIBRARIES(nel3d nelmisc ${FREETYPE_LIBRARIES} ${LIBOVR_LIBRARIES} ${LIBVR_LIBRARY})
|
TARGET_LINK_LIBRARIES(nel3d nelmisc ${FREETYPE_LIBRARIES} ${LIBOVR_LIBRARIES} ${LIBVR_LIBRARY})
|
||||||
|
|
|
@ -1777,19 +1777,29 @@ std::string CFileContainer::getWindowsDirectory()
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string CPath::getApplicationDirectory(const std::string &appName)
|
std::string CPath::getApplicationDirectory(const std::string &appName, bool local)
|
||||||
{
|
{
|
||||||
return getInstance()->_FileContainer.getApplicationDirectory(appName);
|
return getInstance()->_FileContainer.getApplicationDirectory(appName, local);
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string CFileContainer::getApplicationDirectory(const std::string &appName)
|
std::string CFileContainer::getApplicationDirectory(const std::string &appName, bool local)
|
||||||
{
|
{
|
||||||
static std::string appPath;
|
static std::string appPaths[2];
|
||||||
|
std::string &appPath = appPaths[local ? 1 : 0];
|
||||||
if (appPath.empty())
|
if (appPath.empty())
|
||||||
{
|
{
|
||||||
#ifdef NL_OS_WINDOWS
|
#ifdef NL_OS_WINDOWS
|
||||||
wchar_t buffer[MAX_PATH];
|
wchar_t buffer[MAX_PATH];
|
||||||
SHGetSpecialFolderPathW(NULL, buffer, CSIDL_APPDATA, TRUE);
|
#ifdef CSIDL_LOCAL_APPDATA
|
||||||
|
if (local)
|
||||||
|
{
|
||||||
|
SHGetSpecialFolderPathW(NULL, buffer, CSIDL_LOCAL_APPDATA, TRUE);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
#endif
|
||||||
|
{
|
||||||
|
SHGetSpecialFolderPathW(NULL, buffer, CSIDL_APPDATA, TRUE);
|
||||||
|
}
|
||||||
appPath = CPath::standardizePath(ucstring((ucchar*)buffer).toUtf8());
|
appPath = CPath::standardizePath(ucstring((ucchar*)buffer).toUtf8());
|
||||||
#elif defined(NL_OS_MAC)
|
#elif defined(NL_OS_MAC)
|
||||||
appPath = CPath::standardizePath(getenv("HOME"));
|
appPath = CPath::standardizePath(getenv("HOME"));
|
||||||
|
|
|
@ -16,6 +16,7 @@ ADD_EXECUTABLE(ryzom_client_patcher ${SRC})
|
||||||
INCLUDE_DIRECTORIES(
|
INCLUDE_DIRECTORIES(
|
||||||
${LIBXML2_INCLUDE_DIR}
|
${LIBXML2_INCLUDE_DIR}
|
||||||
${CURL_INCLUDE_DIRS}
|
${CURL_INCLUDE_DIRS}
|
||||||
|
${ZLIB_INCLUDE_DIR}
|
||||||
${CMAKE_SOURCE_DIR}/ryzom/client/src
|
${CMAKE_SOURCE_DIR}/ryzom/client/src
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -34,7 +34,6 @@ uint32 LoginShardId = 0xFFFFFFFF;
|
||||||
|
|
||||||
CCmdArgs Args;
|
CCmdArgs Args;
|
||||||
|
|
||||||
bool useUtf8 = false;
|
|
||||||
bool useEsc = false;
|
bool useEsc = false;
|
||||||
|
|
||||||
#ifdef NL_OS_WINDOWS
|
#ifdef NL_OS_WINDOWS
|
||||||
|
@ -44,9 +43,6 @@ sint attributes = 0;
|
||||||
|
|
||||||
std::string convert(const ucstring &str)
|
std::string convert(const ucstring &str)
|
||||||
{
|
{
|
||||||
if (useUtf8)
|
|
||||||
return str.toUtf8();
|
|
||||||
|
|
||||||
return str.toString();
|
return str.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -97,28 +93,12 @@ void printDownload(const std::string &str)
|
||||||
// temporary modified string
|
// temporary modified string
|
||||||
std::string nstr = str;
|
std::string nstr = str;
|
||||||
|
|
||||||
uint length = 0;
|
uint length = (uint)nstr.length();
|
||||||
|
|
||||||
if (useUtf8)
|
if (length > maxLength)
|
||||||
{
|
{
|
||||||
ucstring ucstr;
|
nstr = std::string("...") + nstr.substr(length - maxLength + 3);
|
||||||
ucstr.fromUtf8(nstr);
|
length = maxLength;
|
||||||
length = (uint)ucstr.length();
|
|
||||||
if (length > maxLength)
|
|
||||||
{
|
|
||||||
ucstr = ucstr.luabind_substr(length - maxLength + 3);
|
|
||||||
nstr = std::string("...") + ucstr.toUtf8();
|
|
||||||
length = maxLength;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
length = (uint)nstr.length();
|
|
||||||
if (length > maxLength)
|
|
||||||
{
|
|
||||||
nstr = std::string("...") + nstr.substr(length - maxLength + 3);
|
|
||||||
length = maxLength;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// add padding with spaces
|
// add padding with spaces
|
||||||
|
@ -148,6 +128,54 @@ void printDownload(const std::string &str)
|
||||||
fflush(stdout);
|
fflush(stdout);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// hardcoded english translations to not depends on external files
|
||||||
|
struct CClientPatcherTranslations : public NLMISC::CI18N::ILoadProxy
|
||||||
|
{
|
||||||
|
virtual void loadStringFile(const std::string &filename, ucstring &text)
|
||||||
|
{
|
||||||
|
text.fromUtf8(
|
||||||
|
"TheSagaOfRyzom [Ryzom]\n"
|
||||||
|
"uiErrPatchApply [Error: Patch process ended but the patch has not been successfully applied.]\n"
|
||||||
|
"uiErrChecking [Error: Patch files failed - checking.]\n"
|
||||||
|
"uiKb [KiB]\n"
|
||||||
|
"uiMb [MiB]\n"
|
||||||
|
"uiLoginGetFile [Getting File:]\n"
|
||||||
|
"uiDLWithCurl [Downloading File With Curl:]\n"
|
||||||
|
"uiDecompressing [Decompressing File:]\n"
|
||||||
|
"uiCheckInt [Checking Integrity:]\n"
|
||||||
|
"uiNoVersionFound [No Version Found]\n"
|
||||||
|
"uiVersionFound [Version Found:]\n"
|
||||||
|
"uiApplyingDelta [Applying Delta:]\n"
|
||||||
|
"uiClientVersion [Client Version]\n"
|
||||||
|
"uiServerVersion [Server Version]\n"
|
||||||
|
"uiCheckingFile [Checking File]\n"
|
||||||
|
"uiNeededPatches [Required Patches:]\n"
|
||||||
|
"uiCheckInBNP [Checking inside BNP:]\n"
|
||||||
|
"uiSHA1Diff [Force BNP Unpacking: checksums do not correspond:]\n"
|
||||||
|
"uiCheckEndNoErr [Checking file ended with no errors]\n"
|
||||||
|
"uiCheckEndWithErr [Checking file ended with errors:]\n"
|
||||||
|
"uiPatchEndNoErr [Patching file ended with no errors]\n"
|
||||||
|
"uiPatchEndWithErr [Patch failed!]\n"
|
||||||
|
"uiPatchDiskFull [Disk full!]\n"
|
||||||
|
"uiPatchWriteError [Disk write error! (disk full?)]\n"
|
||||||
|
"uiProcessing [Processing file:]\n"
|
||||||
|
"uiUnpack [BNP Unpacking:]\n"
|
||||||
|
"uiUnpackErrHead [Cannot read bnp header:]\n"
|
||||||
|
"uiChangeDate [Changing the mod date:]\n"
|
||||||
|
"uiChgDateErr [Cannot change file time:]\n"
|
||||||
|
"uiNowDate [Now the date is:]\n"
|
||||||
|
"uiSetAttrib [Set file attributes:]\n"
|
||||||
|
"uiAttribErr [Cannot have read/write access:]\n"
|
||||||
|
"uiDelFile [Delete file:]\n"
|
||||||
|
"uiDelErr [Cannot delete file:]\n"
|
||||||
|
"uiDelNoFile [Delete file (no file)]\n"
|
||||||
|
"uiRenameFile [Rename File:]\n"
|
||||||
|
"uiRenameErr [Cannot rename file:]\n"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
// init the Nel context
|
// init the Nel context
|
||||||
|
@ -189,11 +217,6 @@ int main(int argc, char *argv[])
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
// check if console supports utf-8
|
|
||||||
std::string lang = toLower(std::string(setlocale(LC_CTYPE, "")));
|
|
||||||
useUtf8 = (lang.find("utf8") != string::npos || lang.find("utf-8") != string::npos);
|
|
||||||
lang = lang.substr(0, 2);
|
|
||||||
|
|
||||||
// check if console supports colors
|
// check if console supports colors
|
||||||
std::string term = toLower(std::string(getenv("TERM") ? getenv("TERM"):""));
|
std::string term = toLower(std::string(getenv("TERM") ? getenv("TERM"):""));
|
||||||
useEsc = (term.find("xterm") != string::npos || term.find("linux") != string::npos);
|
useEsc = (term.find("xterm") != string::npos || term.find("linux") != string::npos);
|
||||||
|
@ -221,8 +244,17 @@ int main(int argc, char *argv[])
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
// load translation
|
// allocate translations proxy
|
||||||
CI18N::load(lang);
|
CClientPatcherTranslations *trans = new CClientPatcherTranslations();
|
||||||
|
|
||||||
|
// use proxy
|
||||||
|
CI18N::setLoadProxy(trans);
|
||||||
|
|
||||||
|
// load english translations
|
||||||
|
CI18N::load("en");
|
||||||
|
|
||||||
|
// now translations are read, we don't need it anymore
|
||||||
|
delete trans;
|
||||||
|
|
||||||
printf("Checking %s files to patch...\n", convert(CI18N::get("TheSagaOfRyzom")).c_str());
|
printf("Checking %s files to patch...\n", convert(CI18N::get("TheSagaOfRyzom")).c_str());
|
||||||
|
|
||||||
|
|
|
@ -4,6 +4,7 @@ FILE(GLOB SRC *.cpp *.h)
|
||||||
ADD_LIBRARY(georges_dll SHARED ${SRC} georges_edit.rc)
|
ADD_LIBRARY(georges_dll SHARED ${SRC} georges_edit.rc)
|
||||||
|
|
||||||
INCLUDE_DIRECTORIES(${NEL_INCLUDE_DIR} ${CMAKE_CURRENT_SOURCE_DIR})
|
INCLUDE_DIRECTORIES(${NEL_INCLUDE_DIR} ${CMAKE_CURRENT_SOURCE_DIR})
|
||||||
|
INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR})
|
||||||
|
|
||||||
TARGET_LINK_LIBRARIES(georges_dll nelmisc nelgeorges)
|
TARGET_LINK_LIBRARIES(georges_dll nelmisc nelgeorges)
|
||||||
NL_DEFAULT_PROPS(georges_dll "Ryzom, Tools, Georges: Georges Dll")
|
NL_DEFAULT_PROPS(georges_dll "Ryzom, Tools, Georges: Georges Dll")
|
||||||
|
|
|
@ -8,6 +8,8 @@ SET(CMAKE_MFC_FLAG 2)
|
||||||
|
|
||||||
ADD_EXECUTABLE(world_editor WIN32 ${SRC} world_editor.rc)
|
ADD_EXECUTABLE(world_editor WIN32 ${SRC} world_editor.rc)
|
||||||
|
|
||||||
|
INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR})
|
||||||
|
|
||||||
SOURCE_GROUP(Resources FILES world_editor.rc)
|
SOURCE_GROUP(Resources FILES world_editor.rc)
|
||||||
|
|
||||||
TARGET_LINK_LIBRARIES(world_editor
|
TARGET_LINK_LIBRARIES(world_editor
|
||||||
|
|
|
@ -110,6 +110,7 @@
|
||||||
|
|
||||||
extern bool DontUse3D;
|
extern bool DontUse3D;
|
||||||
|
|
||||||
|
#include <libxml/parser.h>
|
||||||
|
|
||||||
//{{AFX_INSERT_LOCATION}}
|
//{{AFX_INSERT_LOCATION}}
|
||||||
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
|
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
|
||||||
|
|
Loading…
Reference in a new issue