mirror of
https://port.numenaute.org/aleajactaest/khanat-opennel-code.git
synced 2024-11-22 07:06:13 +00:00
Changed: Add Steam support in develop branch too
--HG-- branch : develop
This commit is contained in:
parent
2fad59f296
commit
630ae259ad
10 changed files with 229 additions and 61 deletions
|
@ -352,6 +352,7 @@ MACRO(NL_SETUP_RYZOM_DEFAULT_OPTIONS)
|
||||||
OPTION(WITH_RYZOM_CLIENT_UAC "Ask to run as Administrator" OFF)
|
OPTION(WITH_RYZOM_CLIENT_UAC "Ask to run as Administrator" OFF)
|
||||||
OPTION(WITH_RYZOM_PATCH "Enable Ryzom in-game patch support" OFF)
|
OPTION(WITH_RYZOM_PATCH "Enable Ryzom in-game patch support" OFF)
|
||||||
OPTION(WITH_RYZOM_CUSTOM_PATCH_SERVER "Only use patch server from CFG file" OFF)
|
OPTION(WITH_RYZOM_CUSTOM_PATCH_SERVER "Only use patch server from CFG file" OFF)
|
||||||
|
OPTION(WITH_RYZOM_STEAM "Enable Steam features" OFF)
|
||||||
OPTION(WITH_RYZOM_SANDBOX "Enable Sandbox under OS X" OFF)
|
OPTION(WITH_RYZOM_SANDBOX "Enable Sandbox under OS X" OFF)
|
||||||
ENDMACRO(NL_SETUP_RYZOM_DEFAULT_OPTIONS)
|
ENDMACRO(NL_SETUP_RYZOM_DEFAULT_OPTIONS)
|
||||||
|
|
||||||
|
|
|
@ -13,7 +13,11 @@ IF(WITH_RYZOM_CLIENT)
|
||||||
MESSAGE(FATAL_ERROR "The client cannot be built without the NeL GUI Library (WITH_GUI)")
|
MESSAGE(FATAL_ERROR "The client cannot be built without the NeL GUI Library (WITH_GUI)")
|
||||||
ENDIF()
|
ENDIF()
|
||||||
|
|
||||||
IF(WITH_RYZOM_PATCH)
|
# Patch should never be enabled on Steam
|
||||||
|
IF(WITH_RYZOM_STEAM)
|
||||||
|
ADD_DEFINITIONS(-DRZ_USE_STEAM)
|
||||||
|
FIND_PACKAGE(Steam)
|
||||||
|
ELSEIF(WITH_RYZOM_PATCH)
|
||||||
ADD_DEFINITIONS(-DRZ_USE_PATCH)
|
ADD_DEFINITIONS(-DRZ_USE_PATCH)
|
||||||
|
|
||||||
IF(WITH_RYZOM_CUSTOM_PATCH_SERVER)
|
IF(WITH_RYZOM_CUSTOM_PATCH_SERVER)
|
||||||
|
@ -131,6 +135,14 @@ IF(WITH_RYZOM_CLIENT)
|
||||||
ENDIF()
|
ENDIF()
|
||||||
ENDIF()
|
ENDIF()
|
||||||
|
|
||||||
|
IF(WITH_RYZOM_STEAM AND STEAM_RUNTIME)
|
||||||
|
ADD_CUSTOM_COMMAND(TARGET ryzom_client POST_BUILD COMMAND cp -p ${STEAM_RUNTIME} ${RYZOM_CONTENTS_DIR}/MacOS)
|
||||||
|
|
||||||
|
IF(CODESIGN_ALLOCATE AND APPLE_CERTIFICATE)
|
||||||
|
ADD_CUSTOM_COMMAND(TARGET ryzom_client POST_BUILD COMMAND CODESIGN_ALLOCATE=${CODESIGN_ALLOCATE} codesign --no-strict -fs "${APPLE_CERTIFICATE}" "${RYZOM_CONTENTS_DIR}/MacOS/${STEAM_RUNTIMENAME}" COMMENT "Signing Steam client runtime...")
|
||||||
|
ENDIF()
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
IF(CODESIGN_ALLOCATE AND APPLE_CERTIFICATE)
|
IF(CODESIGN_ALLOCATE AND APPLE_CERTIFICATE)
|
||||||
ADD_CUSTOM_COMMAND(TARGET ryzom_client POST_BUILD COMMAND CODESIGN_ALLOCATE=${CODESIGN_ALLOCATE} codesign ${ENTITLEMENTS} -fs "${APPLE_CERTIFICATE}" "${RYZOM_OUTPUT_DIR}" COMMENT "Signing Ryzom bundle...")
|
ADD_CUSTOM_COMMAND(TARGET ryzom_client POST_BUILD COMMAND CODESIGN_ALLOCATE=${CODESIGN_ALLOCATE} codesign ${ENTITLEMENTS} -fs "${APPLE_CERTIFICATE}" "${RYZOM_OUTPUT_DIR}" COMMENT "Signing Ryzom bundle...")
|
||||||
ENDIF()
|
ENDIF()
|
||||||
|
@ -146,6 +158,10 @@ IF(WITH_RYZOM_CLIENT)
|
||||||
${OPENSSL_INCLUDE_DIR}
|
${OPENSSL_INCLUDE_DIR}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
IF(STEAM_FOUND)
|
||||||
|
INCLUDE_DIRECTORIES(${STEAM_INCLUDE_DIRS})
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
TARGET_LINK_LIBRARIES(ryzom_client
|
TARGET_LINK_LIBRARIES(ryzom_client
|
||||||
nelmisc
|
nelmisc
|
||||||
nelnet
|
nelnet
|
||||||
|
|
|
@ -54,6 +54,10 @@
|
||||||
#include "far_tp.h"
|
#include "far_tp.h"
|
||||||
#include "user_agent.h"
|
#include "user_agent.h"
|
||||||
|
|
||||||
|
#ifdef RZ_USE_STEAM
|
||||||
|
#include "steam_client.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
///////////
|
///////////
|
||||||
// USING //
|
// USING //
|
||||||
///////////
|
///////////
|
||||||
|
@ -193,13 +197,17 @@ int main(int argc, char **argv)
|
||||||
// no shard id in ring mode
|
// no shard id in ring mode
|
||||||
std::string sLoginShardId;
|
std::string sLoginShardId;
|
||||||
|
|
||||||
if (Args.haveAdditionalArg("login") && Args.haveAdditionalArg("password"))
|
if (Args.haveAdditionalArg("login"))
|
||||||
{
|
{
|
||||||
LoginLogin = Args.getAdditionalArg("login").front();
|
LoginLogin = Args.getAdditionalArg("login").front();
|
||||||
LoginPassword = Args.getAdditionalArg("password").front();
|
|
||||||
|
|
||||||
if (Args.haveAdditionalArg("shard_id"))
|
if (Args.haveAdditionalArg("password"))
|
||||||
sLoginShardId = Args.getAdditionalArg("shard_id").front();
|
{
|
||||||
|
LoginPassword = Args.getAdditionalArg("password").front();
|
||||||
|
|
||||||
|
if (Args.haveAdditionalArg("shard_id"))
|
||||||
|
sLoginShardId = Args.getAdditionalArg("shard_id").front();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (sLoginShardId.empty() || !fromString(sLoginShardId, LoginShardId))
|
if (sLoginShardId.empty() || !fromString(sLoginShardId, LoginShardId))
|
||||||
|
@ -282,6 +290,12 @@ int main(int argc, char **argv)
|
||||||
// initialize log
|
// initialize log
|
||||||
initLog();
|
initLog();
|
||||||
|
|
||||||
|
#ifdef RZ_USE_STEAM
|
||||||
|
CSteamClient steamClient;
|
||||||
|
|
||||||
|
if (steamClient.init())
|
||||||
|
LoginCustomParameters = "&steam_auth_session_ticket=" + steamClient.getAuthSessionTicket();
|
||||||
|
#endif
|
||||||
|
|
||||||
// initialize patch manager and set the ryzom full path, before it's used
|
// initialize patch manager and set the ryzom full path, before it's used
|
||||||
CPatchManager *pPM = CPatchManager::getInstance();
|
CPatchManager *pPM = CPatchManager::getInstance();
|
||||||
|
|
|
@ -189,7 +189,7 @@ const std::string& CLoginStateMachine::toString(CLoginStateMachine::TEvent event
|
||||||
break; \
|
break; \
|
||||||
} \
|
} \
|
||||||
|
|
||||||
extern std::string LoginLogin, LoginPassword;
|
extern std::string LoginLogin, LoginPassword, LoginCustomParameters;
|
||||||
extern bool noUserChar;
|
extern bool noUserChar;
|
||||||
extern bool userChar;
|
extern bool userChar;
|
||||||
extern bool serverReceivedReady;
|
extern bool serverReceivedReady;
|
||||||
|
@ -246,14 +246,26 @@ void CLoginStateMachine::run()
|
||||||
|
|
||||||
if (!ClientCfg.TestBrowser)
|
if (!ClientCfg.TestBrowser)
|
||||||
{
|
{
|
||||||
if (LoginLogin.empty())
|
if (LoginPassword.empty())
|
||||||
{
|
{
|
||||||
// standard procedure
|
if (!LoginCustomParameters.empty() && LoginLogin.empty())
|
||||||
SM_BEGIN_EVENT_TABLE
|
{
|
||||||
SM_EVENT(ev_init_done, st_login);
|
// alternate login procedure
|
||||||
SM_EVENT(ev_skip_all_login, st_ingame);
|
SM_BEGIN_EVENT_TABLE
|
||||||
SM_EVENT(ev_quit, st_end);
|
SM_EVENT(ev_init_done, st_alt_login);
|
||||||
SM_END_EVENT_TABLE
|
SM_EVENT(ev_skip_all_login, st_ingame);
|
||||||
|
SM_EVENT(ev_quit, st_end);
|
||||||
|
SM_END_EVENT_TABLE
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// standard procedure
|
||||||
|
SM_BEGIN_EVENT_TABLE
|
||||||
|
SM_EVENT(ev_init_done, st_login);
|
||||||
|
SM_EVENT(ev_skip_all_login, st_ingame);
|
||||||
|
SM_EVENT(ev_quit, st_end);
|
||||||
|
SM_END_EVENT_TABLE
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -325,6 +337,27 @@ void CLoginStateMachine::run()
|
||||||
// SM_EVENT(ev_login_ok, st_check_patch);
|
// SM_EVENT(ev_login_ok, st_check_patch);
|
||||||
// SM_EVENT(ev_quit, st_end);
|
// SM_EVENT(ev_quit, st_end);
|
||||||
// SM_END_EVENT_TABLE
|
// SM_END_EVENT_TABLE
|
||||||
|
// }
|
||||||
|
break;
|
||||||
|
case st_alt_login:
|
||||||
|
initAltLogin();
|
||||||
|
|
||||||
|
// if (ClientCfg.R2Mode)
|
||||||
|
{
|
||||||
|
// r2 mode
|
||||||
|
SM_BEGIN_EVENT_TABLE
|
||||||
|
SM_EVENT(ev_login_not_alt, st_login);
|
||||||
|
SM_EVENT(ev_login_ok, st_check_patch);
|
||||||
|
SM_EVENT(ev_quit, st_end);
|
||||||
|
SM_END_EVENT_TABLE
|
||||||
|
}
|
||||||
|
// else
|
||||||
|
// {
|
||||||
|
// // legacy mode
|
||||||
|
// SM_BEGIN_EVENT_TABLE
|
||||||
|
// SM_EVENT(ev_login_ok, st_check_patch);
|
||||||
|
// SM_EVENT(ev_quit, st_end);
|
||||||
|
// SM_END_EVENT_TABLE
|
||||||
// }
|
// }
|
||||||
break;
|
break;
|
||||||
case st_shard_list:
|
case st_shard_list:
|
||||||
|
|
|
@ -81,6 +81,8 @@ public:
|
||||||
st_rate_session,
|
st_rate_session,
|
||||||
/// create account
|
/// create account
|
||||||
st_create_account,
|
st_create_account,
|
||||||
|
/// try to login with alternate login system
|
||||||
|
st_alt_login,
|
||||||
/// pseudo state to leave the state machine
|
/// pseudo state to leave the state machine
|
||||||
st_end,
|
st_end,
|
||||||
///
|
///
|
||||||
|
@ -156,6 +158,8 @@ public:
|
||||||
ev_create_account,
|
ev_create_account,
|
||||||
/// the client push the 'create account' button
|
/// the client push the 'create account' button
|
||||||
ev_close_create_account,
|
ev_close_create_account,
|
||||||
|
/// the client want to use alternate login system
|
||||||
|
ev_login_not_alt,
|
||||||
///
|
///
|
||||||
ev_unknown
|
ev_unknown
|
||||||
};
|
};
|
||||||
|
@ -203,6 +207,7 @@ void initEula();
|
||||||
void initPatchCheck();
|
void initPatchCheck();
|
||||||
void initCatDisplay();
|
void initCatDisplay();
|
||||||
void initAutoLogin();
|
void initAutoLogin();
|
||||||
|
void initAltLogin();
|
||||||
void initPatch();
|
void initPatch();
|
||||||
//void initWebBrowser();
|
//void initWebBrowser();
|
||||||
void initReboot();
|
void initReboot();
|
||||||
|
|
|
@ -81,7 +81,7 @@ extern bool SetMousePosFirstTime;
|
||||||
|
|
||||||
vector<CShard> Shards;
|
vector<CShard> Shards;
|
||||||
|
|
||||||
string LoginLogin, LoginPassword, ClientApp, Salt;
|
string LoginLogin, LoginPassword, ClientApp, Salt, LoginCustomParameters;
|
||||||
uint32 LoginShardId = 0xFFFFFFFF;
|
uint32 LoginShardId = 0xFFFFFFFF;
|
||||||
|
|
||||||
|
|
||||||
|
@ -847,6 +847,55 @@ void initAutoLogin()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void initAltLogin()
|
||||||
|
{
|
||||||
|
// Check the alt param
|
||||||
|
if (!LoginCustomParameters.empty())
|
||||||
|
{
|
||||||
|
// don't use login and password for alternate login
|
||||||
|
string res = checkLogin("", "", ClientApp, LoginCustomParameters);
|
||||||
|
if (res.empty())
|
||||||
|
{
|
||||||
|
if (ClientCfg.R2Mode)
|
||||||
|
{
|
||||||
|
LoginSM.pushEvent(CLoginStateMachine::ev_login_ok);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Select good shard
|
||||||
|
ShardSelected = -1;
|
||||||
|
for (uint32 i = 0; i < Shards.size(); ++i)
|
||||||
|
{
|
||||||
|
if (Shards[i].ShardId == LoginShardId)
|
||||||
|
{
|
||||||
|
ShardSelected = i;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ShardSelected == -1)
|
||||||
|
{
|
||||||
|
CInterfaceManager *pIM = CInterfaceManager::getInstance();
|
||||||
|
pIM->messageBoxWithHelp(CI18N::get("uiErrServerLost"), "ui:login");
|
||||||
|
LoginSM.pushEvent(CLoginStateMachine::ev_quit);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
LoginSM.pushEvent(CLoginStateMachine::ev_login_ok);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// close the socket in case of error
|
||||||
|
HttpClient.disconnect();
|
||||||
|
|
||||||
|
// ignore error
|
||||||
|
LoginSM.pushEvent(CLoginStateMachine::ev_login_not_alt);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// ***************************************************************************
|
// ***************************************************************************
|
||||||
// Called from client.cpp
|
// Called from client.cpp
|
||||||
|
@ -1174,7 +1223,7 @@ void onlogin(bool vanishScreen = true)
|
||||||
// Check the login/pass
|
// Check the login/pass
|
||||||
|
|
||||||
// main menu page for r2mode
|
// main menu page for r2mode
|
||||||
string res = checkLogin(LoginLogin, LoginPassword, ClientApp);
|
string res = checkLogin(LoginLogin, LoginPassword, ClientApp, LoginCustomParameters);
|
||||||
if (res.empty())
|
if (res.empty())
|
||||||
{
|
{
|
||||||
// if not in auto login, push login ok event
|
// if not in auto login, push login ok event
|
||||||
|
@ -1901,16 +1950,33 @@ class CAHOpenURL : public IActionHandler
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// modify existing languages
|
||||||
|
|
||||||
|
// old site
|
||||||
string::size_type pos_lang = url.find("/en/");
|
string::size_type pos_lang = url.find("/en/");
|
||||||
|
|
||||||
if(pos_lang!=string::npos)
|
// or new forums
|
||||||
url.replace(pos_lang+1, 2, ClientCfg.getHtmlLanguageCode());
|
if (pos_lang == string::npos)
|
||||||
|
pos_lang = url.find("=en#");
|
||||||
|
|
||||||
if(url.find('?')!=string::npos)
|
if (pos_lang != string::npos)
|
||||||
url += "&";
|
{
|
||||||
|
url.replace(pos_lang + 1, 2, ClientCfg.getHtmlLanguageCode());
|
||||||
|
}
|
||||||
else
|
else
|
||||||
url += "?";
|
{
|
||||||
url += "language=" + ClientCfg.LanguageCode;
|
// append language
|
||||||
|
if (url.find('?') != string::npos)
|
||||||
|
url += "&";
|
||||||
|
else
|
||||||
|
url += "?";
|
||||||
|
|
||||||
|
url += "language=" + ClientCfg.LanguageCode;
|
||||||
|
|
||||||
|
if (!LoginCustomParameters.empty())
|
||||||
|
url += LoginCustomParameters;
|
||||||
|
}
|
||||||
|
|
||||||
openURL(url);
|
openURL(url);
|
||||||
|
|
||||||
nlinfo("openURL %s", url.c_str());
|
nlinfo("openURL %s", url.c_str());
|
||||||
|
@ -2333,6 +2399,10 @@ bool initCreateAccount()
|
||||||
CurlHttpClient.verifyServer(true); // set this to false if you need to connect to the test environment
|
CurlHttpClient.verifyServer(true); // set this to false if you need to connect to the test environment
|
||||||
|
|
||||||
std::string params = "language=" + lang;
|
std::string params = "language=" + lang;
|
||||||
|
|
||||||
|
if (!LoginCustomParameters.empty())
|
||||||
|
params += LoginCustomParameters;
|
||||||
|
|
||||||
if(!CurlHttpClient.sendGet(url, params, pPM->isVerboseLog()))
|
if(!CurlHttpClient.sendGet(url, params, pPM->isVerboseLog()))
|
||||||
{
|
{
|
||||||
ucstring errorMessage("Can't send (error code 60)");
|
ucstring errorMessage("Can't send (error code 60)");
|
||||||
|
@ -2523,6 +2593,9 @@ class CAHOnCreateAccountSubmit : public IActionHandler
|
||||||
if(conditionsPushed)
|
if(conditionsPushed)
|
||||||
params += "&TaC=1";
|
params += "&TaC=1";
|
||||||
|
|
||||||
|
if (!LoginCustomParameters.empty())
|
||||||
|
params += LoginCustomParameters;
|
||||||
|
|
||||||
std::string md5 = results[0] + results[1] + "" + results[3];
|
std::string md5 = results[0] + results[1] + "" + results[3];
|
||||||
md5 = NLMISC::getMD5((uint8*)md5.data(), (uint32)md5.size()).toString();
|
md5 = NLMISC::getMD5((uint8*)md5.data(), (uint32)md5.size()).toString();
|
||||||
|
|
||||||
|
@ -2707,7 +2780,7 @@ REGISTER_ACTION_HANDLER (CAHOnBackToLogin, "on_back_to_login");
|
||||||
|
|
||||||
|
|
||||||
// ***************************************************************************
|
// ***************************************************************************
|
||||||
string checkLogin(const string &login, const string &password, const string &clientApp)
|
string checkLogin(const string &login, const string &password, const string &clientApp, const std::string &customParameters)
|
||||||
{
|
{
|
||||||
CPatchManager *pPM = CPatchManager::getInstance();
|
CPatchManager *pPM = CPatchManager::getInstance();
|
||||||
Shards.clear();
|
Shards.clear();
|
||||||
|
@ -2725,50 +2798,64 @@ string checkLogin(const string &login, const string &password, const string &cli
|
||||||
|
|
||||||
std::string url = ClientCfg.ConfigFile.getVar("StartupHost").asString() + ClientCfg.ConfigFile.getVar("StartupPage").asString();
|
std::string url = ClientCfg.ConfigFile.getVar("StartupHost").asString() + ClientCfg.ConfigFile.getVar("StartupPage").asString();
|
||||||
|
|
||||||
// ask server for salt
|
// don't use login with alt method
|
||||||
if(!HttpClient.sendGet(url + "?cmd=ask&cp=2&login=" + login + "&lg=" + ClientCfg.LanguageCode, "", pPM->isVerboseLog()))
|
if (!login.empty())
|
||||||
return "Can't send (error code 60)";
|
|
||||||
|
|
||||||
if(pPM->isVerboseLog()) nlinfo("Sent request for password salt");
|
|
||||||
|
|
||||||
if(!HttpClient.receive(res, pPM->isVerboseLog()))
|
|
||||||
return "Can't receive (error code 61)";
|
|
||||||
|
|
||||||
if(pPM->isVerboseLog()) nlinfo("Received request login check");
|
|
||||||
|
|
||||||
if(res.empty())
|
|
||||||
return "Empty answer from server (error code 62)";
|
|
||||||
|
|
||||||
if(res[0] == '0')
|
|
||||||
{
|
{
|
||||||
// server returns an error
|
// ask server for salt
|
||||||
nlwarning("server error: %s", res.substr(2).c_str());
|
if(!HttpClient.sendGet(url + "?cmd=ask&cp=2&login=" + login + "&lg=" + ClientCfg.LanguageCode, "", pPM->isVerboseLog()))
|
||||||
return res.substr(2);
|
return "Can't send (error code 60)";
|
||||||
}
|
|
||||||
else if(res[0] == '1')
|
|
||||||
{
|
|
||||||
Salt = res.substr(2);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// server returns ???
|
|
||||||
nlwarning("%s", res.c_str());
|
|
||||||
return res;
|
|
||||||
}
|
|
||||||
|
|
||||||
// send login + crypted password + client app and cp=2 (as crypted password)
|
if(pPM->isVerboseLog()) nlinfo("Sent request for password salt");
|
||||||
if(!HttpClient.connectToLogin())
|
|
||||||
return "Can't connect (error code 63)";
|
|
||||||
|
|
||||||
if(pPM->isVerboseLog()) nlinfo("Connected");
|
if(!HttpClient.receive(res, pPM->isVerboseLog()))
|
||||||
|
return "Can't receive (error code 61)";
|
||||||
|
|
||||||
|
if(pPM->isVerboseLog()) nlinfo("Received request login check");
|
||||||
|
|
||||||
|
if(res.empty())
|
||||||
|
return "Empty answer from server (error code 62)";
|
||||||
|
|
||||||
|
if(res[0] == '0')
|
||||||
|
{
|
||||||
|
// server returns an error
|
||||||
|
nlwarning("server error: %s", res.substr(2).c_str());
|
||||||
|
return res.substr(2);
|
||||||
|
}
|
||||||
|
else if(res[0] == '1')
|
||||||
|
{
|
||||||
|
Salt = res.substr(2);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// server returns ???
|
||||||
|
nlwarning("%s", res.c_str());
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
// send login + crypted password + client app and cp=2 (as crypted password)
|
||||||
|
if(!HttpClient.connectToLogin())
|
||||||
|
return "Can't connect (error code 63)";
|
||||||
|
|
||||||
|
if(pPM->isVerboseLog()) nlinfo("Connected");
|
||||||
|
}
|
||||||
|
|
||||||
if (ClientCfg.R2Mode)
|
if (ClientCfg.R2Mode)
|
||||||
{
|
{
|
||||||
// R2 login sequence
|
// R2 login sequence
|
||||||
std::string cryptedPassword = CCrypt::crypt(password, Salt);
|
|
||||||
|
|
||||||
if(!HttpClient.sendGet(url + "?cmd=login&login=" + login + "&password=" + cryptedPassword + "&clientApplication=" + clientApp + "&cp=2" + "&lg=" + ClientCfg.LanguageCode))
|
if (!login.empty())
|
||||||
return "Can't send (error code 2)";
|
{
|
||||||
|
std::string cryptedPassword = CCrypt::crypt(password, Salt);
|
||||||
|
|
||||||
|
if(!HttpClient.sendGet(url + "?cmd=login&login=" + login + "&password=" + cryptedPassword + "&clientApplication=" + clientApp + "&cp=2" + "&lg=" + ClientCfg.LanguageCode + customParameters))
|
||||||
|
return "Can't send (error code 2)";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// don't send login and password if empty
|
||||||
|
if(!HttpClient.sendGet(url + "?cmd=login&clientApplication=" + clientApp + "&cp=2" + "&lg=" + ClientCfg.LanguageCode + customParameters))
|
||||||
|
return "Can't send (error code 2)";
|
||||||
|
}
|
||||||
|
|
||||||
// the response should contains the result code and the cookie value
|
// the response should contains the result code and the cookie value
|
||||||
if(pPM->isVerboseLog()) nlinfo("Sent request login check");
|
if(pPM->isVerboseLog()) nlinfo("Sent request login check");
|
||||||
|
|
|
@ -46,7 +46,7 @@ struct CShard
|
||||||
std::string EmergencyPatchURL;
|
std::string EmergencyPatchURL;
|
||||||
};
|
};
|
||||||
|
|
||||||
extern std::string LoginLogin, LoginPassword;
|
extern std::string LoginLogin, LoginPassword, LoginCustomParameters;
|
||||||
extern uint32 LoginShardId;
|
extern uint32 LoginShardId;
|
||||||
|
|
||||||
|
|
||||||
|
@ -54,7 +54,7 @@ extern uint32 AvailablePatchs;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
std::string checkLogin(const std::string &login, const std::string &password, const std::string &clientApp);
|
std::string checkLogin(const std::string &login, const std::string &password, const std::string &clientApp, const std::string &customParameters = "");
|
||||||
std::string selectShard(uint32 shardId, std::string &cookie, std::string &addr);
|
std::string selectShard(uint32 shardId, std::string &cookie, std::string &addr);
|
||||||
std::string getBGDownloaderCommandLine();
|
std::string getBGDownloaderCommandLine();
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,8 @@
|
||||||
IF(WITH_RYZOM_CLIENT)
|
IF(WITH_RYZOM_CLIENT)
|
||||||
ADD_SUBDIRECTORY(client_patcher)
|
# Don't need ryzom_client_patcher if using Steam
|
||||||
|
IF(NOT WITH_RYZOM_STEAM)
|
||||||
|
ADD_SUBDIRECTORY(client_patcher)
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
IF(WITH_QT OR WITH_QT5)
|
IF(WITH_QT OR WITH_QT5)
|
||||||
ADD_SUBDIRECTORY(client_config_qt)
|
ADD_SUBDIRECTORY(client_config_qt)
|
||||||
|
|
|
@ -29,6 +29,10 @@ ELSE()
|
||||||
QT5_WRAP_UI(CLIENT_CONFIG_UI_HDRS ${CLIENT_CONFIG_UIS})
|
QT5_WRAP_UI(CLIENT_CONFIG_UI_HDRS ${CLIENT_CONFIG_UIS})
|
||||||
ENDIF()
|
ENDIF()
|
||||||
|
|
||||||
|
IF(WITH_RYZOM_STEAM)
|
||||||
|
ADD_DEFINITIONS(-DRZ_USE_STEAM)
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
SOURCE_GROUP("Resources" FILES ${CLIENT_CONFIG_RCS})
|
SOURCE_GROUP("Resources" FILES ${CLIENT_CONFIG_RCS})
|
||||||
SOURCE_GROUP("Forms" FILES ${CLIENT_CONFIG_UIS})
|
SOURCE_GROUP("Forms" FILES ${CLIENT_CONFIG_UIS})
|
||||||
SOURCE_GROUP("Generated Files" FILES ${CLIENT_CONFIG_UI_HDRS} ${CLIENT_CONFIG_MOC_SRC})
|
SOURCE_GROUP("Generated Files" FILES ${CLIENT_CONFIG_UI_HDRS} ${CLIENT_CONFIG_MOC_SRC})
|
||||||
|
|
|
@ -86,6 +86,11 @@ CClientConfigDialog::CClientConfigDialog( QWidget *parent ) :
|
||||||
item->setHidden(true);
|
item->setHidden(true);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef RZ_USE_STEAM
|
||||||
|
// Hide Play Ryzom button if using Steam because we need to launch it from Steam
|
||||||
|
playButton->setHidden(true);
|
||||||
|
#endif
|
||||||
|
|
||||||
CategoryStackedWidget->addWidget( new CGeneralSettingsWidget( CategoryStackedWidget ) );
|
CategoryStackedWidget->addWidget( new CGeneralSettingsWidget( CategoryStackedWidget ) );
|
||||||
CategoryStackedWidget->addWidget( new CDisplaySettingsWidget( CategoryStackedWidget ) );
|
CategoryStackedWidget->addWidget( new CDisplaySettingsWidget( CategoryStackedWidget ) );
|
||||||
CategoryStackedWidget->addWidget( new CDisplaySettingsDetailsWidget( CategoryStackedWidget ) );
|
CategoryStackedWidget->addWidget( new CDisplaySettingsDetailsWidget( CategoryStackedWidget ) );
|
||||||
|
|
Loading…
Reference in a new issue