Remember session (without GUI) and starting to integrate online-multiplayer and addons networking code. (Limited to config file for now.)
git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/branches/uni@13202 178a84e3-b1eb-0310-8ba1-8eac791a3b58
This commit is contained in:
parent
200127102d
commit
3463a01e85
@ -603,13 +603,45 @@ namespace UserConfigParams
|
|||||||
PARAM_DEFAULT( WStringUserConfigParam(L"", "default_player",
|
PARAM_DEFAULT( WStringUserConfigParam(L"", "default_player",
|
||||||
"Which player to use by default (if empty, will prompt)") );
|
"Which player to use by default (if empty, will prompt)") );
|
||||||
|
|
||||||
// ---- Online multiplayer related
|
// ---- Internet related
|
||||||
|
|
||||||
|
PARAM_PREFIX IntUserConfigParam m_internet_status
|
||||||
|
PARAM_DEFAULT( IntUserConfigParam(0, "enable_internet",
|
||||||
|
"Status of internet: 0 user "
|
||||||
|
"wasn't asked, 1: allowed, 2: "
|
||||||
|
"not allowed") );
|
||||||
|
|
||||||
|
// ---- Online gameplay related
|
||||||
|
|
||||||
|
PARAM_PREFIX GroupUserConfigParam m_online_group
|
||||||
|
PARAM_DEFAULT( GroupUserConfigParam("OnlinePlay",
|
||||||
|
"Everything related to online play.") );
|
||||||
|
|
||||||
PARAM_PREFIX StringUserConfigParam m_server_multiplayer
|
PARAM_PREFIX StringUserConfigParam m_server_multiplayer
|
||||||
PARAM_DEFAULT( StringUserConfigParam( "http://api.stkaddons.net/",
|
PARAM_DEFAULT( StringUserConfigParam( "http://api.stkaddons.net/",
|
||||||
"server_multiplayer",
|
"server_multiplayer",
|
||||||
|
&m_online_group,
|
||||||
"The server used for online multiplayer."));
|
"The server used for online multiplayer."));
|
||||||
|
|
||||||
|
PARAM_PREFIX BoolUserConfigParam m_saved_session
|
||||||
|
PARAM_DEFAULT( BoolUserConfigParam( false,
|
||||||
|
"saved_session",
|
||||||
|
&m_online_group,
|
||||||
|
"Is there a saved session?") );
|
||||||
|
|
||||||
|
PARAM_PREFIX IntUserConfigParam m_saved_user
|
||||||
|
PARAM_DEFAULT( IntUserConfigParam( 0,
|
||||||
|
"saved_user",
|
||||||
|
&m_online_group,
|
||||||
|
"User ID of the saved session.") );
|
||||||
|
|
||||||
|
PARAM_PREFIX StringUserConfigParam m_saved_token
|
||||||
|
PARAM_DEFAULT( StringUserConfigParam( "",
|
||||||
|
"saved_token",
|
||||||
|
&m_online_group,
|
||||||
|
"Token of the saved session.") );
|
||||||
|
|
||||||
|
|
||||||
// ---- Addon server related entries
|
// ---- Addon server related entries
|
||||||
PARAM_PREFIX GroupUserConfigParam m_addon_group
|
PARAM_PREFIX GroupUserConfigParam m_addon_group
|
||||||
PARAM_DEFAULT( GroupUserConfigParam("AddonAndNews",
|
PARAM_DEFAULT( GroupUserConfigParam("AddonAndNews",
|
||||||
@ -643,13 +675,6 @@ namespace UserConfigParams
|
|||||||
"Don't show important message "
|
"Don't show important message "
|
||||||
"with this or a lower id again") );
|
"with this or a lower id again") );
|
||||||
|
|
||||||
PARAM_PREFIX IntUserConfigParam m_internet_status
|
|
||||||
PARAM_DEFAULT( IntUserConfigParam(0, "enable_internet",
|
|
||||||
&m_addon_group,
|
|
||||||
"Status of internet: 0 user "
|
|
||||||
"wasn't asked, 1: allowed, 2: "
|
|
||||||
"not allowed") );
|
|
||||||
|
|
||||||
PARAM_PREFIX TimeUserConfigParam m_addons_last_updated
|
PARAM_PREFIX TimeUserConfigParam m_addons_last_updated
|
||||||
PARAM_DEFAULT( TimeUserConfigParam(0, "addon_last_updated",
|
PARAM_DEFAULT( TimeUserConfigParam(0, "addon_last_updated",
|
||||||
&m_addon_group,
|
&m_addon_group,
|
||||||
|
@ -25,6 +25,7 @@
|
|||||||
#include "online/http_connector.hpp"
|
#include "online/http_connector.hpp"
|
||||||
#include "config/user_config.hpp"
|
#include "config/user_config.hpp"
|
||||||
#include "utils/translation.hpp"
|
#include "utils/translation.hpp"
|
||||||
|
#include "utils/log.hpp"
|
||||||
|
|
||||||
static CurrentOnlineUser* user_singleton = NULL;
|
static CurrentOnlineUser* user_singleton = NULL;
|
||||||
|
|
||||||
@ -42,8 +43,6 @@ void CurrentOnlineUser::deallocate()
|
|||||||
} // deallocate
|
} // deallocate
|
||||||
|
|
||||||
// ============================================================================
|
// ============================================================================
|
||||||
|
|
||||||
|
|
||||||
CurrentOnlineUser::CurrentOnlineUser(){
|
CurrentOnlineUser::CurrentOnlineUser(){
|
||||||
m_is_signed_in = false;
|
m_is_signed_in = false;
|
||||||
m_is_guest = false;
|
m_is_guest = false;
|
||||||
@ -53,6 +52,42 @@ CurrentOnlineUser::CurrentOnlineUser(){
|
|||||||
m_token = "";
|
m_token = "";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ============================================================================
|
||||||
|
bool CurrentOnlineUser::trySavedSession()
|
||||||
|
{
|
||||||
|
assert(m_is_signed_in == false);
|
||||||
|
if(UserConfigParams::m_saved_session)
|
||||||
|
{
|
||||||
|
HTTPConnector * connector = new HTTPConnector((std::string)UserConfigParams::m_server_multiplayer + "client-user.php");
|
||||||
|
connector->setParameter("action",std::string("validate"));
|
||||||
|
connector->setParameter("userid", UserConfigParams::m_saved_user);
|
||||||
|
connector->setParameter("token", UserConfigParams::m_saved_token);
|
||||||
|
const XMLNode * result = connector->getXMLFromPage();
|
||||||
|
std::string rec_success = "";
|
||||||
|
std::string info;
|
||||||
|
if(result->get("success", &rec_success))
|
||||||
|
{
|
||||||
|
if (rec_success =="yes")
|
||||||
|
{
|
||||||
|
int token_fetched = result->get("token", &m_token);
|
||||||
|
int username_fetched = result->get("username", &m_name);
|
||||||
|
int userid_fetched = result->get("userid", &m_id);
|
||||||
|
assert(token_fetched && username_fetched && userid_fetched);
|
||||||
|
m_is_signed_in = true;
|
||||||
|
m_is_guest = false;
|
||||||
|
}
|
||||||
|
result->get("info", &info);
|
||||||
|
Log::info("trySavedSession","%s",info);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Log::error("trySavedSession","%s",
|
||||||
|
_("Unable to connect to the server. Check your internet connection or try again later."));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return m_is_signed_in;
|
||||||
|
}
|
||||||
|
|
||||||
// ============================================================================
|
// ============================================================================
|
||||||
// Register
|
// Register
|
||||||
bool CurrentOnlineUser::signUp( const irr::core::stringw &username,
|
bool CurrentOnlineUser::signUp( const irr::core::stringw &username,
|
||||||
@ -89,6 +124,7 @@ bool CurrentOnlineUser::signUp( const irr::core::stringw &username,
|
|||||||
|
|
||||||
bool CurrentOnlineUser::signIn( const irr::core::stringw &username,
|
bool CurrentOnlineUser::signIn( const irr::core::stringw &username,
|
||||||
const irr::core::stringw &password,
|
const irr::core::stringw &password,
|
||||||
|
bool save_session,
|
||||||
irr::core::stringw &info)
|
irr::core::stringw &info)
|
||||||
{
|
{
|
||||||
assert(m_is_signed_in == false);
|
assert(m_is_signed_in == false);
|
||||||
@ -108,6 +144,12 @@ bool CurrentOnlineUser::signIn( const irr::core::stringw &username,
|
|||||||
assert(token_fetched && username_fetched && userid_fetched);
|
assert(token_fetched && username_fetched && userid_fetched);
|
||||||
m_is_signed_in = true;
|
m_is_signed_in = true;
|
||||||
m_is_guest = false;
|
m_is_guest = false;
|
||||||
|
if(save_session)
|
||||||
|
{
|
||||||
|
UserConfigParams::m_saved_user = m_id;
|
||||||
|
UserConfigParams::m_saved_token = m_token;
|
||||||
|
UserConfigParams::m_saved_session = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
result->get("info", &info);
|
result->get("info", &info);
|
||||||
}
|
}
|
||||||
@ -125,7 +167,7 @@ bool CurrentOnlineUser::createServer( const irr::core::stringw &name,
|
|||||||
int max_players,
|
int max_players,
|
||||||
irr::core::stringw &info)
|
irr::core::stringw &info)
|
||||||
{
|
{
|
||||||
assert(m_is_signed_in && !m_is_guest && !m_is_server_host);
|
assert(m_is_signed_in && !m_is_guest);
|
||||||
HTTPConnector * connector = new HTTPConnector((std::string)UserConfigParams::m_server_multiplayer + "client-user.php");
|
HTTPConnector * connector = new HTTPConnector((std::string)UserConfigParams::m_server_multiplayer + "client-user.php");
|
||||||
connector->setParameter("action", std::string("create_server"));
|
connector->setParameter("action", std::string("create_server"));
|
||||||
connector->setParameter("token", m_token);
|
connector->setParameter("token", m_token);
|
||||||
@ -172,6 +214,9 @@ bool CurrentOnlineUser::signOut(irr::core::stringw &info){
|
|||||||
m_id = 0;
|
m_id = 0;
|
||||||
m_is_signed_in = false;
|
m_is_signed_in = false;
|
||||||
m_is_guest = false;
|
m_is_guest = false;
|
||||||
|
UserConfigParams::m_saved_user = 0;
|
||||||
|
UserConfigParams::m_saved_token = "";
|
||||||
|
UserConfigParams::m_saved_session = false;
|
||||||
}
|
}
|
||||||
result->get("info", &info);
|
result->get("info", &info);
|
||||||
}
|
}
|
||||||
|
@ -47,9 +47,12 @@ class CurrentOnlineUser : public OnlineUser
|
|||||||
// singleton
|
// singleton
|
||||||
static CurrentOnlineUser* get();
|
static CurrentOnlineUser* get();
|
||||||
static void deallocate();
|
static void deallocate();
|
||||||
|
|
||||||
|
bool trySavedSession();
|
||||||
// Login
|
// Login
|
||||||
bool signIn( const irr::core::stringw &username,
|
bool signIn( const irr::core::stringw &username,
|
||||||
const irr::core::stringw &password,
|
const irr::core::stringw &password,
|
||||||
|
bool save_session,
|
||||||
irr::core::stringw &info);
|
irr::core::stringw &info);
|
||||||
// Register
|
// Register
|
||||||
bool signUp( const irr::core::stringw &username,
|
bool signUp( const irr::core::stringw &username,
|
||||||
|
Loading…
Reference in New Issue
Block a user