Moved ServerCreationRequest from CurrentUser into the server creation screen.

This commit is contained in:
hiker 2014-03-14 22:18:02 +11:00
parent 6afc12c866
commit c0a70830c2
4 changed files with 37 additions and 46 deletions

View File

@ -253,34 +253,6 @@ namespace Online
UserConfigParams::m_saved_session = false;
} // signOut
// ------------------------------------------------------------------------
const CurrentUser::ServerCreationRequest*
CurrentUser::requestServerCreation(const core::stringw &name,
int max_players)
{
assert(m_state == US_SIGNED_IN);
ServerCreationRequest * request = new ServerCreationRequest();
request->setServerURL("client-user.php");
request->addParameter("action", "create_server");
request->addParameter("token", getToken());
request->addParameter("userid", getID());
request->addParameter("name", name);
request->addParameter("max_players", max_players);
request->queue();
return request;
} // requestServerCreation
// ------------------------------------------------------------------------
void CurrentUser::ServerCreationRequest::callback()
{
if(isSuccess())
{
Server * server = new Server(*getXMLData()->getNode("server"));
ServersManager::get()->addServer(server);
m_created_server_id = server->getServerId();
}
} // ServerCreationRequest::callback
// ------------------------------------------------------------------------
CurrentUser::ServerJoinRequest*
CurrentUser::requestServerJoin(uint32_t server_id,

View File

@ -72,19 +72,6 @@ namespace Online
SignOutRequest() : XMLRequest(true,/*priority*/10) {}
}; // SignOutRequest
// ----------------------------------------------------------------
class ServerCreationRequest : public XMLRequest {
virtual void callback ();
uint32_t m_created_server_id;
public:
ServerCreationRequest() : XMLRequest() {}
const uint32_t getCreatedServerID() const
{
assert(isDone());
return m_created_server_id;
} // getCreatedServerID
}; // ServerCreationRequest
// ----------------------------------------------------------------
class ServerJoinRequest : public XMLRequest {
@ -176,7 +163,6 @@ namespace Online
bool save_session,
bool request_now = true);
void requestSignOut();
const ServerCreationRequest * requestServerCreation(const irr::core::stringw &name, int max_players);
ServerJoinRequest * requestServerJoin(uint32_t server_id, bool request_now = true);

View File

@ -136,15 +136,32 @@ void CreateServerScreen::serverCreationRequest()
}
else
{
//m_options_widget->setDeactivated();
m_server_creation_request = Online::CurrentUser::get()->requestServerCreation(name, max_players);
m_server_creation_request = new ServerCreationRequest();
CurrentUser::setUserDetails(m_server_creation_request);
m_server_creation_request->addParameter("action", "create_server");
m_server_creation_request->addParameter("name", name);
m_server_creation_request->addParameter("max_players", max_players);
m_server_creation_request->queue();
return;
}
sfx_manager->quickSound("anvil");
}
// --------------------------------------------------------------------
void CreateServerScreen::ServerCreationRequest::callback()
{
if (isSuccess())
{
Server *server = new Server(*getXMLData()->getNode("server"));
ServersManager::get()->addServer(server);
m_created_server_id = server->getServerId();
} // isSuccess
} // callback
// ----------------------------------------------------------------------------
void CreateServerScreen::eventCallback(Widget* widget, const std::string& name, const int playerID)
void CreateServerScreen::eventCallback(Widget* widget, const std::string& name,
const int playerID)
{
if (name == m_options_widget->m_properties[PROP_ID])
{

View File

@ -21,6 +21,7 @@
#include "guiengine/screen.hpp"
#include "guiengine/widgets.hpp"
#include "online/current_user.hpp"
#include "online/xml_request.hpp"
namespace GUIEngine { class Widget; class ListWidget; }
@ -46,7 +47,22 @@ private:
GUIEngine::IconButtonWidget * m_create_widget;
GUIEngine::IconButtonWidget * m_cancel_widget;
const Online::CurrentUser::ServerCreationRequest * m_server_creation_request;
// --------------------------------------------------------------------
class ServerCreationRequest : public Online::XMLRequest
{
virtual void callback();
uint32_t m_created_server_id;
public:
const uint32_t getCreatedServerID() const
{
assert(isDone());
return m_created_server_id;
} // getCreatedServerID
}; // ServerCreationRequest
// --------------------------------------------------------------------
ServerCreationRequest *m_server_creation_request;
/** \brief Sets which widget has to be focused. Depends on the user state. */
void setInitialFocus();