[Scummvm-git-logs] scummvm master -> 9904732517adccf58a80c41efd88fa543a5c5bee

sev- sev at scummvm.org
Thu Oct 24 18:41:02 CEST 2019


This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
ec121da075 SCUMM HE: Set server prefix as variable
9904732517 SCUMM HE: Initial code for add user functionality


Commit: ec121da0753259e83bd5219d529a2bdc26ba2d19
    https://github.com/scummvm/scummvm/commit/ec121da0753259e83bd5219d529a2bdc26ba2d19
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2019-10-24T18:08:54+02:00

Commit Message:
SCUMM HE: Set server prefix as variable

Changed paths:
    engines/scumm/he/moonbase/net_main.cpp
    engines/scumm/he/moonbase/net_main.h


diff --git a/engines/scumm/he/moonbase/net_main.cpp b/engines/scumm/he/moonbase/net_main.cpp
index a2d76fe..b0a58b9 100644
--- a/engines/scumm/he/moonbase/net_main.cpp
+++ b/engines/scumm/he/moonbase/net_main.cpp
@@ -37,6 +37,8 @@ Net::Net(ScummEngine_v100he *vm) : _latencyTime(1), _fakeLatency(false), _vm(vm)
 	_lastResult = 0;
 
 	_sessionid = -1;
+
+	_serverprefix = "http://localhost/moonbase";
 }
 
 Net::~Net() {
@@ -94,7 +96,7 @@ int Net::whoAmI() {
 int Net::createSession(char *name) {
 	warning("STUB: Net::createSession(\"%s\")", name); // PN_CreateSession
 
-	Networking::PostRequest rq("http://localhost/moonbase/createsession",
+	Networking::PostRequest rq(_serverprefix + "/createsession",
 		new Common::Callback<Net, Common::JSONValue *>(this, &Net::startQuerySessionsCallback),
 		new Common::Callback<Net, Networking::ErrorResponse>(this, &Net::startQuerySessionsErrorCallback));
 
@@ -185,7 +187,7 @@ bool Net::destroyPlayer(int32 playerDPID) {
 int32 Net::startQuerySessions() {
 	warning("STUB: Net::startQuerySessions()"); // StartQuerySessions
 
-	Networking::PostRequest rq("http://localhost/moonbase/lobbies",
+	Networking::PostRequest rq(_serverprefix + "/lobbies",
 		new Common::Callback<Net, Common::JSONValue *>(this, &Net::startQuerySessionsCallback),
 		new Common::Callback<Net, Networking::ErrorResponse>(this, &Net::startQuerySessionsErrorCallback));
 
diff --git a/engines/scumm/he/moonbase/net_main.h b/engines/scumm/he/moonbase/net_main.h
index 2a399d3..757fa1b 100644
--- a/engines/scumm/he/moonbase/net_main.h
+++ b/engines/scumm/he/moonbase/net_main.h
@@ -103,6 +103,8 @@ public:
 	int _lastResult;
 
 	int _sessionid;
+
+	Common::String _serverprefix;
 };
 
 } // End of namespace Scumm


Commit: 9904732517adccf58a80c41efd88fa543a5c5bee
    https://github.com/scummvm/scummvm/commit/9904732517adccf58a80c41efd88fa543a5c5bee
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2019-10-24T18:38:49+02:00

Commit Message:
SCUMM HE: Initial code for add user functionality

Changed paths:
    engines/scumm/he/moonbase/net_main.cpp
    engines/scumm/he/moonbase/net_main.h


diff --git a/engines/scumm/he/moonbase/net_main.cpp b/engines/scumm/he/moonbase/net_main.cpp
index b0a58b9..0c40502 100644
--- a/engines/scumm/he/moonbase/net_main.cpp
+++ b/engines/scumm/he/moonbase/net_main.cpp
@@ -72,12 +72,41 @@ int Net::joinGame(char *IP, char *userName) {
 int Net::addUser(char *shortName, char *longName) {
 	warning("STUB: Net::addUser(\"%s\", \"%s\")", shortName, longName); // PN_AddUser
 
-	_myUserId = _vm->_rnd.getRandomNumber(1000000);
+	Networking::PostRequest rq(_serverprefix + "/adduser",
+		new Common::Callback<Net, Common::JSONValue *>(this, &Net::addUserCallback),
+		new Common::Callback<Net, Networking::ErrorResponse>(this, &Net::addUserErrorCallback));
+
+	snprintf((char *)_tmpbuffer, MAX_PACKET_SIZE, "{\"shortname\":\"%s\",\"longname\":\"%s\",\"sessionid\":%d}", shortName, longName, _sessionid);
+	rq.setPostData(_tmpbuffer, strlen((char *)_tmpbuffer));
+	rq.setContentType("application/json");
+
+	rq.start();
+
+	_myUserId = -1;
+
+	while(rq.state() == Networking::PROCESSING) {
+		g_system->delayMillis(5);
+	}
+
+	if (_myUserId == -1)
+		return 0;
 
-	// FAKE successful add. FIXME
 	return 1;
 }
 
+void Net::addUserCallback(Common::JSONValue *response) {
+	Common::JSONObject info = response->asObject();
+
+	if (info.contains("userid")) {
+		_myUserId = info["userid"]->asIntegerNumber();
+	}
+	debug(1, "addUserCallback: got: '%s' as %d", response->stringify().c_str(), _myUserId);
+}
+
+void Net::addUserErrorCallback(Networking::ErrorResponse error) {
+	warning("Error in addUser(): %ld %s", error.httpResponseCode, error.response.c_str());
+}
+
 int Net::removeUser() {
 	warning("STUB: Net::removeUser()"); // PN_RemoveUser
 	return 0;
@@ -94,11 +123,11 @@ int Net::whoAmI() {
 }
 
 int Net::createSession(char *name) {
-	warning("STUB: Net::createSession(\"%s\")", name); // PN_CreateSession
+	debug(1, "Net::createSession(\"%s\")", name); // PN_CreateSession
 
 	Networking::PostRequest rq(_serverprefix + "/createsession",
-		new Common::Callback<Net, Common::JSONValue *>(this, &Net::startQuerySessionsCallback),
-		new Common::Callback<Net, Networking::ErrorResponse>(this, &Net::startQuerySessionsErrorCallback));
+		new Common::Callback<Net, Common::JSONValue *>(this, &Net::createSessionCallback),
+		new Common::Callback<Net, Networking::ErrorResponse>(this, &Net::createSessionErrorCallback));
 
 	snprintf((char *)_tmpbuffer, MAX_PACKET_SIZE, "{\"name\":\"%s\"}", name);
 	rq.setPostData(_tmpbuffer, strlen((char *)_tmpbuffer));
@@ -124,7 +153,7 @@ void Net::createSessionCallback(Common::JSONValue *response) {
 	if (info.contains("sessionid")) {
 		_sessionid = info["sessionid"]->asIntegerNumber();
 	}
-	warning("Got: '%s' as %d", response->stringify().c_str(), _sessionid);
+	debug(1, "createSessionCallback: got: '%s' as %d", response->stringify().c_str(), _sessionid);
 }
 
 void Net::createSessionErrorCallback(Networking::ErrorResponse error) {
@@ -202,7 +231,7 @@ int32 Net::startQuerySessions() {
 }
 
 void Net::startQuerySessionsCallback(Common::JSONValue *response) {
-	warning("Got: '%s'", response->stringify().c_str());
+	warning("startQuerySessions: Got: '%s'", response->stringify().c_str());
 }
 
 void Net::startQuerySessionsErrorCallback(Networking::ErrorResponse error) {
diff --git a/engines/scumm/he/moonbase/net_main.h b/engines/scumm/he/moonbase/net_main.h
index 757fa1b..af71398 100644
--- a/engines/scumm/he/moonbase/net_main.h
+++ b/engines/scumm/he/moonbase/net_main.h
@@ -77,6 +77,9 @@ private:
 	void startQuerySessionsCallback(Common::JSONValue *response);
 	void startQuerySessionsErrorCallback(Networking::ErrorResponse error);
 
+	void addUserCallback(Common::JSONValue *response);
+	void addUserErrorCallback(Networking::ErrorResponse error);
+
 public:
 	//getters
 	bool getHostName(char *hostname, int length);





More information about the Scummvm-git-logs mailing list